25 February 2026

Project Zomboid Server Configuration Guide: servertest.ini and Sandbox Settings

A comprehensive guide to configuring your Project Zomboid server, covering servertest.ini network settings, sandbox gameplay options, zombie behaviour, loot tables, and Build 42 features.

Introduction

Project Zomboid's two config files are where a server actually gets its personality. I've lost count of how many times I've opened servertest.ini expecting a quick tweak and come back out an hour later, but the good news is that once you know which knobs matter you can leave most of it alone.

There are two files that do the real work:

  • servertest.ini — network, slots, password, PVP toggles, anti-cheat, mods. The file name itself is the server instance identifier, which trips up everyone the first time.
  • servertest_SandboxVars.lua — the gameplay sandbox: zombies, loot, day length, power and water shutoff, XP, all of it.

If you haven't booted a server yet, start with our Project Zomboid getting started guide and come back here once you're in. And if you just want a plug-and-play settings loadout, I wrote a companion blog over at Best Project Zomboid server settings for 2026 with ready-made presets.

Editing config on a LOW.MS server

On LOW.MS the path I'd recommend for nearly everyone is in-browser through TCAdmin.

  1. Log into control.low.ms.
  2. Open your Project Zomboid service.
  3. Click Configuration Files in the sidebar.
  4. Pick servertest.ini or servertest_SandboxVars.lua from the list and edit directly in the browser.

That's the primary path. It's fast, you don't need an FTP client, and you can't accidentally upload a file with a Windows BOM on it.

If you want to move files in bulk or grab a backup of the whole Zomboid/Server/ folder, File Manager is also in the sidebar. For power users who prefer a local editor, SFTP is available on port 8822 and plain FTP on port 8821 — you'll find the credentials under Service Settings. I use SFTP when I'm fiddling with dozens of mods at once, but for a one-line change it's overkill.

One rule regardless of which path you use: stop the server before you edit. PZ rewrites both files on shutdown and will happily clobber your changes if it's running when you save.

servertest.ini — the bits that actually matter

I'm going to walk through the settings I actually touch and then give you a reference block for the rest. Going line-by-line through every anti-cheat flag helps nobody.

Server identity and slots

The name that appears in the in-game browser is PublicName, not ServerName — this is the one almost every copy-pasted guide on the internet gets wrong. PublicDescription is the tagline underneath. Public = true puts the server in the public list; leave it false if you only want friends joining via direct IP or an invite.

MaxPlayers defaults to 64. That's the stock value from the game, not a LOW.MS quirk. In practice I'd size it to your plan — PZ is surprisingly heavy on CPU per player once the horde starts grinding, so "64 because that's the default" is rarely the right call. For an honest look at slot counts and pricing see the Project Zomboid server hosting page.

Password does what it says on the tin. Empty means open.

PVP and the safety system

PVP defaults to true. What most people miss is the safety toggle — even with PVP on, players individually flip themselves "safe" or "unsafe" to other players. SafetySystem = true enables that, ShowSafety = true draws the little icon above heads.

SafetyToggleTimer and SafetyCooldownTimer are in seconds, not hours (defaults 2 and 3). Every old guide claims hours and it's nonsense — two hours to turn PVP on would make the system useless. Two seconds is the real number.

If you want proper hardcore "anyone can shoot anyone", set SafetySystem = false and be done with it.

Pause, sleep, chat

  • PauseEmpty defaults to false in a stock servertest.ini. If you want the world to stop ticking when nobody's online — which is usually what small groups want — flip it to true yourself.
  • SleepAllowed / SleepNeeded are off by default on MP because sleeping fast-forwards time, and on a shared server that's chaotic. Turn them on for 2-4 player servers where everyone's online at the same time.
  • GlobalChat on or off is taste. I leave it on.

Voice chat

VoiceEnable, VoiceMinDistance (default 10), VoiceMaxDistance (default 100), and Voice3D for directional audio. Defaults are fine for 99% of servers.

