Changes
1. Removed aggressive tick cancellation
- Deleted PokemonEntityTickMixin entirely (both Fabric + NeoForge)
- Tick throttle now only skips AI computation (tickNewAi / customServerAiStep), not the full entity tick
- Cobblemon's state machine, physics, and interaction handling continue running normally even when throttled
2. Fixed hitbox desync on AI freeze
- When AI freeze stops navigation, horizontal velocity is now zeroed out (setVelocity(0, vel.y, 0))
- Previously, residual velocity caused server-side entity position to drift from client-side, making entities unclickable
3. Fixed AI freeze radius misconfiguration
- Default aiFreeze.freezeRadius reduced from 48 to 32 to match tickThrottle.nearPlayerRadius
- Previously, Pokemon between 32-48 blocks would tick normally but have completely frozen AI — appearing alive but unresponsive
- Added a config validation warning if freezeRadius > nearPlayerRadius
4. Frozen entity cleanup on despawn
- AiFreezeManager.removeEntity() is now called before every entity.discard() in BatchDespawnManager
- Prevents stale entity IDs in the frozen set from incorrectly freezing newly spawned entities with recycled IDs
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" }