VoxelBench - Server Benchmark & Performance Testing
2.6.4Measure and compare your server's real performance with 20+ standardized tests, stress limit mode, a
- Tested MC versions
- 1.17, 1.18, 1.19, 1.20, 1.21, 26.1

VoxelBench
Benchmark, profile and monitor your Minecraft server — in one plugin
⚡ Spigot • Paper • Folia • Purpur • Pufferfish • Arclight • Mohist | 1.17 – 26.1+ | Java 16+ (Java 25 for MC 26.1+)
What is VoxelBench?
VoxelBench measures what your Minecraft server can really do, and shows you what slows it down.
It runs 20+ hardware and gameplay tests and combines them into a single VoxelScore you can compare on a global leaderboard. When something lags, its built-in profiler names the plugin and the method, its memory inspection names the plugin holding the memory, and live monitoring on voxelbench.com keeps an eye on every second of your server — every region on Folia.
Whether you are a hosting provider evaluating hardware, an admin chasing lag, or a player curious about your server — VoxelBench gives you numbers you can trust.
- Benchmark — 20+ tests, one VoxelScore, a global leaderboard, a stress mode that finds your breaking point
- Profile — see which plugin keeps your tick threads busy, share the result by link like spark
- Inspect memory — find which plugin fills the heap, analyse a heap dump without risking the server
- Monitor — a live dashboard on voxelbench.com, an embedded web dashboard, boss bars, alerts
- Safe by design — tests stay out of your world, nothing leaves your server unless you ask, Folia-ready
Main menu — benchmark, profiler, memory, monitoring and reports in one click
New in 2.0
- Built-in profiler — which plugins and methods keep your tick threads busy, with a ring buffer that catches lag spikes by itself
- Memory inspection — heap summary per plugin, safe heap dumps, and an analysis that names the plugin holding the memory
- Share by public link — profiles and memory reports, cleaned of addresses, paths and names, valid 7 days, no account needed
- Live monitoring rebuilt — turned on from the game, real time even when the server lags, every Folia region measured on its own
- Metrics without spark — tick times, GC and CPU measured from startup, with new PlaceholderAPI placeholders
- Audited measurements — memory, disk and lag metrics fixed to measure the hardware, the same standard load on every server
- Forms and dialogs — commands with options open a form (native dialogs on Paper 1.21.6+), Yes/No confirmations, no long commands to type
Benchmark Tests
/bench start runs the tests in three phases, ordered for JVM warm-up accuracy. Every run uses the same load on every server — your config.yml cannot reshape a standard score — and by default the gameplay tests run in a temporary benchmark world (or the one you pin), not in your survival map.
Phase 1 — Hardware (during JVM warm-up)
- Disk I/O — sequential read/write and random 4K operations with direct I/O, bypassing the OS cache
- Network — NBT serialization/deserialization throughput
- Memory — bandwidth and true latency (a chain of dependent loads, so cache and RAM are told apart)
Phase 2 — Gameplay
- Chunk Loading — 2,000 chunks per zone, generated across 8 dispersed zones
- Mob AI — 2,400 villagers trading, then 1,200 hostiles invading with pathfinding
- Hopper Transfer — parallel item pipelines across zones
- TNT Explosions — 150 TNT per zone, chain reactions and block destruction
- Redstone Circuits — 1,600 piston clocks with slime block pushing
- Block Physics — 24,000 falling blocks (sand, gravel, anvils) with water and lava
- Chunk Ticking — random ticks: crops, saplings, grass spread
- Lighting Updates — light propagation across corridors and multi-level structures
- Tile Entities — 5,000 furnaces, hoppers and spawners ticking at once
- Bone Meal Growth — tree generation and crop acceleration
- World Save — how fast the server writes its worlds
Phase 3 — CPU (after full warm-up)
- Single-Core — raw single-thread performance, the factor that limits Minecraft
- Multi-Core — parallel computation across all cores
Extra tests (standalone)
- Projectile Storm — a continuous barrage of arrows, snowballs and eggs (PvP simulation)
- Entity Cramming — hundreds of entities in confined cells (mob farm simulation)
- Combat Simulation, Liquid Physics, Villagers, Mob Spawn, Collisions and more — every test can be run on its own with
/bench test <id>and custom parameters
Multi-Core test in action — the scoreboard shows live TPS/MSPT
VoxelScore & Global Leaderboard
All results are combined into a single VoxelScore, computed by voxelbench.com:
- Single-Core CPU (45%) — the most important factor for Minecraft
- Gameplay (35%) — real-world server workloads
- Hardware (20%) — raw system capabilities
Compare your server against others on voxelbench.com with detailed breakdowns, history and rankings. Lag under load is measured, not filtered away, and reports record the server difficulty, so two servers are only ranked when they measured the same thing.
VoxelScore results with rank and breakdown
Profiler — see what lags your server
/bench profile samples the tick threads — the main thread, or every region thread on Folia — with Java Flight Recorder, built into Java: nothing to download, nothing to install.
- Shows, as percentages, which plugins, which parts of the server and which methods keep your tick threads busy
- Libraries a plugin ships and Paper plugins count for the plugin that brings them
- Ring buffer —
/bench profile ring onkeeps the last minutes; when the server lags, VoxelBench saves and analyses that window by itself, so you read the profile of a spike that already happened - Share like spark —
/bench profile share <id>publishes a cleaned copy behind a public link for 7 days, no account needed;/bench profile upload <id>keeps it in your voxelbench.com account - A Profiler button in the menu, a Profiles archive in the Reports screen, and a read-only view on the web dashboard
- Never runs during a benchmark, so scores stay clean
Memory Inspection — which plugin holds the memory
/bench memory does what spark's heap summary and heap dump do — and then reads the dump for you.
- Heap summary — every class on the heap, attributed to each plugin, the server or Java, in about a second
- Heap dump — a full
.hprof, after a preview that shows the freeze, the file size and the free disk; refused when the freeze would trip the server watchdog - Dump analysis — follows every reference to show the memory each plugin retains, the leak suspects and the chain of fields that keeps them alive. A plugin caching 500 MB shows 0 % in a summary — the analysis finds it
- Never at your server's expense — the analysis runs in a separate low-priority process; free memory, container limits, CPU quotas and your hosting plan's disk limit are checked first. Big heaps keep their analysis graph on disk
- One question, one plugin —
/bench memory analyze last retained <plugin>tells you what a single plugin retains - Share a report — summaries and analyses can be shared by link or uploaded to your account. A heap dump never leaves your server: it holds everything in memory, so VoxelBench has no way to send one
Live Monitoring
On voxelbench.com
- Turn it on from the game:
/bench monitor remote onshows what will be sent and tells you what is left to do - Each snapshot describes its whole interval — TPS, average / 95th-percentile / worst tick time, ticks over budget — in real time, even when the server lags
- Folia: every region measured on its own, worst first, with its location, chunks, players and entities
- A frozen server shows as frozen, an empty paused server shows as paused, memory figures explain a crash, alerts by e-mail and Discord on the site
Embedded web dashboard
- Live graphs: TPS, MSPT, memory, players; JSON API at
/api/metricswith 10 s / 1 min / 5 min / 15 min windows - Private by default — listens on the server machine only; any other address requires a password, set from the console and stored with PBKDF2
- HTTPS with auto-generated certificates, API keys, IP whitelist, login rate limiting
- Push mode — send metrics to Grafana, Prometheus or any HTTP endpoint
In game
- Boss bars — TPS, MSPT, RAM, CPU, entities, chunks, players above the hotbar
- Metrics without spark — every tick measured from startup, garbage collections one by one; new placeholders
%voxelbench_mspt_p95%,%voxelbench_tps_1m%and more
Web dashboard with live TPS/MSPT graphs
Stress Limit Mode
Go beyond benchmarking — find your server's breaking point.
- Raises the load in exponential tiers (×1.2) until TPS drops below 18, then refines the breaking point by bisection
- 7 stress types: mobs, chunk generation, hoppers, TNT, redstone, entities, villagers
- Starts near your last known breaking point, and skips tiers the server clearly holds
- Per-tier hover tooltips in chat with full metrics (percentiles, spread, samples, GC)
-
/bench tier <type>runs a single type — fast when you tune one workload - Custom stress profiles in YAML — three bundled examples
- Results sent to voxelbench.com for scoring and online viewing
Stress Limit in action — tier progression with hover details
Benchmark Worlds — your map stays untouched
- Tests stay out of your world —
/bench testalways runs a test that places blocks, spawns entities or generates chunks in the world you pin, or in a temporary flat world deleted afterwards;/bench startdoes the same by default - Pin any loaded world —
/bench world set <name>, and every benchmark, test and stress run uses it - Flat benchmark worlds in one command — auto-prefixed
voxelbench_, fixed seed for repeatable terrain, reloaded on every start - You are brought back where you were — position and game mode restored after a test, a stop, a disconnect or a crash
- Multiverse-Core integration (4.x and 5.x), native Bukkit otherwise
- Safe by default — only
voxelbench_*worlds can be deleted, never while a test runs in them
Custom Benchmark Profiles
Compose your own benchmark recipes in YAML — no code required. Drop a file in plugins/VoxelBench/custom_benchmarks/, pick which tests run, in what order, with what parameters.
- Bundled profiles:
standard(mirrors the built-in benchmark),showcase(every test and parameter, fully commented),example,low-memory,free-host,hopper-heavy— plus three stress profiles - New bundled profiles reach existing installs; the ones you edit are never overwritten
- Profiles carry their own name, description, author, version and tags — sharing a profile is sharing one file, and the same recipe gets its own comparable leaderboard
Report System
- Three report types: Standard Benchmark, Unit Test, Stress Limit — saved locally after every run, with their submission status
- Side-by-side comparison between any two reports, local retention and cleanup
- Multi-run mode —
/bench start 5runs five benchmarks back to back to reduce variance (warmupadds a discarded first run) - Online viewing and sharing on voxelbench.com; link your server with
/bench linkfor a permanent history
Report page on voxelbench.com with full test breakdown
Example: https://voxelbench.com/en/report/vxb_vz8e3gw2
Plugin Integrations
Auto-detected — zero configuration. Install the plugin and VoxelBench hooks in.
- PlaceholderAPI — TPS, MSPT (with p50 / p95 / p99 / peak over 10 s to 15 min), RAM, CPU, entities, chunks, players, score and grade
- Multiverse-Core — benchmark worlds imported and cleaned up automatically
- Dynmap — entity density heatmap, performance alert markers, active test zones
- DiscordSRV — benchmark completion and TPS drop alerts to a channel
- LiteBans — real sanctions only (bans, mutes, kicks LiteBans actually records) for monitoring
- Spark — optional: VoxelBench measures ticks and GC by itself, and reads spark when it is there
Menus, Forms and Dialogs
Every feature is reachable from clean inventory menus — no commands to memorize.
- Main menu, test browsers, reports with pagination and comparison, server info (CPU, RAM, disk, network, Java, plugins), monitoring control, settings
- Profiler and Memory menus, with Profiles and Memory archives in the Reports screen
- Forms —
/bench profileor/bench memory dumptyped alone open a form with every option, and remember your last choices - Native dialogs on Paper 1.21.6+, inventory screens elsewhere; Yes/No confirmations instead of retyping long commands
GUI system — tests, reports, monitoring, profiler, memory, settings
Commands
Benchmarking
/bench start [force] [warmup] [runs] — Full benchmark (e.g. /bench start 5)
/bench test — List every test by category
/bench test <id> [parameters] — Run one test with custom parameters
/bench stresslimit — Find your server's breaking point
/bench tier <type> — Stress ladder on a single type
/bench stop — Stop the running benchmark, test or stress run
/bench custom run|list|info|reload — Custom YAML profiles
/bench zones [tp|clean] — Test zones of the last runProfiler and memory
/bench profile [seconds] [share|upload] — Timed capture (a form opens when typed alone)
/bench profile ring on|off|status|dump — Continuous ring buffer
/bench profile list|show|delete — Saved profiles
/bench profile share|upload|unshare <id> — Public link or your account
/bench memory summary [live|all] — Heap summary per plugin
/bench memory dump [live|all] [gzip] — Full heap dump (preview, then confirm)
/bench memory analyze [last] [quick|full|auto|retained <plugin>]
/bench memory share|upload|unshare <id> — Share or upload a report (never a dump)
/bench confirm — Confirm your last previewMonitoring
/bench monitor remote on|off|status — Live dashboard on voxelbench.com
/bench monitor web start|stop|status — Embedded web dashboard
/bench monitor web dashboard on|off — HTML dashboard or API-only
/bench monitor bars [all|<metric>] — Boss bars
/bench monitor push start|stop|test — Push mode (Grafana, Prometheus...)
/bench monitor auth password <pwd> — Dashboard password (console only)
/bench monitor auth key pull|push — API keys
/bench monitor whitelist add|remove|mode
/bench monitor https generate|on|offSimilar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta