Running your own DayZ server puts you in charge of the rules, the mods, the loot economy and the long-term progression of your community. You can host the DayZ dedicated server on your own hardware under Windows or Linux, or rent a DayZ server if you would rather not deal with the operating system, port forwarding and keeping the server process alive.

This guide takes you from SteamCMD through serverDZ.cfg and the DayZ server ports to Workshop mods, persistence, backups and the errors people actually run into. It covers the stable server app with SteamCMD app ID 223350.

DayZ server – survivor with a rifle walking along a cracked country road, burnt-out bus and car wreck at the roadside, abandoned village with a church tower in the fog

Important
+login anonymous does not work for installing the DayZ dedicated server. You need a Steam account that owns DayZ. If Steam Guard is active, you also have to enter the confirmation code it asks for.

Last checked against the official Bohemia documentation, as of August 2026.

What you will learn

  • how to install a DayZ server under Windows or Linux
  • how to set the important values in serverDZ.cfg correctly
  • which ports matter for the game connection, the Steam query and BattlEye/RCon
  • how to install DayZ server mods from the Steam Workshop
  • how persistence, map changes and backups relate to each other
  • how to narrow down the usual startup, connection and mod problems

Quick summary

  1. Plan for enough RAM, fast CPU cores and SSD or NVMe storage.
  2. Log into SteamCMD with a Steam account that owns DayZ. Anonymous login does not work.
  3. Install the stable server with app_update 223350 validate.
  4. Start the server with -config=serverDZ.cfg and set the game port via -port=2302.
  5. Configure the Steam query port separately in serverDZ.cfg, by default steamQueryPort = 2305;.
  6. For a typical single server, open the UDP range 2302–2305 in your firewall and router.
  7. Install Workshop mods through game app ID 221100, copy their .bikey files into the keys/ folder and load dependencies first.
  8. Stop the server before backups and updates, and store the mission and storage folder off the machine.
Important
The game port and the query port are configured in two different places: -port=2302 is a launch parameter, while steamQueryPort = 2305; belongs in serverDZ.cfg. When those values do not match your firewall rules, you get connection problems that are hard to trace.

Table of contents

Requirements and hardware

For a self-hosted DayZ server you mainly need enough memory, fast CPU cores, SSD or NVMe storage and a network connection that players can actually reach from outside.

Your Steam account matters more than usual here: server app 223350 cannot be pulled anonymously through SteamCMD. The account you use has to own DayZ. With Steam Guard enabled, a confirmation code is required on top of that.

Planning the hardware

The values below are planning and experience figures, not official hardware requirements from Bohemia:

ScenarioRAM (planning)CPU
Vanilla, up to roughly 20 players4–6 GB2–4 fast cores
Vanilla, a full 60 players6–8 GB4+ cores, high clock speed
Lightly modded with 5–10 mods8–12 GB4–6 cores, high clock speed
Heavily modded with Expansion or a custom map12–16 GB6–8+ cores, high clock speed

DayZ benefits far more from a high single-core clock speed than from a large number of slow cores. Plan on SSD or NVMe storage for the server files, mods and persistence.

Network and a public IPv4

If players are meant to reach your server from the internet, you need a connection that accepts incoming traffic. Classic port forwarding depends on a public IPv4 address.

With DS-Lite or CGNAT, your router usually has no publicly reachable IPv4 for incoming IPv4 connections. A correctly configured local firewall alone will not fix that. In that case, first find out whether your line can provide a public IPv4 at all.

Tip
If you do not want to manage port forwarding, SteamCMD, autostart and ongoing maintenance yourself, a rented server is the simpler route. If you want full control over the operating system, the file system and the launch parameters, self-hosting is the better fit.

Installing the DayZ server

For the stable version of the DayZ dedicated server you use SteamCMD app ID 223350. The experimental version has app ID 1042420.

Important
Do not use +login anonymous for the server installation. Log in with a Steam account that owns DayZ. Steam Guard may ask for an additional confirmation code.

On Windows

Install SteamCMD first, then run steamcmd.exe and log in with your Steam account.

login YOUR_STEAM_USERNAME

SteamCMD will ask for your password and the Steam Guard code as needed. Then set your installation directory and install the stable server app:

force_install_dir C:\PATH\TO\DAYZSERVER
app_update 223350 validate
quit

app_update 223350 validate installs the DayZ dedicated server and verifies the server files while doing so. The server executable on Windows is:

