Skip to main content

Arenas

Arenas are the core of ArenaPvP. Each match takes place in an isolated, temporary world created from a prefab (pre-built map).

How Arenas Work

  1. Templates — In config.json, you define arena templates. Each template specifies a map (prefab file), game mode, player count, time limit, and available kits.
  2. Queue — When enough players join the queue for a category, the matchmaker triggers a match.
  3. Instance Creation — A new world is created from the template's prefab file. This world is completely isolated — nothing that happens there affects the main world.
  4. Match — Players are teleported into the arena, receive their kit, and the battle begins. Arena protections are active: block breaking, item dropping, and other actions are controlled by the template settings.
  5. Resolution — When the match ends, results are processed (rating changes, win commands, etc.), and players are teleported back to their original position.
  6. Cleanup — The arena world is destroyed, freeing resources for the next match.

Arena Lifecycle

An arena instance goes through multiple phases:

PhaseDescription
CreatedWorld instance is being set up from the prefab
Players JoiningPlayers are being teleported into the arena
Match ActiveThe fight is in progress — timer is running
Match EndedA winner has been determined
Cleaning UpPlayers are teleported out, world is queued for deletion
DestroyedWorld is removed from memory

Prefabs

Prefabs are pre-built arena maps saved as .prefab files. ArenaPvP ships with several example prefabs:

FileDesigned For
arena_2FFA.prefab1v1 FFA
arena_4T.prefab2v2 Team
arena_4FFA.prefab4-player FFA
arena_4-6FFADM.prefab4–6 player FFA Deathmatch
arena_4-6TDM.prefab4–6 player Team Deathmatch

Prefab files are stored in the Prefabs/ directory under the mod folder. You can add your own prefabs by placing .prefab files there and referencing them in your arena templates.

Spawn Points

Each prefab must include spawn blocks that define where players will be placed when the match starts. The plugin automatically detects these blocks during prefab loading and assigns players to spawn positions.

For team-based modes (T, TDM, TCTO), spawn blocks define positions for each team separately.

Arena Protections

While inside an arena, several protections are active to ensure fair gameplay:

  • Block breaking — Controlled by the AllowBreakBlock template setting (default: false).
  • Block placing — Controlled by the AllowBlockPlace template setting (default: true).
  • Item dropping — Controlled by AllowDropItems (default: false).
  • Destructible World — Controlled by DestructibleWorld (default: false). Prevents the destruction of blocks loaded from prefab.
  • Friendly fire — Automatically disabled in team-based modes.
  • Spectator protections — Spectators cannot interact with the arena world (no breaking, placing, or damaging).

Instance Limits

You can control how many arenas can run simultaneously with the InstancesLimit setting in config.json:

{
"InstancesLimit": 0
}
  • 0 = Unlimited (as many arenas as the server can handle).
  • Any positive number = Maximum concurrent arena instances.

This is useful for controlling server resource usage.

World Naming

Arena worlds are automatically named with the ArenaWorldPrefix setting followed by a unique identifier:

{
"ArenaWorldPrefix": "arena_"
}

Worlds are temporary and cleaned up after each match — they don't persist between server restarts.