> Intel // field guide_

How to Set Up a Project Zomboid Dedicated Server (Build 42)

By Matthew Zhao|
Project ZomboidGuides

Muldraugh is a lot more fun with friends, and a lot less fun when the survivor who hosts the world has to log off for dinner. A dedicated server keeps the map, the zombie population and everyone's characters waiting, whether or not anyone is online.

This guide covers installing the Project Zomboid dedicated server with SteamCMD, sizing its memory, opening ports, editing servertest.ini, running admin commands, backing up and fixing the usual problems. The PZwiki dedicated server page is the main reference. Its text was last updated for Build 42.20.0, so check it against your version if a step here doesn't match.

Why Run a Dedicated Project Zomboid Server?

The world keeps going: With PauseEmpty on, the server stops game time when nobody is online, so nothing starves, rots or burns while the group is asleep. Players can log in whenever they like.

The host's PC stays free: Project Zomboid is a heavy game on its own. The server runs as a separate Java process, so it doesn't compete with the client on your machine.

Real admin tools: Access levels, a whitelist, bans, backups and the ability to reload settings without a restart all live on a dedicated server.

Persistent communities: The Steam store page lists persistent player-run servers, online co-op and PvP among the supported modes.

What You'll Need

  • A machine to run it: Windows or Linux. Project Zomboid's own Steam requirements list 8GB of RAM for the game client; the dedicated server is a different program with different needs, covered below.
  • SteamCMD, Valve's command-line Steam client.
  • A router or firewall you can open UDP ports on, if the server is at home.
  • Time to back up: Steam's announcement for the Pre-Release branch tells players to back up saves before switching branches.

Which Build Are You Running?

As of November 1, 2026, the default Stable branch of Project Zomboid is Build 42.21, which Steam announced on September 28, 2026. On October 27, The Indie Stone introduced a Pre-Release branch (42.22) that replaces the old Unstable branch. Builds spend at least a week there before moving to Stable, apart from urgent hotfixes. The announcements are on the Steam news hub.

For a server, that has a practical meaning: if your players are on Stable, your server should be too. A mismatch between client and server builds is a common reason for a failed join.

Installing the Server With SteamCMD

The Project Zomboid Dedicated Server is Steam app ID 380870. The game itself is app 108600. Per the PZwiki, installing is a normal SteamCMD update:

app_update 380870 validate

The wiki also lists a legacy branch for Build 41 worlds: add -beta legacy41 to the update command. Only use it if you are keeping an old world alive.

A typical Linux flow:

  1. Install SteamCMD and log in anonymously.
  2. Set a force install directory, for example /opt/pzserver.
  3. Run app_update 380870 validate, then quit.

The wiki's steam_appid.txt note applies too: the file should contain only the game's app ID, 108600.

Memory: Plan for More Than You Think

This is where most new Project Zomboid servers go wrong. The PZwiki says the StartServer64 batch file defaults to a large starting memory allocation, 16GB, and that you must edit the -Xms and -Xmx values or the server fails with memory errors. The wiki's own example sets both to 6g.

The Indie Stone does not publish a recommended RAM figure for a dedicated server. Treat any number you read as a starting point and watch your own usage.

Our own result: during live testing at EZ Game Host, a Project Zomboid server with the default 8GB Java heap exhausted an 8GB container during its first startup. At 16GB it started and answered an outside server query. That is why 16GB is our minimum for this game. It is one test on one setup, not a claim about what your group needs.

On a self-hosted machine, set -Xms and -Xmx to values the machine can actually supply, leaving room for the operating system, and raise them if you see out-of-memory errors.

Starting the Server

On Windows, the install includes StartServer32.bat (32-bit Steam), StartServer64.bat (64-bit Steam) and StartServer64_nosteam.bat (non-Steam). On Linux, use start-server.sh, which accepts -nosteam and -servername SERVERNAME.

The first launch asks you for an admin password. The wiki notes the admin password is set on first run, and recommends running a Linux server inside tmux so it survives a closed terminal.

Naming matters. The -servername argument selects which .ini file the server reads and creates a save folder with that name. If you leave it alone, the default name is servertest, and everything below uses that name. Change it and every file name changes with it.

Where the Files Live

Per the PZwiki, configuration lives in the Zomboid folder:

  • Windows: C:\Users\YourUsername\Zomboid\Server
  • Linux: ~/Zomboid/Server
  • World saves: Saves\Multiplayer\servertest on Windows, ~/Zomboid/Saves/Multiplayer on Linux

For a server named servertest, the config folder holds:

  • servertest.ini: the main server configuration
  • servertest_SandboxVars.lua: the sandbox rules (zombie population, loot, infection and so on)
  • servertest_spawnpoints.lua: spawn points
  • servertest_spawnregions.lua: spawn regions, such as Muldraugh and Rosewood

Ports

The wiki lists the game port as UDP 16261 and a second direct connection port as UDP 16262. Every listed port is UDP. In servertest.ini these are DefaultPort (16261) and UDPPort (16262), and the wiki says both must be open on your router and firewall.

If you run more than one server on a machine, each additional instance needs its own two clear UDP ports. The wiki's example uses 16274 and 16275.

For a home server:

  1. Forward UDP 16261 and 16262 on your router to the server's local IP address.
  2. Allow both through the Windows or Linux firewall.
  3. Give players your public IP address and the port.

Configuring servertest.ini