Anti-cheat

DoLuaChecksum = true and the AntiCheatProtectionType1 through AntiCheatProtectionType24 block are on by default. Don't touch them unless a specific mod's documentation tells you to disable a specific number — turning things off to "fix" mod errors usually just hides a real problem.

Workshop mods — use Mod Manager first

Here's where I'd steer you away from editing the ini at all. PZ's TCAdmin panel on LOW.MS has a proper Mod Manager in the sidebar, with a curated Steam Workshop browser and one-click install. It writes the WorkshopItems= and Mods= lines for you and keeps them in the right order, which matters more than you'd think.

Use Mod Manager as the primary path. Drop into Configuration Files and hand-edit servertest.ini only if you're doing something Mod Manager doesn't cover — like pinning a specific version or applying a load order that a modpack author has hardcoded.

For reference, the manual format looks like this:

WorkshopItems=2313387159;2392709985;2169435993
Mods=tsarslib;Arsenal(26)GunFighter;BetterSortCC

WorkshopItems is a semicolon list of Steam Workshop IDs (the number at the end of each workshop URL). Mods is a semicolon list of the mod's internal folder name, which you'll find inside the mod's .info file on disk. These have to match exactly or the mod silently fails to load.

Backups

Setting Default What it does
SaveWorldEveryMinutes 0 In-game autosave interval (0 = only on shutdown)
BackupsCount 5 How many backup copies to retain
BackupsOnStart true Snapshot on server boot
BackupsOnVersionChange true Snapshot when PZ updates
BackupsPeriod 0 Minutes between periodic backups (0 = off)

I'd set SaveWorldEveryMinutes = 15 and BackupsPeriod = 60 on any server you care about. LOW.MS runs its own Cloud Backup on top of all this (also in the sidebar), so even if PZ's in-game backups get mangled you've got a safety net.

servertest.ini reference block

Everything else worth knowing at a glance:

Setting Default Notes
PublicName (empty) Name in the in-game browser
PublicDescription (empty) Tagline under the name
Public false Public listing on/off
Password (empty) Server password
MaxPlayers 64 Concurrent player cap
DefaultPort 16261 Primary UDP game port
UDPPort 16262 Secondary UDP (Steam)
Open true Accepting connections
ResetID (auto) Don't change unless wiping the world
PVP true PVP master switch
PauseEmpty false Pause when nobody's online
SafetySystem true Per-player PVP safety toggle
ShowSafety true Draw safety icon above heads
SafetyToggleTimer 2 Seconds to toggle safety (not hours)
SafetyCooldownTimer 3 Seconds cooldown after toggle
GlobalChat true Global chat channel
SleepAllowed false Let players sleep
SleepNeeded false Require sleep to avoid fatigue

servertest_SandboxVars.lua — where the game actually lives

This is a Lua file, not an ini. It looks like a big nested table and it will bite you if you forget a comma. The in-browser editor in Configuration Files handles it fine, but back it up before deep edits.

The single most important fact to get right: zombie behaviour settings are nested under ZombieLore, not top-level. Every guide that shows Speed = 2 as a top-level key is wrong.

ZombieLore = {
    Speed = 2,
    Strength = 3,
    Toughness = 3,
    Transmission = 1,
    Mortality = 5,
    Reanimate = 3,
    Cognition = 3,
    Memory = 2,
    Sight = 2,
    Hearing = 2,
},

Zombie population

The top-level population key is Zombies (not ZombieCount — another legacy typo floating around). The scale is inverted from what you'd expect:

  • 1 = Insane
  • 2 = Very High
  • 3 = High
  • 4 = Normal (this is what the stock Apocalypse preset uses)
  • 5 = Low

So Zombies = 4 is Normal, and Zombies = 1 is the "you are going to die in a parking lot" setting. If you're running 20+ players, I'd stay at 3 or 4 unless you've got the CPU headroom to burn — the AI cost of a packed city at Insane is no joke.

