Batch Files Setup
The simplest way to get your DayZ server running using basic Windows batch scripts
- • Windows Server or Windows 10/11 with administrative access
- • DayZ Server files downloaded via SteamCMD or Steam
- • Basic understanding of Windows file system
- • Ports 2302, 2305, 27016 (UDP) forwarded in your router/firewall
What is SteamCMD?
SteamCMD is a command-line version of Steam that allows you to download game servers and other Steam content without the full Steam client. It's essential for setting up DayZ servers.
Install SteamCMD
- Create a folder for SteamCMD (e.g.,
C:\SteamCMD
) - Extract the downloaded ZIP file to this folder
- You should now have
steamcmd.exe
in your SteamCMD folder
How to Open Command Prompt (CMD)
Method 1: Using Windows Search
- Press the Windows key
- Type "cmd" or "Command Prompt"
- Right-click on "Command Prompt" and select "Run as administrator"
Method 2: Using File Explorer
- Open File Explorer and navigate to your SteamCMD folder
- Hold Shift + Right-click in an empty area
- Select "Open PowerShell window here" or "Open command window here"
First Time Setup
Navigate to your SteamCMD folder and run it for the first time:
# Navigate to your SteamCMD folder cd C:\SteamCMD # Run SteamCMD for the first time (this will download updates) steamcmd.exe
SteamCMD will download and install updates on first run. Wait for it to complete and show theSteam>
prompt.
Now that SteamCMD is set up, use it to download the DayZ server files:
# In the SteamCMD prompt, run these commands: login anonymous app_update 223350 validate quit
What these commands do:
- •
login anonymous
- Logs into Steam without an account - •
app_update 223350 validate
- Downloads DayZ server (ID: 223350) and validates files - •
quit
- Exits SteamCMD
This downloads the DayZ server files to your SteamCMD directory atsteamapps/common/DayZServer
.
Create a new file called start_server.bat
in your DayZ server directory:
Basic Server Launch:
@echo off echo Starting DayZ Server... cd /d "C:\Path\To\Your\DayZServer" DayZServer_x64.exe -config=serverDZ.cfg -port=2302 -profiles=profiles -dologs -adminlog -netlog -freezecheck pause
With Mods (Manual):
@echo off echo Starting DayZ Server with Mods... cd /d "C:\Path\To\Your\DayZServer" DayZServer_x64.exe -config=serverDZ.cfg -port=2302 -profiles=profiles -dologs -adminlog -netlog -freezecheck -mod="@CF;@BuilderItems" pause
Mod Installation Requirements:
- • Place mod folders (e.g.,
@CF
,@BuilderItems
) in the root directory of your DayZServer - • Copy the mod's
.bikey
files from each mod'sKeys
folder to your server'sKeys
folder - • Example:
C:\DayZServer\@CF\Keys\CF.bikey
→C:\DayZServer\Keys\CF.bikey
- • Without proper key installation, players will be kicked for signature verification failures
Important:
Replace C:\Path\To\Your\DayZServer
with your actual server path. Make sure to use double backslashes (\\) in the path.
Create or edit the serverDZ.cfg
file in your server directory. Here's a comprehensive configuration with all essential and advanced settings:
Complete Server Configuration
Includes all essential and advanced settings in one file
Basic Configuration (Essential Settings):
hostname = "EXAMPLE NAME"; // Server name description = "Some description"; // Description of the server. Gets displayed to users in the client server browser, max length 255 characters password = ""; // Password to connect to the server passwordAdmin = ""; // Password to become a server admin enableWhitelist = 0; // Enable/disable whitelist (value 0-1) disableBanlist = false; // Disables the usage of ban.txt (default: false) disablePrioritylist = false; // Disables usage of priority.txt (default: false) maxPlayers = 60; // Maximum amount of players verifySignatures = 2; // Verifies .pbos against .bisign files. (only 2 is supported) forceSameBuild = 1; // When enabled, the server will allow the connection only to clients with same the .exe revision as the server (value 0-1) disableVoN = 0; // Enable/disable voice over network (value 0-1) vonCodecQuality = 20; // Voice over network codec quality, the higher the better (values 0-20) disable3rdPerson = 0; // Toggles the 3rd person view for players (value 0-1) disableCrosshair = 0; // Toggles the cross-hair (value 0-1) serverTime = "SystemTime"; // Initial in-game time of the server. "SystemTime" means the local time of the machine. // Another possibility is to set the time to some value in "YYYY/MM/DD/HH/MM" format, e.g "2015/4/8/17/23". serverTimeAcceleration = 1; // Accelerated Time - The numerical value being a multiplier (0.1-64). // Thus, in case it is set to 24, time would move 24 times faster than normal. An entire day would pass in one hour. serverNightTimeAcceleration = 1; // Accelerated Nigh Time - The numerical value being a multiplier (0.1-64) and also multiplied by serverTimeAcceleration value. // Thus, in case it is set to 4 and serverTimeAcceleration is set to 2, night time would move 8 times faster than normal. // An entire night would pass in 3 hours. serverTimePersistent = 0; // Persistent Time (value 0-1) - The actual server time is saved to storage, so when active, the next server start will use the saved time value. guaranteedUpdates = 1; // Communication protocol used with game server (use only number 1) loginQueueConcurrentPlayers = 5; // The number of players concurrently processed during the login process. // Should prevent massive performance drop during connection when a lot of people are connecting at the same time. loginQueueMaxPlayers = 500; // The maximum number of players that can wait in login queue instanceId = 1; // DayZ server instance id, to identify the number of instances per box and their storage folders with persistence files storageAutoFix = 1; // Checks if the persistence files are corrupted and replaces corrupted ones with empty ones (value 0-1) class Missions { class DayZ { template = "dayzOffline.chernarusplus"; // Mission to load on server startup. <MissionName>.<TerrainName> }; };
Advanced Configuration (Performance & Logging):
respawnTime = 5; // Sets the respawn delay (in seconds) before the player is able to get a new character on the server, when the previous one is dead motd[] = { "line1","line2" }; // Message of the day displayed in the in-game chat motdInterval = 1; // Time interval (in seconds) between each message timeStampFormat = "Short"; // Format for timestamps in the .rpt file (value Full/Short) logAverageFps = 1; // Logs the average server FPS (value in seconds), needs to have ''-doLogs'' launch parameter active logMemory = 1; // Logs the server memory usage (value in seconds), needs to have the ''-doLogs'' launch parameter active logPlayers = 1; // Logs the count of currently connected players (value in seconds), needs to have the ''-doLogs'' launch parameter active logFile = "server_console.log"; // Saves the server console log to a file in the folder with the other server logs adminLogPlayerHitsOnly = 0; // 1 - log player hits only / 0 - log all hits ( animals/infected ) adminLogPlacement = 0; // 1 - log placement action ( traps, tents ) adminLogBuildActions = 0; // 1 - log basebuilding actions ( build, dismantle, destroy ) adminLogPlayerList = 0; // 1 - log periodic player list with position every 5 minutes disableMultiAccountMitigation = false; // disables multi account mitigation on consoles when true (default: false) enableDebugMonitor = 1; // shows info about the character using a debug window in a corner of the screen (value 0-1) steamQueryPort = 2305; // defines Steam query port, should fix the issue with server not being visible in client server browser allowFilePatching = 1; // if set to 1 it will enable connection of clients with "-filePatching" launch parameter enabled simulatedPlayersBatch = 20; // Set limit of how much players can be simulated per frame (for server performance gain) multithreadedReplication = 1; // enables multi-threaded processing of server's replication system // number of worker threads is derived by settings of jobsystem in dayzSettings.xml by "maxcores" and "reservedcores" parameters (value 0-1) speedhackDetection = 1; // enable speedhack detection, values 1-10 (1 strict, 10 benevolent, can be float) networkRangeClose = 20; // network bubble distance for spawn of close objects with items in them (f.i. backpacks), set in meters, default value if not set is 20 networkRangeNear = 150; // network bubble distance for spawn (despawn +10%) of near inventory items objects, set in meters, default value if not set is 150 networkRangeFar = 1000; // network bubble distance for spawn (despawn +10%) of far objects (other than inventory items), set in meters, default value if not set is 1000 networkRangeDistantEffect = 4000; // network bubble distance for spawn of effects (currently only sound effects), set in meters, default value if not set is 4000 networkObjectBatchLogSlow = 5; //Maximum time a bubble can take to iterate in seconds before it is logged to the console networkObjectBatchEnforceBandwidthLimits = 1; //Enables a limiter for object creation based on bandwidth statistics networkObjectBatchUseEstimatedBandwidth = 0; //Switch between the method behind finding the bandwidth usage of a connection. If set to 0, it will use the total of the actual data sent since the last server frame, and if set to 1, it will use a crude estimation networkObjectBatchUseDynamicMaximumBandwidth = 1; //Determines if the bandwidth limit should be a factor of the maximum bandwidth that can be sent or a hard limit. The maximum bandwidth that can be sent fluctuates depending on demand in the system. networkObjectBatchBandwidthLimit = 0.8; //The actual limit, could be a [0,1] value or a [1,inf] value depending on networkObjectBatchUseDynamicMaximumBandwidth. See above networkObjectBatchCompute = 1000; //Number of objects in the create/destroy lists that are checked in a single server frame networkObjectBatchSendCreate = 10; //Maximum number of objects that can be sent for creation networkObjectBatchSendDelete = 10; //Maximum number of objects that can be sent for deletion defaultVisibility=1375; // highest terrain render distance on server (if higher than "viewDistance=" in DayZ client profile, clientside parameter applies) defaultObjectViewDistance=1375; // highest object render distance on server (if higher than "preferredObjectViewDistance=" in DayZ client profile, clientside parameter applies) lightingConfig = 0; // 0 for brighter night, 1 for darker night, 2 for Sakhal-specific lighting - if enableCfgGameplayFile is enabled, this option will be overriden by the WorldsData::lightingConfig value disablePersonalLight = 1; // disables personal light for all clients connected to server disableBaseDamage = 0; // set to 1 to disable damage/destruction of fence and watchtower disableContainerDamage = 0; // set to 1 to disable damage/destruction of tents, barrels, wooden crate and seachest disableRespawnDialog = 0; // set to 1 to disable the respawn dialog (new characters will be spawning as random) pingWarning = 200; // set to define the ping value from which the initial yellow ping warning is triggered (value in milliseconds) pingCritical = 250; // set to define the ping value from which the red ping warning is triggered (value in milliseconds) MaxPing = 300; // set to define the ping value from which a player is kicked from the server (value in milliseconds) serverFpsWarning = 15; // set to define the server fps value under which the initial server fps warning is triggered (minimum value is 11) shotValidation = 1; // 1 enables the validation, 0 disables clientPort = 2304; // int value, forces the port the clients connect with
Configuration Tips:
- • Recommended: Use the complete configuration for best results
- • Adjust
maxPlayers
,hostname
, andpasswordAdmin
for your server - • Network settings can significantly impact performance - test carefully
- • Enable logging options to help with troubleshooting
- Double-click your
start_server.bat
file - The command prompt will open and show server startup messages
- Wait for "Game ready" message
- Your server is now running and accessible in the local network
- Make sure to configure your firewall to allow traffic on the server port
Tip: Keep the command prompt window open while the server is running. Closing it will stop the server.
- • Extremely simple to set up
- • No additional software required
- • Easy to understand and modify
- • Lightweight approach
- • Great for learning server basics
- • Very basic functionality only
- • No automatic restarts
- • No crash detection
- • Manual mod management
- • Limited error handling
Once your server is running:
- • Test connectivity from outside your network
- • Consider upgrading to PowerShell scripts for more features
- • Set up Windows Task Scheduler for automatic restarts
- • Look into server management tools for easier administration