DayZ SA Server Mission Files

I’ll assume that you’ve either created your own server from reading How-To Create A DayZ SA Server or you’ve rented one from a GSP. I also suggest reading How-To Add Mods To A DayZ SA Server and How-To Customize A DayZ SA Server

The server mission consists of a number of editable XML files and one C file that contain the server configuration and startup code. Many modifications can be done like amounts of items spawning, locations, lifetime, player spawn locations, amount of zombies and animals and much more. Some functionality can be coded, but complex modifications, especially any that add assets, will require a full steam workshop mod to be created.

For this discussion I’ll define:

  • <server_root> as the base directory for all your server files. Typically this is where DayZServer_x64.exe, serverDZ.cfg, the mpmissions directory and other files/directories are located.
    • On a GSP, <server_root> may be the directory where you login via FTP or some control panel file manager.
  • <server_profile> as the subdirectory of <server_root> that contains the main DayZ log file (DayZServer_x64*.RPT) and is specified on the command line as -profiles
  • <server_mission> as the current mission base directory. The mission directory will be located in <server_root>/mpmissions/dayzOffline.<mapname>/
    • The 2 default map names are chernarusplus and enoch (livonia)
      • Other maps are available in the workshop. Those files would be placed in their own directories and pointed to in serverDZ.cfg

Let’s say <server_root> is  c:\dayzserver.

  • The Chernarus mission files would be located in c:\dayzserver\mpmissions\dayzOffline.chernarusplus\*
  • The Livonia mission files would be located in c:\dayzserver\mpmissions\dayzOffline.enoch\*
MISSION FILES OVERVIEW

These are the mission files that you are most likely to edit when changing the server configuration and/or adding mods. There are other files in the mission that some mods may require edited, but those are edge cases.

Before you get started don’t worry about messing up a file. You can download a new copy of the server files from Steam or just get them from the BohemiaInteractive / DayZ-Central-Economy github.

Navigate to <server_mission>\dayzOffline.chernarusplus\* and you’ll see:

  • db directory – global server config and core loot economy files
    • db\events.xml – dynamic events
    • db\globals.xml – global settings
    • db\messages.xml – server broadcast messages and shutdown
    • db\types.xml – loot table
  • env directory – coordinates, static and dynamic spawns for each entity
    • env\cattle_territories.xml
    • env\domestic_animals_territories.xml
    • env\hare_territories.xml
    • env\hen_territories.xml
    • env\pig_territories.xml
    • env\red_deer_territories.xml
    • env\roe_deer_territories.xml
    • env\sheep_goat_territories.xml
    • env\wild_boar_territories.xml
    • env\wolf_territories.xml
    • env\zombie_territories.xml
  • cfgeconomycore.xml – loot economy core settings and extensions
  • cfgeffectarea.json – static contaminated area coordinates and other properties
  • cfgenvironment.xml – includes env\* files and parameters
  • cfgeventgroups.xml – definitions of groups of objects that spawn together in a dynamic event
  • cfgeventspawns.xml – coordinates where events may occur
  • cfggameplay.json – gameplay configuration settings.
  • cfgIgnoreList.xml –  list of items that won’t be loaded from the storage
  • cfglimitsdefinition.xml – list of valid categories, tags, usageflags and valueflags
  • cfglimitsdefinitionuser.xml – shortcut groups of usageflags and valueflags
  • cfgplayerspawnpoints.xml – new character spawn points
  • cfgrandompresets.xml – collection of groups of items
  • cfgspawnabletypes.xml – loot categorization (ie hoarder) as well as set of items that spawn as cargo or as attachment on weapons, vehicles or infected.
  • cfgundergroundtriggers.json – used for triggering light and sounds in the Livonia bunker, not used for Chernarus
  • cfgweather.xml – weather configuration
  • init.c – mission startup file (PC only)
  • map*.xml
    • mapgroupproto.xml – structures, tags, maxloot and lootpoints
    • mapgrouppos.xml – all valid lootpoints
MISSION FILES DETAILS

db\events.xml – defines the dynamic events (basically spawning) that will run on the server including animals, infected(zombies), planks, loot (there is an entry for the loot system), Christmas trees, heli crashes, fruit and vegetables and vehicles. [WORKING TO DOCUMENT ALL OF THESE PARAMS]

  • NAME – the prefix defines the type of event and can be [“Ambient”, “Animal”, Infected”, “Item”, “Static”, “Trajectory”, “Vehicle”]
  • NOMINAL
  • MIN
  • MAX
  • LIFETIME – time before this event despawns. This can be seen with heli crashes. Seems to be used for objects of type Static and Item]
  • RESTOCK – time between event spawns
  • SAFERADIUS – radius 
  • DISTANCERADIUS
  • CLEANUPRADIUS
  • FLAGS
  • POSITION – how does this event spawn?
    • fixed – in fixed locations
    • player – based on players
    • uniform – ?
  • LIMIT – flag indicating which quantities take precedent – the event Nominal/Min/Max and/or the Children Min/Max.
    • MIXED – Used by objects that have their coordinates in cfgeventspawns.xml
    • PARENT – ? (only used by the “StaticContaminatedArea” event, which is actually the randomly spawning gas attacks)
    • CUSTOM – Used by objects that have their  coordinates managed by external files like *_territories.xml (Animals and Infected) or mapgroupproto.xml (Loot)
      • It’s been shown that even if the Nominal/Min/Max are set to 0 for the Animal* events, they will still spawn, presumably because min/max are set on the children.
    • CHILD
      • Although this is used by StaticHeliCrash where each of the 2 children have a min=1 and max=3, it’s well known that there are only 3 heli crashes spawned at once (which is what Nominal is set to in the event)
  • ACTIVE – is the event active or not (1 or 0)
  • CHILDREN
    • each child generally represents a style or variety of the object being spawned in the event, although that’s not a requirement as long at the item can be spawned based on the name prefix.

