A 7 Days to Die dedicated server keeps your survival world online without requiring the original host to play. You control the player limit, visibility, world, permissions, mods and gameplay rules.
The dedicated server runs natively on Windows and Linux. You can install it with SteamCMD or use a managed game server. This guide reflects the major configuration changes introduced in Version 3.0, including the new SandboxCode for gameplay settings.

GameDifficulty, DayNightLength or LootAbundance are partly outdated for current V3 builds.What you will learn
- how to install the 7 Days to Die dedicated server with SteamCMD
- how to use the Windows and Linux startup scripts
- which values are still configured directly in
serverconfig.xml - how
SandboxCodereplaced many individual gameplay properties - which TCP and UDP ports the server requires
- how to manage administrators, mods, backups, updates and branches
Create a 7 Days to Die server: quick overview
- Prepare a fast CPU, SSD storage and at least 6 to 8 GB of free memory.
- Install SteamCMD and download dedicated-server App
294420. - Copy
serverconfig.xmland configure the name, password, world and slots. - Generate a matching
SandboxCodein the current game client. - Start the server with
startdedicated.batorstartserver.sh. - Allow
26900/TCPand26900–26903/UDPthrough the firewall and router. - Join through the server browser or connect directly to
SERVER-IP:26900. - Configure administrators, regular backups and a controlled update process.
Table of contents
- Requirements and hardware
- Install the dedicated server
- Configure the server
- World and SandboxCode
- Ports and firewall
- Connect to the server
- Administration
- Install mods
- Create backups
- Updates and branches
- Troubleshooting
- Frequently asked questions
- Related guides
- Summary
Requirements and hardware
7 Days to Die is relatively demanding on both memory and CPU resources. Random-world generation, many active players, large bases, Blood Moon hordes and extensive mods can increase the load considerably.
Memory by server size
| Usage | Sensible free memory for the server | Notes |
|---|---|---|
| 1 to 4 players, vanilla | 6 to 8 GB | small world and few additional services |
| 5 to 8 players or RWG | 8 to 12 GB | more headroom for world data and hordes |
| 9 to 16 players | 12 to 16 GB | fast CPU and scheduled restarts recommended |
| Large modpacks or overhauls | 16 GB or more | depends on the mod, world size and player count |
These are planning figures rather than fixed limits. Monitor real usage and leave enough memory for the operating system, SteamCMD, backups and monitoring.
Additional requirements
| Component | Recommendation |
|---|---|
| CPU | high single-core performance and several modern cores |
| Storage | SSD or NVMe with room for worlds, saves and backups |
| Network | stable connection with low packet loss |
| Reachability | public IPv4 address or a working IPv6 design |
| Operating system | current 64-bit Windows or Linux distribution |
Self-hosting or renting a server
| Option | Advantages | Drawbacks |
|---|---|---|
| Home server | full control and no additional rental charge | electricity, router configuration and home-network dependency |
| VPS or root server | always online, public IP and full access | you manage security, updates and the operating system |
| Managed game server | fast deployment and no port forwarding | monthly cost and less system access |
To start without managing SteamCMD and firewall rules yourself, you can rent a 7 Days to Die server.
See Create a Valheim server and Create a Project Zomboid server for related survival-server guides.
Install the 7 Days to Die dedicated server
The dedicated-server SteamCMD App ID is 294420. The game client uses App ID 251570; do not use it for the server installation. The dedicated server can be downloaded anonymously.
On Windows
- Create
C:\steamcmdandC:\7dtd-server, for example. - Download Valve's SteamCMD package and extract it to
C:\steamcmd. - Open PowerShell and run:
C:\steamcmd\steamcmd.exe +force_install_dir C:\7dtd-server +login anonymous +app_update 294420 validate +quit
+force_install_dir selects the installation directory. +login anonymous does not require a Steam account. validate checks existing files and replaces missing or damaged data.
The installation directory now contains startdedicated.bat and serverconfig.xml.
Create working copies:
Copy-Item C:\7dtd-server\serverconfig.xml C:\7dtd-server\myserver.xml
Copy-Item C:\7dtd-server\startdedicated.bat C:\7dtd-server\start-dsh.bat
Open start-dsh.bat and change its existing configuration argument to:
-configfile=myserver.xml
Start the server with start-dsh.bat. The first launch can take considerably longer when generating a new random world.
serverconfig.xml as a reference. Updates may add or change properties that should be reviewed before being copied into your custom configuration.On Linux
This Debian or Ubuntu example uses a dedicated account:
sudo adduser --disabled-password --gecos "" sdtd
sudo mkdir -p /opt/7dtd-server
sudo chown -R sdtd:sdtd /opt/7dtd-server
sudo apt update
sudo apt install steamcmd lib32gcc-s1
SteamCMD package names and paths vary by distribution and may require an additional repository.
Install the server:
sudo -u sdtd steamcmd \
+force_install_dir /opt/7dtd-server \
+login anonymous \
+app_update 294420 validate \
+quit
Copy the configuration and startup script:
sudo -u sdtd cp /opt/7dtd-server/serverconfig.xml /opt/7dtd-server/myserver.xml
sudo -u sdtd cp /opt/7dtd-server/startserver.sh /opt/7dtd-server/start-dsh.sh
sudo chmod +x /opt/7dtd-server/start-dsh.sh
Change the existing configuration argument inside the copied script to:
-configfile=/opt/7dtd-server/myserver.xml
Test the server:
sudo -u sdtd /opt/7dtd-server/start-dsh.sh
Start automatically with systemd
Create /etc/systemd/system/7dtd.service:
[Unit]
Description=7 Days to Die Dedicated Server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=sdtd
Group=sdtd
WorkingDirectory=/opt/7dtd-server
ExecStart=/opt/7dtd-server/start-dsh.sh
Restart=on-failure
RestartSec=15
TimeoutStopSec=180
[Install]
WantedBy=multi-user.target
Enable the service:
sudo systemctl daemon-reload
sudo systemctl enable --now 7dtd
sudo systemctl status 7dtd
Follow its output with:
journalctl -u 7dtd -f
saveworld followed by shutdown through the server console whenever possible. A hard termination can damage the latest save or region files.For another Linux-friendly survival setup, see Create a Rust server.
Configure the server: serverconfig.xml
serverconfig.xml is located in the installation directory. Work with a copy such as myserver.xml so SteamCMD updates can deliver a fresh reference file without mixing it with your own settings.
Changes take effect only after a complete server restart.
Important current properties
| Property | Purpose | Example |
|---|---|---|
ServerName | name shown in the browser | DSH Survivors |
ServerPassword | join password | strong unique password |
ServerPort | primary port | 26900 |
ServerMaxPlayerCount | maximum players | 8 or 16 |
ServerVisibility | server-browser visibility | 2 for public |
GameWorld | existing world or generator | Navezgane or RWG |
WorldGenSeed | random-world seed | unique text value |
WorldGenSize | random-world size | value supported by the current build |
GameName | save-game name | DSH-Survival |
GameMode | game mode | GameModeSurvival |
SandboxCode | compressed gameplay settings since V3 | code from the current client |
EACEnabled | enables Easy Anti-Cheat | true for vanilla |
ServerAdminFileName | admin-file name or path | commonly serveradmin.xml |
SaveGameFolder | optional custom save path | absolute path when used |
SandboxCode. Legacy settings such as GameDifficulty, DayNightLength, DayLightLength, XPMultiplier, LootAbundance and several Blood Moon properties may be ignored by current builds.Safe XML example
This is only a central-property excerpt, not a replacement for the complete file shipped with the server. Edit a copy of the current serverconfig.xml and retain unknown current properties.
<?xml version="1.0"?>
<ServerSettings>
<property name="ServerName" value="DSH Survivors" />
<property name="ServerPassword" value="REPLACE_WITH_STRONG_PASSWORD" />
<property name="ServerPort" value="26900" />
<property name="ServerMaxPlayerCount" value="8" />
<property name="ServerVisibility" value="2" />
<property name="GameWorld" value="Navezgane" />
<property name="WorldGenSeed" value="DSH-World-2026" />
<property name="WorldGenSize" value="6144" />
<property name="GameName" value="DSH-Survival" />
<property name="GameMode" value="GameModeSurvival" />
<property name="SandboxCode" value="PASTE_CODE_FROM_CURRENT_CLIENT" />
<property name="EACEnabled" value="true" />
</ServerSettings>
Visibility and passwords
ServerVisibility determines how the server appears in the browser. Use the accepted values and comments from the serverconfig.xml shipped with your exact build, because platform and crossplay properties may change.
Use a long unique ServerPassword. Never reuse the normal player password for administration or Telnet access.
Configure the world and SandboxCode
Navezgane or Random World Generation
| World type | Advantage | Consideration |
|---|---|---|
| Navezgane | immediately available and reproducible | fixed map layout |
| Pregenerated world | no lengthy generation step | world name must match the installed map exactly |
| RWG | unique map from a seed and size | first generation consumes significant CPU, memory and time |
For an RWG world, set GameWorld to the value specified for Random World Generation in the current reference file, then configure WorldGenSeed and WorldGenSize. Do not change the seed or size after starting an established world.
GameName, world name, seed or save path can make the server create a new world. Do not delete the apparent old save until you have verified the path currently loaded by the server.Generate a SandboxCode
Version 3.0 and later store many gameplay rules in a compact SandboxCode.
- Start a client on the same version as the dedicated server.
- Open the new-game setup screen.
- Configure the sandbox options.
- Use the copy-code function.
- Paste the complete value into
SandboxCodeinmyserver.xml. - Restart the dedicated server.
Ports and firewall
A current 7 Days to Die dedicated server requires the primary TCP port and a range of UDP ports.
| Port | Protocol | Purpose | Required |
|---|---|---|---|
| 26900 | TCP | primary connection and server communication | yes |
| 26900 to 26903 | UDP | game traffic, query and additional channels | yes |
| 8080 | TCP | optional web dashboard | only when enabled |
| 8081 | TCP | optional Telnet service | only when enabled |
| 8082 | TCP | additional web or API function depending on build | only when enabled |
Windows Firewall
Run PowerShell as Administrator:
New-NetFirewallRule -DisplayName "7DTD TCP 26900" -Direction Inbound -Protocol TCP -LocalPort 26900 -Action Allow
New-NetFirewallRule -DisplayName "7DTD UDP 26900-26903" -Direction Inbound -Protocol UDP -LocalPort 26900-26903 -Action Allow
UFW on Linux
sudo ufw allow 26900/tcp
sudo ufw allow 26900:26903/udp
sudo ufw status
Forward ports on a home router
Forward the same protocols to the server computer's local IP address. Reserve that address through DHCP so the target does not change after a reboot.
Port tests are meaningful only while the server is running. Test TCP and UDP separately, and remember that many browser-based checkers support TCP only.
Connect to the server
- Start 7 Days to Die.
- Open Join a Game.
- Search for the configured
ServerName. - Alternatively, choose the direct IP connection.
- Enter
SERVER-IPand port26900. - Provide the
ServerPasswordwhen prompted.
Inside the same home network, use the server's local IP address. Some routers do not support NAT loopback and cannot route their own public address back into the LAN.
If the server is not publicly listed, also review ServerVisibility, game version, selected branch, EAC and crossplay settings, and all required UDP ports.
Administration
Administrator permissions are managed through serveradmin.xml and the server console. The file is normally located in the active user-data directory, which may be affected by ServerAdminFileName, UserDataFolder or other path settings.
Permission level 0 is the highest administrator level. Larger numbers grant fewer permissions.
Useful console commands
| Command | Purpose |
|---|---|
help | show available commands and syntax |
lpi | list connected players and platform IDs |
admin add ID 0 | grant full administrator rights to an identified player |
admin remove ID | remove administrator rights |
say Message | broadcast a message |
saveworld | save the current world state |
shutdown | stop the server cleanly |
Use the exact platform ID reported by lpi or the server logs. With crossplay, not every player is identified solely by a SteamID64.
help admin first. The accepted ID format and exact syntax may change between builds.Telnet and web dashboards can simplify remote administration but increase the attack surface. Leave optional services disabled when they are not required.
Install mods
7 Days to Die server mods are installed manually in a Mods directory. There is no general Steam Workshop workflow for dedicated-server mods.
- Stop the server.
- Create
Modsin the server directory if it does not exist. - Extract every mod into its own subdirectory.
- Confirm that
ModInfo.xmlis located where the mod author expects it. - Read the supported-version and client requirements.
- Start the server and inspect the logs for loading errors.
Example layout:
C:\7dtd-server\Mods\ExampleMod\ModInfo.xml
or on Linux:
/opt/7dtd-server/Mods/ExampleMod/ModInfo.xml
Server-side mods and overhauls
| Mod type | Client installation | EAC |
|---|---|---|
| XML-only server mod | often not required | may remain enabled depending on the mod |
| Mod containing custom assets or code | usually required on server and clients | often disabled |
| Full overhaul | matching version required on server and clients | usually EACEnabled=false |
Set EACEnabled to false only when the mod requires it. EAC, crossplay and mods interact, so test the intended combination before opening the server publicly.
Create backups
The active worlds and saves are stored under the configured user-data or save directory. Common defaults are:
| System | Typical data directory |
|---|---|
| Windows | %APPDATA%\7DaysToDie\ |
| Linux | ~/.local/share/7DaysToDie/ for the service account |
UserDataFolder, SaveGameFolder, container mounts or hosting-panel settings can override these locations. Treat the current startup command, XML file and server logs as the source of truth.
Safe backup process
- Announce the maintenance window.
- Run
saveworld. - Stop the server with
shutdown. - Back up the world, save,
serverconfig.xml,serveradmin.xmlandModsdirectory. - Keep at least one copy outside the active server disk.
Linux example using the default path for account sdtd:
sudo systemctl stop 7dtd
sudo tar -czf /opt/backups/7dtd-$(date +%F-%H%M).tar.gz \
/home/sdtd/.local/share/7DaysToDie \
/opt/7dtd-server/myserver.xml \
/opt/7dtd-server/Mods
sudo systemctl start 7dtd
Adjust the path to match the actual configuration.
Updates and branches
Stop the server and create a backup first.
Update the stable default branch
On Windows:
C:\steamcmd\steamcmd.exe +force_install_dir C:\7dtd-server +login anonymous +app_update 294420 validate +quit
On Linux:
sudo systemctl stop 7dtd
sudo -u sdtd steamcmd \
+force_install_dir /opt/7dtd-server \
+login anonymous \
+app_update 294420 validate \
+quit
sudo systemctl start 7dtd
The default branch is intended for normal production use. It delivered Version 3.1.0 at the time of review.
Use the experimental branch
Opt into experimental builds only deliberately:
steamcmd +force_install_dir /opt/7dtd-server +login anonymous +app_update 294420 -beta latest_experimental validate +quit
Clients and the server must run the same game version and a compatible branch. After an update, compare your custom file against the newly shipped serverconfig.xml for added properties.
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
| Server is not listed | ports, visibility or version mismatch | check 26900/TCP, 26900–26903/UDP, ServerVisibility and branch |
| Direct connection fails | primary port blocked or wrong address | check firewall, router, public IP and port 26900 |
| Client reports version mismatch | server and client use different builds | put both on the same stable or experimental branch |
| Gameplay rules do not change | legacy properties used instead of SandboxCode | generate a current code and restart the server |
| Rules differ after V3.1 | old V3.0 SandboxCode | copy a new code from V3.1 settings |
| Server starts a new world | changed GameName, world, seed or path | inspect XML and logs; restore the original save path |
| Mods do not load | wrong directory structure or incompatible build | verify ModInfo.xml, mod version and server logs |
| Player is disconnected by EAC | mod requires EAC off or client files differ | follow the mod instructions and align settings |
| Server consumes excessive memory | large world, mods, long uptime or horde | schedule restarts, reduce world or mod load, or add RAM |
| Administrator rights fail | wrong platform ID or permission level | check lpi, help admin and serveradmin.xml |
| Public IP works externally only | no NAT loopback | use the local IP inside the LAN |
| No connection despite forwarding | DS-Lite or carrier-grade NAT | obtain public IPv4, use a tunnel or host externally |
| World errors after a crash | incomplete write or damaged region | stop the server and restore a known-good backup |
Frequently asked questions
How much RAM does a 7 Days to Die server need?
A small 7 Days to Die server should have 6 to 8 GB of free memory. Plan 8 to 12 GB for 5 to 8 players, RWG worlds or mods, and often 16 GB or more for larger or heavily modified servers.
Which ports does a 7 Days to Die server need?
A current 7 Days to Die dedicated server requires 26900/TCP and 26900–26903/UDP by default. Ports 8080, 8081 and 8082 are needed only when their optional web or Telnet features are enabled.
Where can I find serverconfig.xml?
serverconfig.xml is stored in the dedicated server installation directory. Create a copy such as myserver.xml, edit it while the server is stopped and select it with the -configfile startup argument.
How do I install mods on a 7 Days to Die server?
Install mods manually in the server directory's Mods folder. For every mod, verify whether clients need the same files, which game version is supported and whether EACEnabled=false is required.
How many players does a 7 Days to Die server support?
The technical limit depends on the current server build, but 8 to 16 players is a practical range for most communities. Higher values require substantially more CPU performance, memory and careful world and zombie settings.
How do I become an administrator on my server?
Use lpi or the logs to identify your platform ID, then grant permission level 0 through the console or add the correct entry to serveradmin.xml. Check the current command format with help admin first.
Related guides
Planned cluster guides cover serverconfig.xml and SandboxCode, mods and overhauls, Random World Generation, administrator commands, backups and performance optimisation.
Summary
Install a 7 Days to Die server with SteamCMD and App ID 294420. Windows uses startdedicated.bat, while Linux uses startserver.sh. Core server properties remain in serverconfig.xml, but Version 3.0 replaced many individual gameplay properties with SandboxCode.
Allow 26900/TCP and 26900–26903/UDP, keep clients and the server on the same branch, and back up the active save directories before every update. To avoid installation, port forwarding and maintenance, you can instead rent a 7 Days to Die server.