← Back

Contents :: CrimsonZamboniDeathmatch Setup Guide 🔗

Installation Instructions 🔗

  1. Install the mod from the Steam workshop as you normally would. Game Server Providers usually provide a UI for installing mods from the workshop. Use SteamCMD if you don't have a GSP.
  2. Configure your server's command line to load the mod as a server-side mod, using the "-servermod=" option. This is important in order to prevent clients from needing to install the mod! DO NOT add the mod to the "-mod=" option.
  3. Install the deathmatch mission files. Compressed mission files are provided in the mod's "Extras" folder. Extract the correct mission ZIP file into a corresponding "deathmatch.<mapname>" folder inside your server's "mpmissions" folder.
  4. Edit the DayZ server configuration file (typically "serverDZ.cfg" but configurable with the "-config" command line option) to load the deathmatch mission. For example:
    class Missions
    {
        class DayZ
        {
            template="deathmatch.enoch";
        };
    };
    The mod ships with missions for Chernarus+, Livonia (a.k.a. Enoch), Namalsk, Deer Isle, Esseker, TakistanPlus, Banov, and Valning. Support for other maps may be added in the future.

Note: Please use the #deathmatch channel on my Discord to report bugs, request features, and ask questions. I do not respond to direct messages.

Players normally do not spawn with light sources or night vision, so setting the server time is recommended to avoid frustrating players with darkness. For example:

serverTime="2020/4/1/08/00";
serverTimeAcceleration=0;
serverTimePersistent=0;

Player characters are intended to be randomized, so disabling the respawn dialog for selecting a custom character is also recommended to avoid confusing players and to make respawning faster:

disableRespawnDialog=1;

Optional Server Settings 🔗

Optional deathmatch settings can be configured by creating a JSON file, named "settings.json", in a directory called "deathmatch" under your server's profile directory. For example: "profile\deathmatch\settings.json"

Note that it is only necessary to specify the settings whose defaults you want to override.

Downloadable example file: settings.json (contains all default settings)

Round Duration 🔗

The duration, in minutes, of each round can be changed by including a "roundMinutes" setting in the "settings.json" file. For example, the following changes the duration to 45 minutes:

{
  "roundMinutes": 45
}

The default is 20 minutes.

Maximum Rounds 🔗

The server can be configured to automatically terminate after a desired number of rounds using the "maxRounds" setting. By default, the server will never automatically terminate based on the number of rounds completed. To stop after every 4 rounds:

{
  "maxRounds": 4
}

This setting is intended to be used in conjunction with a script that automatically restarts the server after it exits. Game Server Providers usually handle this for you but self-hosting may require a batch file or PowerShell script.

Maximum Uptime 🔗

The server can be configured to automatically terminate after it has been running for a specified number of hours using the "maxUptimeHours" setting. By default, the server will never automatically terminate based on uptime. To stop after 8 hours of uptime:

{
  "maxUptimeHours": 8
}

Like the Maximum Rounds setting, this setting is intended to be used in conjunction with a script that automatically restarts the server after it exits.

Arena Rotation 🔗

By default, the server will randomly choose an arena at the beginning of each round. A specific arena order can be forced by changing the "arenaRotation" setting. For example:

{
  "arenaRotation": [
    "NovySobor",
    "StarySobor",
    "Vybor",
    "StarySobor",
    "PavlovoMilitary"
  ]
}

Note that arena names can be repeated within the rotation. An empty "arenaRotation" array will result in the default behavior of picking arenas randomly.

Exclude Arenas 🔗

Sometimes server admins may want to exclude certain arenas from the random arena rotation. This can be accomplished by adding the arena name to the "excludeArenas" array. For example:

{
  "excludeArenas": [
    "Kamyshovo",
    "PavlovoMilitary"
  ]
}

Note that "excludeArenas" only excludes the arenas when the arena rotation is random. It does not prevent the arenas from being chosen when a fixed rotation is configured using the "arenaRotation" setting, nor does it prevent the arena from being chosen when a special event specifies it as a forced arena.

This setting may be useful for configuring specific arenas to be used only in special events.

Infected Spawning 🔗

