Game Hosting home
All servers onlineOpening in wavesStart a server

Project Zomboid Server INI: Edit and Verify Changes

Find the active Project Zomboid server INI, make one reversible edit, and verify it survives two clean restarts on the same profile.

Difficulty
NormalDifficulty Normal
Time to do
14 min
Reading
8 min
Updated
By
Game Hosting team

You will need

  • A Project Zomboid dedicated server on the same build as the clients
  • Access to the server launch configuration and its operating-system account
  • Permission to stop and restart the server
  • A recoverable copy of the selected INI before editing

If a Project Zomboid server ignores an INI edit, first confirm that you changed the file for the profile and operating-system account that actually starts the dedicated server. Then stop the server, make one reversible change, and verify it in the generated file and after two clean restarts. This guide records a real Build 42.20.4 Linux dedicated-server test; the test did not join a game client, inspect a hosting panel, or expose a public port, so those checks stay separate.

Find the Project Zomboid server INI for the running account#

The active INI belongs to the operating-system account and server data directory used by the process. A Windows user’s Zomboid folder is not the same place as a Linux service account’s folder, and a container may keep its data in a mounted directory. Start with the server’s launch configuration and the account that runs it; don’t search for a filename first and assume the first match is live.

In the isolated Linux test, the service user was steam, and Project Zomboid generated the profile under that account:

text
/home/steam/Zomboid/Server/c02test.ini

That absolute path belongs to the test container. On another Linux installation, the home directory may differ, so check the service account’s home and the configured data directory. If a directory is mounted into a container, inspect the mounted source too: editing a file in the image layer can appear to work and then disappear when the container is replaced.

Check that the candidate file exists and inspect its modification time before you edit it. Compare its profile name with the launch settings in the next step. If several INI files have similar timestamps or names, stop and identify which account and data directory the running service uses instead of editing each copy until one changes.

Match -servername to the generated filename#

On a Linux dedicated server, the -servername argument selects the profile name used for its server files. The test launched c02test and generated c02test.ini in ~/Zomboid/Server; the file’s name matched the launch argument exactly. The Indie Stone administrator Beard described servertest as the default profile and -servername as the way to choose another name in an older dedicated-server support reply. Treat that post as background, then check your current launch settings and files.

For this server, the launch command included:

bash
./start-server.sh -servername c02test -ip 127.0.0.1

The -ip 127.0.0.1 argument was used only to bind the isolated test to its own loopback interface. It is not a public-hosting recommendation. The profile name in the command, rather than the word servertest, tells you which file the test generated:

Launch profile Generated INI in the test
-servername c02test ~/Zomboid/Server/c02test.ini
No profile name assumed Check the actual start configuration before choosing a file

If the INI name does not line up with the profile, check for a different service account, a second server instance, a different data mount, or a panel-managed start command. Don’t rename the file to force a match; first establish which source the running server reads.

Stop cleanly and keep a recoverable copy#

Stop the dedicated server before editing its INI. In the isolated test, entering quit in the server console logged Shutdown handling started, saved the world data, and ended the server process. Wait for shutdown to finish before copying the file; a copy taken while the server is writing its configuration may not reflect a consistent state.

Make a backup beside the selected profile, then record the values you intend to change. For the test profile, a Linux shell copy looks like this:

bash
cp -p ~/Zomboid/Server/c02test.ini ~/Zomboid/Server/c02test.ini.before-test

Use a new backup name for each change so you can tell which file is original. Keep it readable only to the server owner if it contains passwords or other private settings. The article’s test never publishes its temporary administrator password; it is not needed to demonstrate INI profile selection or a port bind.

If the server will not stop normally, don’t edit the live file or kill it as a shortcut. Find the supported stop control for your installation, take the last known consistent backup, and confirm the process has exited before continuing. This procedure tests the native dedicated-server file; it does not establish how a provider panel handles saves or regenerates settings.

Change one harmless key with valid INI syntax#

Use a single key=value change so you can connect the edit to one observable result. A fresh Build 42.20.4 test profile contained DefaultPort=16261; after a clean stop, the test changed only that value to 16361. The separate UDPPort=16262 stayed untouched. That narrow change made it possible to check which UDP socket the restarted server opened without changing sandbox rules, player accounts, mods, or world data.

