Project Zomboid Dedicated Server: Setup & Settings (Build 42)
A Project Zomboid dedicated server is a free download: Steam app 380870, which SteamCMD fetches with an anonymous login. It listens on port 16261 and 16262 by default, starts from StartServer64.bat on Windows or start-server.sh on Linux, and keeps its settings in servertest.ini unless you give it another name. Below: install, ports, memory, the config files, start options and all 144 server settings with their defaults.
Ports, scripts, memory, files and settings are read from the Build 42 server itself (depot manifest of 23 Sept 2026). Install and connection steps are adapted from PZwiki, Dedicated server (CC BY-NC-SA 3.0).
1. Install the server
In the Steam client the server sits under Library → Tools as “Project Zomboid Dedicated Server”; PZwiki advises not to start it from Steam. On a machine without Steam, use SteamCMD:
force_install_dir <folder for the server> login anonymous app_update 380870 validate quit
Steps adapted from PZwiki, Dedicated server. PZwiki also advises running the server on Linux as its own user, not as root. Re-running app_update 380870 validate updates it.
2. Ports
| Setting | Default | The game's tooltip |
|---|---|---|
| DefaultPort | 16261 | Default starting port for player data. If UDP, this is this one of two ports used. |
| UDPPort | 16262 | — |
| RCONPort | 27015 | The port for the RCON (Remote Console) |
Players reach the server on 16261 and 16262, so both must be open in the firewall and forwarded on the router; PZwiki gives both as UDP (PZwiki, Dedicated server). A second server on the same machine needs its own pair, set in its own .ini.
3. Start scripts and memory
| System | Start with | Memory as shipped |
|---|---|---|
| Windows | StartServer64.bat, StartServer64_nosteam.bat | -Xms16g -Xmx16g in StartServer64.bat |
| Linux | start-server.sh | -Xmx8g in ProjectZomboid64.json |
| macOS | StartServer.command | not read |
On Windows, StartServer64.bat reserves 16 GB up front (-Xms16g) and caps the server at 16 GB. On a machine with less free memory, lower both numbers in that file before the first start — PZwiki notes the server will not start otherwise (PZwiki, Dedicated server). On Linux the limit is -Xmx8g in ProjectZomboid64.json — the script itself says to edit it there: “Edit memory option -Xmx in ProjectZomboid64.json for 64bit servers”.
4. First start and the config files
The first start asks for the admin account's password in the console — “Enter new administrator password:” — then writes the server's files into its Server folder — %USERPROFILE%\Zomboid\server on Windows, ~/Zomboid/Server on Linux (PZwiki, Server settings). Each file is named after the server, servertest by default; the server's code names 5 of them, where PZwiki lists four (it leaves out servertest_zombies.ini):
- servertest.ini
- servertest_SandboxVars.lua
- servertest_spawnpoints.lua
- servertest_spawnregions.lua
- servertest_zombies.ini
servertest.ini holds the server settings listed below; servertest_SandboxVars.lua holds the world's sandbox rules (every option and preset: sandbox settings). Settings can also be changed while the server runs, with /showoptions, /changeoption and /reloadoptions.
5. Start options
Add them after the start script, for example start-server.sh -servername mysurvivors:
-adminpassword— admin password-adminusername— admin account name-cachedir=— moves the game's Zomboid folder, where the Server folder lives, to another path-nosteam— a non-Steam server, for players on the non-Steam version (GOG)-servername— picks the server's name — which config files it reads and which save it uses
16 more options are in the server's code without a description we can source: -anti-cheats, -console_dot_txt_size_kb=, -coop, -debugLogFile=, -debuglog=, -disablelog=, -gui, -ip, -no-attachment, -no-foraging, -no-worldgen, -port, -seed=, -steamvac, -udpport, -useTimeStampedLogFileNames=. The -servername and -nosteam descriptions follow PZwiki, Dedicated server; -cachedir= follows PZwiki, Game files.
6. Join the server
In the game: Join → Favorites, add the server's public IP and port 16261, then an account name and password (PZwiki, Dedicated server). Whether a new name gets in depends on the Open setting, on by default — the game's tooltip: “Clients may join without already having an account in the whitelist. If set to false, administrators must manually create username/password combos.” Players on the non-Steam version need a server started with -nosteam; on a LAN or VPN use the local address.
All 144 server settings (servertest.ini)
Every setting the server reads from its .ini, with its default and allowed range from the code and the tooltip the game shows for it. 23 settings ship without a tooltip. One mismatch inside the game: the BadWordPolicy tooltip lists choices up to 4, but the code accepts 1–3.
144 of 144 settings
| Setting | Default | What it does (the game's tooltip) |
|---|---|---|
| PVP | true | Players can hurt and kill other players |
| PVPLogToolChat | true | PVP is logged to admin chat |
| PVPLogToolFile | true | PVP is logged to file |
| PauseEmpty | true | Game time stops when there are no players online |
| GlobalChat | true | Toggles global chat on or off. |
| ChatStreams | s,r,a,w,y,sh,f,all | No tooltip in the game |
| Open | true | Clients may join without already having an account in the whitelist. If set to false, administrators must manually create username/password combos. |
| ServerWelcomeMessage | Welcome to Project Zomboid Multiplayer! <LINE> <LINE> To int… | The first welcome message visible in the chat panel. This will be displayed immediately after player login. you can use RGB colours to chance the colour of the welcome message. You can also use < LINE>, without the space, to create a separate lines within your text. Use: \<RGB:1,0,0> This message will show up red! |
| DisplayUserName | true | Display usernames above player's heads in-game. |
| ShowFirstAndLastName | false | Display first & last name above player's heads. |
| UsernameDisguises | false | No tooltip in the game |
| HideDisguisedUserName | false | No tooltip in the game |
| SwitchZombiesOwnershipEachUpdate | false | No tooltip in the game |
| SpawnPoint | 0,0,0 | Force every new player to spawn at these set x,y,z world coordinates. Find desired coordinates at map.projectzomboid.com. (Ignored when 0,0,0) |
| SafetySystem | true | Players can enter and leave PVP on an individual basis. A player can only hurt another player when at least one of them is in PVP mode - as shown by the unobscured skull and crossbones on the left of the screen. When SafetySystem=false, players are free to hurt each other at any time if PVP is enabled. |
| ShowSafety | true | Display a skull icon over the head of players who have entered PVP mode |
| SafetyToggleTimer | 20–1000 | The time it takes for a player to enter and leave PVP mode |
| SafetyCooldownTimer | 30–1000 | The delay before a player can enter or leave PVP mode again, having recently done so |
| SafetyDisconnectDelay | 600–60 | No tooltip in the game |
| SpawnItems | (empty) | Item types new players spawn with.\nSeparate multiple item types with commas.\nExample: Base.Axe,Base.Bag_BigHikingBag |
| DefaultPort | 162610–65535 | Default starting port for player data. If UDP, this is this one of two ports used. |
| UDPPort | 162620–65535 | No tooltip in the game |
| ResetID | 10000000000–2147483647 | Reset ID determines if the server has undergone a soft-reset. If this number does match the client, the client must create a new character. Used in conjunction with PlayerServerID. It is strongly advised that you backup these IDs somewhere |
| Mods | (empty) | Enter the mod loading ID here. It can be found in \Steam\steamapps\workshop\modID\mods\modName\info.txt |
| Map | Muldraugh, KY | Enter the foldername of the mod found in \Steam\steamapps\workshop\modID\mods\modName\media\maps\ |
| DoLuaChecksum | true | Kick clients whose game files don't match the server's. |
| DenyLoginOnOverloadedServer | true | No tooltip in the game |
| Public | false | Shows the server on the in-game browser. (Note: Steam-enabled servers are always visible in the Steam server browser) |
| PublicName | My PZ Server | Name of the server displayed in the in-game browser and, if applicable, the Steam browser |
| PublicDescription | (empty) | Description displayed in the in-game public server browser. Typing \n will create a new line in your description |
| MaxPlayers | 321–254 | Maximum number of players that can be on the server at one time. This excludes admins. WARNING: Server player counts above 32 will potentially result in poor map streaming and desync. Please advance with caution. |
| PingLimit | 00–2147483647 | Ping limit, in milliseconds, before a player is kicked from the server. (Set to 0 to disable) |
| SafehousePreventsLootRespawn | true | Items will not respawn in buildings that players have claimed as a safehouse |
| DropOffWhiteListAfterDeath | false | Remove player accounts from the whitelist after death. This prevents players creating a new character after death on Open=false servers |
| NoFire | false | All forms of fire are disabled - except for campfires |
| AnnounceDeath | false | If checked, every time a player dies a global message will be displayed in the chat |
| AnnounceAnimalDeath | false | If checked, every time an animal dies a global message will be displayed in the chat |
| SaveWorldEveryMinutes | 00–2147483647 | Loaded parts of the map are saved after this set number of real-world minutes have passed. (The map is usually saved only after clients leave a loaded area) |
| PlayerSafehouse | false | Both admins and players can claim safehouses |
| AdminSafehouse | false | Only admins can claim safehouses |
| SafehouseAllowTrepass | true | Allow non-members to enter a safehouse without being invited |
| SafehouseAllowFire | true | Allow fire to damage safehouses |
| SafehouseAllowLoot | true | Allow non-members to take items from safehouses |
| SafehouseAllowRespawn | false | Players will respawn in a safehouse that they were a member of before they died |
| SafehouseDaySurvivedToClaim | 00–2147483647 | Players must have survived this number of in-game days before they are allowed to claim a safehouse |
| SafeHouseRemovalTime | 1440–2147483647 | Players are automatically removed from a safehouse they have not visited for this many real-world hours |
| SafehouseAllowNonResidential | false | Governs whether players can claim non-residential buildings. |
| SafehouseDisableDisguises | true | No tooltip in the game |
| MaxSafezoneSize | 200000–2147483647 | No tooltip in the game |
| AllowDestructionBySledgehammer | true | Allow players to destroy world objects with sledgehammers |
| SledgehammerOnlyInSafehouse | false | Allow players to destroy world objects only in their safehouse (require AllowDestructionBySledgehammer to true). |
| War | false | No tooltip in the game |
| WarStartDelay | 60060–2147483647 | Time in seconds before the war starts. |
| WarDuration | 360060–2147483647 | War duration in seconds. |
| WarSafehouseHitPoints | 30–2147483647 | Safehouse hit points limit. |
| ServerPlayerID | 2147483647 | ServerPlayerID determines if a character is from another server, or single player. This value may be changed by soft resets. If this number does match the client, the client must create a new character. This is used in conjunction with ResetID. It is strongly advised that you backup these IDs somewhere |
| RCONPort | 270150–65535 | The port for the RCON (Remote Console) |
| RCONPassword | (empty) | RCON password (Pick a strong password) |
| DiscordEnable | false | Enables global text chat integration with a Discord channel |
| DiscordToken | (empty) | Discord bot access token |
| DiscordChatChannel | (empty) | The Discord chat channel name |
| DiscordLogChannel | (empty) | The Discord logs channel name |
| DiscordCommandChannel | (empty) | The Discord commands channel name |
| WebhookAddress | (empty) | The Slack incoming webhook URL |
| Password | (empty) | Clients must know this password to join the server. (Ignored when hosting a server via the Host button) |
| MaxAccountsPerUser | 00–2147483647 | Limits the number of different accounts a single Steam user may create on this server. Ignored when using the Hosts button. |
| AllowCoop | true | Allow co-op/splitscreen players |
| SleepAllowed | false | Players are allowed to sleep when their survivor becomes tired, but they do not NEED to sleep |
| SleepNeeded | false | Players get tired and need to sleep. (Ignored if SleepAllowed=false) |
| KnockedDownAllowed | false | WIP: Activating this setting may cause visual desynchronization of player positions. |
| SneakModeHideFromOtherPlayers | true | No tooltip in the game |
| UltraSpeedDoesnotAffectToAnimals | false | No tooltip in the game |
| WorkshopItems | (empty) | List Workshop Mod IDs for the server to download. Each must be separated by a semicolon. Example: WorkshopItems=514427485;513111049 |
| SteamScoreboard | false | Show Steam usernames and avatars in the Players list. |
| SteamVAC | true | Enable the Steam VAC system |
| UPnP | true | Attempt to configure a UPnP-enabled internet gateway to automatically setup port forwarding rules. The server will fall back to default ports if this fails |
| VoiceEnable | true | VOIP is enabled when checked |
| VoiceMinDistance | 100–100000 | The minimum tile distance over which VOIP sounds can be heard. |
| VoiceMaxDistance | 1000–100000 | The maximum tile distance over which VOIP sounds can be heard. |
| Voice3D | true | Toggle directional audio for VOIP |
| SpeedLimit | 7010–150 | No tooltip in the game |
| LoginQueueEnabled | false | No tooltip in the game |
| LoginQueueConnectTimeout | 6020–1200 | No tooltip in the game |
| server_browser_announced_ip | (empty) | Set the IP from which the server is broadcast. This is for network configurations with multiple IP addresses, such as server farms |
| PlayerRespawnWithSelf | false | Players can respawn in-game at the coordinates where they died |
| PlayerRespawnWithOther | false | Players can respawn in-game at a split screen / Remote Play player's location |
| FastForwardMultiplier | 401–100 | Governs how fast time passes while players sleep. Value multiplies the speed of the time that passes during sleeping. |
| DisableSafehouseWhenOwnerConnected | false | Safehouse acts like a normal house if an owner of the safehouse is connected (so secure when the owner is offline) |
| Faction | true | Players can create factions when true |
| FactionDaySurvivedToCreate | 00–2147483647 | Players must survive this number of in-game days before being allowed to create a faction |
| FactionPlayersRequiredForTag | 11–2147483647 | Number of players required as faction members before the faction owner can create a group tag |
| DisableRadioStaff | false | Disables radio transmissions from players with an access level |
| DisableRadioAdmin | true | Disables radio transmissions from players with 'admin' access level |
| DisableRadioGM | true | Disables radio transmissions from players with 'gm' access level |
| DisableRadioOverseer | false | Disables radio transmissions from players with 'overseer' access level |
| DisableRadioModerator | false | Disables radio transmissions from players with 'moderator' access level |
| DisableRadioInvisible | true | Disables radio transmissions from invisible players |
| ClientCommandFilter | -vehicle.*;+vehicle.damageWindow;+vehicle.fixPart;+vehicle.i… | Semicolon-separated list of commands that will not be written to the cmd.txt server log. For example: \n-vehicle. Inputting * means do NOT write any vehicle command. Inputting: \n+vehicle.installPart means DO write that command |
| ClientActionLogs | ISEnterVehicle;ISExitVehicle;ISTakeEngineParts; | Semicolon-separated list of actions that will be written to the ClientActionLogs.txt server log. |
| PerkLogs | true | Track changes in player perk levels in PerkLog.txt server log |
| ItemNumbersLimitPerContainer | 00–9000 | Maximum number of items that can be placed in a container. Zero means there is no limit. (PLEASE NOTE: This includes individual small items such as nails. A limit of 50 will mean only 50 nails can be stored.) |
| BloodSplatLifespanDays | 00–365 | Number of days before old blood splats are removed. Removal happens when map chunks are loaded. Zero means they will never disappear |
| AllowNonAsciiUsername | false | Allow use of non-ASCII (cyrillic etc) characters in usernames |
| BanKickGlobalSound | true | No tooltip in the game |
| RemovePlayerCorpsesOnCorpseRemoval | false | If enabled, when HoursForCorpseRemoval triggers, it will also remove player's corpses from the ground. |
| TrashDeleteAll | false | If true, player can use the "delete all" button on bins. |
| PVPMeleeWhileHitReaction | false | If true, player can hit again when struck by another player. |
| MouseOverToSeeDisplayName | true | If true, players will have to mouse over someone to see their display name. |
| HidePlayersBehindYou | true | If true, automatically hide the player you can't see (like zombies). |
| PVPMeleeDamageModifier | 300–500 | Damage multiplier for PVP melee attacks. |
| PVPFirearmDamageModifier | 500–500 | Damage multiplier for PVP ranged attacks. |
| CarEngineAttractionModifier | 0.50–10 | Modify the range of zombie attraction to cars. (Lower values can help with lag.) |
| PlayerBumpPlayer | false | Governs whether players bump (and knock over) other players when running through them. |
| MapRemotePlayerVisibility | 11–4 | Controls display of remote players on the in-game map.\n1=Hidden 2=Friends 3=Friends and nearby players 4=Everyone |
| BackupsCount | 51–300 | No tooltip in the game |
| BackupsOnStart | true | No tooltip in the game |
| BackupsOnVersionChange | true | No tooltip in the game |
| BackupsPeriod | 00–1500 | No tooltip in the game |
| DisableVehicleTowing | false | Disables vehicle towing |
| DisableTrailerTowing | false | Disables trailer towing |
| DisableBurntTowing | false | Disables burnt vehicle towing |
| BadWordListFile | (empty) | Path to the file with the list of words to be prohibited. Each word must be on a separate line |
| GoodWordListFile | (empty) | Path to the file with the list of words that should be allowed, even if they contain bad word. Each word should be on a separate line. |
| BadWordPolicy | 31–3 | What to do with the sender of a bad word in the chat: 1 - ban, 2 - kick, 3 - record the violation in the database, 4 - mute |
| BadWordReplacement | [HIDDEN] | The symbol or piece of text that will replace the bad word |
| AntiCheatSafety | 21–4 | Disables safety system anti-cheat protection. |
| AntiCheatSpeed | 21–4 | Disables character speed anti-cheat protection. |
| AntiCheatNoClip | 41–4 | Disables character no-clipping anti-cheat protection. |
| AntiCheatHit | 21–4 | Disables character hit anti-cheat protection. |
| AntiCheatPacketException | 41–4 | Disables packet exception checks anti-cheat protection. |
| AntiCheatPermission | 21–4 | Disables player permissions anti-cheat protection. |
| AntiCheatXP | 21–4 | Disables player XP anti-cheat protection. |
| AntiCheatSafeHouse | 21–4 | Disables safehouse anti-cheat protection. |
| AntiCheatPlayer | 21–4 | Disables player anti-cheat protection. |
| AntiCheatChecksum | 21–4 | Disables checksum anti-cheat protection. |
| MultiplayerStatisticsPeriod | 10–10 | Sets the multiplayer update period in seconds. Statistics is disabled if value is 0. |
| DisableScoreboard | false | Disables scoreboard. |
| HideAdminsInPlayerList | false | Hides admins in the player list. |
| MaxPacketsPerSecond | 300100–1000 | Sets the limit for processing network packets from each client on the server. |
| ShowCoordinates | false | Shows player character coordinates in the lower right corner. |
| Seed | set at run time | The worldgen seed used to generate the world. If you want to change this, put a new value in and delete map_worldgen.bin in your save directory. |
| UsePhysicsHitReaction | false | No tooltip in the game |
| ChatMessageCharacterLimit | 20064–1024 | No tooltip in the game |
| ChatMessageSlowModeTime | 31–30 | No tooltip in the game |
More Project Zomboid
Install, port-forwarding, folder and joining details on this page are adapted from PZwiki (PZwiki, Dedicated server, Server settings, Game files) and shared under the same licence, CC BY-NC-SA 3.0. Project Zomboid is a game by The Indie Stone. PinDrop is fan-made and not affiliated with The Indie Stone.