Infected can be configured to spawn as a percentage chance at the beginning of each round using the "infectedChance" setting. By default, infected have a 0% chance of spawning. To give infected a 50% chance of spawning at the beginning of each round:

{
  "infectedChance": 50
}

Servers can be configured to override the "infectedChance" setting to force infected to spawn when the number of players on the server is below the "forceInfectedPlayerLimit" setting. By default, the "forceInfectedPlayerLimit" is 0, meaning "infectedChance" controls whether infected spawn, regardless of how many players are on the server. To force the server to spawn infected whenever the server has less than 2 players:

{
  "forceInfectedPlayerLimit": 2
}

The number of infected spawned per player can also be customized using the "infectedPlayerFactor" setting. By default, 5 infected are spawned for each player. For example, to spawn 10 infected per player:

{
  "infectedPlayerFactor": 10
}

The minimum and maximum number of infected to spawn is also configurable. The defaults are 25 and 50, respectively. For example:

{
  "minimumInfected": 10,
  "maximumInfected": 80
}

Note that the minimum and maximum infected counts will override the infected player factor. For example, if "maximumInfected" is 10, "infectedPlayerFactor" is 5, and there are 20 players on the server, no more than 10 infected will spawn.

Also note that if "infectedChance" is 0, which is the default value, then infected will never spawn, regardless of how the other settings are configured.

Save Leaderboards 🔗

To enable leaderboards to be written to files at the end of each round, set the "saveLeaderboards" setting to true. By default, leaderboards are not saved. When enabled, the leaderboards will be written to files in the $profile:deathmatch/scores directory.

{
  "saveLeaderboards": true
}

Disable Walls 🔗

By default, deathmatch arenas are enclosed in walls to prevent players from going out of bounds, since going out of bounds causes health loss. Walls can be disabled globally by setting the "disableWalls" setting to true.

{
  "disableWalls": true
}

See Mission Customization Guide: Walls for a way to disable walls on individual arenas.

Events 🔗

Events are special game rounds where players spawn with weapons and clothes that are different from regular rounds. There are currently six different types of built-in events: Cowboy Rounds, Bambi Rounds, Hotshot Rounds, Toxic Rounds, Halloween Rounds, and Medieval Rounds. In Cowboy Rounds ("cowboy"), players spawn with revolvers, repeaters, and cowboy attire. In Bambi Rounds ("bambi"), players spawn with new-spawn clothes and pistols. In Halloween Rounds ("halloween"), players are given blades and SMGs with little ammo. Hotshot Rounds ("hotshot") are, conceptually, the opposite of Bambi Rounds, as players spawn with high-end weapons and gear. In Toxic Rounds ("toxic"), the arena contains toxic gas and players with NBC gear. In Medieval Rounds ("medieval"), players spawn in chain mail and are given crossbows and swords or maces.

By default, events are disabled but can be enabled by setting a floating-point chance between 0.0 and 1.0. For example, to give events a 25% chance of happening:

{
  "events": {
    "chance": 0.25
  }
}

In addition to setting a non-zero events "chance", it is necessary to specify at least one event type with a non-zero chance. Types are specified as an array of objects with names, chances, and optional duration values. For example, to make events Cowboy Rounds 50% of the time, Bambi Rounds 30% of the time, and Hotshot Rounds 20% of the time:

{
  "events": {
    "chance": 0.25,
    "types": [
      {
        "name": "cowboy",
        "chance": 0.5
      },
      {
        "name": "bambi",
        "chance": 0.3
      },
      {
        "name": "hotshot",
        "chance": 0.2
      }
    ]
  }
}

The "name" must be either one of the built-in special round types (i.e. "cowboy", "bambi", "hotshot", "toxic", "halloween", or "medieval") or the "name" of one of the custom events defined in the events.json file, as documented in the Custom Events section.

Event type chances should add up to 1.0.

By default, special event rounds have the same duration as regular rounds, as determined by the "roundMinutes" setting. Each event type can be given its own separate duration, if desired. For example, to make cowboy rounds last for 22 minutes:

{
  "events": {
    "chance": 0.25,
    "types": [
      {
        "name": "cowboy",
        "chance": 1.0,
        "roundMinutes": 22
      }
    ]
  }
}

