Skip to content

Formats

File: config/frontier/formats.conf

Formats define the competitive rules for battles — which clauses apply, what’s banned, level caps, team sizes, and team preview behavior. Each ladder references a format by ID.

formats {
standard {
displayName = Standard
clauses = [
"species_clause"
"sleep_clause"
"evasion_clause"
"ohko_clause"
"gimmick_ban"
]
bans {
species = ["mewtwo", "arceus"]
moves = []
abilities = ["moody"]
items = []
gimmicks = []
}
teamPreview = true
teamSize = 6
validateLegality = true
}
}
FieldTypeDefaultDescription
displayNameString"Standard"Human-readable name shown in GUIs and messages.
includesList<String>[]Other format IDs to compose rules from. Clauses and bans are merged.
clausesList<String>[]Clause IDs to apply. Must match keys in clauses.conf.
bans.speciesList<String>[]Species to ban. Uses Showdown IDs. Supports conditional bans (e.g. "greninja ability=battlebond").
bans.movesList<String>[]Moves to ban.
bans.abilitiesList<String>[]Abilities to ban.
bans.itemsList<String>[]Items to ban.
bans.inventoryItemsList<String>[]Items banned from the player’s inventory on queue join. Supports full Minecraft item syntax including components (e.g. "cobblemon:tera_orb", "minecraft:diamond_sword[minecraft:enchantments={levels:{sharpness:5}}]").
bans.gimmicksList<String>[]Battle gimmicks to ban. Valid values: "mega", "zmove", "dynamax", "terastallization".
targetLevelInt?nullIf set, all Pokemon are scaled to this level during battle. null = use actual levels.
teamSizeInt6Maximum Pokemon allowed on a team.
pickCountInt?nullNumber of Pokemon to pick from the team for battle (bring X, pick Y). null = use all.
requireUnevolvedBooleanfalseOnly allow Pokemon that can still evolve (for Little Cup).
randomTeamsBooleanfalseGenerate random teams instead of using the player’s party.
teamPreviewBooleantrueShow team preview phase before battle.
randomGensList<Int>[9]Generations to draw random team sets from. Only used when randomTeams = true.
validateLegalityBooleanfalseCheck that each Pokemon’s moves, abilities, and held items are legal for its species/form.
previewSettings.hideOpponentTeamBooleanfalseHide the opponent’s team during preview.
previewSettings.randomLeadSelectionBooleanfalseLeads are chosen randomly instead of by the player.

Species bans support simple IDs and conditional qualifiers:

bans {
species = [
"mewtwo" # Ban all forms
"greninja ability=battlebond" # Ban only Battle Bond Greninja
]
}

A plain species ID like "mewtwo" bans all forms of that species. Adding a qualifier like ability=battlebond narrows the ban to only the specific variant that matches the condition.

Inventory item bans check the player’s actual Minecraft inventory when they join the queue. This prevents players from using gimmick activation items from mods like genesisforms, mega_showdown, or gimme-that-gimmick.

bans {
inventoryItems = [
"cobblemon:tera_orb"
"mega_showdown:mega_bracelet"
]
}

Items use full Minecraft item syntax and support component matching (e.g. "minecraft:diamond_sword[minecraft:enchantments={levels:{sharpness:5}}]"). All default formats with a gimmick_ban clause automatically include appropriate inventory item bans for popular gimmick mods. VGC format bans mega/zmove/dynamax items but allows tera items.

When using includes to compose formats, inventory item bans are merged from all included formats.

Gimmick bans control which battle mechanics are allowed in a format:

bans {
gimmicks = [
"mega" # Mega Evolution
"zmove" # Z-Moves
"dynamax" # Dynamax / Gigantamax
"terastallization" # Terastallization
]
}

A format that bans "mega", "zmove", and "dynamax" but does not ban "terastallization" allows Tera while blocking the other gimmicks. Only list the gimmicks you want to prohibit — unlisted gimmicks remain available.

When a format uses gimmick-related clause IDs (e.g. gimmick_ban) but has no explicit gimmick bans configured, the system auto-derives the appropriate gimmick ban lists from the clause IDs.

Frontier ships with nine formats out of the box:

IDDisplay NameKey Rules
standardStandard6v6, standard clauses, legality checks
doublesDoubles6v6 doubles, standard clauses
vgcVGC (Regulation F)Bring 6 pick 4, level 50, standard clauses, species bans, mega/zmove/dynamax banned, tera allowed
vgc_no_gimmickVGC No GimmicksSame as VGC but all gimmicks banned including terastallization
openOpenNo restrictions, no clauses, no bans
little_cupLittle CupLevel 5, unevolved only, standard clauses
monotypeMonotypeAll team members must share a type
randomRandom BattleRandom teams generated from set data, team preview enabled
random_doublesRandom DoublesRandom teams, doubles format, pick 4

Here’s what the VGC format looks like in the actual config:

vgc {
displayName = "VGC (Regulation F)"
clauses = [
"species_clause"
"item_clause"
"sleep_clause"
"evasion_clause"
"ohko_clause"
"ban_mega"
"ban_dynamax"
"ban_zmoves"
]
bans {
species = [
"mewtwo", "mew", "lugia", "hooh", "celebi", "kyogre", "groudon",
"rayquaza", "jirachi", "deoxys", "dialga", "palkia", "giratina",
"phione", "manaphy", "darkrai", "shaymin", "arceus", "victini",
"reshiram", "zekrom", "kyurem", "keldeo", "meloetta", "genesect",
"xerneas", "yveltal", "zygarde", "diancie", "hoopa", "volcanion",
"cosmog", "cosmoem", "solgaleo", "lunala", "necrozma", "magearna",
"marshadow", "zeraora", "zacian", "zamazenta", "eternatus",
"calyrex", "koraidon", "miraidon"
]
gimmicks = ["mega", "zmove", "dynamax"]
}
targetLevel = 50
teamSize = 6
pickCount = 4
validateLegality = true
teamPreview = true
}

The includes field lets you build formats on top of other formats. Clauses and ban lists are merged from all included formats. Scalar fields (like displayName and teamSize) use the top-level format’s values.

formats {
base_ou {
clauses = ["species_clause", "sleep_clause", "evasion_clause", "ohko_clause"]
bans {
species = ["mewtwo", "arceus", "zacian"]
abilities = ["moody", "shadow_tag"]
}
validateLegality = true
}
ou_no_tera {
displayName = "OU (No Tera)"
includes = ["base_ou"]
# Inherits all clauses and bans from base_ou
bans {
gimmicks = ["terastallization"]
}
}
}

In this example, ou_no_tera inherits all clauses and bans from base_ou, then adds a terastallization ban on top. Clauses and ban lists are merged from all included formats, while scalar fields use the top-level format’s values.