Host a Project Zomboid Server on a Budget (Build 42.19)

Host a Project Zomboid Server on a Budget (Build 42.19)

Practical VPS / dedicated-server path for Build 42.19 — real costs, safe install habits, and the ports the game uses. Not a one-click root script.

Do not run untrusted install scripts as root Never pipe a remote install script into sudo sh, and never log into a game panel over plain HTTP. That pattern can take full control of the machine and expose admin passwords. Install Panel and Wings only from the official Pterodactyl documentation (or a managed host), pin versions, and serve the panel over HTTPS.

What “almost free” actually means

Cloud signup credits (for example a new-account trial on DigitalOcean or similar) can cover a short test, but they are not a permanent free server. After the credit ends you pay for the droplet/VPS, bandwidth, snapshots, and any extra volumes. Expect ongoing cost unless you host only on free spare hardware at home (with its own NAT, power, and uptime trade-offs).

Cost item What to plan for Notes
VPS / droplet Monthly compute after any trial credit Price scales with RAM and vCPU; see memory guidance below
Bandwidth / egress Included quota or overage Quiet servers are cheap; large mod downloads and busy nights add traffic
Snapshots / backups Provider snapshot fee or object storage Keep game-save backups even if the provider offers disk snapshots
Domain + TLS Optional domain; free certs via Let’s Encrypt Required if you expose a web panel; never leave panel on open HTTP
Admin time Updates, firewall, OS patches Pterodactyl is not “set and forget” without maintenance

Provider promos and dashboards change often. Treat any credit amount as temporary, not a fixed recipe. Pick any Linux VPS you control; the Project Zomboid ports and security checklist below are what matter.

Pick a hosting path

In-game Host

Best for friends on a LAN or when one player’s PC can stay online. No VPS bill. Limited by the host machine, sleep, and home network ports.

SteamCMD dedicated (no panel)

Lowest-overhead always-on option on a VPS: install the dedicated server via SteamCMD, open two UDP ports, run under a non-root service user. You manage start/stop and updates yourself.

Pterodactyl (or managed game host)

Web UI for multiple games, eggs, and restarts. More moving parts (Panel + Wings + Docker + database + reverse proxy). Follow official docs only; or rent a managed host that already runs a panel.

Resource starting point Dedicated servers need enough RAM for the JVM and loaded map area. There is no safe fixed “GB per player” formula. Use the site’s memory by player count guide, then leave headroom for OS, Docker (if any), and backups. For a small friend group, many admins start around 4–8 GB RAM on a modern 64-bit Linux VPS and scale up if ticks lag or the process is OOM-killed.

Ports Project Zomboid actually uses (Build 42.19)

Current server options include DefaultPort, UDPPort, and optional RCONPort. With Steam enabled, the dedicated process listens on both game ports; clients connect using the Steam/query port (default 16261).

Setting Default Protocol Role
DefaultPort 16261 UDP (Steam connection path) Primary client connection port when Steam is enabled
UDPPort 16262 UDP (UDPRakNet) Second game port; must be open and not blocked by the host firewall
RCONPort 27015 (typical default) TCP Remote console. Leave disabled or firewalled if you do not use RCON; set a strong RCONPassword if you do

Open both 16261 and 16262 UDP in the cloud security group / firewall for public multiplayer. Forward only what you need. After the process starts, confirm logs show listening on the expected ports before inviting players.

Secure VPS checklist (any provider)

  • Create the VPS with a current LTS image (for example Ubuntu 22.04/24.04) and SSH key login; disable password SSH once keys work.
  • Create a non-root sudo user; avoid day-to-day root shells for game files.
  • Enable a host firewall (ufw/firewalld/cloud SG): allow SSH from your IP if practical, allow UDP 16261–16262, deny everything else by default.
  • If you run a web panel, put it behind a domain with HTTPS (reverse proxy + valid certificate). Do not log in over plain http://server-ip.
  • Keep OS packages updated; reboot when the kernel requires it.
  • Schedule off-box backups of Zomboid/Server config and saves; provider snapshots alone are not a restore test.
  • Never paste unknown scripts into a root console. Download from a pinned release, verify checksum/signature when published, read the script, then run deliberately.

