Skip to content

Server Troubleshooting ​


Summary: A symptom index for the most common DayZ server operations problems -- startup failures, connection issues, crashes, loot and vehicle spawning, persistence, and performance. Find your symptom, run the first-aid check, then follow the link to the chapter that owns the full fix.

Scope: This chapter is for running a server. For problems inside mod code -- script errors, RPC, UI, PBO builds -- see the mod-development Troubleshooting Guide.


Table of Contents ​


Server Won't Start ​

Missing DLL Files ​

If DayZServer_x64.exe crashes immediately with a missing DLL error, install the latest Visual C++ Redistributable for Visual Studio 2019 (x64) from Microsoft's official site and restart.

Port Already in Use ​

Another DayZ instance or application is occupying port 2302. Check with netstat -ano | findstr 2302 (Windows) or ss -tulnp | grep 2302 (Linux). Kill the conflicting process or change your port with -port=2402.

Missing Mission Folder ​

The server expects mpmissions/<template>/ where the folder name exactly matches the template value in serverDZ.cfg. For Chernarus, that is mpmissions/dayzOffline.chernarusplus/ and it must contain at least init.c.

Invalid serverDZ.cfg ​

A single missing semicolon or wrong quote type prevents startup silently. Watch for:

  • Missing ; at end of value lines
  • Smart quotes instead of straight quotes
  • Missing {}; block around class entries

Missing Mod Files ​

Every path in -mod=@CF;@VPPAdminTools;@MyMod must exist relative to the server root and contain an addons/ folder with .pbo files. A single bad path prevents startup.


Players Can't Connect ​

Port Forwarding ​

DayZ needs these UDP ports forwarded and open in your firewall:

PortProtocolPurpose
2302UDPMain game traffic
2303-2304UDPSteam networking
2305UDPSteam query port (steamQueryPort, default)

The engine reserves the block 2302-2305 off the base port. If you change the base with -port=, the whole block shifts by the same offset. The query port default of 2305 is confirmed in Server Setup.

Firewall Blocking ​

Add DayZServer_x64.exe to your OS firewall exceptions. On Windows: netsh advfirewall firewall add rule name="DayZ Server" dir=in action=allow program="C:\DayZServer\DayZServer_x64.exe" enable=yes. On Linux, open the ports with ufw or iptables.

Mod Mismatch ​

Clients must have the exact same mod versions as the server. If a player sees "Mod mismatch," either side has an outdated version. Update both when any mod receives a Workshop update.

Missing .bikey Files ​

Every mod's .bikey file must be in the server's keys/ directory. Without it, BattlEye rejects the client's signed PBOs. Look inside each mod's keys/ or key/ folder.

Server Full ​

Check maxPlayers in serverDZ.cfg (default 60).


Crashes and Null Pointers ​

Null Pointer Access ​

SCRIPT (E): Null pointer access in 'MyClass.SomeMethod' -- the most common script error. A mod is calling a method on a deleted or uninitialized object. This is a mod bug, not a server misconfiguration. Report it to the mod author with the full script_*.log.

Finding Script Errors ​

Script errors land in the script_*.log, not the .RPT. Search that file for SCRIPT (E); the class and method name tells you which mod is responsible. Log locations:

  • Server: the profiles/ directory (set with -profiles=, otherwise the server root)
  • Client: %localappdata%\DayZ\

Engine-level failures -- missing addons, signature errors, hard crashes -- go in the .RPT instead. See Reading Log Files.

Crash on Restart ​

If the server crashes on every restart, storage_1/ may be corrupted. Stop the server, back up storage_1/, delete storage_1/data/events.bin, and restart. If that fails, delete the entire storage_1/ directory (wipes all persistence). See World State & Persistence for a safe recovery routine.

Crash After Mod Update ​

Revert to the previous mod version. Check the Workshop changelog for breaking changes -- renamed classes, removed configs, and changed RPC formats are common causes.


Loot Not Spawning ​

Loot lives in the central economy (CE). Most "it won't spawn" cases are a registration or tag mismatch, not a missing item.

SymptomLikely causeFirst-aid check
A custom item never appears anywheretypes file not registered in cfgeconomycore.xmlConfirm a <file name="..." type="types" /> entry exists for your file
One item is absent, the rest spawn fineCategory / usage / value tag mismatchTags in types.xml must match cfglimitsdefinition.xml names exactly (case-sensitive: Military, not military)
Item is registered but count stays at zeronominal is 0Set nominal to at least 1 for natural spawning
Item loads with no errors but still absentNo matching map group positionsAssign categories/usages that already have positions in mapgroupproto.xml

