NEW 📢 Limited launch offer: up to 70% off your first month on every game!See plans

How to host a Project Zomboid server (2026)

Project ZomboidUpdated Nov 5, 20269 min read

Short answer. You can host a Project Zomboid server yourself for free: install the dedicated server (Steam app 380870) with SteamCMD using an anonymous login, start it with a server name and an admin password, and open UDP 16261 and UDP 16262. Or rent a Project Zomboid server and skip the networking.

The Linux server starts the world and prints SERVER STARTED when it is ready. Players join with your server address and the game port.

Checked on 5 November 2026, accurate for Build 42.21 (stable, 28 September 2026). A 42.22.1 pre-release hotfix came out on 4 November 2026.

This guide uses The Indie Stone's own Steam announcements and what we run on our own Project Zomboid servers. To go straight to the rental route, see Option 2.

What you need

  • Operating system: 64-bit Linux for the steps below. The server binary is ProjectZomboid64.
  • Hardware: The Indie Stone does not publish server requirements in the announcements we checked.
  • Network: UDP 16261 and UDP 16262, reachable from the internet. Both can be changed in the server options.
  • Steam account: not needed to download the server. The install command uses +login anonymous.
  • The game: every player needs Project Zomboid on Steam.

The server software is free. You pay for the machine, power and bandwidth, not the software.

Option 1: host it yourself

This works on a spare PC, a home server or a cloud virtual machine. The ports come from The Indie Stone's Build 41.77 announcement and the start command is the one we run.

Linux (Debian or Ubuntu)

  1. Install the library SteamCMD needs.
    sudo apt-get install lib32gcc-s1
  2. Create a steam user. Valve warns against running SteamCMD as root.
    sudo useradd -m steam
    sudo passwd steam
    sudo -iu steam
  3. Install SteamCMD as that user.
    mkdir ~/Steam && cd ~/Steam
    curl -sqL "https://client-update.steamstatic.com/installer/steamcmd_linux.tar.gz" | tar zxvf -
  4. Download the server.
    ~/Steam/steamcmd.sh +quit
    ~/Steam/steamcmd.sh +force_install_dir /home/steam/pzserver +login anonymous +app_update 380870 validate +quit
    The first line lets a fresh SteamCMD update itself before the real download. Our install script does the same and retries up to three times, because Steam sometimes answers "Failed to install app (Missing configuration)" and SteamCMD still ends with "success". Check that /home/steam/pzserver/steamapps/appmanifest_380870.acf exists. If it does not, run the download again. For Build 41, Steam's branch is legacy41: add -beta legacy41 after +app_update 380870. Build 42 stable is the default branch.
  5. Start the server. Pick a server name (we use letters and digits only, as our panel does) and your own admin password. The binary needs the bundled Java and libraries on its paths, so set them first, as our panel does.
    cd ~/pzserver
    export PATH="./jre64/bin:$PATH"
    export LD_LIBRARY_PATH="./linux64:./natives:.:./jre64/lib/amd64:${LD_LIBRARY_PATH}"
    LD_PRELOAD="${LD_PRELOAD}:libjsig.so" ./ProjectZomboid64 -port 16261 -udpport 16262 -cachedir=/home/steam/pzdata -servername MyServer -adminusername admin -adminpassword "ChangeThisPassword"
    These are the same flags and paths our panel uses. The server's settings are written under the cache folder: the server's options are in Server/MyServer.ini and the sandbox rules in Server/MyServer_SandboxVars.lua. The server is ready when the log prints:
    SERVER STARTED
  6. Open the ports. Allow UDP 16261 and UDP 16262 on the machine's firewall (with ufw: sudo ufw allow 16261/udp and sudo ufw allow 16262/udp), then forward both as UDP on your router. Per The Indie Stone, the game port (16261) handles Steam queries and the additional port (16262) handles the direct connection.
  7. Keep it running. The command above stops when you log out. Run it inside tmux or screen, or write a systemd unit for it, and run the SteamCMD update line again after each game patch.
  8. Check it from outside. Ask a friend on another network to join with your public IP and port 16261.

Mods and Workshop items

  • A mod needs two things in the server's .ini: WorkshopItems (the numeric Workshop IDs, which make the server download them) and Mods (each mod's own ID from its mod.info file, which makes the game load them). Setting only one gives you a vanilla server or mods that download and stay off.
  • Project Zomboid's Workshop items belong to the base game's app id, 108600, not the server tool's 380870. To fetch one by hand with SteamCMD, use +workshop_download_item 108600 <id>; it lands in steamapps/workshop/content/108600/<id>.

