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

ServerSupportContinuous integration
SpigotSupportedCompiled against every Spigot API version listed below
PaperSupportedServer boots with VoxelBench on 1.17.1, 1.21, 26.1.2 and 26.2
Purpur, PufferfishSupported as Paper forksNot tested
FoliaSupported, with region-aware schedulingBoots 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 forksRun on the Folia code pathNot tested (VoxelBench 1.8.0 was validated manually on Canvas 26.1.2)
Hybrid serversDetected, with limitationsBoot 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:

VersionCompiles against Spigot APIPaper server bootsFolia server boots and runs tests
1.17.1YesYes-
1.18.2Yes--
1.19.4Yes--
1.20.4Yes--
1.21YesYes-
26.1.2YesYesYes
26.2YesYesYes

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 VersionJava
1.17.x16 or 17 (Paper 1.17 does not start on newer Java; CI uses 17)
1.18 - 1.20.417 or newer
1.20.5 - 1.21.x21 or newer
26.x25 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.

PluginPurpose
PlaceholderAPIPlaceholders for scoreboards, tab lists, holograms
DynmapMap layers: entity density heatmap and performance alert markers
SparkSpark's TPS, MSPT, CPU and GC metrics exposed as placeholders
DiscordSRVDiscord integration settings (see the note in Integrations)
LiteBansModeration actions forwarded as events to VoxelBench remote monitoring
Multiverse-CoreWorlds 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 ping diagnoses 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.