db\types.xml – defines all the items in the loot table including clothes, food, weapons and vehicles as well as fruits, vegetables, mushrooms and infected. Each item has the following attributes:

  • NOMINAL (MAX) – Count the server tries to reach, depending on FLAGS (see below). Item count may not always be at NOMINAL because there may not be locations to place them. Items will queue if no locations are available.
  • LIFETIME – seconds until despawn (from last interaction)
  • RESTOCK – seconds until next item is placed into the spawn queue.
  • MIN – count reached before any respawn is started.  When MIN is reached, new items are spawned (see RESTOCK).
  • QUANTMIN – for containers, minimum % full when spawned (loose ammo, canteens, pills, etc)
  • QUANTMAX – for containers, maximum % full when spawned (loose ammo, canteens, pills, etc)
  • COST – priority for the CLE (higher is better) [not many items have this set so its not clear it is implemented]
  • FLAGS – used to calculate NOMINAL as well as indicate crafted and heli crash specific loot..
    • IN_CARGO – count items stored in cargo (inside vehicles)
    • IN_HOARDER – count items stored in tents, buried stashes, barrels as defined with the “hoarder” attribute in cfgspawnabletypes.xml
    • IN_MAP – count items on the ground / in spawn
    • IN_PLAYER – count items in a players hands or inventory
    • CRAFTED – items created by players such as armbands or stone knives.

db\globals.xml – global server settings. Changing these variable may have an impact on server performance, so be sure you understand their usage.

  • https://community.bistudio.com/wiki/DayZ:Central_Economy_Configuration
  • AnimalMaxCount – maximum number of animals on the server
  • CleanupLifetimeDeadAnimal – seconds until dead animals are removed/despawned (affected by in-proximity players)
  • CleanupLifetimeDeadInfected- seconds until “dead” zombies are removed/despawned (affected by in-proximity players)
  • CleanupLifetimeDeadPlayer – seconds until dead player bodies are removed/despawned (affected by in-proximity players)
  • CleanupLifetimeRuined- seconds until ruined items (vehicles, weapons, etc) are removed/despawned
  • FlagRefreshFrequency – seconds until the items within the 60m radius will be refreshed
  • FlagRefreshMaxDuration – seconds until the flag will lower
  • IdleModeCountdown – seconds until the CLE goes into idle mode
  • IdleModeStartup – should the server startup in idle mode?
  • InitialSpawn – value from 0-100 representing the % of loot that the server should try and spawn on initial startup (new server or after a wipe)
  • TimeLogin – seconds delay to login to the server
  • TimeLogout – seconds delay to logout of the server
  • ZombieMaxCount – maximum number of zombies that can be spawned/active at once

env\*.xml – territories(areas), types, static and dynamic counts and coordinates to spawn various animals and infected. Infected are organized by type, while each of the others has their own file. [need more info in regard to how/when static and dynamic spawns are triggered]

  • env\cattle_territories.xml
  • env\domestic_animals_territories.xml
  • env\hare_territories.xml
  • env\hen_territories.xml
  • env\pig_territories.xml
  • env\red_deer_territories.xml
  • env\roe_deer_territories.xml
  • env\sheep_goat_territories.xml
  • env\wild_boar_territories.xml
  • env\wolf_territories.xml
  • env\zombie_territories.xml
  • Each of the territory files has the same entries/attributes. Any changes here are usually to the counts to increase or decrease spawns.
    • TERRITORY – an area of the map defined in areaflags.map (need to edit the map for these)
    • NAME – For zombies, type/model to spawn. For other animals, the state in which they spawn (Rest, Graze, Water, HuntingGround)
    • SMIN – static (always there) min spawn count
    • SMAX -static (always there) max spawn count
    • DMIN – dynamic (triggered) min spawn count
    • DMAX – dynamic (triggered) max spawn count
    • X – x coordinate
    • Z – y coordinate
    • R – radius around X,Y that the animal or infected may spawn.

 cfgeconomycore.xml – loot economy core settings and extensions

