Tags
Creators
Details
4.3.3
Compatibility
Changes
Changes — v4.3.3
- Removed console log spam
The Batch despawn: removed X (Y aged out) [Skitty x6, Bramblin x4, ...] log line was being printed on every sweep cycle (every ~10 seconds when entities were
despawned). It's now gone. Internal counters (lastDespawnCount, lastAgeDespawnCount) are still updated and remain visible via the /cobbleoptimizer status
command — only the log noise was removed.
- TPS-gated sweep
Previously the batch despawn ran on a fixed timer (every check_interval_ticks, default 200 ticks = 10s) regardless of server health. Now it only runs when TPS drops below a configurable threshold.
New config field: batch_despawn.tps_threshold (default 18.0).
- TPS ≥ 18.0 → no despawn sweep (server is healthy, no need)
- TPS < 18.0 → sweep runs at the normal interval
This brings batch despawn in line with the other features (tick_throttle, ai_freeze), which already use the same TPS-gating pattern.
- Emergency override preserved
The forceNextSweep() flag (used by the Emergency Manager when TPS drops below emergency.tps_threshold, default 12.0) bypasses both the interval check and the new TPS gate. So even if you set batch_despawn.tps_threshold to something low like 14.0, an emergency at TPS 11 will still force an immediate sweep.
Files changed (mirrored on Fabric + NeoForge)
- CobbleOptimizerConfig.kt — added tpsThreshold: Double = 18.0 to BatchDespawnConfig
- BatchDespawnManager.kt — added TPS gate, removed log line, removed dead species-counting code
- ConfigManager.kt — TOML parse/write, key list, and setValue support for the new field
- ConfigValidator.kt — validates tps_threshold in range 1.0..20.0
- gradle.properties — version bumped 4.3.2 → 4.3.3
How to tune
/cobbleoptimizer config set batch_despawn.tps_threshold 17.0 # stricter (only at 17 TPS) /cobbleoptimizer config set batch_despawn.tps_threshold 19.5 # more aggressive /cobbleoptimizer config set batch_despawn.tps_threshold 20.0 # effectively "always on" (old behavior)
The change is backwards-compatible: existing cobbleoptimizer.toml files without the new key fall back to the default 18.0 and the key is written on the next save.
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:qPJLoYyi:J0u8Wtp0"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:qPJLoYyi:J0u8Wtp0"
}

