Skip to content

How It Works

Unariginal edited this page Sep 4, 2026 · 1 revision

How It Works

GenesisForms doesn't add a GUI or a config-driven menu — every gimmick is triggered by carrying the right combination of items. This page walks through what actually happens for each mechanic: what triggers it, what happens to the Pokémon, and how it reverts.

The Accessory + Held Item Pattern

Four of the mechanics — Mega Evolution, Dynamax, Terastallization, and Z-Power — are gated the same way real Pokémon games gate them: the player needs a key item (Key Stone, Dynamax Band, Tera Orb, Z-Ring equivalent), and for some gimmicks the Pokémon also needs to be holding something.

GenesisForms' accessories aren't worn in an armor slot by default — they just need to be carried somewhere valid. What counts as "valid" is server-configurable in Config.json's general_settings.key_item_slots: by default that's the hotbar, main inventory, and both hands, with armor slots off. If the Trinkets mod is installed, wearing the accessory in a trinket slot also counts, regardless of the inventory-slot settings.

At the start of every battle, GenesisForms scans each participant's valid slots (and Trinkets slots) for these accessories and, if found (and the matching gimmick is enabled in config), grants the player Cobblemon's own native key_stone / tera_orb / z_ring / dynamax_band flags for that battle — which is what actually unlocks the Mega Evolve / Terastallize / Z-Move / Dynamax buttons in Cobblemon's battle UI. A player holding both a Tera Accessory and a Dynamax Accessory only gets the Tera Orb flag, not both.

Gimmick Accessory required Held item required Where the trigger lives
Mega Evolution Mega Accessory Yes — a matching Mega Stone, or an "itemless" mega's species/aspect/move requirements In-battle button, or out-of-battle right-click (if enabled)
Terastallization Tera Accessory, with charge remaining No In-battle button only
Z-Power Z-Accessory Yes — a Z-Crystal, used during move selection In-battle only (it's a one-off move enhancement, not a persistent form)
Dynamax / Gigantamax Dynamax Accessory No (Gigantamax additionally needs the Pokémon to have its native Gigantamax Factor) In-battle button only

Note

Z-Power isn't really a "form" — using a Z-Crystal empowers a single move for one turn (handled entirely by Cobblemon's own battle logic). GenesisForms only hooks in to fire the Z-Power visual event when the move is used; see Events.

Mega Evolution

Requires a Mega Accessory in a valid slot and the Pokémon holding a Mega Stone that matches its species (configured per-entry in Mega_Evolutions.json). An entry can instead be "itemless" (has_item: false) — no stone needed, but the Pokémon must match a required species, and optionally required aspects and known moves (this is how you'd recreate something like Rayquaza's stone-free Mega Evolution).

  • In battle: choosing Mega Evolve applies the configured feature/value (e.g. mega_evolutionmega) after a short delay (configurable per-entry so the animation/particles can play first), fires the mega evolution event from Events, and marks the Pokémon untradeable for the duration.
  • Outside battle: if mega_settings.allow_mega_outside_battles is enabled, right-clicking the Mega Accessory directly on your own (non-battling) Pokémon toggles the mega form on or off on the spot — no battle needed.
  • One mega at a time: a player can only have one actively mega-evolved Pokémon at a time. Trying to mega evolve a second one out of battle is silently ignored while the first is still mega'd.
  • Reverting: automatically at the end of the battle (win or flee) or when the Pokémon faints; also when the Mega Stone is removed from the Pokémon, or manually via the accessory right-click, or /genesis resetData. Reverting always clears GenesisForms' own untradeable marker (a persistent-data flag that blocks trades regardless of config) and restores the base form; if mega_settings.use_tradeable_property is enabled, it also restores Cobblemon's native tradeable property.

Terastallization

Requires a Tera Accessory in a valid slot with charge remaining. The accessory's "charge" is literally its item durability: full durability (0 damage) is charged, 100 damage is empty. If tera_settings.require_orb_recharge is on, Terastallizing drains the orb to empty immediately and it needs to be manually recharged — see /genesis rechargeOrb and /genesis setOrbUsage. If that setting is off, the orb never depletes.

  • Terastallizing in battle sets the Pokémon's Tera Type (already assigned to the Pokémon beforehand — see Tera Shards below) and fires the Terastallization event.
  • Terapagos gets a special case: Terastallizing forces its tera_form feature to stellar. Ogerpon gets its embody_aspect flag flipped on.
  • Reverting: automatically at the end of battle or on faint, same as Mega Evolution.

Tera Shards

Tera Shards (from Tera_Shards.json) are a bag item, not a held item — right-click one directly on a Pokémon (outside of battle) to permanently set its Tera Type to the shard's type. This consumes a configurable stack amount (tera_settings.tera_shards_required, 50 by default) unless tera_settings.consume_tera_shards is disabled. Ogerpon and Terapagos can't have their Tera Type changed this way (their type is tied to their mask/form instead), and a shard can't be used to re-apply the type a Pokémon already has.

Dynamax / Gigantamax