By default, special event rounds will have their arenas selected in the same way as regular rounds, as defined by the Arena Rotation setting. To force an event type to choose from a particular set of arenas, configure the "arenas" setting with an array of one or more arena names. For example, to make Bambi rounds only happen at either Kamyshovo or Solnichniy:

{
  "events": {
    "chance": 0.25,
    "types": [
      {
        "name": "bambi",
        "chance": 1.0,
        "arenas": [
          "Kamyshovo",
          "Solnichniy"
        ]
      }
    ]
  }
}

When specified, event arenas are chosen randomly, but arenas that can accomodate the current player count are preferred.

Christmas 🔗

Enabling Christmas mode causes a large Christmas tree to spawn near the center of the arena, surrounded by gift boxes containing festive loot for spreading Christmas cheer and having a silent night. It also causes players to spawn with Santa hats, Santa beards, and clothing with holiday colors. Infected will also spawn with Santa hats.

Setting "christmas" to true will enable the Christmas event. The default is false, which disables the event.

{
  "christmas": true
}

Voting 🔗

Players can start votes to select the next arena, the next event, and to end the round early by typing /arenavote, /eventvote, and /endvote, respectively, into proximity chat. By default, at least two players must be connected to the server in order for a vote to be able to start, and the voting period lasts one minute. These parameters can be overridden by setting the "voteMinimumPlayers" and "voteMinutes" settings. For example:

{
  "voteMinimumPlayers": 10,
  "voteMinutes": 3
}

To disable voting entirely, set "voteMinimumPlayers" to a value higher than your server's maximum player limit.

Note: DayZ proximity chat from players is not received by the server when the player sending the chat is close to another player. This can make chat commands unreliable. To improve the likelihood of chat commands being received by the server, set your in-game VOIP distance to the "whisper" minimum distance. The default key binding for changing VOIP distance is the Up arrow key.

Ignore Night 🔗

By default, players will be equipped with night vision goggles automatically when the in-game time is considered to be during "night" hours. To disable this, set the "ignoreNight" setting to true.

{
  "ignoreNight": true
}

Note that this setting does not affect arenas that have been marked "dark". Players are always equipped with night vision when an arena is marked "dark", regardless of the in-game time.

Disable Sprint Leaning 🔗

To prevent players from sprinting while also leaning, set the "disableSprintLeaning" setting to true. The default is false. When true, players will trip and fall when they attempt to lean and sprint at the same time.

{
  "disableSprintLeaning": true
}

Max Idle Seconds 🔗

To kick dead players who remain idle at the "You are dead" screen, set the "maxIdleSeconds" setting to the number of seconds after which idle dead players should be kicked. By default, idle players are not kicked from the server. For example, to kick dead players after 5 minutes of inactivity:

{
  "maxIdleSeconds": 300
}

Kill Feed 🔗

By default, kills are reported in-game using DayZ's notification system, which displays a box at the top-center of the screen. Alternatively, kills may be reported in the text chat area of the screen, or kill reporting may be disabled completely. Set the "killFeed" setting to one of the following values to change how kills are reported:

For example, to completely disable the in-game kill feed:

{
  "killFeed": 0
}

Command Character 🔗

The leading character identifying a chat message as a command is configurable using the "commandCharacter" setting. This setting can be set to any single-character string and is case-sensitive. For example:

{
  "commandCharacter": "@"
}

The default command character is "/". Some DayZ mods prevent this character from working.

Administrators 🔗

Administrator-only chat commands can be enabled for specific players by listing them as admins. By default, no players are admins. Admin players must be identified by their DayZ GUIDs, which are 44-character strings. There are numerous resources on the web explaining how to retrieve or calculate these GUIDs, but the easiest method may be to find them in your DayZ Server's administration logs.

You can also calculate DayZ GUIDs using this tool: (Note: requires a modern browser)

SteamID64 (Dec): (Steam ID Finder)
DayZ GUID: Copied!

"The admins" setting is specified as an array of objects, where each object contains an "id" string attribute. Other attributes are currently ignored.