First-aid: search the script_*.log at boot for CE load lines and any complaint about your economy files. A rejected types file logs an error there.

Full field-by-field walkthrough of cfgeconomycore.xml, tag definitions, nominal/min/lifetime tuning, and map group positions: see Loot Economy Deep Dive.


Vehicles Not Spawning ​

Vehicles use the event system, not types.xml.

SymptomLikely causeFirst-aid check
No vehicles anywhereEvent set to <active>0</active>Set the event to <active>1</active> in events.xml
Event active but no vehicles appearMissing spawn coordinates<position>fixed</position> events need entries in cfgeventspawns.xml
Vehicle count drops over time and never recoversWrecks occupy slotsSet remove_damaged="1" so the CE cleans up destroyed vehicles

First-aid: confirm the event name in events.xml matches the name referenced in cfgeventspawns.xml exactly.

Full event structure (nominal/min/max, radii, children, spawn coordinates) is covered in Vehicle & Dynamic Event Spawning.


Persistence Issues ​

SymptomLikely causeFirst-aid check
Bases and stored objects disappearTerritory flag expiredCheck FlagRefreshFrequency in globals.xml (default 432000 = 5 days); a flag not refreshed in that window deletes everything in its radius
Items vanish after a restartlifetime expiredEach item has a lifetime (seconds) in types.xml; container contents inherit the container's lifetime
storage_1/ grows very largeToo many economy itemsReduce nominal values, especially food, clothing, and ammunition
All players spawn freshPlayer data lostPlayer inventories live in storage_1/players/; back up storage_1/ regularly

First-aid: never edit persistence files while the server is running -- it will overwrite your changes on the next save.

Lifetime reference values, flag refresh tuning, and safe storage_1/ maintenance are covered in World State & Persistence.


Performance Problems ​

SymptomLikely causeFirst-aid check
Low server FPS (target is 30+)Too many entities or heavy lootReduce ZombieMaxCount and AnimalMaxCount in globals.xml; lower nominal values
Rubber-banding, delayed actions, invisible zombies (desync)Server FPS below ~15Fix the underlying FPS problem -- there is no desync-specific setting
Restarts take longer than 2-3 minutesOversized storage_1/Reduce loot nominals and set appropriate lifetimes to shrink persistence

First-aid: watch server FPS in the admin console or a monitoring tool before changing settings, so you can measure the effect of each change.

Default values, the entity/loot/persistence trade-offs, and a step-by-step tuning method are in Performance Tuning.


Reading Log Files ​

Server Log Locations ​

Both logs live in profiles/ -- the directory passed to -profiles=, or the server root if that flag is unset:

  • script_<date>_<time>.log -- script output and SCRIPT (E) errors. This is your primary debugging tool.
  • DayZServer_x64_<date>_<time>.RPT -- the engine report: startup, crashes, missing addons, and signature failures.

What to Search For ​

Search termLogMeaning
SCRIPT (E)script logScript error -- a mod has a bug
Cannot registerRPTClass-name collision between two mods
Missing addonsRPTA dependency is not loaded (wrong load order or missing mod)
Signature verification failedRPT.bikey mismatch or missing key
Cannot openRPTMissing file (PBO, config, mission)
CrashRPTApplication-level crash

For mod-conflict diagnosis using these same logs, see Mod Management.

BattlEye Logs ​

BattlEye logs are in the BattlEye/ directory within your server root. These show kick and ban events. If players report being kicked unexpectedly, check here first.


Quick Diagnostic Checklist ​

When something goes wrong, work through this list in order:

1. Check the script_*.log for SCRIPT (E), and the .RPT for engine errors
2. Verify every -mod= path exists and contains addons/*.pbo
3. Verify all .bikey files are copied to keys/
4. Check serverDZ.cfg for syntax errors (missing semicolons)
5. Check port forwarding: 2302 UDP + Steam ports 2303-2305 UDP
6. Verify mission folder matches the template value in serverDZ.cfg
7. Check storage_1/ for corruption (delete data/events.bin if needed)
8. Test with zero mods first, then add mods one at a time

Step 8 is the most powerful technique. If the server works vanilla but breaks with mods, you can isolate the problem mod through binary search -- add half your mods, test, then narrow down.

Released under CC BY-SA 4.0 | Code examples under MIT License