The Fix Explained
Problem: The ParticleStormMixin was injecting into method = "tick" with remap = false. At runtime, Cobblemon's ParticleStorm class extends Minecraft's Particle
and overrides its tick() method. In a Fabric environment, all Minecraft method names are replaced with intermediary names (e.g., tick → method_3070). So the
bytecode literally has no method called "tick" — the mixin couldn't find its target and crashed.
Fix: Changed the method target from "tick" to "method_3070" (the intermediary name for Particle.tick()). Since we're using the intermediary name directly,
remap = false stays — no remapping needed.
Why remap = true didn't work either: Our stub ParticleStorm.java is a bare class that doesn't extend Particle, so the Mixin annotation processor at compile
time couldn't resolve the inheritance chain to find the mapping for tick. Using the intermediary name directly bypasses this entirely.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }