What the server needs: disk, memory and CPU
The Fun Pimps do not publish separate requirements for the dedicated server, so it is worth being exact about what is documented. Their system requirements for the game list 8 GB of memory as the minimum and 12 GB as recommended, and 15 GB of available disk space, with a note that future releases may need more. They add one line for server owners: running a dedicated server and a client on the same computer doubles the memory requirement.
The install is large for a survival game and grows with every major version, and the developer does not publish a figure for the server on its own. Leave generous room beyond the download: a random world is stored on disk once generated, and the save grows as players explore. The SaveDataLimit property can cap how much disk each save may use.
What drives memory is described in the config file itself. ServerMaxAllowedViewDistance is marked as having a high impact on memory and performance, and MaxSpawnedZombies as having a huge impact on performance. Beyond those, the load follows how much of the map is in use at once. Players spread across a large world keep far more terrain loaded than the same number sharing one base, and a larger random world costs more than a small one.
Our 7 Days to Die plan is 6 GB for €16.99 a month with VAT included, sized for the default 8 player limit on Navezgane or an 8k random world. Larger worlds and full overhaul mods need more.
- Published by the developer: 8 GB minimum and 12 GB recommended for the game, doubled if the server and a client share one computer
- Disk: 15 GB listed for the game, with more needed for generated worlds and saves
- Biggest memory lever: ServerMaxAllowedViewDistance, from 6 to 12, default 12
- Biggest CPU lever: MaxSpawnedZombies, default 64 for the whole world
- Default player limit: 8
Install the server and open the ports
The dedicated server is Steam app 294420 and downloads with an anonymous SteamCMD login. On Windows it needs the Microsoft Visual C++ 2022 redistributable. Start it with startdedicated.bat on Windows or the matching shell script on Linux, both of which point the server at serverconfig.xml through the -configfile option.
A sensible habit is to copy serverconfig.xml to a file with your own name and point -configfile at the copy, because an update or a file validation can replace the stock file with a fresh default.
The game port is ServerPort, 26900 by default. The server uses that port on TCP and UDP and the next three UDP ports above it, so the range to open and forward is 26900 on TCP and 26900 to 26903 on UDP. If you change ServerPort, the UDP range moves with it. The file's own comment says to keep the port between 26900 and 26905, or 27015 and 27020, if you want PCs on the same network to find it as a LAN server.
The config ships with ServerDisabledNetworkProtocols set to SteamNetworking. The game's comment explains why: a dedicated server with correctly forwarded ports should disable Steam's relay networking and take direct connections.
- Install or update: steamcmd +force_install_dir <folder> +login anonymous +app_update 294420 validate +quit
- Experimental builds: add -beta latest_experimental after the app number
- Back to stable: use -beta public if SteamCMD keeps the previous branch
- 26900 TCP and 26900 to 26903 UDP: the game ports
- 8080 and 8081 TCP: the web dashboard and telnet, only if you administer the server remotely
serverconfig.xml and the sandbox code
serverconfig.xml is a list of property lines, each with a name and a value. Change only the value, keep the file valid XML, and edit it with the server stopped. Every property has a comment beside it written by the developers, and that comment is the best documentation there is for the build you are running.
The big change is recent. With V3.0 the game gained more than 150 sandbox options, and thirty gameplay properties were removed from serverconfig.xml and folded into one new property, SandboxCode. Difficulty, day length, loot abundance, zombie speeds, blood moon frequency and blood moon enemy count are all part of that code now. Setting the old property names in the file does nothing.
To set them, open the game on your own PC, go to the new game screen, open Sandbox Options, adjust what you want, and use the copy code button. Paste the result as the value of SandboxCode. The default code in the file is the equivalent of the old Adventurer difficulty. The V3.1.0 notes add a caution: when an update changes the sandbox options, recheck your code, because an invalid one can fall back to defaults for some or all settings.
- ServerName, ServerDescription, ServerPassword: how the server appears and who can join
- ServerPort and ServerVisibility: the game port, and 2 for public, 1 for friends only, 0 for unlisted
- ServerMaxPlayerCount: 8 by default
- GameWorld, WorldGenSeed, WorldGenSize, GameName: which world loads and which save it uses
- SandboxCode: the gameplay rules, generated in the game's Sandbox Options screen
- ServerMaxAllowedViewDistance, MaxSpawnedZombies, MaxSpawnedAnimals: the performance limits
- EACEnabled and ServerAllowCrossplay: anti-cheat and console crossplay
- TelnetEnabled, TelnetPort, TelnetPassword, WebDashboardEnabled: remote administration
- UserDataFolder: where saves, generated worlds and serveradmin.xml are kept
- Removed in V3.0: GameDifficulty, DayNightLength, DayLightLength, XPMultiplier, LootAbundance, LootRespawnDays, AirDropFrequency, BloodMoonFrequency, BloodMoonEnemyCount, DeathPenalty, DropOnDeath and the zombie movement settings, among others
Navezgane or a random world
GameWorld decides the map. Navezgane is the hand built map that ships with the game. It is the same for everyone and needs no generation, so a new server on Navezgane is ready quickly. The game also ships several pregenerated random worlds, listed in the comment beside GameWorld, which load the same way.
Set GameWorld to RWG for a random world of your own. WorldGenSeed is the seed and WorldGenSize is the width and height. The file states that the officially supported sizes run from 6144 to 10240 and must be a multiple of 2048, which gives 6144, 8192 and 10240, and the default is 6144. If a world for that seed and size already exists, the server loads it and does not generate it again.
Generation happens on the first start, before the server accepts players, and the console shows its progress. The developer publishes no timings. It depends on the size and on the processor, and the largest size takes much longer than the smallest, so a new random world server that seems stuck on first boot is usually still generating. You can also generate the world on your own PC and upload it into the GeneratedWorlds folder.
GameName is the name of the save. Change the world, the seed, the size or the game name later and the server starts a different save, which looks to players like their base has vanished. The old save is still on disk under its old name. Settle these four values before anyone builds.
Admins, telnet and the web dashboard
Admin rights are not set in serverconfig.xml. They live in serveradmin.xml, named by the AdminFileName property, in the Saves folder of the server's user data folder. Add yourself as a user with your platform ID and a permission level, where 0 is the highest level, then restart. Edit it with the server stopped so the running server does not write over your change.
Permission levels also drive two slot settings. ServerReservedSlots holds places for players at or above a permission level, and ServerAdminSlots lets admins join a full server.
Telnet is the remote console. It is enabled by default on port 8081, and the default file has an empty TelnetPassword. With no password the server only listens for telnet on the local machine, which is a safe default: it works from the server itself and not from outside. To use it remotely, set a strong password and open the port. Repeated wrong passwords get the client blocked, controlled by TelnetFailedLoginLimit.
The web dashboard is a browser based control panel on port 8080. It is off by default, and EnableMapRendering, also off by default, lets it draw the explored map. On Windows, TerminalWindowEnabled opens a window with the log and a command line. On a hosting panel, the panel's console does the same job.
EAC, mods and overhauls
Easy Anti-Cheat is controlled by EACEnabled and is on by default.
Mods are folders placed in the Mods folder of the server, each with its ModInfo.xml at the top level of its own folder. The server lists the mods it loaded in the startup log, which is the first place to look when one does not seem to work. Simple mods that only change the game's XML values can often run on the server alone. Mods that add items, blocks, creatures or interface changes have to be installed on every player's PC as well, in the same version.
Mods that include their own code, shipped as DLL files, are normally run with EAC switched off on the server and by every player, and the large overhaul mods fall into that group. Follow the instructions that come with the mod, and check which game version it was built for. Overhauls are tied to a specific version of the game and need their own update after each major release.
Crossplay with consoles is a separate switch, ServerAllowCrossplay, which is off by default. The file's comment sets conditions: a crossplay server is only listed and joinable if it does not ignore platform sanctions and has the default player slot count or fewer.
Updates, major versions and what happens to saves
Players get updates automatically through Steam. A dedicated server only changes version when you run the update, and a server on an older build than its players cannot be joined. Update with the same SteamCMD command you installed with. The Fun Pimps' V3.1.0 notes say the same from the other side: if players cannot connect after a release, check that the server is on the default public branch.
Back up before every update. Two folders in the user data folder belong together: Saves, which holds the changes players have made and their characters, and GeneratedWorlds, which holds the terrain of a random world. Restore one without the other and the world does not line up.
Minor updates within a major version normally load existing saves. Major versions are different. For most of the game's history the developer's position was that saves from a previous major version were not compatible, and a fresh world was the rule. V3.0 was gentler: its release notes describe how server owners can continue a V2.6 save by rebuilding their old settings as a sandbox code, and the game now warns when it loads a save from an older major version. It also added a command and a menu option to reset all unprotected chunks, which refreshes the world outside land claims and bedroll areas while keeping bases.
The developer has said work on V4.0 is under way. Treat each major release as a decision: read the release notes for what is said about existing saves, wait for your mods to update, keep the old backup, and expect that a fresh world may be the cleaner choice.