Hosting Guides

Configuring DayZ BattlEye and Mods via Pterodactyl

9 min readUbuntu 24.04PterodactylEnfusion
Once your server is online, jump to the DayZ command and config reference.

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.

profiles/battleye/BEServer_x64.cfg
RConPassword REPLACE_WITH_LONG_PASSWORD
RestrictRCon 0
RConPort 2303
RConIP 127.0.0.1
MaxPing 250

Step 3: The Server Config

serverDZ.cfg
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.

Startup Variables
SRCDS_APPID=223350
SERVER_PORT=2302
MODS=@CF;@Community-Online-Tools;@DayZ-Expansion-Core;@DayZ-Expansion-Vehicles
SERVER_MODS=@VPPAdminTools
STARTUP_PARAMS=-config=serverDZ.cfg -port=2302 -BEpath=battleye -profiles=profiles -dologs -adminlog -netlog -freezecheck

Step 5: First Boot and BattlEye Validation

server console
# 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:2303

If 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. The 1 setting is widely exploitable.
  • Pin MaxPing sensibly. 250 is friendly to global players; 150 for regional servers.
  • Run the -dologs -adminlog -netlog flags 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.