Workload · Hosting a 7 Days to Die world

Your group's own dedicated 7 Days to Die server, open any night

To host 7 Days to Die for a group around the clock, you install the free dedicated server (SteamCMD app 294420) on a Linux machine, give it your own copy of serverconfig.xml, open its game ports, and keep the admin consoles off the internet. Here is how to do each of those, and how to pick a machine that will not stutter when the horde arrives.

The short version
  1. Free server download: SteamCMD app 294420
  2. Five steps on Ubuntu: install, configure, open ports, start
  3. Admin consoles reached over SSH, never exposed
  4. Saves in one folder you choose, easy to back up
  5. Whole machine, unmetered port, no contract

Why your world wants its own server

When one of you hosts from the game, the world exists only while that person plays, and their PC carries the game and the server at once. The Steam listing for 7 Days to Die says it plainly: hosting the server and playing on that same PC doubles the memory it asks for. Moving the server to its own machine means the base, the loot and the blood moon schedule are there whenever anyone logs in.

How big a machine do you need?

Start from the only figures The Fun Pimps publish, which are for the game itself. On Linux the minimum is a quad-core CPU at 2.8 GHz with 8 GB of memory, and the recommended setup is four cores at 3.2 GHz and 12 GB; storage is 15 GB, with a warning that later releases may want more. Nothing official breaks that down per player or per map, so what follows is our own advice.

  • Clock speed first. Take the 2.8-3.2 GHz quad core as the floor for the server, not a target.
  • Memory with headroom. 12 GB is the recommended line for the game; a bigger random map, more than the default 8 player slots, or a mod pack all push it up.
  • Map size. The shipped config says officially supported random world sizes run from 6144 to 10240, in steps of 2048. Bigger worlds take longer to generate and more disk to store.
  • Zombie and view limits. The config file itself warns that raising MaxSpawnedZombies (64 for the whole map) has a huge performance cost, and that the client view-distance cap is heavy on memory.

Installing the server on Ubuntu

These steps assume Ubuntu and a fresh machine. You will make a user just for the game, download the server with SteamCMD (no game licence needed on the server, players still need their own copy), and set the firewall so only SSH and the game get through.

  1. Turn on Ubuntu's multiverse repository and the i386 architecture, and apt can install steamcmd.
  2. Create a user called horde and download app 294420 into its home folder as that user.
  3. Allow SSH in the firewall first, then UDP 26900 to 26903 plus TCP 26900, the ports the Valve developer wiki lists for the default setup.
  4. Copy serverconfig.xml to a name of your own and edit that copy, so updates never overwrite your settings.
  5. Start it with ./startserver.sh -configfile= followed by your file name; the script refuses to run without it.
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update && sudo apt install steamcmd
sudo useradd -m -s /bin/bash horde
sudo -u horde /usr/games/steamcmd +force_install_dir /home/horde/game \
  +login anonymous +app_update 294420 validate +quit
sudo ufw allow OpenSSH
sudo ufw allow 26900/tcp
sudo ufw allow 26900:26903/udp
sudo ufw --force enable
sudo -u horde cp /home/horde/game/serverconfig.xml /home/horde/game/ourworld.xml

Order matters in step 3: if you turn the firewall on before allowing SSH, you lock yourself out of the session you are typing in.

The settings your group will notice

Open your copy and change only what sits inside value="...". These are the ones that shape what players see:

SettingShips asWhat to do with it
ServerNameMy Game HostThe name in the server browser
ServerPasswordempty (anyone may join)Set one for a private group
ServerVisibility2 (public)0 hides it; 1 (friends) only works after someone joins by IP
ServerMaxPlayerCount8Raise it only with memory to match
GameWorldNavezganeRWG for a random map from WorldGenSeed and WorldGenSize
ServerAllowCrossplayfalseListed for crossplay only if slots stay at the default 8 or below
UserDataFoldercommented outUncomment with an absolute path, e.g. /home/horde/world-data

Setting UserDataFolder is the change that pays off later: it is where the server writes random worlds and save games, and the admin list, serveradmin.xml, is read from its Saves folder. To give yourself admin rights, put your account in that file with permission level 0, copying the commented sample line; 0 is the most powerful level and 1000 the least.

