Why your group outgrows hosting from your PC
Hosting from the main menu works until somebody wants to play at 2 a.m. while you are asleep. The game's Host button runs the world on your own computer, so the world exists only while that computer is on and the game is open. A dedicated server is the same game world running on its own, around the clock, as a separate program.
It is a Java program, and Java only uses the memory you allow it. That single number is the difference between a server that runs all week and one that falls over when the whole group explores at once.
How much memory will your world need?
There is no official figure per player, so the honest answer is: as much as your group actually uses, plus room to spare. Memory use climbs with how many of you are online, how much of the map has been loaded, and how many mods you run.
- You set the limit with two Java flags:
-Xmsis the amount reserved at start,-Xmxthe most it may use. - On Windows they live in
StartServer64.bat. The wiki says it ships asking for 16 GB, and that you must lower both numbers to what your machine has, or the server will not start. - On Linux the wiki's server guide doesn't say where they are. Check
start-server.shfirst; if you find no-Xmxin it, look inProjectZomboid64.jsonnext to it in your install folder (/opt/pzserver), which PZwiki's startup-parameters page names as the default launcher config. Find the-Xmxentry, and set it to what your machine can spare before the first start. If there is an-Xmsentry, lower it or remove it too. - If the computer can't set aside the
-Xmsamount at launch, the program won't boot, so many people leave that one low or remove it.
A sensible habit: pick a starting value, play a long session with everyone online, then check how close the server came to its limit and raise it if needed.
Up and running in an evening
These steps follow the PZwiki guide for a Linux server on Debian or Ubuntu. Allow an hour the first time.
- Install SteamCMD, Steam's command-line downloader, from your package manager. First add the i386 architecture (
sudo dpkg --add-architecture i386) and enable the multiverse repository on Ubuntu or non-free on Debian, as the PZwiki guide shows. - Make a normal user for the game (the guide calls it
pzuser) and a folder at/opt/pzserverthat it owns. Never run the server as the root user. - As that user, save the download script shown below and run it. Run the same script again whenever there is a game update.
- Allow UDP 16261 and 16262 through the firewall.
- Before the first start, set the memory wherever your copy keeps it, as described above. Then open a
tmuxsession so the server survives a dropped connection, go to/opt/pzserver/and runbash start-server.sh. - On this first start it asks you for an admin password. Choose a strong one: it is the key to the whole server.
- In the game, choose Join, then Favorites, add your server's public address with port 16261, and connect.
cat >$HOME/update_zomboid.txt <<'EOL'
// update_zomboid.txt
//
@ShutdownOnFailedCommand 1 //set to 0 if updating multiple servers at once
@NoPromptForPassword 1
force_install_dir /opt/pzserver/
//for servers which don't need a login
login anonymous
app_update 380870 validate
quit
EOL
export PATH=$PATH:/usr/games
steamcmd +runscript $HOME/update_zomboid.txt
Prefer Windows? The same tool installs with SteamCMD into a folder you choose, and you start it with StartServer64.bat after editing its memory line. Linux and, on most lines, Windows Server (a paid licence) can be installed on our machines; see Linux servers.
Making the world yours
Your server's rules live in a text file called servertest.ini, inside Zomboid/Server in the game user's home folder, created on the first start. A few lines worth knowing:
| Line in servertest.ini | What it changes for you |
|---|---|
| Password= | The password friends type to join; empty by default, so set one unless you want anyone to be able to join |
| Public= | false keeps you out of the in-game list (a Steam server still shows in Steam's own server browser) |
| MaxPlayers= | 32 out of the box; the wiki warns that going higher can cause poor map streaming and desync |
| Mods= and WorkshopItems= | Your mod list; players download Workshop mods as they connect |
| SaveWorldEveryMinutes= | 0 by default, meaning areas are saved as players leave them |
You can edit the file while people are playing. Type reloadoptions in the server window and the change takes effect without a restart.
Build 42 or Build 41?
Build 42 is what you get by default: the wiki lists it as the stable version from 29 July 2026. If your group would rather stay on Build 41, add -beta legacy41 to the app_update line of your download script. Whatever you pick, make sure everyone's game is on the same version as the server.
Moving an old Build 41 machine to Build 42 can stop the server with an "Illegal termination of worker thread" error. The wiki's fix is to check that steam_appid.txt contains only 108600, save a copy of your settings and saves, then delete the old Zomboid folder and let Build 42 build a fresh one.
Keeping your world safe
- Type
quitin the server window before updates and backups. It saves the world, then stops. - Back up two folders:
Zomboid/Server(your settings) andZomboid/Saves/Multiplayer(the world itself). - Use
saveany time you want the world written to disk, andservermsgto warn players before a restart. - The wiki describes a systemd service, but notes the developers advise against it because the game does not handle the stop signal; a tmux session and
quitare the safer route.
The server that fits
What your world wants is memory nobody else can take. With our game servers you get a whole physical machine, not a share of one: the gaming page puts it at up to 90% of the server's resources on bare metal against 15% on a virtual machine. Your port is not shared with any other customer at the access switch, and it is unmetered, so there is no transfer allowance to run out of when the group plays all weekend.
Pick the city closest to most of your players among our five data center locations: Amsterdam or Bucharest for European groups, or New York, Miami or San Francisco in the US. Once your order is approved, a machine already racked is ready for you in about 30 minutes (payment verification can add time). There is no long contract: billing is monthly. Browse the full server range if you want to compare machines first.
Not the right fit if two of you play together for one weekend and nobody needs the world in between. The Host button on your own PC is enough for that.
Questions people ask
- What ports do my friends need open to join?
- Only the server needs ports open: UDP 16261 and 16262. Your friends add the server by its public address with port 16261. Running another world on that machine? It needs two more UDP ports of its own.
- How do I become admin on my own server?
- The first time the server starts it asks you to set an admin password and creates the admin account for you. Log in with that account and you can run commands in game, with a slash in front, such as /players or /servermsg.
- Can I add mods?
- Yes. Put the mod IDs on the Mods= line and the Steam Workshop item numbers on the WorkshopItems= line of servertest.ini. Players who connect download the Workshop mods automatically.
- Will my friends lose progress when the game updates?
- Not if you stop the server with quit before running the update script, and keep a backup of the Saves folder. A move between major builds is the one to plan: check the version your group plays and keep the server on that branch.
- Can I run the server on Windows instead?
- Yes. Install it with SteamCMD, edit the memory line in StartServer64.bat, and run that file. PZwiki warns not to start the server through the Steam client itself; if you did, verify the files and use the batch file.