Skip to content

Arenas

File: config/frontier/arenas.conf

Arenas define the physical locations where ranked battles take place. Each arena has spawn positions for both players and an optional spectator position. They’re typically created with the in-game builder wizard rather than by editing the config directly.

arenas {
main_arena {
name = "Main Arena"
world = "minecraft:overworld"
player1 {
x = 100.5
y = 65.0
z = 200.5
yaw = 90.0
pitch = 0.0
}
player2 {
x = 110.5
y = 65.0
z = 200.5
yaw = -90.0
pitch = 0.0
}
spectator {
x = 105.5
y = 70.0
z = 190.0
yaw = 0.0
pitch = 0.0
}
allowedLadders = []
rankedOnly = false
}
}
FieldTypeDefaultDescription
nameString""Display name of the arena.
worldString"minecraft:overworld"World/dimension identifier.
player1ArenaPositionSpawn position for player 1.
player2ArenaPositionSpawn position for player 2.
spectatorArenaPosition?nullSpectator viewing position. null = spectating disabled for this arena.
allowedLaddersList<String>[]Ladder IDs this arena is restricted to. Empty = available for all ladders.
rankedOnlyBooleanfalseIf true, reserved for ranked matches only (not challenges).

Each position has coordinates and rotation:

FieldTypeDefaultDescription
xDouble0.0X coordinate.
yDouble64.0Y coordinate.
zDouble0.0Z coordinate.
yawFloat0.0Horizontal rotation (0=South, 90=West, 180=North, 270=East).
pitchFloat0.0Vertical rotation (-90=up, 0=forward, 90=down).

The recommended way to create arenas. Stand where you want each position and run the commands:

/ranked admin arena create <id> Start the builder
/ranked admin arena setpos1 Set player 1 spawn (your current position)
/ranked admin arena setpos2 Set player 2 spawn (your current position)
/ranked admin arena setspectator Set spectator position (optional)
/ranked admin arena done Save the arena
/ranked admin arena cancel Cancel without saving

The wizard captures your exact position and rotation when you run each setpos command. Here’s what a wizard-created arena looks like in the config (note the precise coordinates):

arenas {
arena {
allowedLadders = null
name = arena
player1 {
pitch = 14.700052261352539
x = -6.811391257086479
y = 102.0
yaw = 50.550048828125
z = 9.911388137087249
}
player2 {
pitch = 21.000015258789062
x = -16.75364013668292
y = 102.0
yaw = -140.69924926757812
z = 20.95906201458352
}
world = "minecraft:overworld"
}
}
/ranked admin arena list List all arenas with status
/ranked admin arena delete <id> Delete an arena

When a match is found, Frontier picks an arena using a first-available strategy:

  1. Iterates through arenas in config order.
  2. Skips arenas currently occupied by another match.
  3. Skips rankedOnly arenas for unranked matches (challenges).
  4. Skips arenas with allowedLadders restrictions that don’t include the current ladder.
  5. Returns the first available arena.

If no arenas are available, players are placed in a waiting queue and notified. When an arena is freed, the next pending match is assigned to it.

Restrict an arena to specific ladders with allowedLadders:

arenas {
vgc_stadium {
name = "VGC Stadium"
world = "minecraft:overworld"
player1 { x = 200.5, y = 65.0, z = 300.5, yaw = 90.0, pitch = 0.0 }
player2 { x = 210.5, y = 65.0, z = 300.5, yaw = -90.0, pitch = 0.0 }
allowedLadders = ["vgc", "doubles"]
}
}

This arena is only used for VGC and Doubles matches. All other ladders skip it.

Reserve arenas for ranked queue matches only — challenges won’t use them:

arenas {
championship_arena {
name = "Championship Arena"
world = "minecraft:overworld"
player1 { x = 0.5, y = 100.0, z = 0.5, yaw = 180.0, pitch = 0.0 }
player2 { x = 20.5, y = 100.0, z = 0.5, yaw = 0.0, pitch = 0.0 }
rankedOnly = true
}
}

After a match ends, players are teleported back to their original location (before they were moved to the arena). This is controlled in config.conf:

arenaReturnToOrigin = true
fallbackSpawn {
world = "minecraft:overworld"
x = 0.0
y = 64.0
z = 0.0
}

If the original location is unavailable (e.g., the chunk unloaded or the world changed), players go to the fallback spawn. Set arenaReturnToOrigin = false to always send players to the fallback instead.