DayZ Server Settings Reference
The performance guide tells you what to paste into your
DayZ server's config and stops there on purpose. This page is for everything else: every DayZ server
setting an operator is likely to meet — across serverDZ.cfg, the launch parameters,
dayzsetting.xml and the economy files — with what it does, its default, and how we know. Where we have
not verified something, the row says so; an honest "unmeasured" here beats a confident number from a
guide that never checked.
How to read the evidence column
| label |
meaning |
| measured |
we ran an experiment and observed the behaviour; the platform is named |
| verified in the server program |
established by inspecting the server's own executable or its shipped scripts, not documentation |
| shipped files |
checked against an untouched install from Bohemia |
| vendor documentation |
Bohemia's docs or example files say so; we have not verified it — and we have caught this source publishing sample values as "defaults" more than once |
| unmeasured |
nobody has measured it that we can find, including us |
| plumbing |
a value you choose (a name, a password, a path) — there is no claim to verify |
Where a setting carries more than one claim, the cell names which claim each label applies to.
A note on defaults: you cannot discover a default by writing a value and reading it back — the
server echoes whatever you wrote, whether or not it uses the key. Defaults on this page are only
called verified when they were established some other way.
serverDZ.cfg — identity and access
| setting |
what it does |
default / value |
evidence |
hostname |
server name in the browser |
— |
plumbing |
password |
join password (empty = public) |
"" |
plumbing |
passwordAdmin |
admin login password — change it |
— |
plumbing |
maxPlayers |
the player cap. More players is more work, and the late-session slowdown on busy servers arrives with population |
60 in most examples |
population→load relation: measured on live fleets |
verifySignatures |
clients must run signed files. ⚠️ A value of 0 or below is silently discarded — it means unset, not off |
2 |
discard behaviour: verified in the server program (Windows); key present on Linux too |
forceSameBuild |
clients must match the server build |
1 |
vendor documentation |
instanceId |
identifies this server's persistence folder; unique per server on a box |
1 |
shipped files |
serverDZ.cfg — login queue and persistence
| setting |
what it does |
default / value |
evidence |
loginQueueConcurrentPlayers |
how many players are processed into the world at once |
5 |
semantics: vendor documentation. Bohemia's stated reason (protecting the server during a post-restart login rush) is their claim; the protective effect is unmeasured |
loginQueueMaxPlayers |
how many may wait in the queue |
500 |
vendor documentation; queue length, not a performance knob |
storageAutoFix |
described by Bohemia as repairing corrupted persistence at boot rather than failing. Any value above 0 is "on" |
1 |
read-at-boot: verified in the server program (Windows). The repair behaviour itself: unmeasured |
serverDZ.cfg — network ranges
These are the bubbles around each player inside which the server sends things. We do not recommend
writing any of these keys — see the guide for why lowering networkRangeFar is a combat change,
not an optimisation.
| setting |
what it covers |
claimed default |
evidence |
networkRangeClose |
containers with items in them |
20 m |
semantics and value: vendor documentation, unverified |
networkRangeNear |
loose inventory items |
150 m |
semantics and value: vendor documentation, unverified |
networkRangeFar |
everything that is not an inventory item — including other players and bullets in flight |
1000 m |
what it carries: verified in the server program (Windows). The value: vendor documentation, unverified. The claimed 15–20% bandwidth saving circulating in guides: unmeasured, no source |
networkRangeDistantEffect |
a much larger bubble for sound — this, not Far, is distant gunfire |
4000 m |
attribution: verified in the server program (Windows). The value: vendor documentation, unverified |
serverDZ.cfg — logging and the admin log
| setting |
what it does |
evidence |
logAverageFps (needs -doLogs) |
writes a server-FPS line to the log each second. Relative number, not a score — compare your server against itself |
instrument agreement checked against an independent counter: measured (Windows, ~0.3% at one operating point) |
logMemory (needs -doLogs) |
writes memory use to the log |
cost of the whole log* block: measured below anything we could resolve on an idle server. Whether memory growth tracks the slowdown: unmeasured |
logFile |
keeps console output on disk. Grows without bound — nothing trims it |
growth: measured (~19 MB on an idle test server); rate on a busy server: unmeasured |
adminLogPlayerHitsOnly = 0, adminLogPlacement, adminLogBuildActions, adminLogPlayerList (need -adminLog) |
the .ADM admin log: hits, placements, building, a periodic player list |
keys: verified in the server program (its shipped scripts). Per-player cost on a busy server: unmeasured — our cheap-logging measurement explicitly did not cover these |
serverDZ.cfg — simulation and replication keys
The keys the "optimisation" folklore is about. None of them belongs in your config.
| setting |
what we know |
evidence |
simulatedPlayersBatch |
⚠️ Works the opposite way round to how guides describe it. The default is −1: every player is serviced every pass, so writing any positive number is a cap, not an increase. The widely-quoted "default 20" is a sample value from documentation, not the default |
default −1: verified in the server program (Windows; Linux default unverified). Cost of capping real players: unmeasured |
multithreadedReplication |
a real key; what it does to a real server is unknown. On an empty test server we could not detect the switch changing anything observable |
key: verified in the server program. Effect: unmeasured |
networkObjectBatchCompute / SendCreate / SendDelete |
real keys; the pasted values (1000 / 10 / 10) trace to documentation whose "defaults" have been wrong before |
keys: verified in the server program (both platforms). Defaults: vendor documentation, unverified. Effect of writing them: unmeasured |
networkObjectBatchSend |
documented by Bohemia for over a year, then removed from their docs; the name is still in the server program on both platforms. Whether it does anything today |
key name: verified in the server program (both platforms). Effect: unmeasured |
networkObjectBatchLogSlow |
logs slow replication batches. Default is −1.0 (off) — the "default 5" quoted in guides is wrong |
default: verified in the server program (Windows) |
entitySimulationMultiThreaded |
off by default. ⚠️ Turning it on cost +80 µs per frame on an idle Windows test server — the largest single-key cost we have measured — with nothing to simulate. Under real load it could be better or worse; nobody knows |
idle cost: measured (Windows, empty server, two instruments). At load: unmeasured |
entitySimulationPerformingCatchup |
a real key name in the server program; effect unknown |
key name: verified in the server program. Effect: unmeasured |
Launch parameters
| parameter |
what it does |
evidence |
-config, -port, -profiles, -BEpath, -mod, -serverMod |
plumbing: which config, port, profile dir, BattlEye dir, and mods to load |
plumbing |
-doLogs |
enables the log* config keys above |
measured in daily use — with the flag the logs appear, without it they do not |
-adminLog |
enables the .ADM admin log |
measured in daily use — same |
-freezeCheck |
a freeze detector: first FROZEN_ crash dump within about ten seconds of a freeze, another every ten seconds or so after. ⚠️ It marked our test server for a forced crash after about five minutes but did not actually terminate it — a genuinely wedged server sat there until it recovered on its own. If you need automatic recovery, run an external watchdog |
measured (Windows, one kind of induced freeze; Linux and other freeze kinds unmeasured) |
-cpuCount |
⚠️ Does not size the helper-thread pool, despite nearly every guide saying it does — maxcores in dayzsetting.xml does. We have seen no sign the flag costs anything, and no sign it does anything |
measured (Windows): raising maxcores created helper threads and silenced the too-few-workers warning; -cpuCount (confirmed received) created none |
-limitFPS |
caps the server's frame rate. A way to share a machine, not a way to speed a server up — see the guide. ⚠️ The value you ask for is not necessarily the value you get: on Windows delivered rates snap to a coarse timer grid (asking 200, 180 or 100 all delivered ~64; 60 delivered ~32; 30 delivered ~16). On Linux, a 200 cap delivered ~190 on our servers, and values above 200 are clamped to 200. Always read Average server FPS after setting it |
Windows grid: measured (7 values). Linux 200→~190 and the >200 clamp: measured. Full Linux value ladder: queued — see the lab |
dayzsetting.xml
A small file beside the server executable that almost no guide mentions — and it holds the knob
-cpuCount is believed to be.
| setting |
what it does |
shipped value |
evidence |
maxcores |
sizes the pool of helper ("job") threads |
2 |
measured (Windows): raising it creates helper threads. Whether more helpers improve anything a player feels: unmeasured |
reservedcores |
cores held back from that pool |
1 |
shipped files; behaviour beyond the count: unmeasured |
Economy (db/globals.xml)
All six values below are Bohemia's shipped values — checked against an untouched install.
| setting |
what it does |
shipped value |
evidence |
ZombieMaxCount |
cap on infected alive at once. Count is not cost: with nobody nearby, spawned infected consumed no simulation time we could measure — what costs is infected near players |
1000 |
value: shipped files. Idle-count null: measured (empty server). Cost at population: unmeasured |
AnimalMaxCount |
cap on animals |
200 |
value: shipped files |
CleanupLifetimeDeadPlayer |
seconds a player corpse persists |
3600 |
value: shipped files. Performance effect of shortening: unmeasured |
CleanupLifetimeDeadInfected |
seconds an infected corpse persists |
330 |
value: shipped files. Same |
CleanupLifetimeDeadAnimal |
seconds an animal corpse persists |
1200 |
value: shipped files. Same |
CleanupLifetimeRuined |
seconds ruined items persist |
330 |
value: shipped files. Same |
Settings that do not exist
Names invented by guides. The engine silently ignores unknown keys, so pasting these "works" — it
just does nothing. Listed so nobody re-imports them.
| claimed setting |
where it circulates |
the reality |
quantityOfZombiesMultiplier (as a serverDZ.cfg key) |
hosting-company guides |
not in the server program, the docs, or any shipped file. Infected volume is controlled by ZombieMaxCount and the mission's event/territory files |
lootProxySpawnReductionRadiusMax |
hosting-company guides |
not in the server program, the docs, or any shipped file. Loot placement is controlled from globals.xml |
cleanupLifetimeDeadPlayer (as a serverDZ.cfg key) |
hosting-company guides |
a real setting — in the wrong file. It lives in db/globals.xml, not serverDZ.cfg |
Settings Bohemia ships that the server ignores
Worse than folklore, because "it's in the official example" feels like proof. It is not.
| setting |
where it ships |
the reality |
guaranteedUpdates |
Bohemia's example serverDZ.cfg, and nearly every guide |
not read by the server program on Windows or Linux — the name appears nowhere in either executable, while every setting that is read appears in an obvious list beside its neighbours. Harmless to leave; pointless to tune; any guide describing what it "costs" is describing a setting the server never reads |
disableColdAreaBuildingCheck |
the shipped cfggameplay.json |
the game script's actual member is named …PlacementCheck, so the shipped key is silently ignored |
This page is maintained against our internal, evidence-tiered key research; rows change when a
measurement lands. What is queued to be measured next — with the pass/fail thresholds fixed before
the data — is on the performance lab page. Corrections to previously published
claims are logged on the performance guide.