ini
DefaultPort=16261
UDPPort=16262
Public=false

The test changed the file to:

ini
DefaultPort=16361
UDPPort=16262
Public=false

In your own profile, choose a value that is appropriate for your planned network configuration and make a note of the exact old and new lines. This article’s value is a private test fixture, not an instruction to move a live server to UDP port 16361. If you change a production server’s network ports, separately configure and verify the matching firewall, router, and client connection details.

Don’t change several settings at once. If the file has comments or a panel-generated format, preserve the file’s existing key spelling and line structure. A typo may leave the old value in effect or make the intended change hard to identify; after saving, read the line back from the same profile file before starting the process.

Restart the same profile and read the build log#

Start the same server profile under the same account and data directory. The isolated test used the dedicated-server script with -servername c02test; on startup its log reported version=42.20.4 b0bbce05d5 and *** SERVER STARTED ****. The Steam app manifest reported build ID 24909836. Those observations tie the generated INI to an actual Build 42.20.4 server process instead of relying on a current-version web page alone.

The version matters because a configuration procedure tested on an older build or another branch is not automatically a current recipe. The official Build 42.20 release announcement records its move to Stable; check the official version announcement and your own server log before comparing settings. Make sure the clients you intend to use follow the same supported build and branch. This guide does not promise conversion between incompatible saves.

Look for the startup banner and current version in the server’s log, not just a process that remains open. If startup prints the same profile defaults as before, recheck the -servername value and data directory. If the log stops before the server-ready line or reports a different build, resolve that first; the INI persistence check is not complete.

Confirm the edited value survives two clean restarts#

The file, startup log, and listener should tell one consistent story. In the isolated Linux test, the edited DefaultPort=16361 appeared in c02test.ini, and the running process opened UDP on 127.0.0.1:16361; the unchanged UDPPort listener remained 127.0.0.1:16262. After a clean shutdown and a second restart, the same two loopback sockets appeared and the INI still contained DefaultPort=16361.

Check Observed in the test What it establishes
Generated file DefaultPort=16361 after shutdown The saved profile kept the edited value
Startup log version=42.20.4 b0bbce05d5; *** SERVER STARTED **** The expected dedicated-server build reached its ready line
UDP sockets 127.0.0.1:16361 and 127.0.0.1:16262 The process bound the edited and unchanged values in this container

For reference, /proc/net/udp printed the test addresses in hexadecimal as 0100007F:3FE9 and 0100007F:3F86. Those map to the two loopback ports above. The test container had no host port mapping, so this is evidence that the server read and bound its local setting, not that a friend can connect over the Internet. Repeat the stop, restart, file, log, and listener check once more after your first successful start; a value that survives one start but vanishes after shutdown may be coming from a different source.

Separate INI persistence from panel and player-join checks#

If the file changes back after a restart, compare the panel’s saved value with the server profile, data directory, and launch arguments. A provider may treat panel fields as its source of truth, but panel behavior varies; no current Game Hosting panel was tested for this guide. Don’t assume that file access, automated backups, or an editable panel setting exists unless the provider confirms it for your plan.

The loopback test also did not run a player client or validate a public firewall path. A remote join needs its own test with the correct game build, server address, configured ports, and network rules. An open socket on 127.0.0.1 is local to that machine; it is not proof that the address is reachable from outside it.

If keeping a machine and its configuration available is the burden you are trying to remove, you can check the Project Zomboid hosting page for current availability. At the capacity check for this guide, the endpoint returned open:false, so the page is waitlist-only; it does not promise immediate server provisioning. If self-hosting already works for your group, keep the reversible backup and restart checks instead of changing providers just to edit one file.

Quick answers

Where do I find the Project Zomboid server INI file?

Match the dedicated server’s active profile and operating-system account to the generated file.

Is servertest.ini always the active file?

No. Match the server launch profile and account to the generated filename before editing.

Can I edit the Project Zomboid server INI while it is running?

Stop the dedicated server cleanly, save a recoverable copy, and then edit the selected file.

Why does my hosting panel restore the previous INI value?

A panel may keep its own saved configuration; compare that source with the file and restart result. The Game Hosting panel was not tested for this guide.