Running your own Project Zomboid server gives you full control over player slots, passwords, PvP, zombie population, loot, mods and the rules of a persistent world. You can install the dedicated server on your own Windows or Linux machine for free, or use a preconfigured game server.

This guide covers the complete manual setup with SteamCMD, network ports, configuration files, Workshop mods, admin permissions, RCON, backups and common troubleshooting steps.

Info
This guide was checked against the official Project Zomboid information on July 31, 2026. Build 42.20 has been the public stable branch since July 29, 2026. Build 41 remains available through the legacy41 branch, but Build 41 saves are not compatible with Build 42.

Quick setup: Create a Project Zomboid server in 8 steps

  1. Choose a PC, VPS or dedicated server with enough memory.
  2. Install SteamCMD on Windows or Linux.
  3. Download the Project Zomboid Dedicated Server with App ID 380870.
  4. Launch it once with StartServer64.bat or start-server.sh.
  5. Set a strong password for the automatically created admin account.
  6. Allow 16261/UDP and 16262/UDP through the firewall and router.
  7. Configure <servername>.ini and <servername>_SandboxVars.lua.
  8. Join using the server IP and port 16261.

Table of contents

Requirements and hardware

A Project Zomboid dedicated server does not need a powerful graphics card. Memory, CPU performance, fast SSD storage and a reliable network connection are more important. Mods, larger player counts and long-running worlds increase resource usage.

Use the following values as starting points rather than guaranteed requirements:

Use casePlayersSuggested starting memory
Small private game1–4at least 4 GB
Group of friends5–106–8 GB
Larger or modded server10–208–12 GB
Large, heavily modded world20+12–16 GB or more

For a modded server, 8 GB or more is usually a more practical starting point. Java memory is controlled with -Xms and -Xmx. Setting these values above the available physical memory can prevent the server from starting or force it to use slow swap space.

Tip
Start with the same realistic value for -Xms and -Xmx, such as -Xms8g -Xmx8g. Leave additional memory available for the operating system and other services.

A publicly accessible home server also requires:

  • stable upload bandwidth
  • a public IPv4 address or a working IPv6 setup
  • router port forwarding
  • local firewall rules
  • a computer that remains powered on

Connections using CGNAT or DS-Lite often do not provide a directly reachable public IPv4 address. Standard IPv4 port forwarding will not work in that situation. You will need a public address from your ISP, a suitable VPN or tunnel, or an externally hosted server.

Self-hosting or renting a server

OptionAdvantagesDisadvantages
Your own PCno additional hosting fee for testing, full controlcomputer must stay on, electricity costs and networking work
VPS or dedicated serveravailable around the clock, full system accessyou manage the OS, updates, firewall and backups
Managed game serverquick setup without maintaining SteamCMD or an OSmonthly cost and less operating-system access

A home setup works well for testing or a small private group. An external server is generally more reliable when the world should remain online continuously.

Players who do not want to maintain SteamCMD, Linux and firewall rules can instead rent a Project Zomboid server.

Create a Project Zomboid server on Windows

1. Create the folders

Create separate directories for SteamCMD and the server:

C:\steamcmd
C:\pzserver

2. Download SteamCMD

Download SteamCMD through Valve's official documentation and extract steamcmd.exe into:

C:\steamcmd

Run it once so it can download its own updates.

3. Install the dedicated server

Enter the following commands in SteamCMD:

force_install_dir C:\pzserver
login anonymous
app_update 380870 validate
quit

You can also run the complete installation from Command Prompt:

C:\steamcmd\steamcmd.exe +force_install_dir C:\pzserver +login anonymous +app_update 380870 validate +quit

App ID 380870 is the Project Zomboid Dedicated Server. App ID 108600 belongs to the game client and must not be used as the server installation ID.

Build 42.20 is now on the public stable branch, so the standard installation no longer needs -beta unstable.

4. Prepare the launch script

Open:

C:\pzserver

On a current 64-bit system, use:

StartServer64.bat

Make a backup copy before editing it. The script contains the Java memory arguments -Xms and -Xmx. An 8 GB example is:

-Xms8g -Xmx8g

