Compatibility
The server software, Minecraft versions and Java versions VoxelBench runs on, what continuous integration checks for each of them, the optional plugins it integrates with, and the known limitations.
Server Software
| Server | Support | Continuous integration |
|---|---|---|
| Spigot | Supported | Compiled against every Spigot API version listed below |
| Paper | Supported | Server boots with VoxelBench on 1.17.1, 1.21, 26.1.2 and 26.2 |
| Purpur, Pufferfish | Supported as Paper forks | Not tested |
| Folia | Supported, with region-aware scheduling | Boots on 26.1.2 and 26.2, then runs chunkLoading, mobSpawn, redstone and blockPhysics; any region-thread violation fails the build |
| Canvas and other Folia forks | Run on the Folia code path | Not tested (VoxelBench 1.8.0 was validated manually on Canvas 26.1.2) |
| Hybrid servers | Detected, with limitations | Boot test only, non-blocking (see below) |
VoxelBench is compiled against the Spigot API, so every feature works on Spigot. Some features use Paper APIs when they are available:
- Native dialogs (Paper 1.21.6+) for text and parameter input in the GUI. Other servers fall back to an anvil screen or a chat prompt.
- Bundled Spark (Paper 1.21+) is detected for the Spark integration.
The server type is detected at startup from the classes the server provides; the version string is only a last resort. It is logged at startup (Runtime: ...) and included in benchmark reports.
Folia Support
VoxelBench declares folia-supported: true and routes all its scheduling through an abstraction that uses Folia's region schedulers when Folia is detected. Tests that work in several zones run each zone on its own region. No additional configuration is needed.
On Folia, the main TPS and MSPT of a test are read on the regions where it works. lightingUpdate, tickingTileEntity and playerWorldLoad build away from the run's shared zones; up to VoxelBench 2.0.2, their main TPS and MSPT and their region figures were read elsewhere: on the shared zones for the first two, around the world centre for playerWorldLoad. Paper and Spigot are not concerned.
Hybrid Servers
Hybrid servers run Bukkit plugins on top of a mod loader. VoxelBench recognises Mohist, Arclight, Banner, NeoTenet, Magma, CatServer and Cardboard before checking for Paper or Spigot, so they are not misreported as Paper or Spigot. Reports then include the mod loader, the mod count and, unless anonymization is FULL, the mod list.
On a hybrid server, most tests work. VoxelBench never assumes the server is Paper: each Paper feature is used only if the server provides it, otherwise VoxelBench does what it does on Spigot. Modded blocks may interact unpredictably with the tests that place blocks, and every world VoxelBench creates there is generated by VoxelBench itself so that it stays flat. A warning is logged at startup.
CI boots Mohist 1.20.1 (downloaded from a community mirror, as MohistMC's own downloads are broken) and Arclight 1.20.1 and 1.20.4 with VoxelBench installed. It fails on a linkage error in VoxelBench or an error while enabling it; whether the startup log names the expected hybrid is only reported as a warning, and no test is run. These jobs do not block a release: upstream hybrid builds are frequently broken or unavailable. See Hybrid Runtimes for what changes on a hybrid and how to set one up.
Minecraft Versions
VoxelBench requires Minecraft 1.17 or newer, including the 26.x releases. The plugin handles API differences between versions automatically (material names, entity types, enchantments, potion effects). Minecraft 1.16 and older are not supported.
What continuous integration checks on each run:
| Version | Compiles against Spigot API | Paper server boots | Folia server boots and runs tests |
|---|---|---|---|
| 1.17.1 | Yes | Yes | - |
| 1.18.2 | Yes | - | - |
| 1.19.4 | Yes | - | - |
| 1.20.4 | Yes | - | - |
| 1.21 | Yes | Yes | - |
| 26.1.2 | Yes | Yes | Yes |
| 26.2 | Yes | Yes | Yes |
Versions in between are not tested individually.
Java Requirements
The VoxelBench JAR is built for Java 16, so it runs on any Java version your server accepts. The Java version you need is set by Minecraft and your server software:
| Minecraft Version | Java |
|---|---|
| 1.17.x | 16 or 17 (Paper 1.17 does not start on newer Java; CI uses 17) |
| 1.18 - 1.20.4 | 17 or newer |
| 1.20.5 - 1.21.x | 21 or newer |
| 26.x | 25 or newer |
Newer Java versions include garbage collection and JIT improvements that can directly affect benchmark results, so compare results between servers running the same Java version.
Optional Dependencies
These plugins are optional (softdepend). VoxelBench detects them at startup and integrates with them when present. See Integrations.
| Plugin | Purpose |
|---|---|
| PlaceholderAPI | Placeholders for scoreboards, tab lists, holograms |
| Dynmap | Map layers: entity density heatmap and performance alert markers |
| Spark | Spark's TPS, MSPT, CPU and GC metrics exposed as placeholders |
| DiscordSRV | Discord integration settings (see the note in Integrations) |
| LiteBans | Moderation actions forwarded as events to VoxelBench remote monitoring |
| Multiverse-Core | Worlds created by VoxelBench are imported into Multiverse |
The Dynmap, Spark and DiscordSRV integrations can be turned off in config.yml:
integrations:
dynmap:
enabled: false
spark:
enabled: false
discordsrv:
enabled: false
Known Limitations
Proxies (BungeeCord / Velocity)
VoxelBench runs on individual backend servers, not on the proxy itself. Install it on each backend server you want to benchmark.
Server verification (/bench verify) requires the server's game port to be directly reachable from the internet, because voxelbench.com checks the server list ping response.
Shared and Free Hosting
Some hosting providers restrict:
- Outgoing HTTPS connections: required to submit results to voxelbench.com (
/bench pingdiagnoses connection problems) - Port binding: required for the monitoring web dashboard
- Disk I/O and CPU: may make results unrepresentative
VoxelBench detects common free hosting environments at startup, warns in the pre-flight checks before a benchmark, and flags the environment in reports. The bundled free-host custom profiles are lighter alternatives. See Configuration.
Virtual Servers (VPS/Cloud)
Virtualized environments may show inconsistent benchmark results due to:
- Shared CPU resources with other tenants
- Virtualized disk I/O
- Variable network performance
For the most accurate results, use dedicated hardware. VPS results are still useful for comparing configurations on the same provider.