Hall Configuration
Hall Configuration
Section titled “Hall Configuration”Location: config/reverie/halls/{hall_id}/hall.conf
Each contest hall is a physical venue in your world where contests take place. Halls define everything about the contest location: stage layout, contestant positions, audience seating, camera angles, effects, and rules.
Creating a Hall
Section titled “Creating a Hall”Method 1: In-Game Builder (Recommended)
Section titled “Method 1: In-Game Builder (Recommended)”/hallbuilder create my_arenaThis starts an interactive wizard. See Your First Contest.
Method 2: Manual Config
Section titled “Method 2: Manual Config”Create config/reverie/halls/my_arena/hall.conf with the structure below, then run /hallbuilder reload.
Basic Information
Section titled “Basic Information”id = "standard_hall"display-name = "Standard Contest Hall"description = "A basic contest hall suitable for all contest types"is-public = trueallowed-categories = ["cool", "beauty", "cute", "clever", "tough"]| Field | Type | Description |
|---|---|---|
id | String | Unique identifier — lowercase letters, numbers, underscores only |
display-name | String | Human-readable name shown in GUIs |
description | String | Description in the hall browser |
is-public | Boolean | Whether this hall appears in the public contest browser |
allowed-categories | List | Which contest categories can run here |
Location
Section titled “Location”world = "minecraft:overworld"hall-origin { x = 0, y = 64, z = 0 }stage-center-offset { x = 0, y = 0, z = 0 }bounding-box { min { x = -50, y = -10, z = -50 } max { x = 50, y = 30, z = 50 }}| Field | Type | Description |
|---|---|---|
world | String | Dimension ID (e.g., minecraft:overworld) |
hall-origin | BlockPos | Origin point of the hall in world coordinates |
stage-center-offset | BlockPos | Offset from origin to the stage center |
bounding-box | Min/Max | Hall volume (relative to origin). Minimum: 5x3x5 blocks |
Contestants
Section titled “Contestants”contestants { min-contestants = 2 max-contestants = 4 allow-bots = true autofill-with-bots = true spawn-distance = 10.0
contestant-positions = [ { number = 1 intro { x = 3, y = 0, z = 0 } performance { x = -4, y = 0, z = 2 } }, { number = 2 intro { x = 0, y = 0, z = 3 } performance { x = -4, y = 0, z = 0 } } ]
pokemon-offset { x = 2, y = 0, z = 0 } pokemon-facing-direction = "stage_center"}| Field | Type | Default | Description |
|---|---|---|---|
min-contestants | Int | 2 | Minimum players to start |
max-contestants | Int | 4 | Maximum player slots |
allow-bots | Boolean | true | Allow AI contestants |
autofill-with-bots | Boolean | true | Auto-fill empty slots with bots |
spawn-distance | Double | 10.0 | Distance from stage for initial spawn |
pokemon-offset | BlockPos | {x=2, y=0, z=0} | Offset from trainer to Pokemon |
pokemon-facing-direction | String | "stage_center" | Direction Pokemon faces: stage_center, trainer, audience |
Contestant positions use coordinates relative to stage center.
Audience
Section titled “Audience”audience { npc-audience { enabled = true count = 20 min-count = 10 max-count = 50 entity-type = "cobblemon:npc" skins = [] }
spectator-audience { enabled = true max-spectators = 20 allow-voting = true allow-cheering = true voting-affects-score = false voting-weight = 0.1 }
seating-layout { type = "semicircle" radius = 10.0 arc = 180.0 rows = 3 seats-per-row = 10 }}Seating Layout Types
Section titled “Seating Layout Types”| Type | Description |
|---|---|
semicircle | Classic arena layout with configurable radius, arc, and rows |
tiered | Elevated rows with increasing height |
tables | Grouped seating at tables |
vip | Premium seating section |
mixed | 70% regular + VIP + tables |
custom | Explicit position list |
Cameras
Section titled “Cameras”cameras { enabled = true default-mode = "cinematic"
transitions { default-duration = 1000 default-easing = "ease_in_out" smooth-rotation = true enable-shake = true shake-intensity = 0.1 }
paths { intro-paths = [] performance-paths = [] judging-paths = [] presentation-paths = [] }}Camera positions can also be added in-game:
/hallbuilder camera my_arena add STAGE_OVERVIEW/hallbuilder camera my_arena add CONTESTANT/hallbuilder camera my_arena add AUDIENCESee Camera System for all focus types and behavior.
Phases
Section titled “Phases”phases { intro { enabled = true, duration = 30000, skippable = false } presentation { enabled = true, duration = 45000 } performance { enabled = true, duration = 240000 } judging { enabled = true, duration = 60000 }}Phase durations are in milliseconds.
Minigames
Section titled “Minigames”minigames { enabled = true selection-mode = "category_based" score-weight = 0.2 allow-skip = false skip-penalty = 0.5
category-mapping { cool = "rhythm" beauty = "appeal_timing" cute = "audience_wave" clever = "sequence_building" tough = "balance_precision" }}See Minigames for per-minigame settings.
bots { enabled = true fill-empty-slots = true difficulty = "medium"
bot-names = ["Coordinator Sarah", "Trainer Alex", "Expert Maya"]}See Bots for difficulty settings and Pokemon pools.
Effects
Section titled “Effects”effects { particles { enabled = true intensity = 1.0
category-themes { cool = [{ type = "snowflake", density = 10 }] beauty = [{ type = "rose", density = 15 }] cute = [{ type = "heart", density = 20 }] clever = [{ type = "note", density = 12 }] tough = [{ type = "crit", density = 8 }] } }
lighting { dynamic-lighting = true spotlights = true colored-lights = true }
sounds { enabled = true volume = 1.0 }}rules { level-range { min = 1, max = 100 } species-clause = false allow-legendaries = true allow-mythicals = true banned-species = [] banned-moves = [] entry-fee = 0 performance-rounds = 4 move-selection-time = 20000 allow-move-repeats = true repeat-penalty = 0.5}| Field | Type | Default | Description |
|---|---|---|---|
level-range | Min/Max | 1 / 100 | Allowed Pokemon level range |
species-clause | Boolean | false | Prevent duplicate species |
banned-species | List | [] | Species IDs that are banned |
banned-moves | List | [] | Move IDs that are banned |
entry-fee | Int | 0 | Economy cost to enter (requires Impactor) |
performance-rounds | Int | 4 | Number of appeal rounds |
move-selection-time | Int | 20000 | Move selection timeout (ms) |
allow-move-repeats | Boolean | true | Whether the same move can be used twice |
repeat-penalty | Double | 0.5 | Score multiplier for repeated moves |
Next Steps
Section titled “Next Steps”- Contest Types — Define custom scoring rules
- Contest Config — Global contest defaults
- Your First Contest — Use the Hall Builder wizard