Configuring DayZ BattlEye and Mods via Pterodactyl
The Enfusion engine that powers DayZ ships with BattlEye anti cheat baked in, but operators have to generate the BattlEye RCON configuration, open the RCON UDP port, and assemble a command line that loads mods in the correct order. Get any one of these wrong and the server either refuses to start, silently runs without anti cheat, or accepts clients but rejects every chat command. This guide walks the full Pterodactyl deployment on Ubuntu 24.04.
Prerequisites
- Ubuntu 24.04 LTS with Pterodactyl Panel and Wings, 12 GB RAM, 4 cores.
- The community DayZ egg imported (the official Pterodactyl eggs repo has one).
- UDP 2302 (game), UDP 2303 (BattlEye RCON), and TCP 27016 (Steam query) open at the firewall.
Step 1: Create the Server in the Panel
- Nest: Arma. Egg: DayZ Standalone.
- Memory: 8192 MB. Disk: 20 GB.
- SteamCMD app ID: 223350 (Linux dedicated server build).
Step 2: BattlEye Configuration
BattlEye reads from battleye/BEServer_x64.cfg inside the server profile directory. Without an RCON password, no admin tools (including AdminToolsDZ and CF Tools) can authenticate. Without RConIP bound to 127.0.0.1, RCON listens on the public interface and is brute force scanned within hours.
RConPassword REPLACE_WITH_LONG_PASSWORDRestrictRCon 0RConPort 2303RConIP 127.0.0.1MaxPing 250Step 3: The Server Config
hostname = "Chernarus Sanctuary";password = "";passwordAdmin = "REPLACE_WITH_LONG_PASSWORD";maxPlayers = 60;verifySignatures = 2;forceSameBuild = 1;disableVoN = 0;vonCodecQuality = 20;disable3rdPerson = 0;disableCrosshair = 1;serverTime = "SystemTime";serverTimeAcceleration = 12;respawnTime = 5;enableMouseAndKeyboard = 1;Step 4: Mod Load Order
DayZ command line mods are passed via -mod= on the server side and -serverMod= for server only mods (admin tools, anti dupe). Order matters: dependencies must come before dependents. The egg exposes a MODS startup variable that the wrapper interpolates.
SRCDS_APPID=223350SERVER_PORT=2302MODS=@CF;@Community-Online-Tools;@DayZ-Expansion-Core;@DayZ-Expansion-VehiclesSERVER_MODS=@VPPAdminToolsSTARTUP_PARAMS=-config=serverDZ.cfg -port=2302 -BEpath=battleye -profiles=profiles -dologs -adminlog -netlog -freezecheckStep 5: First Boot and BattlEye Validation
# Look for these specific log lines:# BattlEye Server: Initialized (v1.X.X)# BattlEye Server: RCon admin #0 logged in (when you connect a tool)# 12:34:56 [BE] Created BEServer instance bound to 127.0.0.1:2303If you instead see BattlEye Server: Initialization failed, the most common cause is BattlEye binaries missing from the install. SteamCMD does not always pull them on first install. Run the SteamCMD update step a second time in the egg startup to force a redownload.
Performance and Tuning
- Keep
verifySignatures = 2. The1setting is widely exploitable. - Pin
MaxPingsensibly.250is friendly to global players;150for regional servers. - Run the
-dologs -adminlog -netlogflags only in production. They are essential for incident response.
Conclusion
DayZ is unforgiving about configuration order, but the recipe is consistent: BattlEye config bound to loopback, server config tuned for your community, mods listed in dependency order, and signatures locked at 2. Get the four right and the Enfusion server runs for weeks without operator attention.