See How to add mods to your Project Zomboid server for the full routine.

Option 2: host it on PlayNHost

Renting removes the firewall, port forwarding and update routine. The ports, the Java settings and the config files are set up for you.

  1. Pick a plan. Open the Project Zomboid server hosting page and compare the plans (BITTEN, INFECTED and UNDEAD at the time of writing, for 6, 10 and 16 players). Press Create Server on BITTEN or INFECTED, or Customize Plan on UNDEAD, and finish the order. Prices change, so check them on that page.
  2. Wait for the install. You get a "server ready" email and the server appears at panel.playnhost.com. On the Console tab, the panel counts the server as running when it prints SERVER STARTED. The first start can take a minute or more.
  3. Open Settings, then Game Settings. These fields are applied each time the server starts:
    • Server Name: letters and digits only. It also names the server's settings files, so changing it starts a separate world.
    • Admin Username and Admin Password: your admin login. Every new server starts with the same default Admin Password and RCON Password, so change both before you invite anyone.
    • PVP: a switch. On lets players hurt and kill each other.
    • Zombie Population, Zombie Respawn and Loot Respawn (hours): written into the sandbox rules.
    • Banned Item IDs: items removed from loot, separated by commas.
  4. Restart. When the panel shows "Saved. The server must restart before these take effect.", press Restart now and wait for SERVER STARTED.
  5. Add mods (optional). Put the numeric Workshop IDs in Steam Workshop Item IDs and each mod's own ID (from its mod.info) in Workshop Mod IDs (load order matters), in load order. Separate the entries in both fields with semicolons. A Workshop map mod also needs its map folder name in Map Folders (Workshop map mods). Restart to apply.
  6. Join. Players enter your server's address and game port from the panel. If you need help, see How to join your Project Zomboid server.

What our setup does for you

  • Keys written at every start. The startup writes MaxPlayers, PVP, RCONPort, RCONPassword, WorkshopItems, Mods and the map list into the server's .ini, and Zombies, ZombieRespawn, HoursForLootRespawn and LootItemRemovalList into the sandbox file. Hand edits to those keys (the map list aside, where your own entries are kept) are replaced at the next start, so change the ones you can edit in Game Settings.
  • A bad Workshop ID does not stop the server. In our tests, Project Zomboid's dedicated server threw an uncaught error and stopped entirely when a configured Workshop item failed to download (removed, private or mistyped). Before each start our script checks that every ID has downloaded, fetching any that are missing, starts the game with only the IDs that worked, and prints a warning naming any it dropped.
  • A warning when mods would stay off. If you fill in Workshop Item IDs but not Workshop Mod IDs (or the reverse), the Console prints a warning that the mods will be disabled or nothing will download.
  • Java memory. Build 42's ProjectZomboid64.json selects the ZGC garbage collector. On our servers, which run in containers, we found its heap was counted several times against the memory limit, so a healthy server could be killed. Our install and every start switch ProjectZomboid64.json to G1 and set -Xmx from your plan, so you do not have to.
  • Complete sandbox file on first boot. We ship the game's full default SandboxVars.lua. In our tests, without it the game discarded the first boot's sandbox values and used its own defaults until the second start.

Self-hosting or renting: an honest comparison

  • Cost. Self-hosted: the software is free, and you pay for hardware, power and bandwidth, or a cloud virtual machine. Rented: a monthly fee set by plan. See the current plans.
  • Availability. Self-hosted: as reliable as your machine, power and home internet, and it has to stay on when your friends play. Rented: runs on the host's hardware, not your PC.
  • Network exposure. Self-hosted: players connect to your public IP, and you look after the firewall and router. Rented: your home IP is not involved.
  • Skill needed. Self-hosted: command line, port forwarding, editing .ini files, and an update routine. A good way to learn. Rented: a web panel with form fields.
  • Updates. Self-hosted: stop, run the SteamCMD command again, start. Rented: with Steam Auto Update on (the default, under Show advanced in Game Settings), a restart installs a new build.
  • Build 41 or 42. Steam keeps Build 41 on its legacy41 branch. See How to choose Build 41 or Build 42 for your Project Zomboid server.

Self-hosting suits you if a machine already runs all day and you are comfortable with networking. Renting suits you if you would rather not look after hardware. Either way, the Project Zomboid plans are one click away.

Already hosting it somewhere else? Move your server to us

OUR LATEST BLOGS