ServerSizer

Games Project Zomboid

Project Zomboid server requirements

Build 25485538, 2026-10-06. Native Linux server, Java. Steam SteamDB

Requirements

Our benchmarkThe Indie StonePZwikiWinterNodeDatHost
CPU2% of one core, idleNo figure, B42 lighter on CPU than B41Min quad 2.5 GHz, rec 6+ cores 3.0 GHz
RAM2.1 GB idle, 8.1 GB peak3 GB + 0.5 GB per player8 GB start for B42, 6 GB needed to bootMin 8 GB, rec 16 GB+
Disk7.0 GB installMin 20 GB SSD, rec 50 GB+ SSD
NetworkUDP 16261 and 16262UDP 16261-16262Min 5 Mbps upload, rec 20 to 50 Mbps
OSLinux, nativeWindows or LinuxWindows 10+ or Linux 64-bit, Ubuntu 20.04+

RAM by players

PZwiki
3.5 to 5 GB
WinterNode
6.5 to 8 GB
DatHost
8 GB
  • Recommended
  • Community
  • PZwiki: "Allocate at least 3 GB of RAM for the server itself to run, then add approximately 500 MB of memory for each additional player you plan to host."
  • WinterNode: "think of it more like 6GB base + 0.5GB per player for comfortable headroom. ... Build 42 needs at least 6GB to initialize, even for small worlds with no players connected."
  • DatHost: "[Minimum] 8 GB (good for 2-4 players) | [Recommended] 16 GB or more (for 8+ players or mod-heavy servers)"

Memory over time

0 GB1 GB2 GB3 GB4 GB5 GB6 GB7 GB8 GB9 GB10 GB11 GB8.1 GB0 min30 min60 min0 GB1 GB2 GB3 GB4 GB5 GB6 GB7 GB8 GB9 GB10 GB11 GB8.1 GB0 min60 min
  • In use
  • Peak, with cache
Raw data (CSV)

Community results

Loading...

Add result
Hosting
Enough RAM?
Privacy

Pending

  • 24 hours idle
  • Same world at -Xmx4g and -Xmx2g
  • One player for 30 minutes
  • Three warm restarts

Reported by others

  • The Indie Stone: "It is currently inadvisable to have more than 20 players on a server."

Ports

PortProtocolUseOur server
16261UDPGame traffic (-port).Open
16262UDPDirect connection (-udpport).Open

Forward UDP 16261 and 16262.

Docker setup

4 steps
  1. Download

    Free anonymous download, Steam app 380870, about 7 GB on disk.

    docker volume create pz_files
    docker run --rm -v pz_files:/data steamcmd/steamcmd:latest \
      +@sSteamCmdForcePlatformType linux +force_install_dir /data \
      +login anonymous +app_info_update 1 +app_update 380870 validate +quit
  2. Memory cap

    Set the heap before the first start; the shipped value is 8 GB.

    docker run --rm -v pz_files:/data alpine sed -i 's/-Xmx8g/-Xmx4g/' /data/ProjectZomboid64.json
  3. Run

    Exact bench command. Add -p 16261-16262:16261-16262/udp to publish the ports.

    docker volume create pz_home
    docker run --rm -v pz_files:/a -v pz_home:/b ubuntu:24.04 chown -R 1000:1000 /a /b
    docker run -d --name pz --memory 12g \
      -v pz_files:/pz -w /pz -v pz_home:/home/ubuntu/Zomboid \
      game_runtime ./start-server.sh -adminpassword change-me
  4. Ready line

    'SERVER STARTED' 36.2 seconds after container start.

    docker logs -f pz | grep -m1 'SERVER STARTED'

Settings

15 settings

Memory: -Xmx in ProjectZomboid64.json. Server settings: ~/Zomboid/Server/servertest.ini.

SettingWhat it does
-Xmx8gJava heap cap in ProjectZomboid64.json.
-XX:+UseZGCShipped garbage collector. Heap held as shared memory; unused heap returned over time.
-adminpasswordAdmin password; without it the first start waits for input.
-servername servertestSettings and save name.
DefaultPort=16261servertest.ini. Game port.
UDPPort=16262servertest.ini. Direct connection port.
MaxPlayers=32servertest.ini. Player slots.
Public=falseservertest.ini. Server list visibility.
PublicName=My PZ Serverservertest.ini. Name in the list.
Password=servertest.ini. Join password; empty is open.
PVP=trueservertest.ini. Player combat.
PauseEmpty=trueservertest.ini. Pauses the world with nobody on.
Map=Muldraugh, KYservertest.ini. Map.
SaveWorldEveryMinutes=0servertest.ini. Autosave interval; 0 uses the game's own schedule.
SteamVAC=trueservertest.ini. Valve anti-cheat.

Troubleshooting

4 problems
RAM far above guides right after start
ZGC claims most of the -Xmx heap at start (about 8 GB with -Xmx8g), then returns unused heap over the next hour. Lower -Xmx in ProjectZomboid64.json to cap it.
First start hangs waiting for input
It asks for an admin password. Pass -adminpassword on the command line.
'libjsig.so' cannot be preloaded
Harmless on Linux; startup continues.
No connections from outside the network
Forward UDP 16261 and 16262.

Method

build 25485538
ServerProject Zomboid dedicated server, Steam build 25485538, game version 42.21.0, downloaded 2026-10-06.
ImageMinimal ubuntu:24.04 with ca-certificates and libcurl, uid 1000; bundled Java runtime; ~/Zomboid on a Docker volume.
MachineAMD Ryzen 9 5950X, Proxmox VE 9, each game server in Docker inside a dedicated LXC container. 12 GB memory limit, no swap.
Command./start-server.sh -adminpassword (random)

Changes from defaults

  • Random admin password on the command line, so the first start does not stop to ask for one.
  • Shipped ProjectZomboid64.json unchanged: -Xmx8g, ZGC.

Full method

Sources