Run a server on Linux
The Enshrouded dedicated server exists for Windows only. A Linux host runs it under Proton. The settings on this page remove most of the time Proton adds.
Install the server with Enshwick
Section titled “Install the server with Enshwick”- Install the dedicated server with SteamCMD, app
2278520. - Install Enshwick into the folder that holds
enshrouded_server.exe. - Start the server through Proton with
WINEDLLOVERRIDES="powrprof=n,b"in its environment. Proton then loads thepowrprof.dllof Enshwick.
Use a kernel with ntsync
Section titled “Use a kernel with ntsync”Run Linux 6.14 or newer with the ntsync module loaded. Proton 11 and GE-Proton
11 use it without extra settings. With it, the waits between game threads take
much less time.
- Load the module:
sudo modprobe ntsync. - Check that
/dev/ntsyncexists. - In a container, pass the device through, such as
--device /dev/ntsyncfor Docker.
Turn off Wine’s debug output
Section titled “Turn off Wine’s debug output”Set WINEDEBUG=-all in the server’s environment. Wine then writes no debug
lines. These lines cost time on a busy server.
Keep the server on the same cores
Section titled “Keep the server on the same cores”Give the server its own CPU cores, so that other programs do not move it between cores.
- With systemd, set
CPUAffinity=in the service’s unit. - With Docker, use
--cpuset-cpus. - Without either, start the server with
taskset -c <cores>.
WINE_CPU_TOPOLOGY sets which cores the game sees. Use it when the game must
see fewer cores than the host has.
Let the CPU run at full speed
Section titled “Let the CPU run at full speed”Set the CPU frequency governor to performance, so that the cores do not slow
down between busy moments: sudo cpupower frequency-set -g performance.
Check the result
Section titled “Check the result”At start, the Optimizer mod writes one line into
logs/enshwick/mods/enshwick.optimizer.log. The line names the Wine version,
the kernel, the fast waits it found, the governor and the CPUs the game saw.
With ntsync in place, it reads /dev/ntsync present. Each missing setting gets
a line of advice.
For a server in Docker or Kubernetes, see Running a server in Docker or Kubernetes.