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"
]
teamPreview = true
teamSize = 6
validateLegality = true
}
}
FieldTypeDefaultDescription
displayNameString"Standard"Human-readable name shown in GUIs and messages.
includesList<String>[]Other format IDs to merge rules from. Clauses and bans are combined.
clausesList<String>[]Clause IDs to apply. Must match keys in clauses.conf.
bannedSpeciesList<String>[]Species to ban (Showdown IDs, e.g. "mewtwo", "arceus").
bannedMovesList<String>[]Moves to ban (e.g. "swagger", "baton_pass").
bannedAbilitiesList<String>[]Abilities to ban (e.g. "moody", "shadow_tag").
bannedItemsList<String>[]Items to ban (e.g. "kings_rock").
targetLevelInt?nullIf set, all Pokemon are treated as this level. null = use actual levels.
teamSizeInt6Maximum Pokemon on a team.
pickCountInt?nullNumber of Pokemon to pick from the team for battle (bring 6, pick 4 for VGC). null = use all.
requireUnevolvedBooleanfalseOnly unevolved Pokemon (Little Cup).
randomTeamsBooleanfalseGenerate random teams instead of using the player’s party.
teamPreviewBooleantrueShow team preview phase before battle.
randomGensList<Int>[9]Generations to pull from for random team generation.
validateLegalityBooleanfalseCheck that each Pokemon’s moves and abilities are legal for its species/form.
previewSettings.hideOpponentTeamBooleanfalseHide the opponent’s team during preview.
previewSettings.randomLeadSelectionBooleanfalseLeads are chosen randomly instead of by the player.

Frontier ships with seven formats out of the box:

IDDisplay NameKey Rules
standardStandard6v6, standard clauses, legality checks
doublesDoubles6v6 doubles, standard clauses
vgcVGCBring 6 pick 4, level 50, standard clauses
little_cupLittle CupLevel 5, unevolved only, standard clauses
monotypeMonotypeAll team members must share a type
randomRandom BattleRandom teams, team preview on
random_doublesRandom DoublesRandom teams, doubles, pick 4

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

vgc {
clauses = [
"species_clause"
"sleep_clause"
"evasion_clause"
"ohko_clause"
"gimmick_ban"
]
displayName = VGC
pickCount = 4
targetLevel = 50
teamPreview = true
teamSize = 6
validateLegality = 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"]
bannedSpecies = ["mewtwo", "arceus", "zacian"]
validateLegality = true
}
ou_no_tera {
displayName = "OU (No Tera)"
includes = ["base_ou"]
clauses = ["ban_tera"]
}
}

In this example, ou_no_tera inherits all clauses and bans from base_ou, then adds ban_tera on top. The final clause list is the union of both.