{
  "admins": [
    {"id": "AAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBCCCCCDDDD"},
    {"id": "XXXXYYYYYZZZZZZZZZZZWWWWWWWWWWWWWWWWWWWWWW"},
    {"id": "MMMMMMMNNNNNNNNNNNNOOOOOOOOOOOPPPPPPPPPPPP"}
  ]
}

Kill Feed Webhook 🔗

It is possible to configure the server to send kill feed messages and leaderboards to a Discord channel using a webhook. Use your Discord server's settings to create a webhook URL for the channel you want kill feed messages to go to.

A typical webhook configuration will look something like this:

{
  "killFeedWebhook": {
    "type": "discord",
    "url": "https://discordapp.com/api/webhooks/XXXXXXXX/YYYYYYYYYYYYYYYY"
  }
}

Note that you must set the "type" to "discord" in order for the webhook to work. Other webhook type support may be added in the future.

Player join and leave messages do not get sent to the webhook, by default. To enable these messages, set the "playerTracking" setting to true:

{
  "killFeedWebhook": {
    "type": "discord",
    "url": "https://discordapp.com/api/webhooks/XXXXXXXX/YYYYYYYYYYYYYYYY",
    "playerTracking": true
  }
}

Primary Weapons 🔗

The primary weapons that spawn on players can be overridden by specifying the "primaryWeapons" setting. This setting is defined as an array of objects, where each object contains three keys: variants, attachments, and accessories.

The variants attribute should contain an array of strings naming one or more weapon types. One of the variants will be randomly chosen when this weapon configuration used.

The attachments attribute should contain an array of zero or more arrays of one or more strings naming attachment types. These may include optics, handguards, buttstocks, and suppressors. Each inner array should contain related types, so optics should be in one array, handguards should be in a separate array, etc.

The accessories attribute should contain an array of zero or more strings naming items that should be spawned in the player inventory. These are typically magazines or stacks of ammunition.

Secondary Weapons 🔗

The secondary weapons that spawn on players can be overridden by specifying the "secondaryWeapons" setting. This setting uses the same structure as the primaryWeapons setting.

Knives 🔗

The knives that spawn on players' belt sheaths can be overridden by specifying theo "knives" setting. This setting is defined as an array of strings, where each string names a knife type.

Weapons Crate Contents 🔗

One of the three sea chests that spawn at random, high risk locations in the arena is intended to contain high-tier weapons. The weapons that spawn inside this chest can be overridden by specifying the "crateWeapons" setting. This setting is uses the same structure as the primaryWeapons setting.

By default, the weapons crate spawns with either a VSS, FAL, or SVD.

Armor Crate Contents 🔗

One of the three sea chests that spawn at random, high risk locations in the arena is intended to contain armor. The items that spawn inside this chest can be overridden by specifying the "crateArmor" setting. This setting is defined as an array of arrays of strings. Each inner array represents a slot (e.g. helmet, vest, gloves) and the strings inside the arrays represent choices for each slot.

By default, the armor crate spawns with either one helmet, one vest, and one pair of gloves.

Other Crate Contents 🔗

One of the three sea chests that spawn at random, high risk locations in the arena is intended to contain traps and grenades. The items that spawn inside this chest can be overridden by specifying the "crateOther" setting. This setting is defined as an array of arrays of strings. Each inner array represents a slot (e.g. trap or grenade) and the strings inside the arrays represent choices for each slot.

By default, the other crate spawns with two traps (i.e. bear traps or land mines) and three grenades (i.e. fragmentation, smoke, or flashbang).

Outfits 🔗

Player clothing can be configured by specifying an array of one or more "outfits". Each individual outfit is an array of objects, where each object contains a "choices" array of strings and an optional integer (between 1 and 100, defaulting to 100) "chance", which determines the percentage chance that one of the types listed in "choices" will be chosen.

For example, the following configuration defines two different outfits. The first outfit gives the player a green top, green pants, green footwear, and a 50% chance of thick framed glasses. The second outfit gives the player a black top, black pants, black footwear, and a 25% chance of getting a Great Helm:

