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.
Quick Example
Section titled “Quick Example”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 }}All Fields
Section titled “All Fields”| Field | Type | Default | Description |
|---|---|---|---|
displayName | String | "Standard" | Human-readable name shown in GUIs and messages. |
includes | List<String> | [] | Other format IDs to compose rules from. Clauses and bans are merged. |
clauses | List<String> | [] | Clause IDs to apply. Must match keys in clauses.conf. |
bans.species | List<String> | [] | Species to ban. Uses Showdown IDs. Supports conditional bans (e.g. "greninja ability=battlebond"). |
bans.moves | List<String> | [] | Moves to ban. |
bans.abilities | List<String> | [] | Abilities to ban. |
bans.items | List<String> | [] | Items to ban. |
bans.inventoryItems | List<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.gimmicks | List<String> | [] | Battle gimmicks to ban. Valid values: "mega", "zmove", "dynamax", "terastallization". |
targetLevel | Int? | null | If set, all Pokemon are scaled to this level during battle. null = use actual levels. |
teamSize | Int | 6 | Maximum Pokemon allowed on a team. |
pickCount | Int? | null | Number of Pokemon to pick from the team for battle (bring X, pick Y). null = use all. |
requireUnevolved | Boolean | false | Only allow Pokemon that can still evolve (for Little Cup). |
randomTeams | Boolean | false | Generate random teams instead of using the player’s party. |
teamPreview | Boolean | true | Show team preview phase before battle. |
randomGens | List<Int> | [9] | Generations to draw random team sets from. Only used when randomTeams = true. |
validateLegality | Boolean | false | Check that each Pokemon’s moves, abilities, and held items are legal for its species/form. |
previewSettings.hideOpponentTeam | Boolean | false | Hide the opponent’s team during preview. |
previewSettings.randomLeadSelection | Boolean | false | Leads are chosen randomly instead of by the player. |
Conditional Species Bans
Section titled “Conditional Species Bans”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
Section titled “Inventory Item Bans”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
Section titled “Gimmick Bans”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.
Default Formats
Section titled “Default Formats”Frontier ships with nine formats out of the box:
| ID | Display Name | Key Rules |
|---|---|---|
standard | Standard | 6v6, standard clauses, legality checks |
doubles | Doubles | 6v6 doubles, standard clauses |
vgc | VGC (Regulation F) | Bring 6 pick 4, level 50, standard clauses, species bans, mega/zmove/dynamax banned, tera allowed |
vgc_no_gimmick | VGC No Gimmicks | Same as VGC but all gimmicks banned including terastallization |
open | Open | No restrictions, no clauses, no bans |
little_cup | Little Cup | Level 5, unevolved only, standard clauses |
monotype | Monotype | All team members must share a type |
random | Random Battle | Random teams generated from set data, team preview enabled |
random_doubles | Random Doubles | Random 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}Format Inheritance
Section titled “Format Inheritance”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.