7 Days to Die is a zombie survival and crafting game where every seventh night brings a blood moon horde. A dedicated server keeps the world running for your group between sessions, and handles the horde nights without one player’s PC carrying the load. The server has a native Linux version.

Requirements

  • 4 vCPU and 8 GB RAM for a small group (up to about 8 players). Larger maps (8K/10K), more players and mods need 12–16 GB.
  • About 15–20 GB disk, plus saves.
  • Ports 26900 TCP/UDP and 26901–26902 UDP.
  • A location near your players. See game server VPS.

Install with SteamCMD

sudo dpkg --add-architecture i386
sudo apt update && sudo apt install -y steamcmd lib32gcc-s1
sudo adduser --disabled-password --gecos "" sdtd
sudo -iu sdtd
/usr/games/steamcmd +force_install_dir ~/7dtd +login anonymous +app_update 294420 -beta public validate +quit

The dedicated server’s app ID is 294420. To use an experimental build, change -beta. Clients must be on the same version.

Configure serverconfig.xml

Copy the default config, so updates don’t overwrite your changes:

cd ~/7dtd && cp serverconfig.xml myconfig.xml

Key properties in myconfig.xml:

<property name="ServerName"         value="Our Horde Server"/>
<property name="ServerPassword"     value="secret-pass"/>
<property name="ServerVisibility"   value="2"/>    <!-- 2 public, 1 friends, 0 not listed -->
<property name="ServerPort"         value="26900"/>
<property name="ServerMaxPlayerCount" value="8"/>
<property name="GameWorld"          value="Navezgane"/>   <!-- or RWG for random generation -->
<property name="WorldGenSeed"       value="myseed"/>
<property name="WorldGenSize"       value="6144"/>
<property name="GameName"           value="MyGame"/>
<property name="GameDifficulty"     value="2"/>
<property name="BloodMoonFrequency" value="7"/>
<property name="TelnetEnabled"      value="true"/>
<property name="TelnetPort"         value="8081"/>
<property name="TelnetPassword"     value="long-random-password"/>
<property name="WebDashboardEnabled" value="true"/>
<property name="WebDashboardPort"   value="8080"/>
<property name="UserDataFolder"     value="/home/sdtd/userdata"/>

Random generation (RWG) creates the world on the first start, which takes a long time and a lot of RAM for large sizes. Generate once, then keep the world.

Start the server

cd ~/7dtd
./startserver.sh -configfile=myconfig.xml

Run it under systemd (with ExecStartPre running the SteamCMD update) or in tmux. Stop cleanly with the shutdown command via telnet, so the world saves. See systemd unit files and tmux.

Firewall

sudo ufw allow 26900/tcp
sudo ufw allow 26900:26902/udp
# telnet 8081 and the web dashboard 8080: don't expose publicly

Use an SSH tunnel for telnet and the web dashboard (ssh -L 8080:127.0.0.1:8080 user@server). Telnet is unencrypted. See SSH tunnelling and UFW.

Admins

Add yourself to serveradmin.xml in the user data folder (Saves/serveradmin.xml by default), with your Steam ID and permission level 0, or use the telnet console:

telnet 127.0.0.1 8081
admin add <SteamID64 or EOS ID> 0
saveworld

In game, open the console (F1) for commands such as kick, ban, settime, and spawnscreen.

Mods

Place modlets (folders with ModInfo.xml) in ~/7dtd/Mods/. Server-side XML modlets often don’t require client installs. Mods with new assets or code (DLLs) must also be installed by every player. Check each mod’s notes and its supported game version.

Backups

Saves live in the user data folder (Saves/<World>/<GameName>/) and generated worlds in GeneratedWorlds/:

tar czf /backups/7dtd-$(date +%F-%H%M).tgz -C /home/sdtd userdata

Back up before every game update. Major versions (alphas, and the 1.x releases) often require a new world. See backup strategy.

Performance tips

  • Horde nights spike CPU. Reduce MaxSpawnedZombies or the blood moon enemy count if the server struggles.
  • Restart daily to reclaim memory.
  • Keep ServerMaxPlayerCount realistic for your hardware.

Quick reference

Item Value
SteamCMD app ID 294420
Ports 26900 TCP/UDP, 26901–26902 UDP
Config myconfig.xml (copy of serverconfig.xml)
Telnet / web dashboard 8081 / 8080 (keep private)
Clean stop shutdown via telnet

Related: Project Zomboid server and LinuxGSM.

  • Game Server
  • SteamCMD
  • Linux