-
Notifications
You must be signed in to change notification settings - Fork 2
Battle_Forms.json
Configures the Feature values behind Pokémon that change form mid-battle for reasons other than Mega Evolution, Dynamax, or Terastallization — weather-reactive forms (Castform, Cherrim), stance changes (Aegislash), and other in-battle form swaps (Minior, Mimikyu, Greninja's Ash form, Wishiwashi, Morpeko, Palafin, Eiscue, Cramorant, Darmanitan, Xerneas, Terapagos, Meloetta). Located at GenesisForms/battle_forms.json.
Note
This file only maps each form change to the Cobblemon Feature that gets applied — it does not control what causes the switch. The trigger condition (weather changing, an ability activating, a stance-changing move being used, an item being eaten, etc.) is handled by showdown. You can rename the Feature values used, but you cannot use this file to change when a swap happens or add a trigger to a Pokémon that doesn't already have one built in.
📄 Full default file
{
"aegislash_stance": {
"species": "aegislash",
"default_form": {
"feature_name": "stance_forme",
"feature_value": "shield"
},
"forms": {
"blade": {
"feature_name": "stance_forme",
"feature_value": "blade"
}
}
},
"minior_shield": {
"species": "minior",
"default_form": {
"feature_name": "meteor_shield",
"feature_value": "core"
},
"forms": {
"meteor": {
"feature_name": "meteor_shield",
"feature_value": "meteor"
}
}
},
"castform_forecast": {
"species": "castform",
"default_form": {
"feature_name": "forecast_form",
"feature_value": "normal"
},
"forms": {
"sunny": {
"feature_name": "forecast_form",
"feature_value": "sunny"
},
"rainy": {
"feature_name": "forecast_form",
"feature_value": "rainy"
},
"snowy": {
"feature_name": "forecast_form",
"feature_value": "snowy"
}
}
},
"wishiwashi_schooling": {
"species": "wishiwashi",
"default_form": {
"feature_name": "schooling_form",
"feature_value": "solo"
},
"forms": {
"school": {
"feature_name": "schooling_form",
"feature_value": "school"
}
}
},
"mimikyu_disguise": {
"species": "mimikyu",
"default_form": {
"feature_name": "disguise_form",
"feature_value": "disguised"
},
"forms": {
"busted": {
"feature_name": "disguise_form",
"feature_value": "busted"
}
}
},
"greninja_ash": {
"species": "greninja",
"default_form": {
"feature_name": "battle_bond",
"feature_value": "bond"
},
"forms": {
"ash": {
"feature_name": "battle_bond",
"feature_value": "ash"
}
}
},
"cherrim_blossom": {
"species": "cherrim",
"default_form": {
"feature_name": "blossom_form",
"feature_value": "overcast"
},
"forms": {
"sunshine": {
"feature_name": "blossom_form",
"feature_value": "sunshine"
}
}
},
"morpeko_hunger": {
"species": "morpeko",
"default_form": {
"feature_name": "hunger_mode",
"feature_value": "full_belly"
},
"forms": {
"hangry": {
"feature_name": "hunger_mode",
"feature_value": "hangry"
}
}
},
"palafin_dolphin": {
"species": "palafin",
"default_form": {
"feature_name": "dolphin_form",
"feature_value": "zero"
},
"forms": {
"hero": {
"feature_name": "dolphin_form",
"feature_value": "hero"
}
}
},
"eiscue_head": {
"species": "eiscue",
"default_form": {
"feature_name": "penguin_head",
"feature_value": "ice_face"
},
"forms": {
"noice": {
"feature_name": "penguin_head",
"feature_value": "noice"
}
}
},
"cramorant_missile": {
"species": "cramorant",
"default_form": {
"feature_name": "missile_form",
"feature_value": "none"
},
"forms": {
"gulping": {
"feature_name": "missile_form",
"feature_value": "gulping"
},
"gorging": {
"feature_name": "missile_form",
"feature_value": "gorging"
}
}
},
"darmanitan_blazing": {
"species": "darmanitan",
"default_form": {
"feature_name": "blazing_mode",
"feature_value": "standard"
},
"forms": {
"zen": {
"feature_name": "blazing_mode",
"feature_value": "zen"
}
}
},
"xerneas_life": {
"species": "xerneas",
"default_form": {
"feature_name": "life_mode",
"feature_value": "neutral"
},
"forms": {
"active": {
"feature_name": "life_mode",
"feature_value": "active"
}
}
},
"terapagos_tera": {
"species": "terapagos",
"default_form": {
"feature_name": "tera_form",
"feature_value": "normal"
},
"forms": {
"terastal": {
"feature_name": "tera_form",
"feature_value": "terastal"
}
}
},
"meloetta_song": {
"species": "meloetta",
"default_form": {
"feature_name": "song_forme",
"feature_value": "aria"
},
"forms": {
"pirouette": {
"feature_name": "song_forme",
"feature_value": "pirouette"
}
}
}
}| Field | Type | Description |
|---|---|---|
<battle_form_id> |
object | A single battle-form definition, keyed by its own unique ID (e.g. aegislash_stance, castform_forecast). The ID is only used internally — for event lookups (see below) and as the map key — and isn't shown to players. |
| Field | Type | Description |
|---|---|---|
species |
string | The species this entry applies to. Compared against the Pokémon's Showdown ID when detecting a form swap mid-battle, and against its species name when reverting the form back to default on battle end. |
default_form |
object | The Feature (feature_name/feature_value) applied when the Pokémon reverts to its baseline form — normally on leaving battle (fainting is the one exception; a fainted Pokémon keeps its last battle form rather than being reset). |
forms |
object | Map of <form_name> → Feature (feature_name/feature_value), one entry per non-default form this species can switch into during battle. <form_name> (e.g. "blade", "sunny", "ash") is the internal form identifier GenesisForms' battle-event code checks for per species — it is not free-form; it has to match the name the hardcoded trigger logic for that Pokémon actually looks up (see the caveat below). |
Each default_form/forms entry shares the same two-field shape:
| Field | Type | Description |
|---|---|---|
feature_name |
string | The Cobblemon species feature written to switch the Pokémon into (or out of) this form. |
feature_value |
string | The value written to feature_name. |
Warning
Because the trigger logic that decides when to look up a given <form_name> (e.g. weather turning sunny for Castform, Aegislash using a stance-changing move) is hardcoded per species rather than data-driven, you can safely reword the feature_name/feature_value pairs to match your own custom Features, but you cannot rename the forms keys ("blade", "sunny", "ash", etc.) or add brand-new keys and expect them to be reachable — nothing will ever look them up. This file is fine-tuning what an existing hardcoded form swap applies, not a general-purpose form-change trigger system.
-
Events — the
form_changes.battle_formsevents section (particles, glow, scale animations played when a battle form changes or reverts). - Config.json — general GenesisForms settings.
- How-It-Works — the full mechanical explanation of how each battle form's trigger actually works in-game.