Add a clear internal server name after %1 %2 in the game arguments:

%1 %2 -servername dshzomboid

The value dshzomboid determines which settings and world files the server loads. Use a simple name without spaces and keep it consistent.

Important
-servername does not control the public name displayed in the browser. Use PublicName= in the INI file for that.

5. Run the server for the first time

Launch the edited StartServer64.bat. On the first run, the server prompts you to create a password for the default admin account. Use a long, unique password.

The server also supports startup arguments such as:

%1 %2 -servername dshzomboid -adminpassword "REPLACE_WITH_A_LONG_PASSWORD"

This stores the password in plain text in the batch file, so the interactive prompt is usually safer. Remove -adminpassword after the initial setup if you use it.

Allow the first launch to finish creating the configuration, database and world. Shut down cleanly from the console:

save
quit

6. Configure Windows Firewall

Open PowerShell as Administrator:

New-NetFirewallRule -DisplayName "Project Zomboid 16261 UDP" -Direction Inbound -Protocol UDP -LocalPort 16261 -Action Allow
New-NetFirewallRule -DisplayName "Project Zomboid 16262 UDP" -Direction Inbound -Protocol UDP -LocalPort 16262 -Action Allow

Only add an RCON rule if you use RCON:

New-NetFirewallRule -DisplayName "Project Zomboid RCON 27015 TCP" -Direction Inbound -Protocol TCP -LocalPort 27015 -Action Allow
Caution
Do not expose RCON unrestricted to the internet. Limit the rule to a trusted source IP or use a VPN or SSH tunnel.

7. Forward the router ports

For a home server, forward these ports to the server computer's local IPv4 address:

16261/UDP
16262/UDP

Assign the server computer a static DHCP lease so its local address does not change.

Create a Project Zomboid server on Linux

The following steps target current Debian and Ubuntu systems. Package repositories can differ between releases.

1. Create a dedicated user

Do not run the game server as root:

sudo adduser --disabled-password --gecos "" pz
sudo mkdir -p /opt/pzserver
sudo chown pz:pz /opt/pzserver

2. Install SteamCMD

Ubuntu commonly provides SteamCMD through the multiverse repository. Debian may require an additional repository such as non-free.

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steamcmd

If the package cannot be found, check the repositories for your distribution before using an old third-party installation script.

3. Download the server

Switch to the server account:

sudo -iu pz

Install the files:

steamcmd \
  +force_install_dir /opt/pzserver \
  +login anonymous \
  +app_update 380870 validate \
  +quit

If steamcmd is not in the shell path:

/usr/games/steamcmd \
  +force_install_dir /opt/pzserver \
  +login anonymous \
  +app_update 380870 validate \
  +quit

4. Check the Java memory settings

Locate -Xms and -Xmx in the supplied script:

grep -nE 'Xms|Xmx' /opt/pzserver/start-server.sh

Edit the script only if the current allocation does not suit the machine:

nano /opt/pzserver/start-server.sh

An example for a machine with at least 10 GB of physical memory:

-Xms8g
-Xmx8g

Keep enough memory free for Linux and other processes.

5. Complete the first launch manually

The first run should be interactive so you can set the admin password:

cd /opt/pzserver
./start-server.sh -servername dshzomboid

After initialization, shut it down cleanly:

save
quit

The generated configuration is stored under:

/home/pz/Zomboid/Server/

6. Configure systemd

Project Zomboid needs time to save before its Java process exits. A simple hard stop can damage world data. The following setup uses a FIFO control file to send save and quit.

Create /etc/systemd/system/zomboid.service:

[Unit]
Description=Project Zomboid Dedicated Server
After=network-online.target
Wants=network-online.target

[Service]
PrivateTmp=true
Type=simple
User=pz
Group=pz
WorkingDirectory=/opt/pzserver
ExecStart=/bin/sh -c "exec /opt/pzserver/start-server.sh -servername dshzomboid </opt/pzserver/zomboid.control"
ExecStop=/bin/sh -c "echo save > /opt/pzserver/zomboid.control; sleep 15; echo quit > /opt/pzserver/zomboid.control"
Sockets=zomboid.socket
KillSignal=SIGCONT
Restart=on-failure
RestartSec=15

