-
Notifications
You must be signed in to change notification settings - Fork 2
Events
events.json controls the particle animations, glow colors, feature overrides, and scale effects that play when a Pokémon changes form. Located at GenesisForms/events.json.
Warning
1.2.7 breaking change: every animation entry now needs a "type" field, and two fields were renamed: identifier → particle_resource, form_delay_seconds → form_change_delay_seconds. Old-style entries without a type will fail to load — see Animations below for the new format. The shipped Mega Evolution animation has already been converted for you.
📄 Full default file
{
"mega_evolution": {
"animations": {
"global": {
"type": "snowstorm_entity",
"form_change_delay_seconds": 4.9,
"particle_resource": "cobblemon:mega_evolution",
"x_offset": 0,
"y_offset": 0,
"z_offset": 0,
"locators": ["root"]
}
},
"glow": {},
"features": {},
"scale": {}
},
"terastallization": {
"animations": {},
"glow": {
"global": "white",
"bug": "green",
"dark": "black",
"ghost": "dark_purple",
"grass": "dark_green",
"ground": "gold",
"poison": "dark_purple",
"rock": "yellow",
"steel": "gray",
"ice": "aqua",
"fire": "red",
"dragon": "dark_blue",
"fighting": "gold",
"flying": "aqua",
"fairy": "light_purple",
"psychic": "light_purple",
"normal": "white",
"electric": "yellow",
"water": "blue",
"stellar": "white"
},
"features": {},
"scale": {}
},
"z_power": {
"animations": {},
"glow": {},
"features": {},
"scale": {}
},
"dynamax": {
"animations": {},
"glow": {},
"features": {},
"scale": {
"global": {
"scale": 4.0,
"scaling_ticks": 60
}
}
},
"form_changes": {
"key_items": { "animations": {}, "glow": {}, "features": {}, "scale": {} },
"held_items": { "animations": {}, "glow": {}, "features": {}, "scale": {} },
"fusions": { "animations": {}, "glow": {}, "features": {}, "scale": {} },
"possessions": { "animations": {}, "glow": {}, "features": {}, "scale": {} },
"battle_forms": { "animations": {}, "glow": {}, "features": {}, "scale": {} }
}
}The file is split into sections, one per system:
-
mega_evolution,terastallization,z_power,dynamax— the four core gimmicks -
form_changes— key items, held items, fusions, possessions, and battle forms (added in 1.2.7 — see form_changes below)
Each section contains up to four sub-sections — "animations", "glow", "features", and "scale" — documented individually below. The key of each entry within those sub-sections points to which variant of that gimmick you'd like to modify, with "global" being the default that applies when there's no more specific match. Mega Evolution and Dynamax only really use "global". Terastallization keys are Tera Types ("fire", "water", etc.), and Z-Power keys are Z-Crystal item IDs.
"type" is one of three particle systems:
Spawns a normal Minecraft particle. Use this when you don't need a custom particle resource.
"global": {
"type": "vanilla",
"particle_resource": "minecraft:totem_of_undying",
"form_change_delay_seconds": 0.5,
"x_offset": 0,
"y_offset": 1,
"z_offset": 0,
"count": 20,
"delta_x": 0.5,
"delta_y": 0.5,
"delta_z": 0.5,
"speed": 0.1
}Spawns a Bedrock/Cobblemon-style particle effect at a fixed point in the world (offset from the Pokémon's position). It does not follow the Pokémon if it moves.
"global": {
"type": "snowstorm",
"particle_resource": "cobblemon:some_effect",
"form_change_delay_seconds": 1.0,
"x_offset": 0,
"y_offset": 0,
"z_offset": 0
}Spawns a Bedrock/Cobblemon-style particle effect attached to the Pokémon's model, so it follows the Pokémon around. "locators" is a list of model bone names to attach to — ["root"] covers most cases. This is what the default Mega Evolution animation uses:
"global": {
"type": "snowstorm_entity",
"particle_resource": "cobblemon:mega_evolution",
"form_change_delay_seconds": 4.9,
"x_offset": 0,
"y_offset": 0,
"z_offset": 0,
"locators": ["root"]
}| Field | Applies to | Description |
|---|---|---|
type |
all |
"vanilla", "snowstorm", or "snowstorm_entity". |
particle_resource |
all | The particle to spawn — a vanilla particle ID for vanilla, or a Cobblemon/Bedrock particle resource identifier for the other two. (Renamed from identifier.)
|
form_change_delay_seconds |
all | Delay before the actual form change (feature/species/model swap) happens, so the effect has time to play first. (Renamed from form_delay_seconds.)
|
x_offset / y_offset / z_offset
|
all | Position offset from the Pokémon. |
locators |
snowstorm_entity only |
Model bone name(s) to attach the effect to. |
count, delta_x, delta_y, delta_z, speed
|
vanilla only |
Standard Minecraft particle-spawning parameters. |
A set of JSON strings mapping a key to a glow color. Colors are limited to whatever exists in Minecraft's scoreboard team color system.
"glow": {
"global": "white",
"fire": "red",
"water": "blue"
}Note
Glow is implemented with a scoreboard team per glowing Pokémon (named glow_<eventId>_<pokemonUUID>). If you're coming from a pre-1.2.7 server, run /genesis clearGlowTeams once — see Commands — to clean up leftover teams from a bug fixed in that release.
A set of JSON objects, each with a "feature_name", "feature_value" to apply, and "default_value" to fall back to afterward (e.g. "null" or "normal").
"features": {
"bug": {
"feature_name": "skin",
"feature_value": "tera_bug",
"default_value": "null"
}
}A set of JSON objects with a target "scale" and "scaling_ticks" (how many ticks it takes to reach that scale). Scale reverts to 1 when the gimmick ends.
"scale": {
"global": {
"scale": 4.0,
"scaling_ticks": 60
}
}Previously, animations/glow/features/scale only worked for the four core gimmicks above. As of 1.2.7, the same four sub-sections are also available under form_changes, for:
-
key_items— form-cycling key items (e.g. Zygarde Cube forms) -
held_items— held-item-triggered forms (e.g. Ogerpon's masks, Zacian/Zamazenta's Rusted Sword/Shield) fusions-
possessions(e.g. Rotom's appliance forms) -
battle_forms— weather/battle-driven forms (Castform, Cherrim, Aegislash stance, etc.), including reverting to the default form outside of battle
Each works exactly the same as the sections above — same animations/glow/features/scale structure, same type options for animations. All of these are empty (opt-in) by default — see the full file above.
The key you use under each form_changes sub-section is an event ID built from the Pokémon and the form it's changing to/from, lowercased:
| Sub-section | Event ID pattern | Example |
|---|---|---|
key_items |
<species>_<feature value> |
zygarde_complete |
held_items |
<species>_<feature value> |
ogerpon_grass_mask |
possessions |
<species>_<default feature value> |
rotom_light |
fusions |
<core species>_<fuel species> |
kyurem_reshiram |
battle_forms |
<species>_<form name>, or <species>_default_form when reverting, or zygarde_percent_cells for Zygarde's HP-threshold change |
castform_rainy, castform_default_form
|
Tip
These examples show the pattern, not guaranteed exact strings for every Pokémon — the precise feature value or form name has to match what Cobblemon/the mod actually uses internally. For example, to give Ogerpon's grass-mask form a particle burst, you'd add an entry keyed ogerpon_grass_mask under form_changes.held_items.animations; if you're unsure of the exact event ID for a form you want to hook, check the relevant item/handler page (see Held_Form_Items.json, Possession_Items.json, Key_Form_Items.json, Fusion_Items.json, Battle_Forms.json) for how that entry builds its event ID.
- Config.json — global settings for each gimmick.
-
Mega_Evolutions.json, Battle_Forms.json, Fusion_Items.json, Held_Form_Items.json, Possession_Items.json, Key_Form_Items.json, Z_Crystals.json — where each
form_changesevent ID actually comes from. -
Commands —
/genesis reloadand/genesis clearGlowTeams. - How-It-Works — how each gimmick triggers and reverts.