DayZServer_x64.exe

To launch it, create a batch file in the server root directory:

@echo off
DayZServer_x64.exe -config=serverDZ.cfg -port=2302 -profiles=profiles -BEpath=battleye -cpuCount=4 -dologs -adminlog -netlog -freezecheck
pause

Here is what those parameters do:

Launch parameterPurpose
-config=serverDZ.cfgpath to the server configuration
-port=2302game port the server listens on
-profiles=profilesfolder for logs, .rpt files and BattlEye profiles
-BEpath=battleyepath to the BattlEye directory
-mod=@Mod1;@Mod2client-side mods, separated by semicolons and wrapped in quotes
-serverMod=@AdminToolserver-only mods that the client does not load
-cpuCount=4number of logical cores for the server
-dologs -adminlog -netlogenable the respective logs
-freezecheckdetects frozen server processes

When you use mods, extend the line like this:

DayZServer_x64.exe -config=serverDZ.cfg -port=2302 -profiles=profiles -BEpath=battleye -mod="@CF;@Mod2" -cpuCount=4 -dologs -adminlog -netlog -freezecheck

Dependencies have to come before the mods that require them in the load order.

On Linux

A native Linux server build exists and is installed through the same app ID. Bohemia does list it with limited support, though — if you need maximum compatibility with mods and tooling, Windows tends to be the smoother ride in practice.

Start SteamCMD and log in with a Steam account that owns DayZ:

./steamcmd.sh

Then:

login YOUR_STEAM_USERNAME
force_install_dir /PATH/TO/DAYZSERVER
app_update 223350 validate
quit

The Linux binary is:

DayZServer

A simple start script can look like this:

#!/bin/bash
cd /PATH/TO/DAYZSERVER
exec ./DayZServer -config=serverDZ.cfg -port=2302 -profiles=profiles -BEpath=battleye -cpuCount=4 -dologs -adminlog -netlog -freezecheck

Make the script executable:

chmod +x /PATH/TO/DAYZSERVER/start-dayz.sh

For autostart and an automatic restart after a crash, create a systemd unit with your own paths and server user:

[Unit]
Description=DayZ Dedicated Server
After=network.target

[Service]
Type=simple
User=YOUR_USER
WorkingDirectory=/PATH/TO/DAYZSERVER
ExecStart=/PATH/TO/DAYZSERVER/start-dayz.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

Enable the unit after saving it:

systemctl daemon-reload
systemctl enable --now dayz-server

After changes to the start script or the configuration, restart the service:

systemctl restart dayz-server

Configuring the server (serverDZ.cfg)

The central server configuration lives in serverDZ.cfg. Edit it while the server is stopped.

The syntax is strict:

parameter = value;

Every line ends with a semicolon. Strings go in double quotes. A missing semicolon can stop the server from starting at all.

Caution
If your DayZ server stops starting after a change to serverDZ.cfg, check the lines you edited last for missing semicolons and misplaced quotes first.

Important serverDZ.cfg settings

ParameterDefaultMeaning
hostnameserver name in the server list
passwordemptyjoin password, empty means public
passwordAdminemptyadmin password for remote access
maxPlayers60maximum number of players
maxPing200kick above this ping in ms
steamQueryPort2305Steam query port; without the correct value the server does not appear in the browser
instanceId1separates the persistence folders of multiple servers on one machine
verifySignatures2verifies .pbo against .bisign; only the value 2 is supported
forceSameBuild01 allows only clients with an identical build revision
disableVoN01 disables voice chat
vonCodecQuality30voice quality from 0–30
disable3rdPerson01 turns the server into first-person only
disableCrosshair01 disables the crosshair
serverTime"SystemTime"start time; alternatively in the format "2026/8/7/17/23"
serverTimeAcceleration12time multiplier from 0–24
serverNightTimeAcceleration12additional night multiplier from 0.1–64, multiplied with the time acceleration
serverTimePersistent01 keeps the time of day across restarts
respawnTime5wait time in seconds before a new character
storageAutoFix1replaces corrupted persistence files with empty ones
timeStampFormat"Short"timestamps in the .rpt log, Full or Short
template in class Missions"dayzOffline.chernarusplus"loaded mission, following the <MissionName>.<TerrainName> scheme

An example using the defaults above together with your own credentials:

hostname = "My DayZ Server";
password = "";
passwordAdmin = "ADMIN_PASSWORD";
maxPlayers = 60;
maxPing = 200;
steamQueryPort = 2305;
instanceId = 1;
verifySignatures = 2;
forceSameBuild = 0;
disableVoN = 0;
vonCodecQuality = 30;
disable3rdPerson = 0;
disableCrosshair = 0;
serverTime = "SystemTime";
serverTimeAcceleration = 12;
serverNightTimeAcceleration = 12;
serverTimePersistent = 0;
respawnTime = 5;
storageAutoFix = 1;
timeStampFormat = "Short";

The mission entry inside class Missions uses this for Chernarus:

template = "dayzOffline.chernarusplus";

Changing the map (Chernarus/Livonia)

Chernarus uses this by default:

template = "dayzOffline.chernarusplus";

For a DayZ Livonia server, set the template entry inside class Missions to:

template = "dayzOffline.enoch";

The matching mission folder has to exist under mpmissions/.

After a map change, the persistence of the previous map is no longer active. The maps use separate save data. If you plan to switch back later, make sure you have not accidentally deleted the old mission and storage data.

Ports and firewall

On a DayZ server the game port and the Steam query port are configured separately. The game port is set at launch, the query port in serverDZ.cfg.

Port or rangeProtocolUsed for
2302UDPgame port, set via -port=2302 by default
2305UDPSteam query port according to the vanilla serverDZ.cfg
2302–2305UDPcommon range to open, since the engine also uses neighbouring ports
RConPort from BEServer_x64.cfgaccording to your own configurationBattlEye RCon port

Many hosts use something like 27016 as the query port instead of 2305. Both are valid. What matters is that the value of steamQueryPort and the matching firewall rule line up exactly.

Important
A server can be reachable via direct connection and still not show up in the in-game browser. That is typical when the game port works but the Steam query port set in serverDZ.cfg is not reachable.

Windows firewall

For the common 2302–2305/UDP range you can create an inbound rule on Windows:

New-NetFirewallRule -DisplayName "DayZ UDP 2302-2305" -Direction Inbound -Protocol UDP -LocalPort 2302-2305 -Action Allow

If you use a different steamQueryPort, that UDP port needs a firewall rule as well.

Linux with ufw

With ufw, the usual UDP range is opened like this:

ufw allow 2302:2305/udp

If you use a different query port, open that one to match steamQueryPort.

Port forwarding on the router

When self-hosting behind a router, the required UDP ports also have to be forwarded to the machine running the DayZ server. A local firewall rule alone does not make the server reachable from the internet.

With DS-Lite or CGNAT, classic IPv4 port forwarding can fail despite a correct router and firewall configuration, because there is no directly reachable public IPv4.

Multiple DayZ instances on one machine

If several DayZ servers run on the same machine, each instance needs its own ports and its own instanceId.

For every instance:

  • set a unique game port via -port
  • set a unique query port via steamQueryPort
  • open both ports accordingly in the firewall and router
  • use a different instanceId per instance

That also keeps the persistence folders of the individual servers separate.

Connecting to the server

Once the server is running, you find it through the DayZ launcher or the server browser. To add the server directly, use the IP address together with the game port.

With the default game port the scheme is:

IP-ADDRESS:2302

If a password is set in serverDZ.cfg, players have to enter it when connecting.

If the direct connection works but the server does not appear in the public list, check the Steam query port first. It has to be set correctly in steamQueryPort and reachable as a UDP port.

Tip
When testing a self-hosted server from the same home network via the public IP, NAT loopback can get in the way. If the results are unclear, test the connection from an external network as well.

Installing mods (Workshop)

DayZ server mods come from the Steam Workshop. There is one crucial difference to the server installation: the server app runs under 223350, but Workshop mods are downloaded through the DayZ game app ID 221100.

Important
Use workshop_download_item 221100 <WorkshopID> for Workshop mods. Mod downloads do not go through server app ID 223350.

1. Download the Workshop mod via SteamCMD

Start SteamCMD and log in with a Steam account that owns DayZ.

login YOUR_STEAM_USERNAME
workshop_download_item 221100 <WorkshopID>
quit

Replace <WorkshopID> with the ID of the mod you want.

After the download, the mod sits in:

steamapps/workshop/content/221100/<WorkshopID>/

2. Copy the mod into the server root directory

Copy the downloaded mod folder into the root directory of your DayZ server and give it a leading @, for example:

@CF

Further mods go next to it as their own @ folders.

3. Copy the signature keys into the keys folder

