Do this first

Install Project Zomboid Dedicated Server separately from the game, match the server and clients to the same build, then launch the shipped Windows or Linux script. Prove that a player can connect and that a small test world survives a clean shutdown before moving an existing world or opening Internet access.

Evidence boundary. Researched 4 October 2026 for Stable 42.21. Installation and launch commands are source-checked examples, not commands executed on this machine. Hosting hardware, Linux packages, connectivity and save restoration require verification on the actual server.

Choose a new test installation and a matching build

The main route here is Windows 64-bit with Steam Tools. Use a host you control, with storage, memory and network capacity for the server and any other work on it. This guide does not give a universal player-to-RAM formula. Begin without Workshop mods and use a disposable world; get the base installation working before adding dependencies.

The Indie Stone announced Stable 42.21 on 28 September 2026. Choose the public Stable branch for this checklist, then compare the complete version in each client with the server’s startup output. An older unstable tutorial’s branch name is not an instruction to select it now. This is a source-based checklist, not an end-to-end tested tutorial.

Source: The Indie Stone · 42.21 Stable Released · Official release

Keep an existing world separate

Build 41 worlds are incompatible with Build 42, according to the official launch checklist. Preserve older data and branch choices independently; legacy41 is the announced branch for a group choosing to stay on Build 41. Do not load your only Build 41 world into this new test installation.

Back up a stopped existing server before an update or migration. Keep its actual data path, settings and version recorded. A backup is useful only when you can identify what it belongs to and verify a restore in a separate compatible setup.

Source: The Indie Stone · B42 Checklist · Official compatibility notice

Windows option A: install through Steam Tools

  1. In Steam Library, enable Tools in the library filter and find Project Zomboid Dedicated Server. Install that Tool; the ordinary game install is a different application.
  2. Open the Tool’s Properties and inspect Game Versions & Betas. Use the current public/default choice for this Stable walkthrough, then let Steam finish the download.
  3. Use Installed Files → Browse to open the installation directory. Locate the shipped StartServer64.bat. Keep the original launcher; if you later customize memory options, use a separate named copy so validation can restore shipped files.

Source: Steam · Ultimate Multiplayer Guide [b41] and [b42] · Support-maintained guide

Windows option B: install with SteamCMD

Get SteamCMD from Valve’s official SteamCMD documentation link in the source list. Extract it into its own directory. The example below assumes C:\steamcmd\steamcmd.exe and a separate new server folder C:\pzserver. Substitute your actual paths and run it from Windows Command Prompt. This installs the server application 380870, not client application 108600.

The example targets a new default-branch installation. If you previously selected a beta, verify the selected branch and startup build; do not assume omitting a beta argument reverses a previous choice. Return to the public branch through the supported Steam/hosting controls or use a separate fresh installation before testing.

Windows Command Prompt

C:\steamcmd\steamcmd.exe +force_install_dir C:\pzserver +login anonymous +app_update 380870 validate +quit

Source-checked install/repair example. Wait for SteamCMD’s success output; this website has not run the download.

Source: Steam · dedicated-server launcher and update discussion · Support response with user command example

Optional Linux notes: verify the host before proceeding

Aiteron’s Linux setup notes reference SteamCMD and the shipped start-server.sh, but remain an older short outline. This site does not supply a complete tested Linux provisioning tutorial. Create a normal service user and writable server/data directories through your distribution’s administration workflow, install SteamCMD and the required compatibility libraries, and download the same server application 380870. Avoid running the game server as root.

After a successful installation, inspect its shipped launcher. The example below assumes an installed server at /home/pz/pzserver owned by a user named pz. If a library or permission error prevents startup, preserve the actual output and resolve it on that host. Package names and current binary compatibility remain unverified here; the Windows route above is the primary checklist.

Linux shell

cd /home/pz/pzserver
./start-server.sh

Historical developer-documented launcher; run only after SteamCMD installation and host dependencies have been checked. Not executed here.

Source: Steam · Linux server setup notes by Aiteron · Historical developer-authored setup notes

First run: record the account, config and data paths

On Windows, run StartServer64.bat from the installed server folder. On Linux, use the shipped start-server.sh shown above. If prompted, create and retain the administrator password. Wait for the explicit server-started confirmation and record the version and listening ports; a console window opening is not a successful start. Keep that process running while testing a connection.

Default server settings use the operating-system account’s Zomboid/Server directory, commonly C:\Users\<user>\Zomboid\Server on Windows or ~/Zomboid/Server on Linux. The default profile is servertest. Verify the generated name and actual data path from your installation, particularly if you use a hosting panel, another OS account, -servername or -cachedir. Changing a profile or data path can make an existing world appear absent.

Source: Steam · Admin Helper — MP · Support-maintained guide

Configure access without accidentally making it public

Stop the test server cleanly before editing its generated configuration, and keep a copy. Inspect its settings for server password, listing, account admission, player limit and empty-server time behavior. Public controls discovery; Open/whitelist controls account admission; Password is the shared server password. Read current generated descriptions rather than replacing the file with a full Build 41 template.

For a friends-only test, leave public listing off and use the access controls you intend for that group. Listing off is not a network bind restriction or a firewall. A whitelist can require operator approval for player accounts. Share player connection credentials privately, and reserve the administrator account for administration. You do not need to expose RCON to complete this walkthrough.

Source: Steam · server settings reference (Build 41) · Older configuration background

