Starting with version 1.33.0, CrimsonZamboniDeathmatch allows deathmatch arenas to be defined
in JSON files stored in the mission folder. Most built-in arenas are now defined in the
arenas.json
file. Avoid modifying this file, as it will be overwritten every time
CrimsonZamboniDeathmatch is updated. User-defined custom arenas should be defined in the
custom-arenas.json
file. Both files use the exact same JSON structure.
Example JSON arena definitions can be found in the provided arenas.json
files in
each of the deathmatch mission folders.
This guide assumes that you are already familiar with JSON syntax. See the Mission Customization Guide if you would prefer to customize arenas using Enforce script.
The root of the arenas JSON should be an object containing an "arenas
" array
attribute:
{ "$schema": "https://crimsonzamboni.com/deathmatch/schemas/v1/arenas.json", "arenas": [ ] }
Note: The "$schema
" attribute is not required but, when present, can help identify
syntax and structure problems when editing the file in an editor that supports JSON schema
validation, such as Visual Studio Code.
Each arena in the array must have "name
" and "center
" attributes. The
"name
" is a string that should uniquely identify the arena. If the name matches a
previously defined arena's name, it will replace the previous definition; this may be useful for
overriding built-in arenas. Arena names must not contain spaces. The "center
" is an
array of three numbers identifying the X, Y, and Z coordinates of the center of the arena.
{ "arenas": [ { "name": "unique-name", "center": [1234.56, 7.890, 5556.32] } ] }
By default, arenas are circular. To make an arena rectangular instead of circular, set the
"rectangular
" attribute to true
.
Rectangular arenas must also define "xSize
" and "zSize
" attributes to
define the size of the arena in the X (East to West) and Z (North to South) directions.
{ "arenas": [ { "name": "Squareville", "center": [1234.56, 7.890, 5556.32], "rectangular": true, "xSize": 200, "zSize": 200 } ] }
Circular (non-rectangular) arenas must define a "radius
" attribute.
{ "arenas": [ { "name": "Circletown", "center": [1234.56, 7.890, 5556.32], "radius": 325 } ] }
To prevent an arena from being randomly chosen when there are too few and/or too many players
connected, set the "minimumPlayers
" and/or "maximumPlayers
"
attributes, respectively. By default, there is no minimum or maximum player count.
{ "arenas": [ { "name": "Circletown", "center": [1234.56, 7.890, 5556.32], "radius": 325, "minimumPlayers": 5, "maximumPlayers": 10 } ] }
Although optional, a sufficient number of player spawn positions should be set to ensure that
players do not spawn on top of each other at the start of rounds. To set the possible player
spawn positions for an arena, define the "playerSpawns
" attribute as an array of
3-element arrays of numbers. For example:
{ "arenas": [ { "name": "Circletown", "center": [1234.56, 7.890, 5556.32], "radius": 325, "playerSpawns": [ [4567.89, 1.234, 9876.54], [4433.24, 2.872, 9798.44], [4599.16, 1.598, 9811.59] ] } ] }
If no player spawn positions are set, all players will spawn at the center of the arena.
Crates containing high-tier items can be configured to spawn at random locations by defining the
"crateSpawns
" attribute as an array of 3-element arrays of numbers. For example:
{ "arenas": [ { "name": "Circletown", "center": [1234.56, 7.890, 5556.32], "radius": 325, "crateSpawns": [ [4567.89, 1.234, 9876.54], [4433.24, 2.872, 9798.44], [4599.16, 1.598, 9811.59] ] } ] }
Note: No crates will spawn if there are no crate spawn locations set.
Infected can be configured to spawn at random locations by defining the
"infectedSpawns
" attribute as an array of 3-element arrays of numbers. For example:
{ "arenas": [ { "name": "Circletown", "center": [1234.56, 7.890, 5556.32], "radius": 325, "infectedSpawns": [ [4567.89, 1.234, 9876.54], [4433.24, 2.872, 9798.44], [4599.16, 1.598, 9811.59] ] } ] }
Note: No infected will spawn if there are no spawn locations set.
When Christmas is enabled, Christmas trees can be configured
to spawn by defining the "christmasSpawns
" attribute as an array of 3-element
arrays of numbers. For example:
{ "arenas": [ { "name": "Circletown", "center": [1234.56, 7.890, 5556.32], "radius": 325, "christmasSpawns": [ [4567.89, 1.234, 9876.54], [4433.24, 2.872, 9798.44], [4599.16, 1.598, 9811.59] ] } ] }
Note: No Christmas trees will spawn if there are no spawn locations set.
To spawn static objects inside the arena when rounds start, define the "props
"
attribute as an array of objects. Each object in the array must contain three attributes:
type
": A string identifying the DayZ type of the object to spawn.position
": An array of three numbers describing the X, Y, and Z coordinates
where the object should be placed.orientation
": An array of three numbers describing the orientation of the
object.For example:
{ "arenas": [ { "name": "Circletown", "center": [1234.56, 7.890, 5556.32], "radius": 325, "props": [ { "type": "Land_Wreck_C130J", "position": [4567.89, 1.234, 9876.54], "orientation": [-161.993, 0.5, 6.5] } ] } ] }
Configuring an arena to be "dark" instructs the server to spawn players with Night Vision Goggles, even if the world time is set to daylight hours. This can be useful for creating arenas in underground locations on modded maps that make underground locations dark. For example:
{ "arenas": [ { "name": "Dark City", "center": [1234.56, 7.890, 5556.32], "radius": 325, "dark": true } ] }
Walls enclosing arenas can be disabled on a per-arena basis. For example:
{ "arenas": [ { "name": "Open Range", "center": [1234.56, 7.890, 5556.32], "radius": 325, "disableWalls": true } ] }
See CrimsonZamboniDeathmatch Setup Guide: Disable Walls for a way to globally disable walls on all arenas.