Format IDs
Format IDs are lowercase, alphanumeric strings with no spaces:Naming Convention
Format IDs typically follow this pattern:Generation number (1-9) or omitted for current gen
Format name:
ou, ubers, randombattle, vgc, doubles, etc.Optional variant or regulation:
regi, bo3, etc.Format Categories
Formats are organized into sections:Singles Formats
Competitive 6v6 singles battles:Random Battle
Format ID:
gen9randombattleRandomized teams with competitively viable sets. Great for quick battles without team building.OU (OverUsed)
Format ID:
gen9ouThe most popular competitive format with standard rules and a curated banlist.Ubers
Format ID:
gen9ubersAllows legendary and mythical Pokemon banned from OU.UU / RU / NU / PU
Format IDs:
gen9uu, gen9ru, gen9nu, gen9puUsage-based tiers with Pokemon banned from higher tiers.Doubles Formats
Competitive doubles battles:Random Doubles
Format ID:
gen9randomdoublesbattleRandomized doubles teams.Doubles OU
Format ID:
gen9doublesouCompetitive doubles with standard rules.VGC (Video Game Championships)
Format IDs:
gen9vgc2026regi, gen9vgc2026regfOfficial Pokemon VGC rules with regulation variations.Doubles Ubers
Format ID:
gen9doublesubersUnrestricted doubles format.Other Metagames (OMs)
Creative formats with modified rules:Almost Any Ability
Format ID:
gen9almostanyabilityPokemon can use almost any ability.Balanced Hackmons
Format ID:
gen9balancedhackmonsAnything hackable is allowed with balance restrictions.STABmons
Format ID:
gen9stabmonsPokemon can use any move matching their type.Mix and Mega
Format ID:
gen9mixandmegaAny Pokemon can mega evolve with any mega stone.Custom Formats
Custom Game
Format IDs:
gen9customgame, gen9doublescustomgameNo restrictions - for testing and experimentation.Format Configuration
Formats are defined in/config/formats.ts with configuration objects:
Key Properties
Display name of the format (e.g.,
"[Gen 9] OU")Generation/mod to use (e.g.,
'gen9', 'gen8')Battle type:
'singles' (default), 'doubles', 'triples', 'multi', or 'freeforall'Team generation mode:
'random'- Randomly generated teams'randomBSSFactory'- BSS Factory sets- Not specified - Teams must be provided
Array of rules to apply (e.g.,
['Standard', 'Sleep Clause Mod'])Banned Pokemon, moves, items, and abilities
Restricted items with usage limits (e.g., limit one restricted legendary)
Using Formats
Starting a Battle
Specify the format ID when starting a battle:Format-Specific Behavior
- Random Formats
- Standard Formats
- Doubles/Multi
Teams are generated automatically if not provided:Or provide your own team:
Format Examples from Source
Here are real format definitions from the Pokemon Showdown source:Gen 9 Random Battle
Gen 9 OU
Gen 9 VGC 2026 Reg I
Gen 9 Custom Game
Rulesets
Rulesets define the rules and clauses applied to a format:Common Rulesets
- Standard
- Standard OMs
- Flat Rules
- Team Preview
- Species Clause (no duplicate Pokemon)
- OHKO Clause (no one-hit KO moves)
- Evasion Moves Clause
- Sleep Clause Mod
- HP Percentage Mod
- Cancel Mod
Clauses
Individual rules that can be applied:'Species Clause'- No duplicate Pokemon'Sleep Clause Mod'- Limit sleeping opponents'OHKO Clause'- Ban OHKO moves'Evasion Moves Clause'- Ban evasion-boosting moves'Evasion Abilities Clause'- Ban evasion abilities'HP Percentage Mod'- Display HP as percentages'Cancel Mod'- Allow move cancellation
Accessing Format Data
You can access format data programmatically:Legacy Formats
Older generation formats are also supported:Custom Formats
You can create custom formats by modifyingconfig/formats.ts or config/custom-formats.ts:
Custom formats require modifying the Pokemon Showdown server code and are not available in the npm package.
Format Validation
When using a format, the simulator will:- Check if the format exists
- Load the appropriate game generation (mod)
- Apply all rulesets
- Enforce banlists and restrictions
Complete Example
Here’s a complete example using multiple formats:Next Steps
Overview
Return to simulator overview
Team Formats
Learn about team formats
