Project Zomboid GuideBuild 42.21 StableUpdated September 30, 2026
Project Zomboid GuideMaps · Mods · Multiplayer · Servers

guide

Dedicated Server Setup

Quick Answer

A dedicated server stands on four recorded checks. Install: SteamCMD app_update 380870 validate (PZwiki, 42.20.0-marked). Network: UDP 16261 and 16262 by default — the page warns 42.21 may differ. Files: servertest.ini, SandboxVars, spawnpoints, and spawnregions .lua under Zomboid/Server; world data under Zomboid/Saves/Multiplayer. Mods: WorkshopItems= and Mods= are separate fields — both must be enabled. Order: clean default profile first, one remote join, THEN settings and mods in reversible batches. If it won't boot, read the first fatal console line before touching anything.

Table of Contents

Setup checkpoints

Run these in order and verify each one against your branch — older documentation isn't proof of a working 42.21 run. Every row names the exact command, file, or port to check.

CheckpointDo exactly thisPasses when
InstallRun SteamCMD: app_update 380870 validate, then write down the exact server build number it reportsThe build number is recorded where you can find it when a client mismatch appears later
ProfileEdit the profile you actually load — the defaults live in servertest.ini, the sandbox vars, and the spawn filesA change you make shows up in-game on the next restart; if it doesn't, you edited the wrong profile
NetworkOpen UDP 16261 (game) and 16262 (query) in the firewall, then test a local join and a remote join separatelyA player outside your network joins, moves, and disconnects with no timeout
BackupCopy the save, the settings, and the spawn files out of the live profile into a folder named with the dateA dated copy exists that the running server never writes to
ModsWrite the WorkshopItems and Mods IDs side by side and compare them with a client's list — mods must be enabled in both the Workshop and the Mods sectionsBoth halves match row for row; a client joins a modded session with no missing-file error

The recorded values, and their version marks

Everything below comes from the PZwiki dedicated-server page, version-marked 42.20.0 — the page itself warns that current 42.21 information may differ. That warning is part of the record: re-verify each value on your install.

WhatThe recorded valueThe 42.21 caveat
Install / update commandSteamCMD: app_update 380870 validateThe app ID is stable; note the exact server build the command reports after it runs, so a client mismatch later has a baseline to compare against
Default UDP ports16261 and 16262Explicitly flagged as possibly different on 42.21 — check your server's own configuration output and firewall rules before port-forwarding on faith
Profile filesservertest.ini, servertest_SandboxVars.lua, servertest_spawnpoints.lua, servertest_spawnregions.lua under Zomboid/ServerFile layout has been stable, but always confirm the active profile name — editing a dead profile is the classic 'my change did nothing' cause
World dataZomboid/Saves/Multiplayer/<server>Back this up with the profile files together: a save without its matching configuration is half a server
Mod fieldsWorkshopItems= entries are distinct from Mods= entriesBoth fields must be enabled for each mod — a Steam Support response confirms server mods need both sections

When the server won't boot: read before you touch

The troubleshooting reference is explicit: a server stuck on initializing starts with the console output and the first error — before any change to the save or settings. The captured forum report shows what that looks like in practice.

A Build 42.20.4 Linux dedicated server was reported intermittently failing to boot with multiple mods loaded, throwing an attempted-index 'biomes' error in WorldGenOverride.lua. Note the shape of that failure: intermittent, mod-correlated, and specific — one Lua index on one file. That specificity is what the console gives you and panic doesn't. The first fatal line names the file and the failure; everything after it in the log is usually cascade.

The response sequence that report implies: reproduce it (an intermittent failure needs a trigger, so note what changed between boots), read the first error (WorldGenOverride.lua means world generation — map mods and world overrides are the suspects), and bisect the mod set rather than editing the save. The Steam community's version of the same method for 42.21 failures: disable half the mods, test, halve again. Server-side, the same logic applies with an extra field to check — WorkshopItems and Mods must both be enabled, so a half-configured mod looks identical to a broken one.

And before any of that: was there a backup? The backup reference treats the live save folder, server configuration, Workshop and Mods records, the copy date, and a separate restore check as distinct fields — a backup that hasn't been restored once is a hope, not a backup. Servers fail at the worst times precisely because nobody verified the recovery path while the server was healthy.

Reference data

These values come from a PZwiki page marked 42.20.0 and remain verification items for 42.21.

WhatValueWhy you care
SteamCMD appapp_update 380870 validateDownload or update the dedicated server
Default UDP ports16261 and 16262Separates network checks from mod checks
Profile filesservertest.ini and servertest_SandboxVars.luaIdentifies the active server configuration
Spawn filesservertest_spawnpoints.lua and servertest_spawnregions.luaKeep spawn config with the active profile
World filesZomboid/Saves/MultiplayerBack up the matching multiplayer save

FAQ

How do I install a Project Zomboid dedicated server?

With SteamCMD: app_update 380870 validate (PZwiki, version-marked 42.20.0). Note the exact server build the command reports — that's your baseline for client-version comparisons later. Then start the default servertest profile with no mods and confirm it stays up before touching ports, settings, or WorkshopItems.

Which ports does a Project Zomboid server need?

UDP 16261 and 16262 by default, per the PZwiki page — which is version-marked 42.20.0 and explicitly warns that current 42.21 information may differ. Check your server's own configuration output and firewall rules, and test a local join separately from a remote join so a network problem can't masquerade as a server problem.

Where are the server configuration files?

Under Zomboid/Server: servertest.ini, servertest_SandboxVars.lua, servertest_spawnpoints.lua, and servertest_spawnregions.lua, with world data under Zomboid/Saves/Multiplayer. Always confirm the active profile name before editing — editing a dead profile is the classic 'my change did nothing' cause.

My server crashes on startup with a biomes error — what is that?

It matches a captured forum report: a Build 42.20.4 Linux server intermittently failing to boot with multiple mods, throwing an attempted-index 'biomes' error in WorldGenOverride.lua. That's a world-generation failure — map mods and world overrides are the suspects. Read the first fatal console line, then bisect the mod set (disable half, test, halve again) instead of editing the save.

Why does my server mod not work even though it's installed?

WorkshopItems= and Mods= are separate fields, and a Steam Support response says server mods must be enabled in both sections. A mod present in one field but not the other is subscribed-but-inactive. Compare both fields against a client's downloaded set before deeper diagnosis.