Keeping the admin consoles to yourself

7 Days to Die has two ways to run the server from outside the game: telnet on port 8081 and a web dashboard on port 8080. Either one hands over full control, so the safe pattern is to keep both unreachable from the internet and go through SSH.

  • Telnet: leave TelnetPassword empty. The config explains that with no password, telnet is bound to the machine's own loopback address alone. Log in with SSH and type telnet 127.0.0.1 8081.
  • Web dashboard: it is off until you set WebDashboardEnabled to true. If you want it, do not open 8080 in the firewall. Run ssh -L 8080:127.0.0.1:8080 yourname@server-ip on your own computer, logging in as yourself (the horde service account has no login), and browse to localhost:8080 instead.
  • Map view: the dashboard's map needs EnableMapRendering, which renders tiles as players explore.

From that console, saveworld writes the world to disk and shutdown stops the game cleanly. Use them before every restart, update or backup.

Keeping it alive between sessions

A small systemd service starts the world when the machine boots and brings it back if it crashes:

# /etc/systemd/system/horde.service
[Unit]
Description=7 Days to Die world
After=network-online.target
Wants=network-online.target

[Service]
User=horde
WorkingDirectory=/home/horde/game
ExecStart=/home/horde/game/startserver.sh -configfile=ourworld.xml
Restart=on-failure
TimeoutStopSec=120

[Install]
WantedBy=multi-user.target

Turn it on with sudo systemctl enable --now horde. For backups, run saveworld, archive the folder you set as UserDataFolder with tar, and copy the archive to another machine. To update, run the same SteamCMD command again; everyone who joins has to be on the same game version, and version on the console tells you which one the server runs.

Choosing a machine for blood moon nights

Every machine in our game server lineup is enterprise hardware (HPE on most lines) that you have to yourself, and the network port is yours too: no other customer is on it at the access switch. Nothing meters the traffic, so a new survivor downloading a large random map on first join never shows up on an invoice. Billing is monthly and there is no contract to sign.

Pick on clock speed rather than core count. Our Intel servers page lists every processor we rent with its clock, which makes it quick to find one at or above the game's 2.8 GHz minimum; a custom server lets you choose memory and NVMe storage around it. Choose Ubuntu when you order, as with our other Linux servers.

If the machine you pick is already racked, you can start the SteamCMD download roughly half an hour after the order is approved; payment verification can add time. Rack servers and blades also come with a console in the browser, your way back in if the firewall step above ever shuts SSH out. Host the world in whichever of our five data centers gives most of your group the lowest ping, and if you run more than one game, the Project Zomboid guide follows the same pattern.

When you do not need one

If two or three of you play the occasional weekend, hosting from the game is free and good enough. A dedicated machine makes sense once the world has to be there every night. It also comes as a plain server: no game panel or one-click mods, so the setup, updates and backups above are yours to run.

Questions people ask

Do I have to buy the game again for the server?
No. The dedicated server is a separate free tool, SteamCMD app 294420, and it downloads with an anonymous login. Every player who connects needs their own copy of 7 Days to Die.
What ports should I open?
For the default port, UDP 26900 to 26903 plus TCP 26900, the set listed on the Valve developer wiki page for this server. If you change ServerPort in your config, shift the whole range with it. Leave 8080 and 8081 closed and use SSH for admin work.
How much memory is enough for a small group?
There is no official server figure. The game's recommended setup is 12 GB of memory and four cores at 3.2 GHz, and we treat that as a starting point for the server. Larger random maps, more slots and mods all need more, so check usage after a few nights of play.
How do I give myself admin rights?
Put your account in serveradmin.xml with permission level 0, copying the commented sample line there, or use the admin add command on the console. With UserDataFolder set, that file sits in its Saves folder.
Can console players join my server?
Crossplay is off by default through ServerAllowCrossplay. The config notes that a crossplay server is only found in searches when it keeps no more than the default number of player slots and does not ignore sanctions.

Give your world a home

Pick a city near your group, choose Ubuntu, and follow the steps above on hardware no other group plays on.

Start your world

Read next