Handled almost entirely by Cobblemon's own native Dynamax system — GenesisForms' role is granting the Dynamax Band flag (via the accessory check above) and re-skinning the transformation. When Showdown starts a Dynamax in battle, GenesisForms applies a dynamax_form feature (gmax if the Pokémon has its Gigantamax Factor and Gigantamax is enabled, otherwise nothing extra) purely so the resource pack can show the right model/texture, and fires the Dynamax event. When Showdown ends the Dynamax (its native turn-limit logic), the feature is cleared and the revert event fires. GenesisForms does not control how long a Dynamax lasts — that's Showdown's own mechanic.

Fusion

Fusion items (Fusion_Items.json) merge a "fuel" Pokémon from your party into a "core" Pokémon, changing its form/typing/stats via a species feature and stashing the fuel Pokémon's full data on the core Pokémon.

  1. Right-click a Fusion item on a valid core-species Pokémon.
  2. GenesisForms looks through your party for a Pokémon matching one of the fusion's configured fuel species.
  3. If found, the fuel Pokémon is saved with Cobblemon's own native saveToNBT and removed from your party.
  4. The core Pokémon gets the configured result feature/value applied (after any configured animation delay), and the item is consumed if it's marked consumable.

Using the same fusion item on an already-fused Pokémon reverses it: the result feature is stripped, and the fuel Pokémon is recreated from the saved data and added back to your party.

Important

As of 1.2.7, fusion saves use Cobblemon's native Pokémon NBT format end-to-end, so un-fusing is lossless — IVs, EVs, nature, moves, held item, everything on the fuel Pokémon comes back exactly as it was. Older saves made before 1.2.7 used a reduced-property format and are still read for backward compatibility, but any new fusion is saved in the full format.

Possession

Possession items (Possession_Items.json) apply an alternate form to a matching Pokémon (the built-in example is Rotom's appliance forms) and, unlike every other mechanic here, reverting only works one way.

  • Applying: right-click a Possession item on a matching Pokémon. This sets the configured feature/value and stores which possession item was used in the Pokémon's persistent data. The item is consumed.
  • Reverting: place the item's corresponding Possession Block (e.g. a microwave/appliance block — placeability is configurable per entry) and right-click it. This opens a party-select menu filtered to the matching species; picking a currently-possessed Pokémon strips the feature and hands the original Possession item back to your inventory.

Key-Item Form Cycling

Form-cycle items (Key_Form_Items.json) step a matching Pokémon through a configured list of feature values, one per right-click.

  • If the config lists only one feature value, every right-click just (re-)applies that same value — it behaves like a one-way form-changer rather than a cycle.
  • If it lists multiple values, each right-click advances to the next value in the list, wrapping back to the first after the last. The special value null in that list means "no feature" — right-clicking into that slot removes the feature entirely, returning the Pokémon to its base form as one step of the cycle.
  • The item is consumed per use if marked consumable in config.

Battle Forms (Weather / Battle-Driven)

Battle Forms (Battle_Forms.json) aren't triggered by an item at all — they piggyback on Showdown's own native in-battle forme changes (the same system that drives things like weather-reactive Pokémon, Zygarde's cell-based forms, or other Showdown-driven forme swaps). GenesisForms listens for Cobblemon's forme-change event and, if the Pokémon's species and new forme name match a configured entry, applies a matching feature/value purely for resource-pack purposes (so the model/texture actually reflects the new forme).

  • Reverts to the entry's configured default_form at the end of battle — except a fainted Pokémon (which is handled separately and doesn't get the default-form revert pass) and Greninja outside its Ash form (which is deliberately skipped).
  • Zygarde gets extra handling: reaching Complete Forme records whether it came from the 10% or 50% form so it can revert to the correct one afterward, and its ability is reset to Power Construct on revert.
  • Ogerpon's embody_aspect flag is cleared on revert alongside its battle form.

Note

All of the particle, glow-outline, and scale effects for every mechanic on this page are defined per-gimmick in events.json, not hardcoded — including the delay before a form visually "completes" (which is also what the pokemon.after(delay, ...) calls above are waiting on). See Events to customize or disable any of them.

See Also

  • Commands — the give/reset/debug commands referenced throughout this page.
  • Events — the particle/glow/scale system behind every gimmick's visual effects.
  • Config.json — the per-gimmick enable toggles and settings (mega_settings, tera_settings, dynamax_settings, z_power_settings, fusion_settings, general_settings.key_item_slots) referenced above.
  • Custom-Mega-Evolutions — a walkthrough for adding entirely new Mega Evolutions, including itemless ones.

Config Files

─ items/accessories/Accessories.json

─ items/bag_items/Max_Items.json

─ items/bag_items/Tera_Shards.json

─ items/held_items/Held_Battle_Items.json

─ items/held_items/Held_Form_Items.json

─ items/held_items/Z_Crystals.json

─ items/key_items/Fusion_Items.json

─ items/key_items/Key_Form_Items.json

─ items/key_items/Possession_Items.json

Clone this wiki locally