DayZ Server Setup: SteamCMD, serverDZ.cfg, Mods & BattlEye RCon
How to stand up a DayZ dedicated server: installing the server app with SteamCMD (and why anonymous login does not work), the serverDZ.cfg keys that matter, launching with the right ports, adding Workshop mods with their .bikey keys so signed clients can connect, and enabling BattlEye RCon for remote admin.
DayZ hosting has a few quirks that trip up newcomers coming from Rust or Source games. The dedicated server is a separate Steam app from the game, its SteamCMD download is not anonymous, and once you add mods you have to deal with signature keys or players cannot connect. This guide walks the install, serverDZ.cfg, the launch line, mods, and BattlEye RCon.
Installing the server with SteamCMD
The DayZ dedicated server is its own Steam app - 223350 ("DayZ Server", the stable app) - and there is a distinct experimental server app, 1042420. Do not point +app_update at 221100: that is the DayZ client app, used only to pull Workshop mods (see below), not to install the server.
Unlike many game servers, anonymous login does not work for DayZ - use a Steam account (current guidance is one that owns DayZ):
steamcmd +force_install_dir /home/dayz/server +login <your_steam_account> +app_update 223350 validate +quit
The server binary is DayZServer_x64.exe on Windows and DayZServer on Linux. Note that Linux stable-branch availability varies by patch - the experimental server app (1042420) is the more reliably maintained Linux option, so check which one currently has a Linux build if you host on Linux.
Configuring serverDZ.cfg
Server settings live in serverDZ.cfg in the install root. A minimal working config:
hostname = "My DayZ Server";
password = ""; // join password; empty = public
passwordAdmin = "changeme"; // in-game admin password
maxPlayers = 60;
verifySignatures = 2; // 2 is the only supported value - keeps unsigned mods/clients out
steamQueryPort = 27016; // set this EXPLICITLY (see Ports below)
class Missions
{
class DayZ
{
template = "dayzOffline.chernarusplus"; // the mission (map) the server loads
};
};
Two things to get right:
verifySignatures = 2is the only supported value. It enforces mod signatures - which is exactly why every mod you add needs its key inkeys/(see Mods).- The mission is a
class Missionsblock, not a bare key.templatenames the mission folder undermpmissions/-dayzOffline.chernarusplusfor Chernarus,dayzOffline.enochfor Livonia.
Launching the server
A typical launch line (Windows shown; the same flags apply on Linux):
DayZServer_x64.exe -config=serverDZ.cfg -port=2302 ^
-profiles=.\profiles -BEpath=.\battleye ^
-doLogs -adminLog -freezeCheck -cpuCount=4
-config=points at yourserverDZ.cfg;-port=is the game port;-profiles=is where logs and admin data are written;-BEpath=is the BattlEye working directory.-mod=vs-serverMod=is the key modding distinction:-mod=@ModA;@ModBloads client-facing mods (players must run them too), while-serverMod=@AdminToolsloads server-only mods that clients neither see nor need.-doLogs -adminLog -freezeCheckenable logging and a watchdog;-cpuCount=caps worker threads.
Ports to forward
2302/UDP- the game port (override with-port). DayZ also uses the next few ports (2303-2306) for voice/steam traffic, so forward the small2302-2306range.- Steam query port and the BattlEye RCon port have no reliable cross-source default - set both explicitly (
steamQueryPortinserverDZ.cfg,RConPortin the BattlEye config) and forward them. Keep the RCon port outside the2302-2306game range.
Mods and their .bikey keys
Workshop mods are pulled through the client app id 221100 and land under steamapps/workshop/content/221100/<workshop_id>. You can grab one without a full client install:
steamcmd +login <your_steam_account> +workshop_download_item 221100 <workshop_id> +quit
For each mod:
- Copy the mod's
@ModNamefolder into the server directory and add it to-mod=. - Copy the mod's
.bikeyfile into the server'skeys/folder. WithverifySignatures = 2, a client running a signed mod cannot connect unless that mod's key is present - a missing key is the most common "players get kicked on join" cause.
BattlEye RCon for remote admin
DayZ uses standard BattlEye RCon for remote administration (the same protocol family as Arma), so BattlEye RCon clients and tools work against it. Configure it in BEServer_x64.cfg inside your -BEpath / -profiles BattlEye directory:
RConPassword changeme_strong_secret
RConPort <a_port_outside_2302-2306>
RestrictRCon 0
Use a long random RConPassword; anyone with it can run admin commands remotely.
MantaScope tracks the live DayZ server list with real, bot-adjusted player counts (DayZ's listing is full of bot-padded spoof servers - we surface the human count), population history, per-server rank, uptime and downtime alerts, plus decoded server attributes and mod lists. Because DayZ speaks BattlEye RCon, you can claim your server on MantaScope and administer it from the browser - live player list, kick/ban, chat and console over the RConPort you set above - alongside population graphs, scheduled messages, automations and Discord notifications.