This step is what makes or breaks most mod setups. Copy the .bikey files from the mod directory:

@Mod/keys/

into the central key folder of the DayZ server:

keys/

With verifySignatures = 2 the server verifies the mod files. If the matching .bikey files are missing from the keys/ folder, players are rejected when they try to connect.

Caution
Missing .bikey files are one of the most common reasons why every player suddenly gets kicked after a mod installation. Check the keys/ folder first when you hit this.

4. Load mods with -mod

Client-side mods are passed at launch with -mod. Separate multiple mods with semicolons and wrap the whole list in quotes:

-mod="@CF;@Mod2"

In a Windows launch line that looks like this:

DayZServer_x64.exe -config=serverDZ.cfg -port=2302 -profiles=profiles -BEpath=battleye -mod="@CF;@Mod2" -cpuCount=4 -dologs -adminlog -netlog -freezecheck

For a server-only mod, use -serverMod instead:

-serverMod=@AdminTool

A mod loaded via -serverMod is not loaded by the client.

5. Mind the load order and dependencies

The order inside -mod matters as soon as mods have dependencies. A required base mod has to load before the mod built on top of it.

If a mod requires CF, for example, @CF comes first:

-mod="@CF;@Mod2"

So when the server fails to start, do not just check whether all mod folders exist — check whether their dependencies load in the right order.

6. Clients need the same mods

Players need exactly the same mods in the DayZ client, through Workshop subscriptions or the DayZ launcher.

The mods loaded on the server and on the client have to match. A single missing or differing mod can be enough to stop the client from connecting.

Updating mods after DayZ updates

After a DayZ update you should update the server and the mods together. The server itself is updated again with:

app_update 223350 validate

You pull the Workshop mods via their Workshop ID and game app ID 221100:

workshop_download_item 221100 <WorkshopID>

Outdated mods are one of the most common causes of failed starts after a DayZ update. When something breaks, check whether both the server files and every mod in use are on the matching version.

Admin access and moderation

The admin password is set in serverDZ.cfg via passwordAdmin:

passwordAdmin = "ADMIN_PASSWORD";

For logging, start the server with -adminlog. Together with -profiles=profiles, logs, .rpt files and BattlEye profiles end up in the profiles folder you specified.

A launch with several logging options looks like this:

-dologs -adminlog -netlog

BattlEye RCon is configured separately through the BattlEye directory. The RCon port is whichever port you set via RConPort in battleye/BEServer_x64.cfg. Use exactly the value you configured there and match any firewall rule to it.

If you run multiple instances, make sure RCon access is clearly assigned to the right server instance as well.

Persistence and backups

The persistent save data of a DayZ server lives in:

mpmissions/<mission>/storage_<instanceId>/

The instanceId from serverDZ.cfg therefore also decides which storage folder is used.

A clean DayZ server backup

For a consistent backup, work in this order:

  1. Stop the DayZ server.
  2. Back up the mission and storage folder.
  3. Store the backup off the machine.
  4. Start the server again.
Important
Do not simply copy the persistence while writes are in progress, and do not treat storageAutoFix as a substitute for a backup.

storageAutoFix = 1 can replace corrupted persistence files by emptying them. That is emergency repair, not a backup. It does not bring back the data it discards.

Persistence wipe

A full persistence wipe means deleting the storage folder in use. Stop the server first and back up the existing data if you might want it later.

A map change creates and uses its own persistence. If you switch from Chernarus to Livonia, the previous Chernarus save is no longer the active storage of the running mission.

Updating the DayZ server

Before an update, back up the persistence and stop the server.

Then update the stable server files through SteamCMD:

login YOUR_STEAM_USERNAME
app_update 223350 validate
quit

If you use Workshop mods, those need updating too:

workshop_download_item 221100 <WorkshopID>

After the update, make sure the server and the clients are on the same matching version. With forceSameBuild = 1; set, the server only accepts clients with an identical build revision.

Tip
If failed starts or connection errors show up right after a DayZ update, always check the installed mods as well as the server version. Outdated mods are a particularly common source of trouble after updates.

Troubleshooting