SteamCMD dedicated server (panel-free outline)

This is the simplest always-on path when you only need Project Zomboid:

  1. Install 64-bit dependencies your distro needs for SteamCMD and the game runtime (follow The Indie Stone’s current dedicated-server notes for your OS).
  2. Install SteamCMD as a service user and download the Project Zomboid dedicated server app.
  3. Start once to generate default INI / sandbox files under the server user’s home Zomboid tree.
  4. Set DefaultPort=16261, UDPPort=16262, server name, passwords, and sandbox options. See the server settings guide for Build 42.19 keys.
  5. Open the two UDP ports, start the server under systemd or a process supervisor, confirm the server has started in logs, then connect from the client with IP and port 16261.

SteamCMD app IDs and launch flags can change with official packages—use the current Steam / game documentation for the install command rather than outdated one-liners.

Optional: Pterodactyl panel (high level only)

Pterodactyl is a full game-panel stack: Panel (PHP web app + database + Redis + queue worker) and Wings (Docker node daemon). Official supported OS examples include recent Ubuntu, Debian, and RHEL-family releases; OpenVZ-style hosts are a poor fit because of Docker limits.

Use official docs, not third-party “one script” installers Install from the published Panel and Wings guides:
  • Panel getting started — dependencies, release tarball, database, first admin user, queue worker
  • Wings installing — Docker, Wings binary, node config
  • Webserver + TLS configuration from the same documentation set
Back up the Panel APP_KEY offline. Losing it makes encrypted panel data unrecoverable even with SQL dumps.

Project Zomboid egg

Community eggs live under the Pelican eggs project (formerly parkervcp). The Project Zomboid egg and README are currently at:

That egg’s README matches the game’s dual-port layout (DefaultPort 16261, UDPPort 16262) and warns that default in-game “backup on start” can fill disk inside the container—either set BackupsOnStart=false after you have an external backup plan, or raise Wings temporary space as documented there.

In the panel: create a Location and Node, allocate both game UDP ports to the server instance, import the egg into a Nest, create the server, watch the install log, then start.

Practical limits

  • Do not paste untrusted panel.sh / compose files as root on the machine
  • Do not expect a fixed dollar cost or permanent “free” tier
  • Panel UIs change—prefer official docs over old screenshots
  • After a major game update, recheck ports and server options before inviting players

After the process is running

  1. Join with the public IP (or domain) and port 16261; confirm both UDP ports are open if the client hangs on “Getting server info”.
  2. Configure population, PVP, safehouses, and Discord options carefully — see server settings (Build 42.19) and admin tips.
  3. Add mods with matching WorkshopItems and Mods lists: server mods guide.
  4. Whitelist / account policy: dedicated whitelist guide.
  5. Plan resets and backups before you need them: soft reset (and always keep offline copies of saves).

Quick troubleshooting

Symptom Likely cause What to check
Friends cannot see / join the server Firewall or only one port open UDP 16261 and 16262; cloud SG + host firewall; correct public IP
Panel unreachable or browser warns on HTTP No reverse proxy / TLS Finish official webserver + certificate steps; do not use plain HTTP for admin login
Egg install dies with disk full On-start backups filling tmp / volume External backup plan; BackupsOnStart; Wings disk / tmpfs guidance in the egg README
Server starts then OOMs JVM heap vs VPS RAM Lower -Xmx or upgrade RAM; see memory guide
RCON tools fail Port closed or password empty Only open TCP RCON if needed; set password; restrict source IPs

Related guides

Build 42.19 notes Port defaults above match current server options (DefaultPort, UDPPort, RCONPort). Cloud prices, panel UI, and egg layout can change—re-check official Panel/Wings docs and the egg README on the day you install. This is a self-host checklist, not a managed hosting service.