[Install]
WantedBy=multi-user.target

Create /etc/systemd/system/zomboid.socket:

[Unit]
BindsTo=zomboid.service

[Socket]
ListenFIFO=/opt/pzserver/zomboid.control
FileDescriptorName=control
RemoveOnStop=true
SocketMode=0660
SocketUser=pz
SocketGroup=pz

Reload systemd and start the socket:

sudo systemctl daemon-reload
sudo systemctl enable --now zomboid.socket
sudo systemctl status zomboid

Follow the logs:

sudo journalctl -u zomboid -f

Send a console command:

echo "save" | sudo tee /opt/pzserver/zomboid.control
Important
Test shutdown and restart behavior with a backed-up test world first. A systemd setup is only safe when the server has enough time to process both save and quit.

7. Open the Linux firewall

With UFW:

sudo ufw allow 16261/udp
sudo ufw allow 16262/udp
sudo ufw reload

Allow RCON only from a trusted management address:

sudo ufw allow from 203.0.113.10 to any port 27015 proto tcp

Replace the example address with your actual management IP.

Understanding the configuration files

The configuration is not stored in the SteamCMD installation directory. It is located in the Zomboid/Server directory of the user account that runs the server.

For the internal server name dshzomboid, the important paths are:

Windows

C:\Users\<User>\Zomboid\Server\dshzomboid.ini
C:\Users\<User>\Zomboid\Server\dshzomboid_SandboxVars.lua
C:\Users\<User>\Zomboid\Server\dshzomboid_spawnregions.lua

Linux

/home/pz/Zomboid/Server/dshzomboid.ini
/home/pz/Zomboid/Server/dshzomboid_SandboxVars.lua
/home/pz/Zomboid/Server/dshzomboid_spawnregions.lua

Without -servername, the default name is servertest.

Important INI settings

DefaultPort=16261
UDPPort=16262
MaxPlayers=16
PVP=true
PauseEmpty=true
Public=true
PublicName=My Project Zomboid Server
PublicDescription=Private survival world for friends
Open=true
Password=
Mods=
WorkshopItems=
RCONPort=27015
RCONPassword=
SettingPurpose
DefaultPortmain connection port
UDPPortsecond required UDP port
MaxPlayersmaximum concurrent players
PVPenables or disables player damage
PauseEmptypauses the world when nobody is online
Publiclists the server publicly
PublicNamename shown in the browser
PublicDescriptionpublic server description
Openallows new accounts without a prebuilt whitelist
Passwordoptional server password
Modsinternal mod IDs separated by semicolons
WorkshopItemsnumeric Steam Workshop IDs
RCONPortTCP port for remote administration
RCONPasswordseparate RCON password

Back up the file before editing it. Some INI options can be reloaded with:

reloadoptions

Mods, sandbox rules and world-related changes normally require a full restart. Some sandbox changes only affect newly generated areas or require a new world.

SandboxVars.lua

<servername>_SandboxVars.lua controls gameplay rules, including:

  • zombie population and respawn
  • loot rarity
  • XP multiplier
  • day length
  • water and electricity shutoff
  • vehicle condition
  • infection rules and zombie behavior

A Lua syntax error can prevent the settings from loading. Change only values you understand and keep a backup.

Tip
You can prepare many settings in the Project Zomboid client through “Host” and “Manage Settings”. Use the same internal server name as the dedicated server.

Which ports does a Project Zomboid server need?

PortProtocolPurposeRequired
16261UDPprimary server connectionYes
16262UDPsecond/direct connection portYes
27015TCPRCON remote administrationOnly when RCON is enabled

A current server instance normally requires two UDP ports. Older guides that list additional Steam ports or one port for every player may no longer match current versions.

The port numbers must match in:

  1. <servername>.ini
  2. the local firewall
  3. the router when hosting at home
  4. any external firewall provided by a host

A port test is meaningful only while the server is fully running. Many web-based port checkers test TCP only and may incorrectly report a working UDP port as closed.

Important
Ports 16261 and 16262 use UDP. TCP-only firewall rules will not work for player connections.