The PZwiki server settings page documents each option. The ones most groups touch first:

  • MaxPlayers: Caps non-admin players at once. The wiki lists a default of 32 and a range of 1 to 100, and warns that more than 32 may cause poor map streaming and desync.
  • Open: When false, admins must create username and password combinations by hand.
  • Public: Whether the server appears in the in-game browser.
  • PublicName: The name shown in the browser.
  • Password: Players must know it to join. It is ignored when you host through the in-game Host button.
  • PauseEmpty: Stops game time when no players are online.
  • Map: The sample value is Muldraugh, KY.
  • PVP and SafetySystem: PVP lets players hurt and kill each other; the safety system lets players enter and leave PVP mode individually.
  • Mods and WorkshopItems: Mod loading IDs and Workshop mod IDs. Workshop IDs are separated by semicolons.
  • SteamVAC: Enables Steam's VAC system.

You can edit servertest.ini while the server is running. Run reloadoptions in the server console to apply changes, and showoptions to check what is active.

One setting deserves a warning. The wiki says to back up ResetID, because changing it forces clients to create new characters.

Mods

Mods are listed in the .ini with the Mods= and WorkshopItems= fields. The Indie Stone's announcement about Java mods of October 21, 2026 says it officially supports only Lua mods, will not troubleshoot Java mods, and advises downloading mods only from trusted sources. Keep every mod compatible with your build; that is on you, not on the game.

Admin Commands

Admin commands run in the server console, or in-game with a leading slash. The PZwiki admin commands page lists these among others:

  • /setaccesslevel "username" "accesslevel": Sets a player's access level. The levels are user, priority, observer, gm, moderator and admin.
  • /adduser "username" "password": Adds a user to a whitelisted server.
  • /removeuserfromwhitelist "username": Removes a user from the whitelist.
  • /players: Lists connected players.
  • /servermsg "My Message": Broadcasts a message to everyone online.
  • /kickuser "username" -r "reason": Kicks a player. The reason is optional.
  • /banuser "username" -ip -r "reason": Bans a player. -ip also bans their IP address.
  • /save: Saves the world.
  • /quit: Saves and shuts the server down.

Use /quit rather than killing the process, so the world is saved.

Backups

The server can back up its own saves. In servertest.ini the wiki lists BackupsCount (default 5, range 1 to 300), BackupsPeriod (default 0, range 0 to 1500), BackupsOnStart and BackupsOnVersionChange. Do not rely on those alone. Copy the save folder, and your Server config folder, to another disk or machine on a regular schedule, and always before changing Project Zomboid branches or versions.

If you stop the server with a service manager, the wiki's systemd example sends save, waits 15 seconds, then sends quit. The wiki also notes that the developers discourage the systemd method and say its shutdown safeties give no guarantees, so a tmux session is the safer route.

Troubleshooting

The server won't start, or stops with memory errors

Open the start script and check -Xms and -Xmx. The wiki says the defaults must be edited, and our own test showed an 8GB container running out of memory on first startup. Set values the machine can supply, or move to a machine with more RAM.

Players can't connect

  • Confirm UDP 16261 and 16262 are forwarded and allowed through the firewall. They are UDP, not TCP.
  • Confirm the client and the server are on the same build. Stable is 42.21 at the time of writing.
  • If you changed -servername, make sure you are loading the .ini you think you are.
  • If Open is false, the player needs an account an admin created.

Zombies duplicate or vanish

The Build 42.21 release notes mention fixes for zombie duplication in multiplayer and zombies disappearing after chunk reloads, and say some instances remain for a later update. If you see it, update to the newest Stable build and report it to The Indie Stone.

Desync with large groups

The wiki warns that a MaxPlayers above 32 may cause poor map streaming and desync. Keep it at or below 32.

A mod breaks the server after an update

Remove it from Mods= and WorkshopItems=, restart, and re-add mods one at a time. Mod authors have to update for new builds.

FAQ: Project Zomboid Dedicated Server Setup

How do I set up a Project Zomboid dedicated server?

Install app ID 380870 with SteamCMD, edit the -Xms and -Xmx memory values in the start script, run it once to set the admin password, forward UDP 16261 and 16262, then edit servertest.ini to taste.

What ports does Project Zomboid use?

UDP 16261 for the game and UDP 16262 for the direct connection, per the PZwiki. Both are UDP.

How much RAM does a Project Zomboid server need?

The Indie Stone does not publish a figure. The start script defaults to 16GB, and in our live test an 8GB container ran out of memory on first startup.

How many players can a Project Zomboid server hold?

MaxPlayers defaults to 32 on the wiki, and it warns that more than 32 may cause poor map streaming and desync.

How do I make someone an admin?

Use /setaccesslevel "username" "admin" from the console or in game.

Where is my save?

Under Zomboid/Saves/Multiplayer, in a folder named after the server.

Can I move a Build 41 world to Build 42?

The wiki lists a legacy41 beta branch for keeping Build 41 servers running, and Steam's announcements tell players to back up saves before switching branches. Back up first and test on a copy.

Final Thoughts

A good Project Zomboid server comes down to memory first, then two UDP ports, a tidy servertest.ini, a reliable shutdown and backups you actually keep. Get those right and the only thing left to worry about is the horde outside the warehouse.

Project Zomboid Hosting on EZ Game Host

If you would rather skip the memory tuning, EZ Game Host offers Project Zomboid server hosting on Ryzen 9950X cores and NVMe storage, with 16GB as the minimum because of the first-startup result above. You choose an admin password and a save identifier at checkout. Plans include 3 backup slots, a panel with console and file manager, DDoS protection and 24/7 support, and you can pay monthly and cancel any time. Plans start at $48 a month.

🍪 Cookie Notice

We use cookies for analytics and to measure our ads. Choose “Accept” to allow them, including session recordings that help us fix usability problems, or “Decline” to opt out of analytics and the sale or sharing of your personal information. Read our Privacy Policy.