DayZ Server Performance Optimization
Server FPS, network tuning, BattlEye, mod selection: how to keep your DayZ server smooth and stable.
DayZ Server Performance Optimization
DayZ is demanding as a game and twice that as a server. Single-thread CPU load, large maps, and mod loading are the typical bottlenecks. This guide shows where to tune.
The Number That Matters Most: Server FPS
DayZ servers ideally run at 30-60 server FPS. Below 15 sustained, players feel desync (doors not reacting, shots not landing, zombies stuck).
Server FPS is in the console log:
fps=42, mem=…, recv=…, sent=…
Tools like BEC or VPP-Admin Tools display the value live.
What Hurts Server FPS Most
| Cause | Impact |
|---|---|
Too many zombies (Events Infected*) | Strong |
| Too many vehicles | Strong |
High simulatedPlayersBatch on weak CPU | Medium |
| Heavy mods (Expansion, big AI quest packs) | Medium |
Large loot pools (excessive nominal in types.xml) | Medium |
| Custom map with dense POIs | Low to medium |
| Storms / weather calculation | Low |
Tuning Steps
1. Maximize CPU single-thread.
DayZ benefits from high boost clock, not many cores. RespawnHost uses AMD Ryzen 9 9950X / 7950X with boost up to 5.7 GHz on purpose. Self-hosted: 8 cores at 5 GHz beat 32 cores at 3 GHz.
2. Enable multithreadedReplication = 1.
In serverDZ.cfg, this offloads network replication and frees the main thread.
multithreadedReplication = 1;
3. Match simulatedPlayersBatch to your CPU.
simulatedPlayersBatch = 20;
The default 20 is conservative. With a strong CPU and 40-60 players, push to 30. If FPS drop, scale back.
4. Reduce network ranges if needed.
networkRangeClose = 20;
networkRangeNear = 150;
networkRangeFar = 1000;
networkRangeDistantEffect = 4000;
The defaults are balanced. Lower networkRangeFar and networkRangeDistantEffect if bandwidth becomes the issue (60+ player servers). Caution: too low and distant gunshots become inaudible.
5. Scale events down.
More zombies = more AI work. In events.xml, drop nominal for InfectedArmy, InfectedCity, InfectedFarm, etc. by 25-40 % when FPS suffer.
6. Control loot quantities.
types.xml: lower exaggerated nominal values. A map doesn’t need to keep 200 AKMs alive at once.
BattlEye Performance
BattlEye runs as a separate process and validates player input. Overhead is small (~3-5 % CPU) — justified almost everywhere.
The filter file scripts.txt shouldn’t have too many mod exceptions — every rule costs microseconds per action. Load only filters your mods actually need.
Persistence Performance
The storage_1 folder grows over time. Very large persistence files (>500 MB) slow down restarts.
Maintenance:
- Periodically wipe player camps unvisited for 30+ days (manual, or via mods like ExpansionAreas)
- Map wipes every 2-4 months are accepted in most communities
- Always back up before wiping
Mod Selection as a Performance Lever
Rule of thumb: every active mod costs performance. Even “small” mods hook into spawn loops or animation systems.
Performance killers (descending):
- AI quests / mission packs with dynamic spawns (Expansion AI, DayZ Editor Loader missions)
- Trader mods with hundreds of slot definitions
- Custom maps with dense POIs
- Weather mods with real-time effects
Disable mods one by one to identify culprits.
Restart Schedule
DayZ benefits from regular restarts — the server process accumulates RAM fragmentation. Recommendations:
- 4-hour restarts on large servers (60+ players)
- 6-hour restarts on mid servers
- 12-hour restarts on small vanilla servers
Schedule via BEC (Schedule.xml) or through the RespawnHost panel.
Example BEC schedule:
<job id="0" day="*" hour="*/4" minute="0" delay="600" loop="1" cmd="say -1 Server restart in 10 minutes" />
<job id="1" day="*" hour="*/4" minute="55" delay="0" loop="1" cmd="#shutdown" />
Checklist: My Server Lags — What Now?
- Check server FPS in log or admin tool
- CPU usage in the RespawnHost panel
- RAM usage — swap is performance death
- Network — player ping, packet loss
- Disable mods then re-add to find the offender
- Reduce events in
events.xml - Set restart schedule to 4 hours
- Check persistence size — wipe or clean up if huge
FAQ
Question: Why don’t DayZ servers use many cores?
The engine is historically single-thread oriented. multithreadedReplication offloads network code, but the main loop stays single-threaded. Bohemia has parallelized more in recent years, but cores beyond 4-6 don’t help much.
Question: How many players can a server “really” handle?
Vanilla with a strong CPU: 60-80 players stable. Heavy mods drop that to 40-50. More is possible, but server FPS usually visibly suffer.
Question: What does “desync” actually mean?
Player actions reach the server too late or too rarely. Symptoms: doors open with delay, shots miss, zombies freeze, items vanish. Cause is usually low server FPS or bandwidth issues.
Question: Do I need -freezecheck as a launch parameter?
Yes — it detects frozen servers and triggers a crash dump for diagnostics. RespawnHost sets it by default.
Question: Should I disable BattlEye to save performance?
No. CPU overhead is marginal (3-5 %) and without BattlEye your server becomes a cheater’s playground. The trade-off isn’t worth it.
Question: Does a faster SSD help?
Yes for persistence write cycles — especially during boot and player joins. RespawnHost runs NVMe SSDs, which is optimal.
Question: My server runs fine but spikes in the evening — why?
Likely persistence saves every few minutes. With many players and a big storage_1, each save costs a moment of performance. Normal. If it’s continuous, clean persistence or plan more CPU headroom.
Question: Can I set simulatedPlayersBatch too high?
Yes. Values above 30 push single-thread CPU to 100 % quickly. Watch server FPS and only push it up if you have headroom.