Connecting to the server

  1. Launch Project Zomboid.
  2. Select Join.
  3. Open Favorites.
  4. Enter the server IP address.
  5. Use port 16261 unless you changed it.
  6. Choose the username and password for your player account.
  7. Save the entry and connect.

Examples:

Public server: 203.0.113.50:16261
Local network: 192.168.1.50:16261
Same computer: 127.0.0.1:16261

If the server uses Password=, enter that separate server password as well. The player-account password and server password serve different purposes.

The client and server must run the same major build. A Build 41 client cannot join a Build 42 world.

Granting admin and moderator permissions

The default admin account is created during the first server launch. Its password is separate from RCONPassword= and the optional Password= used to join the server.

Enter admin commands directly in the server console. Add a slash when entering them in-game:

/setaccesslevel "PlayerName" "admin"

Moderator example:

/setaccesslevel "PlayerName" "moderator"

Available access levels:

Access levelGeneral role
adminfull administration
moderatorbroad moderation tools
overseermanagement and observation functions
gmgame-master functions
observerlimited observation tools
noneremoves the special access level

Useful console commands:

players
save
showoptions
reloadoptions
help

In-game:

/players
/save
/showoptions
/help

Grant only the level a team member actually needs.

Recovering from a lost admin password

If you cannot access the existing admin account, temporarily create another one with startup arguments:

-adminusername RecoveryAdmin -adminpassword "REPLACE_WITH_A_NEW_LONG_PASSWORD"

Start the server once, sign in using the recovery account and then remove the password arguments from the launch script.

Installing Steam Workshop mods

A Project Zomboid server requires two different identifiers for Workshop mods:

WorkshopItems=
Mods=
  • WorkshopItems= contains numeric Workshop IDs.
  • Mods= contains internal mod IDs from each mod's mod.info.
  • A Workshop ID is not the same as a mod ID.

Example:

WorkshopItems=1234567890;9876543210
Mods=RequiredLibrary;ExampleMod

A Workshop URL may look like:

https://steamcommunity.com/sharedfiles/filedetails/?id=1234567890

Its Workshop ID is:

1234567890

The internal mod ID appears in the author's documentation or mod.info:

id=ExampleMod

Installation process

  1. Stop the server cleanly with save and quit.
  2. Back up Zomboid/Server, Zomboid/Saves and Zomboid/db.
  3. Check that every mod supports Build 42.
  4. Review dependencies.
  5. Add Workshop IDs to WorkshopItems=.
  6. Add internal IDs to Mods=.
  7. Separate IDs with semicolons.
  8. Place libraries in the order required by the author.
  9. Start the server and inspect the logs.
  10. Connect only after the Workshop download has completed.
Caution
Many older Workshop mods target Build 41 and may not work on Build 42. Check the description, update date and required dependencies before installing them.

Common causes of a failed mod load include swapped identifiers, missing libraries, the wrong order, incompatible builds, an incomplete Workshop download or a server that was not fully restarted.

Setting up RCON

RCON lets an external client send administration commands. Configure it in <servername>.ini:

RCONPort=27015
RCONPassword=REPLACE_WITH_A_LONG_UNIQUE_PASSWORD

RCON uses TCP port 27015 by default. It is separate from the two UDP game ports.

Caution
Source RCON uses simple authentication over a regular TCP connection and does not provide TLS transport encryption. Do not expose it openly to the internet. Restrict access to a fixed management IP or use a VPN or SSH tunnel.

Use a different password for RCON, the admin account and the server join password. Store the RCON password in a password manager.

Creating backups and resetting the world

The important data is stored below the server user's personal Zomboid directory.

Windows

C:\Users\<User>\Zomboid\Server\
C:\Users\<User>\Zomboid\Saves\Multiplayer\
C:\Users\<User>\Zomboid\db\

Linux

/home/pz/Zomboid/Server/
/home/pz/Zomboid/Saves/Multiplayer/
/home/pz/Zomboid/db/

Back up at least:

  • <servername>.ini and the matching Lua files
  • Saves/Multiplayer/<servername>/
  • the matching database and user data under db/
  • custom scripts and systemd units
  • a list of all Workshop and mod IDs

Safe manual backup

  1. Notify connected players.
  2. Run save.
  3. Stop the server with quit.
  4. Confirm the process has exited.
  5. Copy the three data areas to another storage location.
  6. Label the backup with its date and server name.
  7. Test a restore periodically.

A backup stored only on the same SSD does not protect against disk failure, accidental deletion or a compromised system.

Resetting the world

Project Zomboid has no monthly force-wipe cycle. A world remains persistent until you reset it manually or a major incompatible update requires a new save.

For a clean reset:

  1. Stop the server.
  2. Create a complete backup.
  3. Remove only the world and database data matching the selected <servername>.
  4. Keep the configuration files if you want to reuse the rules.
  5. Start the server and let it generate a new world.
Caution
Do not delete the entire Zomboid directory when it contains other worlds or server configurations.

Build 41 saves are not compatible with Build 42. Continuing an old world requires both clients and server to remain on legacy41.

Troubleshooting

ProblemLikely causeFix
Server is missing from the browserPublic=false, startup incomplete or UDP ports blockedset Public=true, review logs and check both UDP rules
Connection failswrong IP or port, missing forwarding or CGNATverify the address, 16261/UDP, 16262/UDP and public IP availability
Works on LAN but not onlinerouter or ISP blocks inbound trafficcheck forwarding, the local server address and connection type
Mods do not loadWorkshop ID and mod ID were mixed upverify WorkshopItems= and Mods= separately
Client reports a mod mismatchdifferent client and server mod versionsupdate the server download and refresh client mods
Server crashes at startup-Xms/-Xmx too high, insufficient RAM or incompatible modlower memory allocation, inspect logs and disable mods for testing
Excessive memory usagelarge world, many entities, players or modsaudit mods, allocate more RAM or reduce unnecessary content
Admin password is lostno access to the default admincreate a temporary account with -adminusername and -adminpassword
Settings do not applywrong <servername>, wrong user path or restart missingverify launch arguments and the active Zomboid/Server path
Sandbox change has no effectrestart or newly generated area requiredrestart and test in new world areas
World fails after an updateincompatible build or modsrestore a backup and verify build and mod compatibility
RCON cannot connectwrong password, blocked TCP port or missing restartcheck RCONPort, RCONPassword, firewall and restart

Reading logs

With the systemd setup:

sudo journalctl -u zomboid -f

Project Zomboid also writes logs below the server user's Zomboid directory. Search for lines containing:

ERROR
Exception
Workshop
Mod
RCON

FAQ: Project Zomboid server questions

How much RAM does a Project Zomboid server need? A small Project Zomboid server needs at least about 4 GB of RAM, while 8 GB or more is a better starting point for additional players or mods.

Which ports does a Project Zomboid server need? A current Project Zomboid server uses 16261/UDP and 16262/UDP by default, with optional RCON on 27015/TCP.

Can I host a Project Zomboid server on my own PC? Yes, you can host it on your own PC when it has enough memory, a stable connection, correct firewall rules and working port forwarding.

How do I become an admin on a Project Zomboid server? The default admin is created during the first launch, and additional players can receive admin access with /setaccesslevel "PlayerName" "admin".

How do I install mods on a Project Zomboid server? Add numeric Workshop IDs to WorkshopItems=, internal mod IDs to Mods= and restart the server after saving the configuration.

Why is my Project Zomboid server not showing up? The most common causes are blocked UDP ports, Public=false, an incomplete startup or mismatched game builds.

Where are the Project Zomboid server configuration files? They are stored in %USERPROFILE%\Zomboid\Server\ on Windows and ~/Zomboid/Server/ on Linux.

Conclusion

A Project Zomboid dedicated server can be installed on Windows or Linux through SteamCMD with App ID 380870. A successful setup depends primarily on the two UDP ports, a consistent internal server name, the correct configuration path and a realistic Java memory allocation.

For Workshop mods, keep WorkshopItems= and Mods= separate, and back up the world, configuration and database before updates or major changes. Players who prefer not to maintain an operating system, SteamCMD and firewall rules can instead rent a Project Zomboid server.

Related guides: