Skip to content

Contest Types

Location: config/reverie/contesttypes/{type_id}.conf

Contest types define the rules, scoring, phases, and behavior of a specific kind of contest. You can create unlimited custom contest types beyond the default five categories.

/contesttype list # List all contest types
/contesttype info <type_id> # View detailed type info
/contesttype create # Open creation GUI
/contesttype edit <type_id> # Open edit GUI
/contesttype reload # Reload from config files
# Metadata
id = "cool"
displayName = "Cool Contest"
description = "Show off your Pokemon's coolest moves!"
color = "AQUA"
icon = "minecraft:ice"
enabled = true
priority = 1
# Category Weights
categories = [
{ category = "cool", weight = 1.0, secondaryStats = ["tough"] },
{ category = "beauty", weight = 0.3 }
]
# Scoring
scoring {
baseAppealPoints = 30
categoryMatchBonus = 50
contestStatMultiplier = 0.1
maxComboMultiplier = 3.0
repeatPenalty = 0.5
}
# Phases
phases {
performanceRounds = 4
moveSelectionTime = 20000
turnDelay = 4000
introDuration = 10000
presentationDuration = 15000
judgingDuration = 20000
}
# Rules
rules {
maxContestants = 4
minContestants = 2
allowMoveRepeats = true
levelMin = 1
levelMax = 100
speciesClause = false
bannedSpecies = []
bannedMoves = []
}
# Entry Requirements
entry {
minContestStatTotal = 0
requiredRibbonTier = 0
permission = ""
entryFee = 0
}
# Excitement
excitement {
initialLevel = 50
highThreshold = 80
lowThreshold = 20
}
# Rewards
rewards {
first = [{ type = "ribbon", tier = "auto" }]
second = [{ type = "ribbon", tier = "auto" }]
third = [{ type = "ribbon", tier = "auto" }]
participation = []
}
FieldTypeDefaultDescription
idStringRequiredUnique identifier (used in commands)
displayNameStringRequiredName shown to players
descriptionString""Description in contest browser
colorString"WHITE"ChatFormatting color name (AQUA, RED, GOLD, etc.)
iconString"minecraft:paper"Minecraft item ID for GUI icon
enabledBooleantrueWhether this type can be used
priorityInt0Sort order (higher = listed first)
FieldTypeDefaultDescription
baseAppealPointsInt30Base points before any bonuses
categoryMatchBonusInt50Maximum bonus for move-category alignment
contestStatMultiplierDouble0.1Multiplier applied to Pokemon’s contest stat
maxComboMultiplierDouble3.0Cap on combo multiplier
repeatPenaltyDouble0.5Score multiplier for repeated moves
FieldTypeDefaultDescription
performanceRoundsInt4Number of appeal rounds
moveSelectionTimeLong20000Move selection timeout (ms)
turnDelayLong4000Delay between contestant turns (ms)
introDurationLong10000Introduction phase duration (ms)
presentationDurationLong15000Presentation phase duration (ms)
judgingDurationLong20000Judging/voting phase duration (ms)
FieldTypeDefaultDescription
maxContestantsInt4Maximum players in this contest type
minContestantsInt2Minimum to start
allowMoveRepeatsBooleantrueAllow same move twice
levelMin / levelMaxInt1 / 100Allowed Pokemon level range
speciesClauseBooleanfalseNo duplicate species
bannedSpeciesList[]Banned species IDs
bannedMovesList[]Banned move IDs
FieldTypeDefaultDescription
minContestStatTotalInt0Minimum total contest stats to enter
requiredRibbonTierInt0Required ribbon tier (0=none, 1-4)
permissionString""Permission node required (empty = none)
entryFeeInt0Economy cost to enter

Contest types can define custom stages for more complex formats:

Stage TypeDescription
PERFORMANCETraditional appeal rounds with move selection
PRESENTATIONShowcase phase for visual scoring
MINIGAMEInteractive minigame (specify minigameId)
VOTINGAudience/spectator voting round
INTERMISSIONBreak between stages
stages = [
{
id = "performance_1"
type = "PERFORMANCE"
performanceRounds = 2
scoreWeight = 1.0
},
{
id = "minigame_1"
type = "MINIGAME"
minigameId = "rhythm"
scoreWeight = 0.5
}
]
  1. Hall Configuration — Halls can override contest type settings
  2. Scoring & Formulas — How scoring fields translate to appeal math