ProblemLikely causeWhat to check
Server does not appear in the browserSteam query port unreachable or set incorrectlymatch the value of steamQueryPort with the firewall and router rule
Direct connection works, the browser list does notgame port reachable, query port blockedopen the query port as UDP and use exactly the same value in serverDZ.cfg
Connection failsgame port unreachablecheck -port=2302, the UDP rule and the router forwarding
Bad version or Server rejected connectionversion or mod mismatchupdate server and client, compare the mod list and mind forceSameBuild
Players get kicked after a mod installation.bikey missing from the server keys/ foldercopy the keys from @Mod/keys/ into keys/ and check verifySignatures = 2
Server does not start after a cfg changesyntax error in serverDZ.cfgcheck semicolons and double quotes
SteamCMD login failsanonymous login used, or Steam Guard is waiting for confirmationlog in with a Steam account that owns DayZ and enter the Steam Guard code
Save data appears to be gonea different map or a different instanceId is activecompare the mission, the map template and storage_<instanceId>
Performance drops under loadCPU clock too low or too many modsprioritise high single-core performance and review the number of mods
Server unreachable from outside despite port forwardingDS-Lite or CGNATcheck whether a public IPv4 is available at all
Connecting via the public IP only fails from your own networkNAT loopbacktest the connection from an external network as well
Server no longer starts cleanly after a DayZ updatemods not updated together with the serverupdate the server files and every Workshop mod
Multiple instances interfere with each otherduplicate ports or instanceIdgive each instance its own game and query ports and its own instanceId

Not in the list, but reachable by IP

This pattern points at the Steam query port more often than anything else. The server listens for the game on, for example:

-port=2302

The browser, on the other hand, uses the value from:

steamQueryPort = 2305;

The two are independent. A working direct connection is therefore no proof that the query port is reachable.

The server does not start after a change

Check serverDZ.cfg first. Every configuration line has to end with a semicolon:

maxPlayers = 60;

String values require double quotes:

hostname = "My DayZ Server";

If a semicolon is missing, the server start can fail.

Every player gets kicked after a mod change

Check the signature keys first. The .bikey files of the mods have to be copied from:

@Mod/keys/

into:

keys/

With verifySignatures = 2, mod files that are not correctly signed — or that cannot be verified with the keys present — are rejected.

Frequently asked questions

Do I need to own DayZ on Steam to run a server?

Yes, installing through SteamCMD requires a Steam account that owns DayZ. +login anonymous does not work for the DayZ dedicated server, and with Steam Guard active a confirmation code may be required as well.

How much RAM does a DayZ server need?

Plan for roughly 4 to 16 GB of RAM depending on player count and mod scope. As planning and experience figures, 4–6 GB is often enough for vanilla up to about 20 players, while heavily modded setups with Expansion or a custom map should budget closer to 12–16 GB.

Which ports does a DayZ server need?

By default the game port runs on 2302/UDP, while the vanilla query port in serverDZ.cfg is 2305/UDP. In practice the range 2302–2305/UDP is commonly opened; a different query port such as 27016 also works as long as steamQueryPort and the firewall rule use the same value.

Why is my DayZ server not showing in the server list?

Usually the Steam query port is unreachable or does not match the value in steamQueryPort. That is why the direct connection over the game port can work while the server stays invisible in the in-game browser.

How do I install mods on a DayZ server?

Download Workshop mods with workshop_download_item 221100 <WorkshopID>, copy them as @Mod into the server root directory and move their .bikey files into the server's keys/ folder. Then load them via -mod, with dependencies listed first, and make sure clients run the same mods.

How do I switch from Chernarus to Livonia?

Set the mission entry in class Missions to template = "dayzOffline.enoch";. The matching mission folder has to exist under mpmissions/, and the Chernarus persistence is not the active Livonia persistence after the map change.

How do I back up my DayZ server?

Stop the server and copy the mission and storage folder from mpmissions/<mission>/storage_<instanceId>/ to an external location. storageAutoFix = 1 is not a backup, because corrupted persistence files can be replaced with empty ones.

If you want to run other survival or sandbox servers alongside DayZ, these guides cover the ground:

Summary

Creating your own DayZ server comes down to four areas: installing the server files correctly through SteamCMD, configuring serverDZ.cfg cleanly, opening the game and query ports properly, and keeping mods and their signature keys current.

The single most important installation detail is the SteamCMD login: server app 223350 does not allow anonymous login. Workshop mods, on the other hand, go through game app ID 221100. On the network side, keep the split between -port for the game port and steamQueryPort in serverDZ.cfg in mind.

Stable persistence needs regular backups. Stop the server before backing up and keep the mission and storage folder off the machine. If you would rather not manage the operating system, SteamCMD, port forwarding and autostart yourself, you can rent a DayZ server instead.