How to Create Project Zomboid Dedicated Server

Running your own Project Zomboid dedicated server gives you full control over the apocalypse: persistent world saves, your own ruleset, whitelists, mods and admin powers that a peer-hosted co-op session can never match. This guide walks through everything from installing the server with SteamCMD to editing the configuration files, allocating RAM, loading Workshop mods and recovering a corrupted character — with the exact app IDs, ports, file paths and commands you actually need.

One thing to settle before you touch anything: which build you are running. As of mid-2026, Build 41 (B41.78) is still the stable, default branch on Steam, and it is what most servers and host guides target. Build 42 has been on the opt-in “unstable” beta branch since December 2024 — the latest release in that branch is roughly Build 42.17.0 (around April 2026). Press coverage describes the stable launch as close, but no stable release date is confirmed, so treat B42 as beta. Everything in this guide that touches config files, the server folder, save layout, admin commands, whitelists and the Workshop two-key system works identically on both builds. Where behavior genuinely differs, it is called out.

Build 41 vs Build 42: what changes for server admins

The administration model is stable across both builds, but the world itself is not. Build 42 expands Knox County westward with new towns (Brandenburg, Ekron, Irvington), adds procedurally generated basements and taller buildings, rebuilds crafting from the ground up, and introduces new sandbox keys for animals, basements and darkness (these live in the SandboxVars.lua file, not as new .ini keys). Crucially, multiplayer was absent from B42 at first launch and only joined the unstable branch in December 2025 (around v42.13), so any early-B42 server advice from 2024 is unreliable for multiplayer.

TopicBuild 41 (stable)Build 42 (unstable, mid-2026)
MapKnox County — Muldraugh, West Point, Rosewood, Riverside, LouisvilleExpanded westward; new towns: Brandenburg, Ekron, Irvington
VerticalityNo basements; limited heightProcedural basements + taller buildings / new vertical layer
CraftingOriginal systemRebuilt; renewable crafting + animal products
Sandbox keysOriginal SandboxVars setNew SandboxVars for animals, basements, darkness
Save compatibilityB42 saves are not compatible with B41; no official converter
RAMLighterHeavier — plan more headroom

The headline warning: a world made in one build cannot be opened in the other, and there is no official converter. If you start a B42 server, you are committed to B42 for that save. If you want a deeper tour of the new content, see our Build 42 guide.

Installing the server with SteamCMD

The dedicated server is a separate Steam app from the game. The game is App ID 108600; the dedicated server is App ID 380870, and it installs anonymously — you do not need to log into your Steam account. Download SteamCMD, then run:

steamcmd +login anonymous +app_update 380870 validate +quit

The validate flag re-checks files and is worth keeping in your update routine — running the same command later pulls the newest build. If you specifically want the Build 42 beta, you opt into the unstable branch through Steam/SteamCMD beta settings; otherwise you get stable Build 41.

Launching the server

After installation, start the server with the platform-appropriate script in the install folder:

  • Windows: StartServer64.bat (the 64-bit launcher — use this, not the 32-bit variant)
  • Linux: start-server.sh

On the very first run, the console prompts you to set an admin password. This is the password for the built-in admin account — type it carefully and store it somewhere safe, because it is your master key to every admin command. The server then generates its world and configuration files and exits to a running console.

If you would rather skip the manual SteamCMD setup entirely, a managed ready-to-run Project Zomboid server handles installation, ports and updates for you, and our Project Zomboid documentation covers the panel workflow end to end.

Where the server keeps its files

The dedicated server does not write its data into the install directory. Instead it uses the per-user Zomboid/ folder. On Windows that is C:\Users\\Zomboid\. Inside it you will find three folders that matter:

  • Server/ — your configuration files (the three discussed below)
  • Saves/ — the actual world saves
  • Logs/ — timestamped, archived logs from previous sessions

The default server name is servertest, so your config files are named with that prefix. Renaming the server changes those filenames to match.

The configuration files

A Project Zomboid server is configured through files in Zomboid/Server/. The model is three core files (PZwiki also lists a fourth, servertest_spawnpoints.lua):

FileControls
servertest.iniMain settings: ports, player cap, PVP, passwords, public listing, mod lists, map, spawn point, RCON, anti-cheat
servertest_SandboxVars.luaWorld ruleset: zombie population, loot rates, XP multipliers, day length, B42 animal/basement/darkness settings
servertest_spawnregions.luaThe cities/regions offered on the spawn-selection screen

Edit them in any text editor while the server is stopped. If the server is running, you can verify the live settings with the admin command showoptions, and after editing servertest.ini you can apply changes without a full restart using reloadoptions.

Key servertest.ini settings

Here are the settings you will reach for most often, with their shipped defaults where confirmed:

PVP=true
Open=true
PauseEmpty=true
Public=false
PublicName=My Server
PublicDescription=
Password=
MaxPlayers=32
DefaultPort=16261
SpawnPoint=0,0,0
SafetySystem=true
Map=Muldraugh, KY
WorkshopItems=
Mods=
RCONPort=27015
RCONPassword=
server_browser_announced_ip=
  • PVP ships true — player-vs-player combat on.
  • Open (true by default) controls the whitelist. true = anyone may join and an account is auto-created on first join; false = whitelist-only.
  • PauseEmpty (true) pauses world time when nobody is online.
  • Public (false) decides whether the server appears in the in-game public browser; PublicName and PublicDescription are what shows there.
  • Password (empty) is a server-wide join password, separate from the per-account passwords.
  • MaxPlayers — the PZ default is 64; real servers commonly set 16 or 32 to protect performance.
  • DefaultPort is 16261/UDP — the one port that actually matters now (see below).
  • SafetySystem (true) toggles the PVP “safety” mechanic.

A few details that trip people up. The anti-cheat is not a single key — it is a numbered family, AntiCheatProtectionType1 through AntiCheatProtectionType24, each true/false. The companion network port is simply DefaultPort + 1 (so 16262), assigned automatically; since Build 41.65 retired the old per-player port range, effectively only 16261/UDP needs forwarding. A standalone UDPPort= line is not something you will reliably find in a current .ini. For a line-by-line walkthrough of every option, see our servertest.ini explained guide.

Allocating RAM with -Xmx

Project Zomboid’s server runs on the JVM, so memory is controlled by the -Xmx flag inside the start script. To give the server 8 GB, you would set:

-Xmx8g

Edit this value in StartServer64.bat (Windows) or start-server.sh (Linux). The right amount scales with player count, map size and mods — but the most important rule for 2026 is that Build 42 needs more RAM headroom than Build 41, thanks to the expanded map, basements and reworked systems. If you are migrating a B41 server to B42, budget extra memory before you do, and confirm the script’s default -Xmx for your specific build since it can change between releases.

Setting the spawn point

By default, SpawnPoint=0,0,0 in servertest.ini is ignored, which lets players choose a spawn city from the available regions. Set a non-zero X,Y,Z and you force every player to spawn at those exact world coordinates:

SpawnPoint=10629,9312,0

The third value is height: 0 = ground floor, 1 = second floor. To find coordinates, use a community Project Zomboid map (several mirrors exist — map.projectzomboid.com is widely referenced); a “Lock Coords” feature lets you click a spot and read its Cell and Relative coordinates.

If instead you want players to keep a choice of spawn cities, edit servertest_spawnregions.lua, where each region uses Cell + Relative coordinates like { worldX = 35, worldY = 31, posX = 129, posY = 12 } (worldX/worldY are the Cell coords, posX/posY the Relative coords). Some guides show an alternate four-value SpawnPoint format; the three-value X,Y,Z form is the dominant, verified one — confirm the four-value variant against your build before relying on it. Our dedicated spawn point setup guide covers both routes in detail.

Installing Steam Workshop mods: the two-key system

This is the single most common modding mistake. Every Workshop mod needs two keys in servertest.ini, and forgetting one is why mods “don’t load”:

  • WorkshopItems= — the numeric Workshop IDs (the number in the Workshop URL), semicolon-separated. This tells the server what to download.
  • Mods= — the internal Mod IDs (text identifiers inside each mod, not the display names), semicolon-separated. This tells the server what to activate.
WorkshopItems=624489512;972954692;670807387
Mods=CraftableAxes;Katana;MREMeal;NecroForge

A Workshop ID is the download package (numeric); a Mod ID is the activatable mod inside it (text), and one Workshop item can contain several Mod IDs. You need both: a Workshop ID alone downloads but never loads; a Mod ID alone never downloads. Load order is left-to-right in Mods= — later entries can override earlier ones, which matters when mods conflict. The server auto-downloads everything in WorkshopItems on startup. Our Workshop mods install guide walks through finding both IDs for any mod.

Whitelisting players

The whitelist hinges on the Open key:

  • Open=true — open server: anyone may join, and an account (username + password) is auto-created on first join and stored in the player database.
  • Open=false — whitelist-only: admins must pre-create accounts, and unknown users are blocked.

To create a whitelist account manually, use /adduser . If you are flipping an already-open server to whitelisted, a command to convert all currently-connected players into accounts (commonly /addalltowhitelist) saves you from re-adding everyone by hand — confirm the exact spelling in-game with /help. Removing an account is typically /removeuserfromwhitelist (also seen as /removeuser; verify against the in-game help). Note that each account’s password is distinct from the server-wide Password= join password. Full procedure in our whitelist setup guide.

Admin commands and RCON

Admin commands can be run three ways: in in-game chat with a / prefix (admin status required), in the server console without the /, or via RCON (also without /). Type /help for the full list and /help for a single one. Access levels, highest to lowest, are admin, moderator, overseer, gm, observer.

  • /setaccesslevel — set a player’s access level (use none to revoke).
  • /additem Base.Axe [count] — give an item; omit the user to give to yourself.
  • /addxp Perks.Skill — grant XP.
  • /teleport and /teleportto x,y,z — move players.
  • /godmode and /invisible — damage immunity / invisibility to zombies.
  • /kick [reason], /banid true, /banuser true, and the /unbanid / /unbanuser counterparts.
  • /save — force a world save; /servermsg "msg" — broadcast to everyone.
  • /addvehicle Base.Vehicle, plus world toggles /startrain, /stoprain, /chopper, /alarm, /checkfire.
  • showoptions / reloadoptions — show and hot-reload .ini settings.

