
Manual-first Windows server guide
Project Zomboid Build 42 Dedicated Server Guide
Run Project Zomboid Build 42 with one explicit server name and cache root so its INI/Lua settings, Multiplayer save, player-account database, backups, logs, and Workshop configuration remain a coherent recoverable set.
Build 42.20 became Stable on July 29, 2026, making older 'unstable only' guides stale while leaving Build 41 saves and mods incompatible. Project Zomboid also separates numeric WorkshopItems from internal Mods identifiers, and a changed -servername or -cachedir can create a fresh-looking world even when the original data still exists.
Current Stable
Build 42.20 as of 2026-07-29
The Indie Stone moved Build 42.20 to Stable; guides that call all Build 42 servers unstable are obsolete.
Dedicated application
Steam App ID 380870
The Windows server bundle supplies StartServer64.bat and its Java runtime.
Identity selectors
-servername and -cachedir
These select the INI/Lua, database, and Multiplayer world family; a mismatch can appear to wipe the server.
Current player ports
UDP 16261 and UDP 16262
Current networking no longer needs the unlimited per-player range described by old guides.
Major-version boundary
Build 41 and Build 42 worlds are incompatible
Keep Build 41 data on a compatible legacy41 branch/snapshot unless an official migration path changes.
Protect the server first: Use native console save and quit, then copy the owner-named Server files, Multiplayer save, matching database, backups, logs, and mod records before changing build branch, server name, cache root, or Workshop list.
Size the host before downloading
PC and capacity guidance
The Steam hardware table is product-level guidance, not a dedicated-server capacity matrix. These profiles are conservative editorial starting points; measure Java memory, save time, explored-world growth, and mod load.
| Profile | Players | Memory | Processor | Storage |
|---|---|---|---|---|
| Small vanilla Build 42 server Conservative starting point | Small private group | 16 GB total host RAM starting point | Four modern CPU cores available to the Java/server workload | SSD with space for explored cells, logs, native backups, and external snapshots |
| Large Knox Country host with mods Conservative starting point | Host-and-play, larger explored world, or substantial mod set | 32 GB total system RAM starting point | Modern CPU with Java/server and client headroom | SSD with several complete cache-root snapshots |
Windows setup
Install Build 42 with one explicit data identity
Choose the server name and cache root before the first durable session so every owner-named file and folder can be found, backed up, and migrated as a set.
- 1
Install the dedicated application
Use anonymous SteamCMD and the current Stable branch unless a recovery requires a documented legacy branch.
steamcmd +login anonymous +force_install_dir D:\Servers\ProjectZomboid +app_update 380870 validate +quit - 2
Choose server name and cache root
Launch StartServer64.bat with an owner name and explicit durable cache directory; preserve both values permanently with the world.
- 3
Complete first-run administration
Set a strong administrator password, let the current INI/Lua/database/save family generate, then stop before editing.
Do not publish the administrator password or account database.
- 4
Prove save and identity
Join, run console save and quit, restart with the same arguments, and confirm the same world/account before WAN forwarding.
Version boundary
Keep Build 41 and Build 42 data separated
Stable Build 42 is current, but Stable status does not make Build 41 worlds or mods compatible, and even the 42.19-to-42.20 map boundary matters.
- 1
Inventory before opening a world
Record the source branch/build, cache root, server name, and mod set from the last successful start.
- 2
Keep Build 41 on legacy41
Use an untouched copy and a compatible branch rather than testing the only Build 41 world in Stable 42.
- 3
Respect the 42.19 map boundary
The 42.20 release context retains a 42.19 branch because those map versions are incompatible; pair branch and snapshot.
Mod synchronization
Configure Workshop downloads and loaded mods as different lists
A Workshop page's numeric item ID and the mod's internal ID solve different parts of loading. A valid server often needs correctly ordered entries in both settings.
- 1
Record Workshop item IDs
Place the numeric Steam identifiers in WorkshopItems, separated with semicolons.
- 2
Record internal mod IDs
Place each actual internal identifier in Mods, preserving dependencies and required order.
- 3
Version-gate the world
Confirm Build 42 compatibility, back up the full cache set, and test privately before a Workshop update reaches production.
Never remove a data-bearing mod from the only world and let the server save over the missing content.
Keep every layer consistent
Ports, firewall, and router setup
Open only the services your Project Zomboid server actually uses. The game process, Windows Firewall rule, router forward, and player join address must all agree on the same port and protocol.
| Port | Protocol | Purpose | Exposure | Notes |
|---|---|---|---|---|
| 16261 | UDP | Primary server and Steam query/network traffic | Internet playersRequired for this use | Forward to the host's reserved LAN address for outside joins.[network-update][pzwiki-server] |
| 16262 | UDP | Current direct-connection/secondary player traffic | Internet playersRequired for this use | Use the current two-port model rather than old per-player range advice.[network-update][pzwiki-server] |
| 27015 when configured | TCP | Optional RCON administration | Optional administrationOptional | Keep private and use a unique password; it is not a player port.[pzwiki-settings] |
Never expose an administration or RCON port merely so players can join. Keep remote administration private whenever possible, use a strong unique credential, and confirm the game's own security model before forwarding it.
Know what must survive a reinstall
Files, worlds, and configuration
| File or folder | Purpose | Backup | Notes |
|---|---|---|---|
| <cache>/Server/<servername>.ini | Network, access, backup, Workshop, and server settings | Critical | Keep it paired with the same owner name across all data roots.[pzwiki-server][pzwiki-settings] |
| <cache>/Server/<servername>_SandboxVars.lua | World and sandbox rules | Critical | Spawn-region/point Lua files may also belong to the owner-named set.[pzwiki-server][pzwiki-settings] |
| <cache>/Saves/Multiplayer/<servername> | World chunks and player/world state | Critical | Use console save and quit before copying.[pzwiki-server] |
| <cache>/db/<servername>.db | Accounts, whitelist, bans, access levels, and ownership-related server data | Critical | A save-only import can make accounts and administrators appear lost.[pzwiki-server] |
| <cache>/backups and <cache>/Logs | Native restore points and operational evidence | Recommended | Native retention complements but does not replace an external stopped snapshot.[pzwiki-settings] |
| Setting or file | Location | What it controls | Restart? |
|---|---|---|---|
-servernamegonewrong | Windows startup command/batch arguments | Selects the owner-named configuration, database, and Multiplayer save[pzwiki-server] | Yes |
-cachedir=D:/GameServers/ProjectZomboidData | Windows startup command/batch arguments | Moves all Zomboid user/server data to an explicit durable root[pzwiki-server] | Yes |
WorkshopItems=Numeric IDs separated with semicolons | <servername>.ini | Lists numeric Steam Workshop item IDs[pzwiki-settings] | Yes |
Mods=Internal IDs separated with semicolons | <servername>.ini | Lists internal mod identifiers in required order[pzwiki-settings] | Yes |
| BackupsOnStart / BackupsOnVersionChange / BackupsCount / BackupsPeriod | <servername>.ini | Controls native backup triggers and retention[pzwiki-settings] | Yes |
Avoid incompatible clients and unsafe shortcuts
Players, mods, and administration
Cross-play and editions
Project Zomboid's dedicated server is a PC ecosystem with no current Xbox or PlayStation crossplay path; client and server point builds must match.
- Do not advertise console joins or console save import.
- State Build 42.20 Stable rather than only 'Build 42' when documenting tested compatibility.
- Treat distribution/account settings separately from unsupported console crossplay.
Mods and extensions
Project Zomboid uses numeric WorkshopItems for Steam acquisition and internal Mods identifiers for loading; both lists, order, dependencies, and Build 42 compatibility matter.
- One Workshop item can expose multiple internal mod IDs.
- Server and clients need compatible versions and order/dependencies.
- Build 41 mods are not presumed Build 42 compatible; verify each publisher entry and test a copied world.
Administration
The owner database carries accounts, whitelist, access levels, and bans; native console save/quit is the safest maintenance path, while optional RCON stays private.
- Protect the first-run administrator password and <servername>.db.
- Use console save and wait before console quit.
- If RCON is enabled, use a unique password and private TCP scope rather than a public admin port.
Preserve a return path before maintenance
Updates, backups, and rollback
Update without gambling the world
Pair every Project Zomboid branch/build with its complete cache/config/mod snapshot; Steam validation updates binaries but does not reconcile incompatible worlds or Workshop data.
- 1
Record identity and version
Capture build/branch, server name, cache root, WorkshopItems, Mods, and Java/startup options.
- 2
Save, quit, and snapshot
Use native console save and quit, then copy Server, Saves/Multiplayer, db, backups, logs, and mod records.
- 3
Update the intended branch
Validate App ID 380870 and update Workshop content only after checking current build compatibility.
steamcmd +login anonymous +app_update 380870 validate +quit - 4
Rollback as a complete pair
Use a still-available compatible branch such as the reviewed legacy41/42.19 cases with its matching untouched snapshot.
Back up and prove the restore path
A restorable Zomboid server includes its owner-named INI/Lua family, Multiplayer save, matching account database, backup/log evidence, mod lists, and exact build identity.
- 1
Create a consistent stopped point
Run console save, wait for completion, run quit, and wait for Java to exit.
- 2
Copy every owner-named component
Capture the Server family, Saves/Multiplayer folder, db file, native backups/logs, and mod records from one cache root.
- 3
Restore without renaming identity
Quarantine current state, restore the complete set, and launch with the exact same -servername and -cachedir.
- 4
Verify accounts and world
Join privately with a representative account, inspect map/ownership/admin state, save/quit/restart, then test WAN.
Diagnose before reinstalling
Common Project Zomboid server problems
A Build 41 world was opened on Build 42
What players see
The old world or mods fail, reset, or behave unpredictably after switching to current Stable.
Likely cause
Build 41 and Build 42 world/mod formats are incompatible; Stable status is not a migration tool.
- 1.Stop and preserve every current/pre-upgrade cache copy.
- 2.Return an untouched snapshot to the matching legacy41 branch instead of retrying conversion.
The server creates a fresh world after migration
What players see
The original save exists on disk, but a new map/accounts appear on the destination.
Likely cause
The destination uses a different -servername or -cachedir, or only the save moved without the database/config family.
- 1.Stop before the new world accumulates state.
- 2.Restore the complete owner-named set and launch with the exact source identity.
Workshop content downloads but mods do not load
What players see
Steam downloads an item yet the server ignores it, rejects clients, or reports a missing mod ID.
Likely cause
WorkshopItems contains numeric Steam IDs while Mods needs separate internal identifiers, dependencies, and order.
- 1.Preserve the full cache and current ordered lists.
- 2.Match each Workshop item to its internal mod IDs and verify current Build 42 compatibility.
Every focused Project Zomboid troubleshooting guide
Evidence stays visible
Sources and verification
Technical behavior changes with server builds. These are the references reviewed for this guide. Official documentation wins if a later patch changes a path, port, command, or compatibility rule.
[b42-release] The Indie Stone
Project Zomboid Build 42.20 released to Stable ↗Reviewed 2026-08-30 · Official documentation
[b42-plans] The Indie Stone
Build 42 Stable plans and compatibility ↗Reviewed 2026-08-30 · Official documentation
[network-update] The Indie Stone
Project Zomboid networking and current port change ↗Reviewed 2026-08-30 · Official documentation
[pzwiki-server] Official PZwiki
Dedicated server guide ↗Reviewed 2026-08-30 · Community or project reference
[pzwiki-settings] Official PZwiki
Server settings reference ↗Reviewed 2026-08-30 · Community or project reference
[steam-store] The Indie Stone / Steam
Project Zomboid Steam requirements ↗Reviewed 2026-08-30 · Official documentation
Keep learning
Related guides
Protect a Build 41 world
Stop an incompatible Stable 42 start and recover the matching legacy branch/cache snapshot.
Open guide →
Fix a fresh world after migration
Align server name, cache root, save, database, and owner configuration.
Open guide →
Repair Workshop and mod lists
Map Steam item IDs to internal mod identifiers and verify Build 42 dependencies.
Open guide →