Compatibility
Server software
Tested at every release on the matrix below. Soft-skipped entries are
detected by the plugin and announced in the startup log; tests that
can't run on the runtime are reported as SKIPPED rather than counted
as failures.
| Software | Versions | Status |
|---|---|---|
| Paper | 1.17 → 26.1 | First-class. CI smoketests every minor release. |
| Spigot | 1.17 → 26.1 | First-class. API surface matches Paper for the parts VoxelBench uses. |
| Folia | 1.20+ | First-class. The scheduler abstraction routes all tasks through the Folia regional scheduler. |
| Purpur | 1.20+ | Inherits Paper compat. Purpur-specific gamerules are bypassed. |
| Pufferfish | 1.20+ | Inherits Paper compat. |
| Mohist | 1.20.1+ | Hybrid Forge+Bukkit. Flat-world generation goes through a custom Bukkit ChunkGenerator (see Hybrid Runtimes). |
| Arclight | 1.20.1, 1.20.4 | Hybrid Forge+Bukkit. Same flat-world path as Mohist. |
| Banner, NeoTenet, Magma, CatServer, Cardboard | Various | Detected as hybrid; same compatibility envelope as Mohist/Arclight. Some entries are soft-skipped in CI on upstream brokenness. |
VoxelBench is built and tested against the Spigot API. All features work on all supported server types. Paper/Folia-specific optimizations are used when detected.
Folia Support
VoxelBench includes a custom scheduler abstraction that automatically detects Folia and uses its region-threaded schedulers. No additional configuration is needed.
Minecraft versions
| Range | Java required |
|---|---|
| 1.17 → 1.20.4 | Java 16 minimum (Java 17 recommended) |
| 1.20.5 → 1.21.x | Java 21 |
| 26.1.x | Java 25 LTS |
The plugin compiles against the 1.17.1 Spigot API and uses runtime
adapters (MaterialCompat, EntityTypeCompat, EnchantmentCompat,
PotionEffectCompat, GameRule.getByName(...)) so the same JAR runs on
every supported version without recompilation. See
Hybrid Runtimes if you run Mohist/Arclight.
We recommend Java 21 for the best performance. Modern Java versions include significant garbage collection and JIT improvements that directly impact benchmark results.
Optional Dependencies
These plugins are optional. VoxelBench detects and integrates with them automatically when present.
| Plugin | Version | Purpose |
|---|---|---|
| PlaceholderAPI | 2.10+ | Custom placeholders for scoreboards, tab lists |
| Dynmap | 3.0+ | Map layers (entity heatmap, performance alerts) |
| Spark | 1.10+ | Advanced CPU profiling metrics |
| DiscordSRV | 1.25+ | Discord notifications for benchmark results |
No additional configuration is needed for these integrations. They are enabled by default when detected. You can disable specific integrations 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 accessible from the internet for the SLP ping check.
Shared Hosting
Some shared hosting providers restrict:
- Outgoing HTTPS connections: Required for submitting results to voxelbench.com
- Port binding: Required for the monitoring web dashboard
- Disk I/O: May affect disk test accuracy
Check with your hosting provider if you experience issues.
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.