Distribution controls how zombies are spread across the map. It's 1–2: 1 is Urban Focused (heavy in towns, lighter in the countryside) and 2 is Uniform. There's no third option, despite what old forum posts say.

PopulationMultiplier is a straight scalar on top of Zombies (default 1.0). PopulationStartMultiplier lets you start lower and ramp up to PopulationPeakMultiplier by day PopulationPeakDay. If you want the classic PZ experience where week one is manageable and week four is hell, this trio is how you do it — try 0.71.5 peaking at day 28.

Respawn is its own nest of variables. RespawnHours is how many in-game hours between a cell respawning zombies, RespawnUnseenHours is how long a cell has to be unobserved before it's eligible, and RespawnMultiplier scales how many come back (0.0 disables respawns entirely). On a long-running server with fixed bases, I'd set RespawnMultiplier = 0.0 to keep player-cleared areas clean — otherwise your fortified gas station fills back up every few days.

RedistributeHours shuffles existing zombies around the world so groups drift instead of standing still forever. Leave it at default unless you have a specific reason.

ZombieUpdateDelta tunes how often distant zombies get updated by the simulation. Raising it reduces CPU cost at the expense of zombies feeling a bit more static far from players. Worth knowing about if you're seeing CPU pressure.

FollowSoundDistance, RallyGroupSize, and RallyTravelDistance control the horde-formation behaviour — how far a sound pulls zombies in, how many form a group, how far that group wanders. I almost never touch these, but they're the honest tuning knobs for "zombies don't feel threatening enough" or "zombies feel too clumpy."

Zombie behaviour (inside ZombieLore)

Quick reference for the nested block:

Key Scale Notes
Speed 1=Sprinters, 2=Fast Shamblers, 3=Shamblers The one setting that changes the whole game
Strength 1=Superhuman, 2=Normal, 3=Weak
Toughness 1=Tough, 2=Normal, 3=Fragile
Cognition 1=Navigate+Doors, 2=Navigate, 3=Basic
Memory 1=Long, 2=Normal, 3=Short, 4=None
Sight 1=Eagle, 2=Normal, 3=Poor
Hearing 1=Pinpoint, 2=Normal, 3=Poor
Transmission 1=Blood+Saliva, 2=Saliva Only, 3=Everyone's Infected, 4=None
Mortality Bite → death timing See PZwiki for the full ladder
Reanimate How fast corpses turn See PZwiki

Anything you're not sure about, cross-reference against PZwiki's Server Settings page — it's kept current by the community and tracks B41/B42 differences.

Loot — no such thing as LootRarity

Big one: there is no LootRarity key. Every guide on the first page of Google shows a single LootRarity scalar, and it doesn't exist in the file. Zomboid uses separate keys per loot category, and each one runs on a 1–4 scale:

  • 1 = Extremely Rare
  • 2 = Rare
  • 3 = Normal
  • 4 = Abundant

The categories you'll actually see are FoodLoot, CannedFoodLoot, WeaponLoot, RangedWeaponLoot, AmmoLoot, MechanicsLoot, OtherLoot, LiteratureLoot, SurvivalGearsLoot, and MedicalLoot. So if you want a "low loot" world but still want medical supplies findable, you can set FoodLoot = 2 but MedicalLoot = 3.

Loot respawn is controlled by a separate set of keys:

  • LootRespawn — when (or whether) loot respawns in a container. 0 = never, other values map to time brackets; see PZwiki for the exact list.
  • HoursForLootRespawn — in-game hours between a container being eligible for respawn.
  • MaxItemsForLootRespawn — caps how many items respawn back into a single container.
  • HoursForCorpseRemoval — how long zombie corpses sit around before cleanup. Lower values help with performance on dense servers.

If you set any loot respawn at all, I'd keep MaxItemsForLootRespawn low (4-8) so returning to a looted gun shop doesn't just reset it to day-one conditions.

