Arena Customization Guide¶
Introduction¶
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.
Structure¶
The root of the arenas JSON should be an object containing an "arenas" array
attribute:
Info
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.
Required Attributes¶
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.
Arena Size and Shape¶
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.
Player Limits¶
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
}
]
}
Player Spawns¶
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.
Crate Spawns¶
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 Spawns¶
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.
Christmas Spawns¶
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.
Props¶
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]
}
]
}
]
}
Dark¶
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
}
]
}
Disable Walls¶
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.