
Better Tps
better-tps is an adaptive performance stabilizer for Minecraft servers (Bukkit/Spigot/Paper/Purpur 1.20+). It automatically tunes server settings in real-time to maintain a stable 20 TPS, ensuring a smooth experience for players even during high-load
1.3.0
Compatibility
Changes
Intelligent Lag Analysis & Targeted Mitigation Engine
- Added new Lag Analyzers:
EntityAnalyzer,ChunkLoadAnalyzer,HopperAnalyzer,RedstoneAnalyzer,TileEntityAnalyzer,VillagerAnalyzer, andSchedulerAnalyzer. - Targeted Entity Mitigation: Intervenes in detected hotspots by clearing only unnamed, generic dropped items and non-persistent hostile mobs.
- Performance Optimized: Replaced expensive full-world entity sweeps (
world.getEntities()) with targeted chunk sampling and event-based tracking to avoid adding lag during analysis or mitigation. - Auto Recovery: Added
RecoveryManagerto automatically disable mitigations once server TPS and MSPT return to healthy levels. - New Commands:
/bettertps diagnose- Provides live diagnosis of the most likely cause of lag./bettertps lagreport- Displays a broader history of recently scanned regions and suspects./bettertps mitigation status- Shows the active status of any ongoing interventions.
Profile & Tuning Improvements (from previously unreleased)
- Added more profile-level TPS controls:
- per-category spawn limit and spawn tick multipliers in the default config
max-entity-crammingdefaults per profile- optional spawn-related gamerules:
do-mob-spawning,do-patrol-spawning,do-trader-spawning,do-insomnia
- Added
features.tune-spawn-gamerules. - Added paced profile application with
profile-apply.worlds-per-tickandprofile-apply.interval-ticksto reduce switch-time load on multi-world servers. - Added
stability.recover-min-secondsand stricter recovery defaults so profiles only relax after TPS stays healthy for a sustained period. - Reduced client freeze risk by disabling world distance tuning by default, softening default distance reductions, slowing profile application, and adding
profile-apply.distance-change-cooldown-seconds. - Added
features.client-smooth-modeand ping-aware recovery usingnetwork.ping-aware-recovery/network.recover-max-average-ping-ms. - Added high-ping protection that pauses non-emergency profile switches using
network.pause-non-emergency-switches-on-high-ping.
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:XC7ZA3cV:aUQvIeOr"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:XC7ZA3cV:aUQvIeOr"
}
