Document Control¶
| Field | Value |
|---|---|
| Document ID | admins-server-ini-reference |
| Version | 1.0.0 |
| Status | approved |
| Confidence | Medium |
| Category (track) | Admins |
| Build | both |
| Owner | PZ Knowledge-Base Pipeline |
| Created | 2026-07-30 |
| Updated | 2026-10-08 |
| Review due | 2027-01-07 |
| Game versions verified | 41.78.16, 42.20, 42.21 |
Executive Summary¶
This is the Admins-track per-key reference for <servername>.ini — the file that governs a Project Zomboid dedicated server's network identity, player admission, PVP rules, mod wiring, save/backup cadence, anti-cheat posture, VOIP, and Discord bridge. Where the parent overview (admins-foundation) maps which file does what, this document goes one level down: every key covered here appears as a table row with its type, default, documented value range, and the build(s) whose reference revision documents it. The organizing principle is functional area, so an operator can open the section that matches the change they want to make and copy the keys out.
The two anchor sources are pinned wiki revisions: the Build 42-era "Server settings" page (revision 1443167, page versioned against 42.20.0) [2] and the Build 41-era revision of the same page (revision 157571, page versioned against 41.78.16, retrieved through an Internet Archive capture) [3]. Comparing the two yields a concrete B41→B42 delta: one key renamed, a loot-respawn trio relocated out of the .ini into SandboxVars, several defaults shifted (player cap, ping limit, VOIP falloff), and whole families — AntiCheat*, Backups*, chat moderation, login queueing — that only the B42-era revision documents.
Document-level confidence is Medium: the value tables rest on a fact-only community wiki (pinned revisions, both builds), not on game files or official patch notes, and the B41-era revision self-describes as incomplete. Where the two revisions disagree, or where a key's semantics are simply not documented, this reference says so instead of guessing; genuinely unverifiable community lore (such as the numeric anti-cheat mode mapping) is quarantined at the bottom.
Key Takeaways¶
- The
.iniuses flatKey=Valuelines; every key in this document is tabulated with type, default, range and build tag, sourced from pinned wiki revisions for 42.20.0 and 41.78.16 (cited) (both) - Game traffic needs
DefaultPort=16261reachable over UDP, plusUDPPort=16262as documented at B42; RCON listens separately onRCONPort=27015behindRCONPassword(cited) (both) - Admission control is the trio
Open,Password, and the whitelist behaviours (DropOffWhiteListAfterDeath,MaxAccountsPerUser, B41'sAutoCreateUserInWhiteList) — an internet-facing server should not run defaults (cited) (both) - Mods are wired as the paired lists
WorkshopItems=(semicolon-separated Workshop IDs) andMods=(loading IDs from each mod'sinfo.txt); the pinned B42 revision shows no separator example forMods=(cited) (both) - Backups are a B42-documented key family:
BackupsCount(1–300, default 5),BackupsOnStart,BackupsOnVersionChange,BackupsPeriod; autosave cadence isSaveWorldEveryMinuteson both builds (cited) (B42) - The ten-key
AntiCheat*family appears only in the B42-era revision, alongside 42.20's reworked, re-enabled server-side anti-cheat; the meaning of its numeric values is not documented in the pinned revision and is quarantined below (cited / community, unverified) (B42) - The revision-to-revision delta shows one rename (
DisableSafehouseWhenPlayerConnected→DisableSafehouseWhenOwnerConnected), a loot-respawn trio moved to SandboxVars, and default shifts includingMaxPlayers16→32 andVoiceMaxDistance300→100 (cited) (both) - A key absent from the B41-era revision is not proven absent from the B41 game — that page self-describes as incomplete; treat B42-only tags here as documentation facts, not changelog facts (cited) (B41)
Purpose¶
This document answers the working admin's question: "which .ini key controls X, what may I set it to, and does it exist on my build?" It is the settings companion to the Admins-track foundation: the foundation explains where servertest.ini lives, how it is generated, and how edits are applied; this reference enumerates the keys themselves, grouped the way operators actually change them — network, players, PVP, mods, saves, anti-cheat, performance, voice, chat/Discord, logging. It also exists to feed the knowledge base's deterministic server-setting QA gate: the key tables below are the parseable schema surface for that gate.
Scope¶
Covered: <servername>.ini keys in the functional areas above, as documented by the pinned B42-era revision (1443167, versioned 42.20.0) [2] and the B41-era revision (157571, versioned 41.78.16) [3] of the wiki's Server settings page, with build tags wherever the two revisions differ. Startup-parameter overrides that interact with these keys (-port, -udpport, -servername) are noted where relevant [5].
Not covered: SandboxVars.lua gameplay settings (the sibling document admins-sandboxvars-reference owns those), spawnpoint/spawnregion Lua files, install/branch procedure, RAM sizing, and admin/RCON command catalogues — see admins-foundation for the map. This document does not claim exhaustiveness over every .ini key ever shipped: it covers the listed areas thoroughly and tags each key's documentation status honestly. Unstable-branch behaviour after 42.20 is out of scope.
Definitions¶
- Key — one
Name=Valueline in<servername>.ini; names are case-sensitive strings with no spaces around=in the generated file [2]. - Documented default — the value the pinned wiki revision states as
Default:; for B41-only keys the revision prints a value without distinguishing "shown" from "default", and the tables below note this [3]. - Soft reset — a server wipe that forces clients to make new characters, tracked by the paired identity keys
ResetIDandServerPlayerID[2]. - Loading ID — a mod's internal identifier from its
info.txt, used inMods=; distinct from the numeric Steam Workshop ID used inWorkshopItems=[2]. - Safety system — the per-player PVP opt-in mechanism: with
SafetySystem=true, a player can hurt another only when at least one of the two has PVP mode switched on [2]. - RCON — the remote console interface on
RCONPort/RCONPassword; compatible with generic Source-RCON tooling [2] [6].
Build Applicability¶
| Build | Applies | Verified against | Notes |
|---|---|---|---|
| B41 (legacy41) | Yes | 41.78.16 | Key facts from wiki revision 157571, page versioned 41.78.16 [3]; page self-flags as incomplete |
| B42 (stable) | Yes | 42.20, 42.21 | Key facts from wiki revision 1443167, page versioned 42.20.0 [2]; 42.20 stable since 2026-07-29 [1]; 42.21 stable since 2026-09-28 [11], with the 42.20.1-42.21 patch notes reviewed [7] [8] [9] [10] [11] [12] |
The build column in every table below records which pinned revision documents the key: both, B41 (revision 157571 only), or B42 (revision 1443167 only). This is deliberately a documentation claim, not a game-code claim — the B41-era page carries an explicit editorial warning that it needs improvement [3], so absence there is weak evidence of absence in the 41.78.16 binary. Where that distinction matters operationally it is called out in the notes and in the quarantine section.
42.21 re-check scope. What was re-checked for 42.21: the official 42.20.1, 42.20.3, 42.20.4 and 42.21 patch notes [7] [8] [9] [10] [11] and the TIS forum 42.21 changelist [12], against every statement in this document that they touch (player limit, anti-cheat, Steam authentication, safehouse, SafetyDisconnectDelay, UsernameDisguises and Discord entries). What could not be re-checked: the key names, defaults and ranges remain pinned to wiki revisions 1443167 and 157571 [2] [3] and were not re-extracted from a 42.21 server install; the patch notes name no changed default or new key. Statements not mentioned below are carried forward from 42.20 with no contradicting change found in those notes; they were not re-tested.
Reference¶
How to read the key tables¶
All rows in this section are sourced from the two pinned revisions: values, defaults and ranges tagged (B42) or listed for both come from revision 1443167 [2]; values tagged (B41) come from revision 157571 [3]. Three reading rules apply. First, types are inferred from the documented default and range (a true/false default ⇒ boolean; a whole-number default with integer bounds ⇒ integer; a decimal default ⇒ decimal; otherwise string or list) — the wiki does not publish a type column, so treat the type as a strong convention rather than a specification [2]. Second, ranges come almost entirely from the B42-era revision, which prints explicit minima and maxima; the B41-era revision generally does not, so a range on a both key is a B42-documented range unless tagged otherwise [2] [3]. Third, for B41-only keys the Default column shows the value printed in that revision, which does not separate example values from true defaults [3].
Operationally, the file is read at startup, and .ini edits can be applied to a live server with the reloadoptions admin command; the current effective values can be printed with showoptions [4]. The keys DefaultPort and UDPPort can be overridden per-launch by the -port and -udpport startup parameters, and the whole file is switched by -servername [5].
Network, ports and server visibility¶
Player traffic uses the two game ports, which must be forwarded and allowed through the host firewall; RCON is a separate listener (next section) [2] [4].
| Key | Type | Default | Range | Build | Notes |
|---|---|---|---|---|---|
DefaultPort |
integer | 16261 | 0–65535 | both | Primary game port; must be reachable from the internet [2]. Launch-time override: -port [5] |
UDPPort |
integer | 16262 | 0–65535 | B42 | Second game port in the B42-era revision [2]; override: -udpport [5]. Not listed in the B41-era revision [3] |
SteamPort1 |
integer | 8766 | — | B41 | Steam-related port pair documented only at B41 [3] |
SteamPort2 |
integer | 8767 | — | B41 | As above [3] |
UPnP |
boolean | true | — | both | Asks a UPnP gateway to map the ports automatically; reverts to default ports when mapping fails [2] |
UPnPLeaseTime |
integer | 86400 | — | B41 | Lease length for the UPnP mapping [3] |
UPnPZeroLeaseTimeFallback |
boolean | true | — | B41 | Fallback behaviour when a zero lease time is refused [3] |
UPnPForce |
boolean | true | — | B41 | Forces the mapping attempt [3] |
Public |
boolean | true (B41) / false (B42) | — | both | Listing in the in-game browser; the B42 revision notes Steam-enabled servers always show in the Steam server browser regardless [2] [3] |
PublicName |
string | (empty) | — | both | Display name in the browsers [2] |
PublicDescription |
string | (empty) | — | both | Browser description text [2] |
server_browser_announced_ip |
string | (empty) | — | both | Pins which IP is advertised on multi-IP hosts [2] |
DenyLoginOnOverloadedServer |
boolean | true | — | both | Refuses logins while the server is overloaded; the B41-era revision marks it untested [2] [3] |
PingLimit |
integer | 250 (B41) / 0 (B42) | 0–2147483647 | both | Kick threshold in milliseconds; 0 disables the check (B42) [2] [3] |
PingFrequency |
integer | 10 | — | B41 | Connection-check cadence, B41-era revision only [3] |
UseTCPForMapDownloads |
boolean | false | — | B41 | Map-transfer transport toggle, B41-era revision only [3] |
MaxPacketsPerSecond |
integer | 300 | 100–1000 | B42 | Per-client cap on processed network packets [2] |
LoginQueueEnabled |
boolean | false | — | B42 | Turns on a login queue [2] |
LoginQueueConnectTimeout |
integer | 60 | 20–1200 | B42 | Queue connection timeout, seconds [2] |
CoopServerLaunchTimeout |
integer | 20 | — | B41 | Co-op child-server launch timeout [3] |
CoopMasterPingTimeout |
integer | 60 | — | B41 | Co-op master ping timeout [3] |
RCON¶
| Key | Type | Default | Range | Build | Notes |
|---|---|---|---|---|---|
RCONPort |
integer | 27015 | 0–65535 | both | Remote-console listener, independent of the game ports [2] [3] |
RCONPassword |
string | (empty) | — | both | The B42 revision instructs choosing a strong value [2]; empty means no authenticated remote console. Generic Source-RCON clients such as gorcon's rcon-cli list Project Zomboid support [6] |
Players, accounts and whitelist¶
Admission is layered: Open decides whether unknown accounts may join at all, Password gates the door, and the whitelist keys govern account lifecycle [2].
| Key | Type | Default | Range | Build | Notes |
|---|---|---|---|---|---|
MaxPlayers |
integer | 16 (B41) / 32 (B42) | 1–100 (B42, per the pinned revision) | both | Admins are not counted against the cap; the B42 revision warns that values above 32 risk map-streaming problems and desync [2] [3]. The 42.20.3 notes describe improved player-limit handling with support for up to 254 players and administrator access when a server is full (B42) [8]; the pinned revision's 1–100 range predates that note and has not been re-extracted |
Open |
boolean | true | — | both | true = anyone may join and an account is created for them; false = an administrator must pre-create username/password pairs [2] |
Password |
string | (empty) | — | both | Join password; ignored when the server is run through the client's Host button [2] |
AutoCreateUserInWhiteList |
boolean | false | — | B41 | Auto-enrols joining users into the whitelist; B41-era revision only [3] |
DropOffWhiteListAfterDeath |
boolean | false | — | both | Deletes the account on character death — a permadeath device for Open=false servers [2] |
MaxAccountsPerUser |
integer | 0 | 0–2147483647 | both | Caps accounts per Steam user; 0 = unlimited; ignored for Host-button servers [2] |
AllowNonAsciiUsername |
boolean | false | — | both | Permits non-ASCII (e.g. Cyrillic) characters in usernames [2] |
AllowCoop |
boolean | true | — | B42 | Admits co-op/splitscreen players [2] |
DisplayUserName |
boolean | true | — | both | Renders account names over characters [2] |
ShowFirstAndLastName |
boolean | false | — | both | Renders character (not account) names instead [2] |
MouseOverToSeeDisplayName |
boolean | true | — | both | Requires hovering to reveal a name [2] |
UsernameDisguises |
boolean | false | — | B42 | Disguise mechanic for usernames; undescribed in the pinned revision [2]. 42.21 fixed a failure to connect to a dedicated or host server while this option was enabled (B42) [12] |
HideDisguisedUserName |
boolean | false | — | B42 | Companion to the above; undescribed [2] |
ServerWelcomeMessage |
string | (greeting text) | — | both | First chat-panel message after login; supports RGB colour tags and a line-break token (B42) [2] |
SpawnPoint |
coordinates | 0,0,0 | — | both | Forces all fresh spawns to fixed x,y,z; 0,0,0 disables the override [2] |
SpawnItems |
list | (empty) | — | both | Comma-separated item types granted to new characters, e.g. Base.Axe,Base.Bag_BigHikingBag [2] |
ResetID |
integer | 863866116 (B42 doc default) | 0–2147483647 | both | Soft-reset marker: a mismatch with the client forces a new character; the revision urges backing the IDs up [2] |
ServerPlayerID |
integer | (world-specific) | — | both | Identifies characters as belonging to this server; changes on soft reset; partner key to ResetID [2] [3] |
PlayerRespawnWithSelf |
boolean | false | — | both | Respawn at your own death location [2] |
PlayerRespawnWithOther |
boolean | false | — | both | Respawn at a splitscreen/Remote Play partner's location [2] |
SleepAllowed |
boolean | false | — | both | Sleeping possible (but optional) when tired [2] |
SleepNeeded |
boolean | false | — | both | Tiredness accrues and demands sleep; inert unless SleepAllowed=true [2] |
FastForwardMultiplier |
decimal | 40.0 | 1.00–100.00 | both | Clock acceleration applied while players sleep [2] |
PauseEmpty |
boolean | true | — | both | Freezes game time with zero players online; the B41-era revision claims the underlying default is false while printing true [2] [3] |
PVP and player safety¶
| Key | Type | Default | Range | Build | Notes |
|---|---|---|---|---|---|
PVP |
boolean | true | — | both | Master switch for player-versus-player harm [2] |
SafetySystem |
boolean | true | — | both | Per-player PVP opt-in; when false and PVP=true, everyone can hurt everyone at any time [2] |
ShowSafety |
boolean | true | — | both | Skull indicator over players who have PVP mode engaged [2] |
SafetyToggleTimer |
integer | 2 | 0–1000 (B42) | both | Delay to switch PVP mode on/off [2] |
SafetyCooldownTimer |
integer | 3 | 0–1000 (B42) | both | Cooldown before the mode can be switched again [2] |
SafetyDisconnectDelay |
integer | 60 | 0–60 | B42 | Disconnect-related safety delay; semantics undescribed in the pinned revision [2]. 42.21 lists the option as fixed, without saying what was wrong (B42) [12] |
PVPLogToolChat |
boolean | true | — | B42 | Mirrors PVP events to admin chat [2] |
PVPLogToolFile |
boolean | true | — | B42 | Writes PVP events to the server's logs [2] |
PVPMeleeDamageModifier |
decimal | 30.0 | 0.00–500.00 (B42) | both | Multiplier on player-vs-player melee damage [2] |
PVPFirearmDamageModifier |
decimal | 50.0 | 0.00–500.00 (B42) | both | Multiplier on player-vs-player ranged damage [2] |
PVPMeleeWhileHitReaction |
boolean | false | — | both | Lets a struck player swing again during the hit reaction [2] |
HidePlayersBehindYou |
boolean | true | — | both | Hides players outside your vision cone, as zombies are hidden [2] |
PlayerBumpPlayer |
boolean | false | — | both | Running through another player can shove/topple them [2] |
MapRemotePlayerVisibility |
integer | 1 | 1–4 | B42 | Who appears on the in-game map: 1 nobody, 2 friends, 3 friends plus nearby, 4 everyone [2] |
KnockedDownAllowed |
boolean | false | — | B42 | Flagged WIP in the revision: enabling can desynchronize player positions visually [2] |
SneakModeHideFromOtherPlayers |
boolean | true | — | B42 | Sneaking conceals you from other players [2] |
NoFire |
boolean | false | — | both | Disables fire; the B42 revision exempts campfires [2] |
AnnounceDeath |
boolean | false | — | both | Global chat notice on player death; the B41-era revision prints true while asserting the default is false [2] [3] |
AnnounceAnimalDeath |
boolean | false | — | B42 | Global chat notice on animal death [2] |
Safehouses, factions and PVP events¶
| Key | Type | Default | Range | Build | Notes |
|---|---|---|---|---|---|
PlayerSafehouse |
boolean | true (B41) / false (B42) | — | both | Players (and admins) may claim safehouses [2] [3] |
AdminSafehouse |
boolean | false | — | both | Restricts claiming to admins [2] |
SafehouseAllowTrepass |
boolean | true | — | both | Non-members may walk in uninvited (key name carries the game's own spelling) [2] |
SafehouseAllowFire |
boolean | true | — | both | Fire can damage a safehouse [2] |
SafehouseAllowLoot |
boolean | true | — | both | Non-members may take items inside [2] |
SafehouseAllowRespawn |
boolean | false | — | both | Members respawn at their safehouse after death [2] |
SafehouseDaySurvivedToClaim |
integer | 0 | 0–2147483647 | both | In-game days survived before claiming is allowed [2] |
SafeHouseRemovalTime |
integer | 144 | 0–2147483647 | both | Real-world hours of absence before a member is dropped (note the interior capital H in the key) [2] |
SafehouseAllowNonResidential |
boolean | false | — | B42 | Claiming of non-residential buildings [2] |
SafehouseDisableDisguises |
boolean | true | — | B42 | Disables disguises inside safehouse context; undescribed further [2] |
SafehousePreventsLootRespawn |
boolean | true | — | B42 | Claimed buildings never respawn loot [2] |
DisableSafehouseWhenOwnerConnected |
boolean | false | — | B42 | Protection applies only while the owner is offline; the B41-era key was DisableSafehouseWhenPlayerConnected [2] [3]. 42.21 fixed a conflict between this option and the sledgehammer-in-safehouse option below (B42) [12] |
MaxSafezoneSize |
integer | 20000 | 0–2147483647 | B42 | Upper bound on safezone area [2] |
AllowDestructionBySledgehammer |
boolean | true | — | both | Sledgehammers may demolish world objects [2] |
SledgehammerOnlyInSafehouse |
boolean | false | — | B42 | Restricts demolition to the player's own safehouse; requires the key above [2]. The 42.21 note on the conflict fix words the option in its own way, so the mapping to this key is inferred [12] |
Faction |
boolean | true | — | both | Faction creation enabled [2] |
FactionDaySurvivedToCreate |
integer | 0 | 0–2147483647 | both | Survival-days threshold to found a faction [2] |
FactionPlayersRequiredForTag |
integer | 1 | 1–2147483647 | both | Member count required before the owner may set a group tag [2] |
AllowTradeUI |
boolean | true | — | B41 | Direct player-to-player trade window; B41-era revision only [3] |
War |
boolean | false | — | B42 | Safehouse-war event toggle [2] |
WarStartDelay |
integer | 600 | 60–2147483647 | B42 | Seconds before a declared war begins [2] |
WarDuration |
integer | 3600 | 60–2147483647 | B42 | War length in seconds [2] |
WarSafehouseHitPoints |
integer | 3 | 0–2147483647 | B42 | Safehouse hit-point pool during a war [2] |
Mods and map¶
| Key | Type | Default | Range | Build | Notes |
|---|---|---|---|---|---|
Mods |
list | (empty) | — | both | Mod loading IDs, taken from each mod's info.txt under the Workshop content folder [2]. The pinned B42 revision gives no separator example for this key — see Pitfalls |
WorkshopItems |
list | (empty) | — | both | Steam Workshop IDs for the server to fetch, semicolon-separated; documented example 514427485;513111049 [2] |
Map |
string | Muldraugh, KY | — | both | World to load; for mod maps, the folder name under the mod's media/maps/ directory [2] |
DoLuaChecksum |
boolean | true | — | both | Ejects clients whose Lua files fail the checksum comparison against the server [2]. 42.20.1 improved Lua checksum validation as a multiplayer anti-cheat measure (B42) [7] |
Saves, backups and world identity¶
| Key | Type | Default | Range | Build | Notes |
|---|---|---|---|---|---|
SaveWorldEveryMinutes |
integer | 0 | 0–2147483647 | both | Periodic save of loaded map areas, in real minutes; areas otherwise persist as clients leave them [2] |
BackupsCount |
integer | 5 | 1–300 | B42 | Retained backup generations [2] |
BackupsOnStart |
boolean | true | — | B42 | Take a backup at server start [2] |
BackupsOnVersionChange |
boolean | true | — | B42 | Take a backup when the game version changes [2] |
BackupsPeriod |
integer | 0 | 0–1500 | B42 | Interval for periodic backups; units are not stated in the pinned revision [2] |
Seed |
string | (generated) | — | B42 | Worldgen seed; changing it requires deleting map_worldgen.bin in the save directory to take effect [2] |
PlayerSaveOnDamage |
boolean | true | — | B41 | Persists player state on damage events; B41-era revision only [3] |
SaveTransactionID |
boolean | false | — | B41 | Save-transaction tracking; B41-era revision only, undescribed [3] |
ResetID and ServerPlayerID (Players table) are part of this area's operational surface: together they mark soft resets, and losing them severs clients from their characters [2].
Anti-cheat and integrity¶
The B42-era revision documents ten AntiCheat* keys and describes four handling modes — instant ban, instant kick, log-only, and do nothing [2]. The keys take numeric values, but the pinned revision does not state which number selects which mode; that mapping is quarantined below (Claim 2). Note also that the revision's one-line descriptions are phrased as "disables … protection" for every key regardless of value, which is internally inconsistent with per-key numeric defaults — read the Default column as "value the file ships with", nothing more [2]. Context: 42.20's release notes state anti-cheat was reworked and re-enabled at stable, with item anti-cheat moved server-side [1].
42.21 changes (B42). The 42.21 notes state that the anti-cheat system was expanded ("various new cheats now guarded against") and that safehouse exploits were remedied [10] [12]. They list no new AntiCheat* key and no changed default or numeric meaning, so the table below is carried forward from the pinned revision unchanged. The same notes record a Steam authentication exploit, fixed in 42.21, that let players enter dedicated servers without authenticating through Steam, which had prevented SteamID bans from working [10] [12]; bans by SteamID are therefore described as effective from 42.21. Clothing condition is also handled server-side from 42.21 [12].
| Key | Type | Default | Range | Build | Notes |
|---|---|---|---|---|---|
AntiCheatSafety |
integer | 2 | — | B42 | Safety-system rule [2] |
AntiCheatSpeed |
integer | 2 | — | B42 | Character speed rule [2] |
AntiCheatNoClip |
integer | 4 | — | B42 | No-clip rule [2] |
AntiCheatHit |
integer | 2 | — | B42 | Hit-validation rule [2] |
AntiCheatPacketException |
integer | 4 | — | B42 | Packet-exception rule [2] |
AntiCheatPermission |
integer | 2 | — | B42 | Permission rule [2] |
AntiCheatXP |
integer | 2 | — | B42 | XP-gain rule [2] |
AntiCheatSafeHouse |
integer | 2 | — | B42 | Safehouse rule (interior capital H) [2] |
AntiCheatPlayer |
integer | 2 | — | B42 | Player-state rule [2] |
AntiCheatChecksum |
integer | 2 | — | B42 | Checksum rule [2] |
SteamVAC |
boolean | true | — | both | Valve Anti-Cheat integration; the B41-era revision describes it as checking joiners for VAC bans [2] [3] |
KickFastPlayers |
boolean | false | — | B41 | Speed-kick toggle in the B41-era revision (marked untested there) [3]; the B42-era revision documents AntiCheatSpeed instead [2] |
Performance-relevant keys¶
None of these is a magic lever; they bound work the server does per tick or per container. The parent document's hardware-sizing caveats apply.
| Key | Type | Default | Range | Build | Notes |
|---|---|---|---|---|---|
ItemNumbersLimitPerContainer |
integer | 0 | 0–9000 | both | Hard cap on items per container; counts every unit (a cap of 50 means 50 nails); 0 = uncapped [2] |
BloodSplatLifespanDays |
integer | 0 | 0–365 | both | Age at which blood decals are culled on chunk load; 0 = never [2] |
CarEngineAttractionModifier |
decimal | 0.5 | 0.00–10.00 | both | Scales zombie attraction to running engines; the B42 revision notes lower values can reduce lag [2] |
MultiplayerStatisticsPeriod |
integer | 1 | 0–10 | B42 | Server statistics update period in seconds; 0 turns statistics off [2] |
SpeedLimit |
decimal | 70.0 | 10.00–150.00 | both | Undescribed in either pinned revision; range documented at B42 [2] [3] |
PhysicsDelay |
integer | 500 | — | B41 | Physics update delay; B41-era revision only [3] |
ZombieUpdateMaxHighPriority |
integer | 50 | — | B41 | Zombie network-update tuning quartet, B41-era revision only [3] |
ZombieUpdateDelta |
decimal | 0.5 | — | B41 | As above [3] |
ZombieUpdateRadiusLowPriority |
decimal | 45.0 | — | B41 | As above [3] |
ZombieUpdateRadiusHighPriority |
decimal | 10.0 | — | B41 | As above [3] |
SwitchZombiesOwnershipEachUpdate |
boolean | false | — | B42 | Zombie ownership handoff per update; undescribed in the pinned revision [2] |
UltraSpeedDoesnotAffectToAnimals |
boolean | false | — | B42 | Exempts animals from ultra fast-forward (key name's casing is as shipped) [2] |
RemovePlayerCorpsesOnCorpseRemoval |
boolean | false | — | both | Extends the sandbox corpse-removal timer to player bodies [2] |
TrashDeleteAll |
boolean | false | — | both | Enables the bin "delete all" action [2] |
VOIP¶
| Key | Type | Default | Range | Build | Notes |
|---|---|---|---|---|---|
VoiceEnable |
boolean | true | — | both | Voice chat master switch [2] |
VoiceMinDistance |
decimal | 10.0 | 0.00–100000.00 | both | Tile distance at which voice starts attenuating [2] |
VoiceMaxDistance |
decimal | 300.0 (B41) / 100.0 (B42) | 0.00–100000.00 (B42) | both | Tile distance beyond which voice is inaudible [2] [3] |
Voice3D |
boolean | true | — | both | Directional (positional) audio [2] |
VoiceComplexity |
integer | 5 | — | B41 | Codec quality quartet documented only at B41 [3] |
VoicePeriod |
integer | 20 | — | B41 | As above [3] |
VoiceSampleRate |
integer | 24000 | — | B41 | As above [3] |
VoiceBuffering |
integer | 8000 | — | B41 | As above [3] |
Chat, Discord bridge and moderation¶
The Discord bridge relays global text chat to a Discord channel via a bot token; the B42-era key set splits chat, log and command channels, where the B41-era set had a single channel plus a channel ID [2] [3].
| Key | Type | Default | Range | Build | Notes |
|---|---|---|---|---|---|
GlobalChat |
boolean | true | — | both | Server-wide /all chat [2] |
ChatStreams |
list | "s,r,a,w,y,sh,f,all" | — | both | Enabled chat channels (say, radio, admin, whisper, yell, safehouse, faction, global); deleting an entry disables that stream [2] |
ChatMessageCharacterLimit |
integer | 200 | 64–1024 | B42 | Per-message length cap [2] |
ChatMessageSlowModeTime |
integer | 3 | 1–30 | B42 | Minimum seconds between messages [2] |
BanKickGlobalSound |
boolean | true | — | both | Audible cue on ban/kick [2] |
DiscordEnable |
boolean | false | — | both | Bridge master switch [2]. 42.21 fixed an endless connection loop that occurred when the Discord API was unavailable (B42) [12] |
DiscordToken |
string | (empty) | — | both | Bot access token — treat as a secret [2] |
DiscordChatChannel |
string | (empty) | — | B42 | Chat relay channel, by name [2] |
DiscordChannel |
string | (empty) | — | B41 | B41-era chat channel key [3] |
DiscordChannelID |
string | (empty) | — | B41 | B41-era numeric channel ID key [3] |
DiscordLogChannel |
string | (empty) | — | B42 | Log relay channel [2] |
DiscordCommandChannel |
string | (empty) | — | B42 | Command channel [2] |
WebhookAddress |
string | (empty) | — | B42 | Slack incoming-webhook URL [2] |
BadWordListFile |
string | (empty) | — | B42 | Path to a one-word-per-line blocklist [2] |
GoodWordListFile |
string | (empty) | — | B42 | Allowlist overriding blocklist substrings [2] |
BadWordPolicy |
integer | 3 | — | B42 | Response to a blocked word: 1 ban, 2 kick, 3 record to database, 4 mute [2] |
BadWordReplacement |
string | [HIDDEN] | — | B42 | Substitution text for filtered words [2] |
DisableRadioStaff |
boolean | false | — | both | Radio-transmission suppression family for staff access levels [2] |
DisableRadioAdmin |
boolean | true | — | both | As above, admin level [2] |
DisableRadioGM |
boolean | true | — | both | As above, gm level [2] |
DisableRadioOverseer |
boolean | false | — | both | As above, overseer level [2] |
DisableRadioModerator |
boolean | false | — | both | As above, moderator level [2] |
DisableRadioInvisible |
boolean | true | — | both | Suppresses transmissions from invisible players [2] |
DisableScoreboard |
boolean | false | — | B42 | Turns the scoreboard off entirely [2] |
HideAdminsInPlayerList |
boolean | false | — | B42 | Removes admins from the player list [2] |
SteamScoreboard |
boolean | true (B41) / false (B42) | — | both | Shows Steam names/avatars in the player list [2] [3] |
ShowCoordinates |
boolean | false | — | B42 | Prints the character's coordinates on screen [2] |
The B41-era revision also records that a LogLocalChat key existed and was deleted by patch 41.66, citing the official patch notes for the removal [3].
Server logging keys¶
| Key | Type | Default | Range | Build | Notes |
|---|---|---|---|---|---|
ClientCommandFilter |
list | "-vehicle.*;+vehicle.damageWindow;+vehicle.fixPart;+vehicle.installPart;+vehicle.uninstallPart" | — | both | Semicolon-separated rules for the cmd.txt log: a - prefix suppresses a command pattern, + re-includes one [2] |
ClientActionLogs |
list | "ISEnterVehicle;ISExitVehicle;ISTakeEngineParts;" | — | B42 | Actions mirrored to ClientActionLogs.txt [2] |
PerkLogs |
boolean | true | — | B42 | Writes perk-level changes to PerkLog.txt [2] |
PVPLogToolChat / PVPLogToolFile (PVP table) complete the logging surface [2].
B41 vs B42 Delta¶
This delta compares the two pinned revisions of the same reference page — 157571 (versioned 41.78.16) [3] against 1443167 (versioned 42.20.0) [2]. It is therefore a documentation delta: precise about what each revision records, deliberately silent about when the game binary actually changed (see Risks, and Claim 1).
Renamed or restructured keys [2] [3]:
| B41-era key(s) | B42-era key(s) | Change |
|---|---|---|
DisableSafehouseWhenPlayerConnected |
DisableSafehouseWhenOwnerConnected |
Rename; semantics documented at B42 as owner-presence-based |
DiscordChannel, DiscordChannelID |
DiscordChatChannel, DiscordLogChannel, DiscordCommandChannel, WebhookAddress |
Bridge expanded from one channel (plus ID) to three named channels plus a Slack webhook |
Keys that left the .ini [2] [3]: the loot-respawn trio HoursForLootRespawn, MaxItemsForLootRespawn, ConstructionPreventsLootRespawn and the reading-speed key MinutesPerPage are .ini keys in the B41-era revision but appear under SandboxVars.lua in the B42-era revision (with MinutesPerPage moving from 1.0 to 2.0 and MaxItemsForLootRespawn from 4 to 5 along the way). On B42 those values belong to the sibling SandboxVars document's territory.
Documented defaults that differ between revisions [2] [3]: MaxPlayers 16 → 32 (with an explicit 1–100 range and a >32 desync warning at B42); PingLimit 250 → 0 (check disabled); VoiceMaxDistance 300.0 → 100.0; SteamScoreboard true → false; PlayerSafehouse true → false; Public true → false.
Families documented only in the B42-era revision [2]: UDPPort; the ten AntiCheat* keys; Backups* (four keys); safehouse war (War, WarStartDelay, WarDuration, WarSafehouseHitPoints); chat moderation (BadWordListFile, GoodWordListFile, BadWordPolicy, BadWordReplacement, ChatMessageCharacterLimit, ChatMessageSlowModeTime); login queueing (LoginQueueEnabled, LoginQueueConnectTimeout); MaxPacketsPerSecond; MapRemotePlayerVisibility; ShowCoordinates; Seed; towing toggles (DisableVehicleTowing, DisableTrailerTowing, DisableBurntTowing — not tabulated above); the disguise keys; SafetyDisconnectDelay; MaxSafezoneSize; SledgehammerOnlyInSafehouse; SafehouseAllowNonResidential; SafehousePreventsLootRespawn; PVPLogToolChat/PVPLogToolFile; PerkLogs; ClientActionLogs; AllowCoop; AnnounceAnimalDeath; KnockedDownAllowed; SneakModeHideFromOtherPlayers; the animal-adjacent toggles (UltraSpeedDoesnotAffectToAnimals, SwitchZombiesOwnershipEachUpdate).
Keys documented only in the B41-era revision [3]: nightlengthmodifier (night-length scaling, the page's first key); AutoCreateUserInWhiteList; PingFrequency; SteamPort1/SteamPort2; the extra UPnP keys; the co-op timeouts; the VOIP codec quartet (VoiceComplexity, VoicePeriod, VoiceSampleRate, VoiceBuffering); PhysicsDelay; UseTCPForMapDownloads; PlayerSaveOnDamage; SaveTransactionID; AllowTradeUI; the ZombieUpdate* quartet; KickFastPlayers. One key is positively recorded as removed from the game rather than merely undocumented: LogLocalChat, deleted in 41.66 per the official patch notes cited by that revision [3].
Context for the anti-cheat family: the 42.20 stable release notes describe anti-cheat as reworked and re-enabled, with item anti-cheat now server-side and several exploits (item spawning, XP, foraging) closed [1] — which is why the B42-era .ini surface polices more than the B41-era one did. Later notes extend this: Lua checksum validation was improved in 42.20.1 [7], and the anti-cheat system was expanded again in 42.21 [10] [12].
42.20.1 to 42.21 (B42): none of those notes renames, adds or re-defaults a documented .ini key; they change the behaviour of existing options (see the per-key notes above) [7] [8] [9] [10] [11] [12]. The pinned wiki revision was not re-extracted, so absence of a mention is not proof that no default moved.
Practical Guidance¶
Copy-paste blocks below use servertest.ini names verbatim; after saving a live edit, apply with reloadoptions and confirm with showoptions (both documented on the Dedicated server page [4]).
Network baseline (internet-facing B42 server):
DefaultPort=16261
UDPPort=16262
UPnP=false
Public=false
PingLimit=0
Forward/allow both game ports as UDP on the host firewall; on Ubuntu that is sudo ufw allow 16261/udp and sudo ufw allow 16262/udp [4]. Set UPnP=false on any professionally hosted box — you have real port forwarding, so silent gateway mapping is only a failure mode. Leave PingLimit=0 until you have a latency problem you can measure.
First-boot hardening checklist (before advertising the server):
Open=false
Password=<join-password-or-empty-if-whitelist-only>
RCONPassword=<long-random-secret>
MaxAccountsPerUser=1
AllowNonAsciiUsername=false
DoLuaChecksum=true
Open=false turns the whitelist into an allowlist you control; RCONPassword must never ship empty on a reachable RCONPort. If you keep Open=true, set Password and decide deliberately whether DropOffWhiteListAfterDeath=true (hardcore permadeath) fits your community.
Mod wiring (pair every entry):
WorkshopItems=514427485;513111049
Mods=<LoadingID1>;<LoadingID2>
Workshop IDs are the numbers in the Workshop URL; loading IDs come from each mod's info.txt [2]. The pinned reference only demonstrates semicolons for WorkshopItems — mirror that for Mods but verify at boot by reading the loaded-mod list in the console, because the Mods separator is undocumented at B42 (and see the parent document's quarantined backslash claim before copying a hosting panel's format).
Backups and saves (B42):
SaveWorldEveryMinutes=15
BackupsCount=10
BackupsOnStart=true
BackupsOnVersionChange=true
BackupsPeriod=60
BackupsOnVersionChange=true is your cheapest insurance across patch days — keep it on. Treat BackupsPeriod's units as unverified (the revision does not state them); observe timestamps on produced backups before trusting a rotation schedule. In-game backups are not offsite backups: also archive Zomboid/Server (.ini plus Lua) and the save folder externally, and record ResetID/ServerPlayerID somewhere safe — losing them orphans every character [2].
Discord bridge (B42):
DiscordEnable=true
DiscordToken=<bot-token>
DiscordChatChannel=<channel-name>
DiscordLogChannel=<channel-name>
DiscordCommandChannel=<channel-name>
The token is a credential: keep the .ini out of world-readable paths and out of pastebins when asking for help. B41 configs use DiscordChannel/DiscordChannelID instead — do not copy a B42 snippet onto a legacy41 server unedited.
PVE server quick-set: PVP=false alone is the master switch; keep SafetySystem=true anyway so a future PVP event needs only one key flipped, and pre-stage PVPMeleeDamageModifier/PVPFirearmDamageModifier values you have play-tested.
Anti-cheat stance (B42): leave every AntiCheat* key at its shipped value until you have a false-positive report you can reproduce; the numeric mode mapping is not primary-documented (Claim 2), so any tuning is experimentation. If modded Lua trips checksum kicks, the documented lever is DoLuaChecksum — change it knowingly, since it is also your file-integrity gate [2].
Common Pitfalls & Troubleshooting¶
- Editing the wrong file for the change. Loot respawn and reading speed are
.inikeys on B41 but SandboxVars keys on B42 [2] [3]; a copied B41 guide will have you editing lines a B42 server ignores. - B41 key names in a B42 file (and vice versa).
DisableSafehouseWhenPlayerConnected,DiscordChannelIDandVoiceComplexitydo not exist in the B42-era documentation;UDPPort,BackupsCountand theAntiCheat*keys have no B41-era documentation [2] [3]. An unrecognized key fails silently — the server simply never behaves as intended. MaxPlayersraised past 32. The documented range runs to 100, but the same revision warns of map-streaming degradation and desync above 32 [2]; the 42.20.3 notes say up to 254 players are supported (B42) [8], and neither source gives a tested recommendation. Raise it in steps and observe; do not jump to the maximum.- RCON port open with a blank password. The default
RCONPort=27015plus an emptyRCONPasswordon a public IP is an unauthenticated admin console; any Source-RCON client can speak to it [2] [6]. Open=truewith noPassword"temporarily". That is a public server. If you must, setMaxAccountsPerUser=1so one Steam user cannot mass-create accounts [2].- Backslashes, semicolons and the
Mods=line. OnlyWorkshopItemshas a documented separator example [2]; if mods install but never load, verify pairing (both lists populated) and check the boot console before restructuring the line to match any single hosting KB. - Soft-reset IDs treated as disposable. Regenerating or losing
ResetID/ServerPlayerIDforces every client onto a new character [2]. Record them with your backups. - Key-name typos that look correct.
SafehouseAllowTrepass(the game's spelling),SafeHouseRemovalTime(capital H),UltraSpeedDoesnotAffectToAnimals(lowercase "not") are all as-shipped [2]; "fixing" the spelling creates a new, meaningless key. - Expecting
reloadoptionsto cover everything. The documented live path is.iniplusreloadoptions[4]; mod-list and sandbox changes should be treated as restart-required (the parent document's Claim 4 covers the community's stricter folklore). - Welcome message renders as one line. A multi-line
ServerWelcomeMessageneeds the documented line-break token; RGB colour tags are also available (B42) [2].
Community Notes & Unverified Claims¶
Claim 1 — Keys documented only at B42 were introduced by Build 42¶
- Claim: Hosting KBs and community changelists commonly present B42 server configuration as having "added" the backups keys, anti-cheat keys, chat moderation and the other families this document tags B42.
- Why unverified: The tag here records presence in wiki revision 1443167 versus absence from revision 157571 [2] [3] — and the B41-era revision carries an explicit editorial banner that it is incomplete. No per-key trace against official patch notes was performed; some "B42" keys may have existed in late B41 builds undocumented.
- Confidence: Medium. The pattern is directionally right (42.20's notes confirm the anti-cheat family's context [1]), but any individual key's introduction date is unproven.
Claim 2 — The AntiCheat* numeric values map 1=Ban, 2=Kick, 3=Log, 4=Disable¶
- Claim: Server-admin guides and Discord/forum discussions circulate a fixed mapping from the integers in
AntiCheatXP=2-style lines to the four documented handling modes, most commonly 1=Ban, 2=Kick, 3=Log, 4=Disable — which would make the shipped defaults "kick" for most rules and "disable" for the no-clip and packet-exception checks. - Why unverified: The pinned revision lists the four modes and the numeric defaults but never states which number selects which mode [2]; no official source for the mapping was found, and the revision's own per-key descriptions ("disables … protection" on every key) muddy rather than confirm it.
- Confidence: Low. The mapping is plausible and widely repeated, but it is exactly the kind of copy-propagated community fact this knowledge base refuses to promote without a primary source.
Risks & Caveats¶
- The core source is a community wiki, not the game. Both anchor revisions are fact-only pzwiki citations [2] [3]; no key in this document was verified against a generated
servertest.inifrom a live 42.20 or 41.78.16 install. The Verification Steps below close that gap mechanically. - The B41 column inherits an incomplete page. Revision 157571 self-flags as needing improvement and mixes example values with defaults [3]; B41-only rows are correspondingly weaker than B42 rows.
- Wiki-revision delta ≠ game delta. Every "B42-only"/"B41-only" tag is a statement about two page revisions (see Claim 1). Only
LogLocalChatcarries a patch-note-backed removal [3]. - Hotfix drift. 42.20 went stable on 2026-07-29 [1] and 42.21 on 2026-09-28 [11]; the wiki revisions pinned here predate 42.21, and the patch notes cover behaviour rather than a key-by-key schema, so a key could have been added or re-defaulted without a note.
- Server-side verification gap. The 42.21 re-check was against patch notes only; no key was re-verified on a 42.21 server install.
- Undescribed keys are listed, not explained. Where a revision documents a key without semantics (
SpeedLimit,SafetyDisconnectDelay,UsernameDisguises,SwitchZombiesOwnershipEachUpdate,SaveTransactionID), this document says "undescribed" rather than inventing behaviour. - Live-check asymmetry. pzwiki currently serves interactive challenges to some automated clients; the citation URLs below were verified reachable at access time, and the B41 revision is doubly anchored via an Internet Archive capture in case the origin hardens further.
Verification Steps¶
- Regenerate ground truth (B42): install the server (SteamCMD App 380870, stable branch), start it once, and diff the generated
Zomboid/Server/servertest.inikey list and values against the B42 rows above; repeat with thelegacy41beta for the B41 rows. - Re-extract on 42.21: the key schema is pinned to wiki revisions, so repeat step 1 on a 42.21 install and re-run the server-settings gate.
- Confirm the live-reload boundary: change one benign key (e.g.
PublicDescription), runreloadoptions, thenshowoptions, and confirm the new value is live [4]. - Probe Claim 2 empirically: on a disposable B42 server, set
AntiCheatSpeedto each of 1/2/3/4, trip the speed rule with a debug client, and record ban/kick/log/nothing per value. - Check the port surface: with the server up, verify UDP listeners on
DefaultPortandUDPPortand the RCON listener onRCONPortfrom another host; confirm an RCON login fails with a wrong password [2] [6]. - Verify backup behaviour: set
BackupsPeriodto a small value, run for an hour, and timestamp the produced backups to resolve the undocumented units. - Confirm the citation pins: both Server settings revisions are permalinked below; the B41 revision can additionally be read via its 2023-10-28 Internet Archive capture if the origin blocks you [3].
Open Questions¶
- What is the authoritative numeric-to-mode mapping for the
AntiCheat*keys, and will The Indie Stone document it now that anti-cheat is a stable-branch feature [1] [2]? (Claim 2; Step 4 resolves behaviour, not provenance.) - Which "B42-only" keys actually exist and function on a 41.78.16 server despite being missing from the B41-era page (Claim 1)? Step 1's legacy41 diff answers this per key.
- What are
BackupsPeriod's units, and how does it interact withSaveWorldEveryMinutes[2]? (Step 6.) - What do the undescribed keys (
SpeedLimit,SafetyDisconnectDelay,SwitchZombiesOwnershipEachUpdate,UsernameDisguises) actually govern, and on which builds are they read? - Does the 42.20.1-42.21 wave change any documented default in this table? The patch notes name none [7] [8] [9] [10] [11] [12]; confirm against a 42.21 server's generated
.iniand the wiki's revision history at the next review. - What
MaxPlayersrange does a 42.21 server accept, given the 254-player statement [8] and the 1–100 range in the pinned revision [2]?
References¶
Primary Sources
- [1] The Indie Stone — Build 42.20.0 Stable Released (Steam announcement, 2026-07-29; retrieved via the ISteamNews API mirror, app 108600). https://steamcommunity.com/games/108600/announcements/detail/1839676055882259. Accessed 2026-07-31.
- [7] The Indie Stone — 42.20.1 STABLE Hotfix Released (Steam announcement, 2026-08-05). https://steamcommunity.com/games/108600/announcements/detail/1840310314338766. Accessed 2026-10-07.
- [8] The Indie Stone — 42.20.3 STABLE Hotfix Released (Steam announcement, 2026-08-17). https://steamcommunity.com/games/108600/announcements/detail/1840944183785895. Accessed 2026-10-07.
- [9] The Indie Stone — 42.20.4 STABLE & 42.19.2 UNSTABLE & 41.78.21 LEGACY Hotfixes Released (Steam announcement, 2026-08-26). https://steamcommunity.com/games/108600/announcements/detail/1842212951296601. Accessed 2026-10-07.
- [10] The Indie Stone — Re-population of the Dead: Build 42.21 Unstable Released (Steam announcement, 2026-09-23). https://steamcommunity.com/games/108600/announcements/detail/1844751498218925. Accessed 2026-10-07.
- [11] The Indie Stone — Build 42.21 Stable Released (Steam announcement, 2026-09-28). https://steamcommunity.com/games/108600/announcements/detail/1844751498231307. Accessed 2026-10-07.
- [12] The Indie Stone — 42.21 Patch Notes (TIS forum topic 101693, first post 2026-09-23; multiplayer list abridged to selected items in the retrieved copy). https://theindiestone.com/forums/topic/101693-4221-patch-notes/. Accessed 2026-10-07.
Fact-Only Sources (no prose reuse) — pzwiki (CC BY-NC-SA 3.0): cite URL + revision id; facts only, never prose.
- [2] PZwiki — Server settings (revision 1443167; page versioned against 42.20.0). https://pzwiki.net/w/index.php?title=Server_settings&oldid=1443167. Accessed 2026-07-31. Fact-only source.
- [3] PZwiki — Server settings (revision 157571; page versioned against 41.78.16, last edited 2023-10-22). https://pzwiki.net/w/index.php?title=Server_settings&oldid=157571 — also preserved at https://web.archive.org/web/20231028101749/https://pzwiki.net/wiki/Server_settings. Accessed 2026-07-31. Fact-only source.
- [4] PZwiki — Dedicated server (revision 1443349; page versioned against 42.20.0). https://pzwiki.net/w/index.php?title=Dedicated_server&oldid=1443349. Accessed 2026-07-31. Fact-only source.
- [5] PZwiki — Startup parameters (revision 1393745). https://pzwiki.net/w/index.php?title=Startup_parameters&oldid=1393745. Accessed 2026-07-31. Fact-only source.
Secondary & Corroborating
- [6] gorcon — rcon-cli (MIT; Source RCON CLI listing Project Zomboid support). https://github.com/gorcon/rcon-cli. Accessed 2026-07-31.
Community & Creator
- None cited. Claim attributions above name where the claims circulate; no community URL met the citation bar.
Further Reading
Further Reading¶
- The ISteamNews mirror used to verify the primary announcement: https://api.steampowered.com/ISteamNews/GetNewsForApp/v2/?appid=108600&count=25&maxlength=0
- beyenilmez's pz-admin (GUI over RCON, edits server options remotely): https://github.com/beyenilmez/pz-admin
- jmwhitworth's zomboid_rcon (Python RCON, scriptable option queries): https://github.com/jmwhitworth/zomboid_rcon
Related Documents¶
admins-foundation— the parent overview: file locations, branches, ports, memory, tooling; this document deepens its configuration-surface section.admins-sandboxvars-reference— the sibling per-setting reference forSandboxVars.lua, including the keys that migrated there from the B41.ini.modders-foundation— Workshop/mod structure context behindMods=/WorkshopItems=.meta-style-guide— the style rules this document conforms to.
Revision History¶
| Version | Date | Author | Change | Approved By |
|---|---|---|---|---|
| 0.1.0 | 2026-07-31 | KB Pipeline (virtual agent) | Initial draft. | — |
| 0.2.0 | 2026-10-07 | KB Pipeline (revision worker) | Re-baselined to 42.21: reviewed against the 42.20.1, 42.20.3, 42.20.4, 42.21 unstable and stable Steam notes [7] [8] [9] [10] [11] and the TIS forum 42.21 changelist [12]; added per-key 42.21 notes, player-limit and anti-cheat updates, Applicability scope. Key schema not re-extracted. | — |
| 1.0.0 | 2026-10-08 | Orchestrator (KB Pipeline) | Approved and frozen — release kb-release-2026.10.08 (42.21 re-baseline; validated against 42.21 and 41.78.21, Umbrella 42.21.0 @ 13d01f9). Content is the reviewed 0.2.0 text. | Project owner (user instruction 2026-10-08) |