Skip to main content

Arena Templates

Arena templates define the maps, rules, and settings for each type of match. Each template is stored as an individual JSON file inside the mods/arenapvp/templates/ directory.

The filename (without .json) is the template name — there is no Name key inside the file.

File Location

mods/arenapvp/templates/
1vs1-STANDARD.json
2v2-STANDARD.json
FFA-STANDARD.json
FFADM-STANDARD.json
TDM-STANDARD.json
TCTO-STANDARD.json

Template Properties

KeyTypeDefaultDescription
PrefabstringPrefab filename in the prefabs/ folder. Supports .prefab and .prefab.json extensions, or just the base name (e.g. "arena_2FFA.prefab", "arena_2FFA.prefab.json", or "arena_2FFA")
MaxPlayersinteger2Maximum number of players in the match
Typestring"FFA"Game mode type code (see below)
TimeLimitinteger180Match time limit in seconds
Goalinteger0Kill/capture goal for deathmatch/TCTO modes (0 = not applicable)
Presetsstring[][]Names of inventory presets available in this arena
AllowDropItemsbooleanfalseAllow players to drop items
AllowBlockPlacebooleantrueAllow players to place blocks
AllowBreakBlockbooleanfalseAllow players to break blocks
DestructibleWorldbooleanfalseAllow prefab blocks to be destroyed
CarrierSpeedFactorfloat0.7(TCTO only) Speed multiplier for the orb carrier (0.7 = 70% speed). Only written for TCTO templates.
HealCooldownSecondsinteger60Cooldown in seconds before a heal spawn can be used again after being picked up
WorldConfigstring(Optional) ID of a world config file (filename without .json from worldsConfig/). Controls the arena sky tint and environment.
CommandsOnWinnersstring[][]Commands executed on each winner after the match
CommandsOnDefeatedstring[][]Commands executed on each loser after the match

Type Codes

CodeGame Mode
FFAFree For All — last player standing
TTeam — last team standing
FFADMFFA Deathmatch — first to kill goal
TDMTeam Deathmatch — team kill race
TCTOTeam Capture the Orb — capture objectives

Category Calculation

The category code is automatically calculated as {MaxPlayers}-{Type}. For example, a template with MaxPlayers: 4 and Type: "TDM" has category code 4-TDM.

Random Template Selection

Multiple templates can share the same category. When the matchmaker creates a match, it randomly picks one template from all templates that belong to that category. This acts as an automatic map rotation system — players in the same queue will play on different maps each match.

Map Variety

To add map variety to any game mode, simply create multiple templates with different Prefab files but the same MaxPlayers and Type. The matchmaker handles the rest automatically.

Example — Two maps for 4-player TDM:

templates/TDM-Castle.json:

{
"Prefab": "arena_castle.prefab",
"MaxPlayers": 4,
"Type": "TDM",
"TimeLimit": 300,
"Goal": 15,
"Presets": ["default-kit"]
}

templates/TDM-Forest.json:

{
"Prefab": "arena_forest.prefab",
"MaxPlayers": 4,
"Type": "TDM",
"TimeLimit": 300,
"Goal": 15,
"Presets": ["default-kit"]
}

Both templates share the category 4-TDM. When four players queue for TDM, the matchmaker will randomly select either TDM-Castle or TDM-Forest for that match.

info

Each template in the same category can have different settings (time limit, kits, goal, etc.). Only MaxPlayers and Type determine the category.

Winner/Loser Commands

The CommandsOnWinners and CommandsOnDefeated arrays allow you to run commands after each match. Two placeholders are available:

PlaceholderReplaced With
%player%The player's display name
%uuid%The player's UUID

Example:

{
"CommandsOnWinners": [
"give %player% Gold_Coin 10",
"msg %player% Congratulations on your victory!"
],
"CommandsOnDefeated": [
"give %player% Gold_Coin 2"
]
}

Default Templates

ArenaPvP ships with six default template files. If the templates/ directory is empty on first launch, these are generated automatically.

1vs1-STANDARD.json

{
"Prefab": "arena_2FFA.prefab",
"MaxPlayers": 2,
"Type": "FFA",
"TimeLimit": 180,
"Goal": 0,
"Presets": ["default-kit", "warrior-kit", "archer-kit"],
"AllowDropItems": false,
"AllowBlockPlace": true,
"AllowBreakBlock": false,
"DestructibleWorld": false,
"CommandsOnWinners": [],
"CommandsOnDefeated": []
}

2v2-STANDARD.json

{
"Prefab": "arena_4T.prefab",
"MaxPlayers": 4,
"Type": "T",
"TimeLimit": 180,
"Presets": ["default-kit", "warrior-kit", "archer-kit"]
}

FFA-STANDARD.json

{
"Prefab": "arena_4-6FFA.prefab",
"MaxPlayers": 4,
"Type": "FFA",
"TimeLimit": 180,
"Presets": ["default-kit", "warrior-kit", "archer-kit"]
}

FFADM-STANDARD.json

{
"Prefab": "arena_4-6FFADM.prefab",
"MaxPlayers": 4,
"Type": "FFADM",
"TimeLimit": 300,
"Goal": 10,
"Presets": ["default-kit", "warrior-kit", "archer-kit"]
}

TDM-STANDARD.json

{
"Prefab": "arena_4-6TDM.prefab",
"MaxPlayers": 4,
"Type": "TDM",
"TimeLimit": 300,
"Goal": 15,
"Presets": ["default-kit", "warrior-kit", "archer-kit"]
}

TCTO-STANDARD.json

{
"Prefab": "arena_4-6TCTO.prefab",
"MaxPlayers": 4,
"Type": "TCTO",
"TimeLimit": 300,
"Goal": 3,
"CarrierSpeedFactor": 0.7,
"Presets": ["default-kit", "warrior-kit", "archer-kit"]
}

Adding a Custom Template

To add your own arena, create a prefab map and then create a new .json file in the templates/ directory:

templates/my-arena-5v5.json:

{
"Prefab": "my_custom_map.prefab",
"MaxPlayers": 10,
"Type": "TDM",
"TimeLimit": 600,
"Goal": 30,
"Presets": ["warrior-kit", "archer-kit"],
"AllowDropItems": false,
"AllowBlockPlace": false,
"AllowBreakBlock": false,
"DestructibleWorld": false,
"CommandsOnWinners": ["give %player% Trophy 1"],
"CommandsOnDefeated": []
}

After creating or editing a template file, run /arena reload to load the changes without restarting the server.