cfgeventspawns.xml – possible spawn locations for events named db\events.xml. There must be at least as many positions as the MAX setting of the particular event.

  • NAME – must START with (Vehicle, Static, Loot, Item, Infected, Animal)
  • POS
  • X = x coordninate
  • Z = y coordinate
  • a = altitude (most likely relative to sea level)

cfgeffectarea.json – static contaminated area coordinates and other properties

  • AreaName – unique name (not displayed anywhere)
  • Type – should be “ContaminatedArea_Static”
  • TriggerType – should be “ContaminatedTrigger”
  • Data – location and other contaminated area attributes.
    • Pos – position
    • Radius – radius
    • PosHeight – height
    • NegHeight, InnerRingCount, InnerPartDist, OuterRingToggle, OuterPartDist, OuterOffset, VerticalLayers, VerticalOffset, ParticleName – ?
  • PlayerData
    • AroundPartName, TinyPartName, PPERequesterType -?
  • SafePositions – location where a player will be respawned if they spawn into a contaminated area

cfgenvironment.xml – includes env\* files and parameters.  

cfgeventgroups.xml – definitions of groups of objects that spawn together in a dynamic event

  • group
    • Name – unique name (referenced in cfgeventspawns.xml) 
    • child
      • type – classname
      • deloot – include dynamic event loot?
      • lootmax – maximum number of loot items
      • lootmin – minimum number of loot items
      • x – x coordinate (relative to the event)
      • z – y coordinate (relative to the event) 
      • a – angle/orientation (0 is north)
      • y – height? (optional)

cfgeventspawns.xml – coordinates where events may occur

  • event
    • name unique name (referenced in events.xml) 
    • zone – infected spawn attributes
      • smin – static min
      • smax – static max
      • dmin – dynamic min
      • dmax – dynamic max
      • r – radius
    • pos – coordinates of the event
      • x – x coordinate
      • z – y coordinate
      • a – angle/orientation (0 is north)

cfgundergroundtrigger.json – used for triggering <something> in the Livonia bunker, not used for Chernarus

cfgweather.xml – weather configuration

cfgplayerspawnpoints.xml – possible spawn points which are used to generate “bubbles”(circles) where a new player can spawn. Settings included to manipulate the size and positioning of the bubble.  

  • <needs breakdown>

cfggameplay.json – gameplay configuration settings.

cfgIgnoreList.xml –  list of items that won’t be loaded from the storage

  • ignore
    • type
      • name – classname of item to skip when starting the server and loading the stored world

cfglimitsdefinition.xml – list of valid categories, tags, usageflags and valueflags

  • categories
    • name – unique name reference in types.xml and mapgroupproto.xml
  • tags
    • name – unique name reference in types.xml and mapgroupproto.xml
  • usageflags
    • name – unique name reference in types.xml and mapgroupproto.xml
  • valueflags
    • name – unique name reference in types.xml and mapgroupproto.xml. these values represent areas marked(painted, built-into) the map itself.

cfgrandompresets.xml – collections of items used by cfgspawnabletypes.xml to spawn cargo or attachments. Typically used for infected(attachments like clothes and cargo like food+drinks), vehicles(attachments like wheels) and weapons(attachments like magazines and scopes).

  • CARGO – item that will spawn inside another item/container. Includes name and (spawn) % chance attributes
    • ITEM – item that may spawn, including % chance
  • ATTACHMENTS – item that will spawn attached to another item . Includes name and (spawn) % chance attributes
    • ITEM – item that may spawn, including % chance

cfgspawnabletypes.xml – definitions of items, including their loot categorization (hoarder) as well as any items that spawn in inventory(bags, zombies) or attached(weapons, zombies).

  • Infected and bags use collections from cfgrandompresets.xml while weapons and vehicles items are typically inline

cfgundergroundtrigger.json – used for triggering light and sound in the Livonia bunker, not used for Chernarus

cfgweather.xml – weather configuration

  •  

init.c – mission startup file (PC only). Typically used for: 

  • Changing the player startup gear
  • Adding new POI to the map (better to use Object Spawner)
  • Changing the weather (better to use cfgweather.xml)
OTHER MISSION FILES 

These are not files you will edit or even view, so just some basic information.

  • storage_1 directory – created on first startup of the server, this is the data persistence/storage for the server. Delete this directory to completely wipe it. Keep players.db to save the players database.
  • storage_1/players.db – sqllite database of players
    • contains columns for ID, ALIVE, UID, Data (BLOB of player status and inventory)
    • There is not currently any viewer or editor for the item database (spawned items, bases, stashes, etc)
OTHER FILES

5 thoughts on “DayZ SA Server Mission Files

  1. i noticed the ? next to the two “flag” entries. flag refresh is how often the base flag tells base items within 60M to refresh their despawn timers. flag duration is the total amount of time the flag will stay aloft providing its refresh until it is disabled. a player can touch the flag at any time, including raising the flag, and it resets the duration timer.

    Like

Leave a comment