Changes — v4.3.3
1. 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.
2. 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.
3. 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.
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" }