Tags
Creators
Details
1.0.0
Compatibility
Changes
CobbleChunkManager
A server-side Fabric mod for Cobblemon 1.7+ on Minecraft 1.21.1 that manages per-chunk Pokemon entity density to reduce server lag.
What it does
Spawn Prevention — Hooks into Cobblemon's spawn event and cancels Pokemon spawns in chunks that are already at the entity budget (default 16 per chunk). This is the main performance feature — it stops entities from being created in the first place, reducing total entity count on the server.
Heatmap System — Tracks every loaded chunk's activity: Pokemon count, player presence, active battles. Each chunk is classified as HOT (active area with players/battles), WARM (moderate activity), or COLD (empty/idle). Scans 50 chunks every 5 seconds.
Budget Enforcement — Every 10 seconds, finds chunks over the entity budget and handles the excess wild Pokemon using the configured strategy:
- MIGRATE — teleport excess to nearby chunks with free space
- DESPAWN — remove excess wild Pokemon
- MIGRATE_THEN_DESPAWN (default) — try to migrate first, despawn whatever can't be relocated
Only wild Pokemon that aren't in battle or busy are affected. Owned Pokemon are never touched.
AI Throttling — Disables vanilla AI (pathfinding, movement goals) for Pokemon in COLD chunks. Only triggers when a chunk's heat level changes, so the per-tick cost is near zero.
Commands
- /ccm heatmap [radius] — visual grid of nearby chunk heat levels and entity counts
- /ccm status — detailed info for the current chunk
- /ccm budget — server-wide budget overview, lists over-budget chunks
- /ccm migrate — manually trigger overflow handling in the current chunk
- /ccm reload — hot-reload the config file
Config
All values are configurable via config/cobble_chunk_manager.json — thresholds, budget limits, scan intervals, overflow strategy, migration behavior.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:B5Oa5DCX:5hApiH5h"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:B5Oa5DCX:5hApiH5h"
}

