Quick answer: To set up a Project Zomboid dedicated server, install the server files with SteamCMD (app ID 380870), edit the servertest.ini config to set your server name and admin password, open UDP ports 16261 and 16262 in your firewall (and forward them on your router if you're hosting at home), launch the server with StartServer64.bat on Windows or ./start-server.sh on Linux, then have friends connect by IP and port.

This guide walks the whole thing end to end โ€” Windows and Linux paths, server sizing by player count, the config file that actually matters, ports and NAT, Workshop mods, backups, and a troubleshooting table for when the server refuses to show up. I've built these for four-person co-op groups and for 30-slot modded worlds, and the failure points are almost always the same three things. We'll cover those too.

What you need before setting up a Project Zomboid dedicated server

A "dedicated server" here just means the game world runs as its own headless process, separate from any player's game client. Nobody has to be online for the world to keep existing. That's the whole appeal.

Here's your pre-flight checklist:

  • A machine that stays on 24/7 โ€” Windows 10/11, Windows Server, Ubuntu 20.04+, or Debian 11+
  • Admin or sudo access on that machine
  • SteamCMD (free, no game purchase needed for the server files)
  • A public IP address, or a hosted server that already has one
  • Permission to edit firewall rules โ€” and router port forwarding if you're self-hosting
  • A text editor: Notepad++ on Windows, nano or vim on Linux
  • Somewhere to keep save backups that isn't the same disk

If you're deploying remotely, you'll manage everything over how to SSH on Linux or RDP on Windows. New to remote access? The guide on logging into a VPS covers first-connection basics.

Dark checklist card showing Project Zomboid server setup prerequisites with labeled icons

Once the basics are in place, the next question is how much RAM and CPU your player count actually needs.

Project Zomboid server requirements by player count

Project Zomboid is a Java-based game, and the server process is more sensitive to single-thread CPU speed and disk responsiveness than to core count. RAM scales with players, loaded map cells, and mods. Treat these as solid starting points, not gospel โ€” a heavily modded 8-player world can eat more than a vanilla 16-player one.

Players RAM CPU Storage Best hosting type
2โ€“4 (vanilla co-op) 4 GB 2 fast cores 20 GB SSD Home PC or small game VPS
5โ€“8 6โ€“8 GB 2โ€“4 cores 30 GB SSD/NVMe Game VPS
9โ€“16 10โ€“12 GB 4+ cores, high clock 50 GB NVMe Large VPS or entry dedicated
16+ public/modded 16โ€“24 GB 6+ cores, high clock 80 GB+ NVMe Dedicated server

Two things people underestimate. First, disk speed: the world save is thousands of small chunk files being written constantly, so an NVMe vs SSD difference is genuinely noticeable during large-group play. Second, mods โ€” every Workshop item you add costs RAM at load and can add per-tick CPU work. If you're unsure how much memory to allocate, the breakdown on how much RAM you need is a decent sanity check.

Pro tip: leave 25โ€“30% RAM headroom above your target. Raising zombie population or adding a big map mod later shouldn't require a rebuild.

Home hosting vs VPS vs dedicated server for Project Zomboid

Factor Home PC Game VPS Dedicated server
Cost Free (electricity) Low monthly Higher monthly
Uptime Depends on your PC 24/7 24/7
Upload bandwidth Usually the bottleneck High Very high
NAT / port issues Common (CGNAT risk) None None
Control Full Root access Full hardware control
Best for 2โ€“4 friends, testing Private groups up to ~16 Public, mod-heavy, 16+

Honest take: for three friends playing a few evenings a week, your desktop is fine. The moment you care about the world existing while you sleep, self-hosting starts costing you more in frustration than a server costs in money. A game VPS hosting plan handles most private groups comfortably, while game dedicated servers make sense for public or heavily modded worlds. If you're weighing the two, the comparison of VPS vs dedicated server lays out the trade-offs properly.

How to install a Project Zomboid server with SteamCMD on Windows

  1. Create two folders: C:\steamcmd and C:\pzserver. Keep them off the system drive if you can โ€” avoid Program Files, permissions there cause headaches.
  2. Download SteamCMD for Windows from Valve's official developer page and extract steamcmd.exe into C:\steamcmd.
  3. Open Command Prompt as Administrator (see the Windows command prompt primer if that's unfamiliar) and run steamcmd.exe once so it self-updates.
  4. Now install the server files:
cd 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 package. It's anonymous-login, so you don't need Steam credentials. The download is a few gigabytes and takes a while โ€” the progress percentage sometimes appears to stall, that's normal.

When it finishes, check C:\pzserver for StartServer64.bat. That's your launch file. If it's missing, re-run the command with validate โ€” a truncated download is the usual culprit.

Stylised Windows command prompt showing SteamCMD command, app 380870, and download progress.

How to install a Project Zomboid Linux server on Ubuntu or Debian

Linux is my preferred host for this โ€” lower overhead, better process control. Package names shift slightly between distro versions, so adjust if something isn't found.

  1. Update and add 32-bit support (SteamCMD is a 32-bit binary):
sudo dpkg --add-architecture i386
sudo apt update && sudo apt upgrade -y
sudo apt install -y lib32gcc-s1 lib32stdc++6 screen curl wget tar
  1. Create a non-root service user. Never run a game server as root.
sudo useradd -m -s /bin/bash pzserver
sudo su - pzserver
mkdir -p ~/steamcmd ~/pzserver && cd ~/steamcmd
  1. Install SteamCMD:
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh +force_install_dir /home/pzserver/pzserver +login anonymous +app_update 380870 validate +quit
  1. Fix permissions and make the launcher executable:
chmod +x /home/pzserver/pzserver/start-server.sh

Now the part beginners skip: the server dies when your SSH session closes. Run it inside screen (the Linux screen command guide covers detaching and reattaching), or better, wrap it in a systemd unit so it restarts automatically after a crash or reboot. If you haven't written one before, managing Linux services with systemctl walks through the syntax.

Stylised Ubuntu terminal showing SteamCMD app_update 380870 and start-server.sh in pzserver directory

Project Zomboid server config: settings, passwords, and server name

Here's the thing that confuses everyone: the config files don't live in the install folder. They're generated in your user directory on first launch. So launch the server once, let it ask for an admin password, then shut it down and edit.

  • Windows: C:\Users\<YourUser>\Zomboid\Server\
  • Linux: /home/pzserver/Zomboid/Server/

You'll find three files, named after your server (default is servertest):

File Controls
servertest.ini Name, passwords, ports, player limit, mods, PvP, whitelist
servertest_SandboxVars.lua Zombie population, loot rarity, day length, XP rates
servertest_spawnregions.lua Which spawn towns players can pick

Copy all three somewhere safe before you touch them. Example .ini values for a private co-op world (verify option names against your current build โ€” The Indie Stone occasionally renames things):

PublicName=Knox County Survivors
PublicDescription=Private co-op, ask before looting
Public=false
Password=letmein
MaxPlayers=8
DefaultPort=16261
PVP=false
Open=true
PauseEmpty=true
SaveWorldEveryMinutes=0
BackupsCount=10
BackupsOnStart=true

Set Public=false for friends-only servers โ€” they'll join by direct IP. Set it true only if you want a listing in the public server browser. The admin password is set at first launch, not in this file, and please don't reuse a real password there.

Annotated servertest.ini illustration with highlighted Project Zomboid server settings and callouts

Project Zomboid server ports and firewall setup

This is where most setups fail. Two separate things must happen: the firewall on the host must allow traffic, and โ€” if you're behind a home router โ€” the router must forward that traffic to the host's internal IP.

Port Protocol Purpose Required?
16261 UDP Main game traffic and server query Yes
16262โ€“16272 UDP Direct player connections (one per slot on some builds) Yes
8766โ€“8767 UDP Steam query/discovery on older builds Only if listed in your .ini
27015 TCP RCON remote admin Optional

Windows Firewall, from an elevated prompt:

netsh advfirewall firewall add rule name="PZ UDP" dir=in action=allow protocol=UDP localport=16261-16272

Linux with UFW:

sudo ufw allow 16261:16272/udp
sudo ufw reload

Or firewalld on RHEL-family systems:

sudo firewall-cmd --permanent --add-port=16261-16272/udp
sudo firewall-cmd --reload

For deeper rule design on a hosted box, see configure a firewall on your VPS.

Common mistake #1: opening the host firewall and stopping there. If you're self-hosting, you also need router rules โ€” walk through port forward on your router and the general port forwarding explainer. Forward UDP 16261โ€“16272 to your host's static LAN IP. Skip UPnP; it's unreliable for game servers.

Verify with check open ports in Linux, then test from outside your network โ€” a phone on mobile data works fine as a test client.

Diagram of Project Zomboid traffic path through public IP, router NAT, firewall, and server process.

How to start the server and connect players

  1. Launch it. Windows: double-click StartServer64.bat. Linux: ./start-server.sh inside a screen session.
  2. First boot takes several minutes โ€” it generates the world and asks for an admin password.
  3. Wait for the line confirming the server is listening. Don't let players connect before that.
  4. In-game, players choose Join โ†’ Add Server, enter your public IP and port 16261, plus the server password if set.
  5. Public servers appear in the browser list under the name from PublicName โ€” indexing can lag a few minutes.
  6. Log in as admin with your password to get moderation tools and the admin context menu.

Not sure of your IP? Run curl ifconfig.me, or see how to get an IP address in Linux and the background on what an IP address is. Confirm the save folder appeared under Zomboid/Saves/Multiplayer/ before inviting everyone.

Project Zomboid server mods and Workshop setup

Mods go in two lines of servertest.ini, and both are required:

WorkshopItems=2169435993;2392709985
Mods=Authenticzombies;BetterSortCC

WorkshopItems takes numeric Workshop IDs from the Steam page URL. Mods takes the internal mod ID, which the author lists on the Workshop description (they're different values, and mixing them up is the number one modded-server failure).

Rules I follow without exception:

  • Add mods two or three at a time, restart, verify, repeat. Never twelve at once.
  • Every player must subscribe to the identical mod list โ€” mismatches produce instant disconnects.
  • Back up the save before adding or removing any map or gameplay-overhaul mod. Removing one mid-world can corrupt chunks.
  • After a game update, wait for mod authors to patch before updating the server.

Optimization, backups, and restart routines

Keep the world save on NVMe. Restart the server every 12โ€“24 hours โ€” Java memory usage creeps, and a scheduled restart beats an unscheduled crash. Use PauseEmpty=true so the world doesn't burn CPU when nobody's on.

Backups are non-negotiable. The built-in BackupsCount and BackupsOnStart settings help, but they live on the same disk, which isn't a backup. Set up an off-server copy of the Zomboid/Saves and Zomboid/Server directories using the guide on scheduling automatic backups โ€” and actually test a restore once. Untested backups have a habit of being empty.

Watch resource use with the tooling in Linux monitoring, and if things feel sluggish, monitoring and improving VPS speed covers the usual suspects.

Server not showing up or not responding: fixes

Problem Likely cause Fix
Server missing from browser Public=false or slow indexing Set Public=true, restart, wait 5โ€“10 min
Connection timeout Ports not forwarded Forward UDP 16261โ€“16272 to host LAN IP
Works on LAN only NAT or CGNAT Ask ISP for a public IP, or host remotely
Instant disconnect Mod list mismatch Sync Workshop and Mod IDs on all clients
"Incompatible version" Client on Beta/Unstable branch Match client and server branches, re-run app_update
Config changes ignored Edited while process was running Stop server, edit, then start
Crash on startup Broken mod or bad Lua edit Check Zomboid/Logs, remove last change
Severe lag with 8+ players RAM ceiling or slow disk Raise heap allocation, move save to NVMe

Common mistake #2: editing the .ini while the server is live. Project Zomboid overwrites it on shutdown, silently discarding your changes. Stop first.

Logs live in Zomboid/Logs and Zomboid/console.txt. Read the last 50 lines before changing anything โ€” the general Linux server troubleshooting workflow applies here, and if SSH itself drops mid-session, see fixing the connection reset by peer SSH error.

When self-hosting stops being enough

The signs are consistent: your PC has to stay on so friends can play, upload bandwidth caps out around six players, CGNAT blocks direct connections entirely, or a mod-heavy world starts hitching every time zombies horde up. That's the point to move off your desk.

1Gbits runs Project Zomboid dedicated server hosting with full root access, NVMe storage, global locations so you can sit close to your player base, and high-bandwidth links that don't share a pipe with your household Netflix. Smaller groups do fine on a game VPS; public and heavily modded worlds want dedicated hardware. Browse options at buy a dedicated server, see why 1Gbits, and note that support is available around the clock if a deployment goes sideways.

Upgrade path graphic from Home PC to Game VPS to Dedicated Server for Project Zomboid hosting

Running other survival worlds too? The same patterns carry over โ€” see how to set up a Valheim dedicated server, set up an ARK dedicated server, or set up a Minecraft server on a VPS.