All versions
3.1.0
Release
ServerBenchmark 3.1.0last month 216
Compatibility
Minecraft: Java Edition
26.2
26.1.x
1.21.x
1.20.x
Platforms
Bukkit
Paper
Purpur
Spigot
Changes
Spark support
- Works alongside Spark when it's installed. Pulls its 5s / 10s / 1m / 5m / 15m TPS, MSPT median and p95, server CPU use and per-collector GC stats into the report
- Spark is optional, nothing changes if you don't have it
- Can be turned off with
use-spark: falsein the config
More accurate results
- GC overhead is now measured since the last check instead of since boot, so servers with long uptime score correctly
- Current TPS uses Spark's 10 second window when available instead of a 1 minute average
- Shows how much CPU the server itself uses next to the whole machine, and flags when something else on the box is hogging it
- Player capacity now accounts for real tick headroom when players are online
- Disk read and write speeds use the real elapsed sample time
New commands
/benchmark tps- instant TPS, MSPT, heap, players and entities with no sampling delay/benchmark compare- diffs your last two results, green for better and red for worse/benchmark monitor- shows the last background check
Background monitor
- Optional timer that runs a benchmark every few minutes, logs a one line summary and warns staff with
serverbenchmark.alertswhen issues show up - Off by default, enable under
monitor:inconfig.yml
Report additions
- TPS trend row (1m / 5m / 15m)
- Spark section with MSPT percentiles and CPU windows
- Per-world chunk, entity and player breakdown
- GC collector rows with average pause and frequency
- Data source line so you know where the numbers came from
- New issues and tips for recent lag, long GC pauses, small heaps, empty worlds with chunks loaded and main thread bound servers
- JSON exports include worlds, Spark data and GC details
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:ewumwn4m:EjWz3Aqj"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ewumwn4m:EjWz3Aqj"
}