Time, date, and the apocalypse clock

  • StartYear, StartMonth, StartDay, StartTimeOfDay — when the apocalypse starts. StartDay is 1–31 depending on month (this is another one old guides get wrong). The default is July 9, which is canon.
  • DayLength — real minutes per in-game day. Options are roughly 15 min, 30 min, 1 hour, 2 hours, 3 hours, 12 hours, and 24 hours. I run most servers at 1 hour, which is the sweet spot between "you never see night" and "you spend your whole session watching paint dry."
  • WaterShutModifier — days until the water mains shut off. -1 means never. Default is around 14-30 days depending on preset.
  • ElecShutModifier — same idea for power.

A common friendly-server mistake is setting both shutoff values to -1. The game is kind of pointless with infinite water and power — half the survival loop disappears. I'd set them to 30+ for relaxed groups and keep the tension.

XP and progression

The key is XpMultiplier with a lowercase p. This catches people out. Default is 1.0. Double it for friendlier servers, leave it alone for vanilla feel. I wouldn't go above 3.0 — past that, skills stop mattering within a week and the game loses its grip.

Build 42 — a word of caution

Build 42 is still on the unstable branch as I'm writing this in early 2026. Indie Stone shipped MP support in 42.13 in December 2025, but it's very much a stress-test release and they've publicly said they'd recommend twenty players or fewer until things stabilise. It's not yet a drop-in replacement for B41.

If you want the new crafting tiers, expanded foraging, animals, and basements, B42 is where to be. If you want a stable 30-slot server you can leave running for a month without drama, stick with B41 for now. The B42 sandbox adds crafting-tier availability, animal spawn rates, basement frequency, and foraging density — all configurable, and most of them documented inside the sandbox file itself on first boot. I've got a deeper write-up over at the B42 multiplayer survival guide.

Three loadouts I actually run

None of these are magic — they're starting points. Tweak and save a backup of your sandbox file between edits.

Casual co-op (2-8 players)

Zombies = 5            -- Low
ZombieLore.Speed = 3   -- Shamblers
FoodLoot = 3
MedicalLoot = 3
WeaponLoot = 3
DayLength = 3          -- 1 hour
WaterShutModifier = 30
ElecShutModifier = 30
PVP = false
XpMultiplier = 2.0
RespawnMultiplier = 0.0

Standard survival (10-20 players)

Zombies = 4            -- Normal
ZombieLore.Speed = 2   -- Fast Shamblers
FoodLoot = 3
WeaponLoot = 2
MedicalLoot = 2
DayLength = 3
WaterShutModifier = 14
ElecShutModifier = 14
PVP = false
XpMultiplier = 1.5

Hardcore PVP (20+ players)

Zombies = 3            -- High
ZombieLore.Speed = 1   -- Sprinters
FoodLoot = 2
WeaponLoot = 2
AmmoLoot = 2
DayLength = 4          -- 2 hours
WaterShutModifier = 7
ElecShutModifier = 7
PVP = true
SafetySystem = false
XpMultiplier = 1.0

Applying changes

  1. Save the file in Configuration Files.
  2. Restart the server from Service Settings or the top control bar.
  3. New settings load on boot.

Two important gotchas. First, most sandbox changes — population, loot rarity, zombie speed — only affect cells that haven't been generated yet. Already-explored map areas keep the settings they were born with. If you want a clean sweep, you need a world wipe (back it up first via Cloud Backup). Second, if you edit while the server is running PZ will overwrite your changes on the next shutdown. Stop first, edit second.

If you hit errors on boot after a sandbox edit, 95% of the time it's a missing comma or a stray quote in the Lua. Open Log Viewer in the TCAdmin sidebar and search for "SandboxVars" — the line number in the error is usually accurate.

For the canonical reference on every single variable, PZwiki's Server Settings page is the one I actually keep open in a tab while editing. For troubleshooting boot issues or mod conflicts, see our Project Zomboid troubleshooting guide.

Join our Discord to chat with our staff and community!
Join Discord