{
  "outfits": [
    [
      {
        "choices": ["Hoodie_Green", "BomberJacket_Olive"]
      },
      {
        "choices": ["CargoPants_Green", "Jeans_Green"]
      },
      {
        "choices": ["Sneakers_Green", "AthleticShoes_Green"]
      },
      {
        "chance": 50,
        "choices": ["ThickFramesGlasses"]
      }
    ],
    [
      {
        "choices": ["Hoodie_Black", "BomberJacket_Black"]
      },
      {
        "choices": ["CargoPants_Black", "Jeans_Black"]
      },
      {
        "choices": ["Sneakers_Black", "MilitaryBoots_Black"]
      },
      {
        "chance": 25,
        "choices": ["GreatHelm"]
      }
    ]
  ]
}

Note: It is important that players have a 100% chance of being given shirts and pants to ensure that they have sufficient inventory space for ammunition, bandages, etc. Footwear should also be assigned a 100% chance unless you want players to get cuts from running around barefoot.

By default, players will spawn with a random assortment of clothes.

Infected Types 🔗

When infected spawns are enabled, infected will spawn from the complete list of infected types defined by the server. Types are chosen randomly. To constrain the set of infected types that should be spawned, define the "infectedTypes" attribute as an array of infected type name strings. For example:

{
  "infectedTypes": [
    "ZmbF_DoctorSkinny",
    "ZmbM_DoctorFat"
  ]
}

Custom Events 🔗

Server owners can define their own custom events to be used along with, or instead of, the built-in special events (Cowboy rounds, Bambi rounds, Hotshot rounds). Custom events are defined in a separate JSON configuration file, named "events.json", located in the "deathmatch" directory under your server's profile directory. For example: "profile\deathmatch\events.json"

Custom events are defined as an array of objects under the "custom" property at the root of the JSON:

{
  "custom": [
    {
      "name": "custom1",
      "...": "..."
    },
    {
      "name": "custom2",
      "...": "..."
    }
  ]
}

Downloadable example custom events file: events.json

The valid properties of individual events are described in the following sections.

Event Name 🔗

The "name" property is a string used to uniquely identify the custom event. This name is not visible to players. It must be at least one character long and must only contain letters, numbers, and underscores. Use this same name to configure the chance of the event happening and its round duration, as documented in the Events section. Example:

{
  "custom": [
    {
      "name": "clue"
    }
  ]
}

Event Display Name 🔗

The "displayName" property is a string used to show the name of the custom event to players. Example:

{
  "custom": [
    {
      "name": "clue",
      "displayName": "Clue Round"
    }
  ]
}

Event Greeting 🔗

The "greeting" property is an object describing the notification to be shown to players when a round is started with this custom event type. It contains two properties: "title" and "details". The "title" property is a string that should contain brief text identifying the round type. The "details" property is also a string and should contain any additional information to display to the players. Example:

{
  "custom": [
    {
      "name": "clue",
      "greeting": {
        "title": "=== CLUE ROUND ===",
        "details": "I didn't do it!"
      }
    }
  ]
}

Event Primary Weapons 🔗

The "primaryWeapons" property determines what primary weapons players will spawn with during this custom event type. It uses the same format as Primary Weapons.

Event Secondary Weapons 🔗

The "secondaryWeapons" property determines what secondary weapons players will spawn with during this custom event type. It uses the same format as Secondary Weapons.

Event Knives 🔗

The "knives" property determines what knives players will spawn with during this custom event type. It uses the same format as Knives.

Event Weapons Crate 🔗

The "crateWeapons" property determines what weapons will spawn in the weapon crate during this custom event type. It uses the same format as Weapons Crate Contents.

Event Armor Crate 🔗

The "crateArmor" property determines what items will spawn in the armor crate during this custom event type. It uses the same format as Armor Crate Contents.

Event Other Crate 🔗

The "crateOther" property determines what items will spawn in the other crate during this custom event type. It uses the same format as Other Crate Contents.

Event Outfits 🔗

The "outfits" property determines what clothing players will spawn with during this custom event type. It uses the same format as Outfits.

Event Infected Types 🔗

The "infectedTypes" property determines what types of infected will spawn during this custom event type. It uses the same format as Infected Types.

Arena Customization 🔗

Further customization can be made by editing the server mission custom-arenas.json file. See the Arena Customization Guide for more information.

Mission Customization 🔗

Further customization can be made by editing the server mission init.c scripts. See the Mission Customization Guide for more information.