Connect locally first, then test from outside

  1. Start the server again and wait for its ready confirmation. In the client’s Join screen, add a favorite using the actual server address, configured game port, shared server password if set, and a server account username/password. Save that entry and connect.
  2. On the same machine, a loopback address such as 127.0.0.1 identifies that machine only. For a second computer on the same LAN, use the server’s LAN address. Do not send loopback as a remote friend’s server address.
  3. Confirm that the character enters the intended world. Record a failure’s exact stage and compare client and server output; server-list visibility alone does not prove a successful join.
  4. Only after the local test works, arrange Internet access with the host/network operator. The referenced default game ports are UDP 16261 and UDP 16262; compare them with the actual generated settings before creating narrowly scoped router, firewall or hosting security rules.
  5. Test with a friend outside the LAN using the agreed reachable address. If local access works but outside access fails, check the operator’s routing and whether the ISP provides usable inbound connectivity. Do not disable the entire firewall or copy old per-player TCP port ranges.

Source: The Indie Stone · Dedicated Server Port Forwarding Options · Support administrator clarification

Verify saving and rehearse the next update

  1. In the disposable world, record a harmless visible change and the test character. Ask players to leave, then use the server console’s quit command and wait for saving and shutdown to finish. Do not treat closing the window as the normal shutdown workflow.
  2. After the process stops, copy the actual Zomboid data directory to a separate backup location. Include settings, account/database data and worlds; saving only installation files does not preserve the world. Keep the version, branch, mod list and backup time beside that copy.
  3. Restart the same installation, profile and data path. Rejoin with the same account and check the recorded world change. If it is absent, compare the data paths and shutdown logs before overwriting anything.
  4. Before future updates, announce downtime, stop cleanly and make another backup. Update through Steam Tools, the host panel, or the same SteamCMD installation command. Validate can replace shipped files, so preserve custom launcher copies.
  5. Confirm the new server/client versions and retest joining and saving. Restore a backup only into a separate compatible test setup first; do not assume that a world touched by a newer incompatible build can be downgraded.

Source: The Indie Stone · save and shutdown clarification · Historical developer clarification

What this walkthrough does not verify for you

No game server was installed or started during this website project. We have not measured your host’s capacity, tested your ports, installed Workshop mods or restored your world. Record those checks on the real host before calling it ready for a regular group. For a failure, report the exact build, platform, installation method, profile/data path, access mode, mods and the first relevant error. Redact passwords before sending logs.

Once joining and persistence work, add mods in a separate test profile and verify their exact Build 42 compatibility and dependencies with the mod authors. An old SteamCMD success screenshot cannot prove that today’s mod collection works. If the problem is a Host invitation message rather than this dedicated workflow, use the permission guide instead.

Source: Valve · Distributing Your Dedicated Game Server · Official Valve documentation

Sources & verification

Original checking steps are editorial recommendations. This site has not run a game test or inspected a local 42.21 installation. Source review and page update dates describe different work.

  • The Indie Stone · 42.21 Stable ReleasedStable 42.21 confirmed on 3 October 2026. Release dated 28 September.
  • The Indie Stone · 42.21 Stable ReleasedRead 4 October 2026. Release dated 28 September 2026; confirms 42.21 on the public Stable branch. Check the installed client and server rather than assuming their versions match.
  • The Indie Stone · B42 Checklist28 July 2026; read 4 October 2026. Explicitly states Build 41 saves are incompatible with Build 42 and identifies legacy41 for groups staying on Build 41. Does not establish future cross-patch save compatibility.
  • Steam · Ultimate Multiplayer Guide [b41] and [b42]Authors include PZ support administrator Beard and developer Aiteron. Updated 29 July 2026; read 4 October 2026. Used for current Tools install, launch, connection fields and UDP ports. Some linked configuration pages remain Build 41 material; no RAM-per-player promise or antivirus-removal advice is adopted.
  • Steam · dedicated-server launcher and update discussionDecember 2021; read 4 October 2026. Example uses force_install_dir, anonymous login and app 380870; Beard explains that validation can replace a shipped launcher, so customized launchers need a separate copy. Commands were not executed here.
  • Steam · Linux server setup notes by AiteronDecember 2021; read 4 October 2026. Links installation through SteamCMD and the shipped start-server.sh. The source itself is an unfinished short guide; current Linux dependencies, library installation and launcher behavior need host-level verification.
  • Steam · Admin Helper — MPUpdated 29 July 2026; read 4 October 2026. Confirms app_update 380870 validate and custom cachedir. Its older port list conflicts with the newer main guide; this site uses the newer main guide and explicit forum clarification.
  • Steam · server settings reference (Build 41)Updated February 2022; read 4 October 2026. Used only to distinguish Open, Public, Password and whitelist concepts. Compare each setting with the generated current configuration; do not import the whole older INI.
  • The Indie Stone · Dedicated Server Port Forwarding OptionsBeard, December 2023; read 4 October 2026. States that 16261 and 16262 are UDP. This is a default reference, not a claim that this website tested the reader’s network.
  • The Indie Stone · save and shutdown clarificationEasyPickins, January 2016; read 4 October 2026. Documents save/quit and the default Multiplayer/servertest world path. Back up the full data directory after shutdown and verify a restart in a disposable world.
  • Valve · Distributing Your Dedicated Game ServerRead 4 October 2026. Confirms separate dedicated-server Tools and anonymous SteamCMD distribution. The linked Valve Developer Wiki SteamCMD page could not be retrieved; PZ command examples are separately sourced and remain unexecuted.
Prepare a correction for this guide