For remote administration, enable RCON by setting RCONPort (a real-world value is 27015; some host templates use 12345) and RCONPassword in servertest.ini — RCON stays disabled until a password is set. Connect with any RCON client and issue commands without the / prefix. The complete reference lives in our admin commands guide.

Reading the logs

Live output streams to server-console.txt in the Zomboid/ folder (same level as Server/) — startup sequence, mod-load output and player connect/disconnect events. On restart, prior logs are moved into Zomboid/Logs/, timestamped (often zipped) as _.txt:

  • *_DebugLog-server.txt — detailed internal logic; the best file for mod Lua errors and stack traces.
  • *_coop-console.txt — main console output (startup, mod loading, connections).
  • *_chat.txt — all in-game text chat, for moderation.
  • *_pvp.txt — player-on-player damage events, for RDM disputes.
  • *_user* / *_safety* — player actions and anti-cheat flags.
  • *_perf* — performance metrics (lightly documented).

Workflow: read the console log to confirm a clean startup and catch mod-load failures; open the latest DebugLog-server.txt for Lua errors — a mod ID near the error points at the culprit, which you then remove from Mods=. Our server logs guide goes deeper on diagnosing crashes.

Resetting a broken character (destructive — back up first)

Occasionally a single character’s save corrupts and traps a player on a black screen or crash loop. You can wipe just that one character without touching the world or anyone else. Multiplayer saves live in Zomboid/Saves/Multiplayer//, and per-player data sits in the SQLite database players.db inside that folder, in the table NetworkPlayers (one row per character).

This is destructive — it zeroes the character and cannot recover its pre-break state. Proceed carefully:

  1. Stop the server and back up players.db first — non-negotiable.
  2. Open players.db in DB Browser for SQLiteBrowse Data → table NetworkPlayers.
  3. Find the broken player’s row, select the entire row, delete just that one row, then Write Changes and replace the file.
  4. The world, other players and all map data are untouched; that player creates a fresh character on next join.

Because you are editing a live database, deleting the wrong row is unrecoverable — which is exactly why you back up first. Step-by-step screenshots are in our broken-character reset guide.

Frequently asked questions

What is the SteamCMD app ID for the Project Zomboid dedicated server?

The dedicated server is App ID 380870 and installs anonymously — no Steam login needed. The game itself is App ID 108600, a separate app. Install the server with +login anonymous +app_update 380870 validate.

Which port do I need to forward?

The primary game port is 16261/UDP (DefaultPort in servertest.ini). The companion port is DefaultPort + 1 (16262), assigned automatically. Since Build 41.65 retired the old per-player port range, in practice only 16261/UDP needs forwarding for players to connect.

How much RAM should I give the server?

Set it with the -Xmx flag in StartServer64.bat or start-server.sh — for example -Xmx8g for 8 GB. The right figure scales with players, map size and mods. The key rule for 2026: Build 42 needs more headroom than Build 41, so budget extra memory if you run the unstable beta.

Why aren’t my Workshop mods loading?

Almost always because only one of the two required keys is set. WorkshopItems= takes the numeric Workshop IDs (what to download) and Mods= takes the internal text Mod IDs (what to activate). You need both, and the Mod IDs are not the mod’s display name. If a mod still errors, check DebugLog-server.txt for the failing mod ID.

How do I make my server whitelist-only?

Set Open=false in servertest.ini. Then create accounts in advance with /adduser . With Open=true, anyone may join and an account is auto-created on first connect. The per-account password is separate from the server-wide Password= join password.

Can a Build 42 world be opened in Build 41?

No. B42 saves are not compatible with B41 and there is no official converter, so a world made in one build cannot be opened in the other. Decide which build you want before starting a server. As of mid-2026, B41.78 is the stable default and B42 remains on the opt-in unstable branch.

Ready to play?

Run your own Project Zomboid server with XGamingServer

Spin up an always-on Project Zomboid server your friends can join in minutes — no port-forwarding, no tech headaches.

99.9%Uptime SLA
< 5 minInstant setup
24/7Human support
DDoSProtected
Instant setup Your server is live in minutes with a one-click control panel.
Mods & plugins Install mods, plugins and workshop content in a few clicks.
DDoS protected Enterprise DDoS mitigation keeps your server online 24/7.
Low-latency hardware Premium CPUs & NVMe SSDs for lag-free multiplayer.
Free backups Automatic backups so your world is never lost.
Real human support Gamers helping gamers — 24/7, no bots, no scripts.

Pick your Project Zomboid plan & play in minutes

See all plans
Starter $8.40/mo 4 GB RAM Renews $12/mo Buy now
Rookie $17.50/mo 8 GB RAM Renews $25/mo Buy now
Pro $24.50/mo 12 GB RAM Renews $35/mo Buy now