VoxelBench
The Ultimate Minecraft Server Benchmarking Plugin
⚡ Spigot • Paper • Folia • Purpur • ArcLight • Mohist • Pufferfish | 1.17 – 26.1+ | Java 16+ (25 for MC 26.1.X)
What is VoxelBench?
VoxelBench is a comprehensive benchmarking plugin that measures your Minecraft server's real-world performance through
20+ hardware and gameplay tests. It produces a single
VoxelScore that lets you compare your server against others on a
global leaderboard.
Whether you're a hosting provider evaluating hardware, a server admin optimizing configurations, or a player curious about your server's capabilities — VoxelBench gives you the numbers to back up your decisions.
Main inventory GUI — access everything in one click
Benchmark Tests
The built-in benchmark runs tests in three phases, ordered for JVM warm-up accuracy. Custom profiles can re-order or subset these freely.
Phase 1 — Hardware
- Single-Core CPU — Raw single-thread ops/sec on the main thread (the factor that limits
Minecraft)
- Multi-Core CPU — Parallel computation across all CPU cores
- Memory — RAM bandwidth, latency, sequential & random access
- Disk I/O — Sequential read/write + random 4K operations
- Network — NBT serialization/deserialization throughput
Phase 2 — Gameplay
- Chunk Loading — Parallel chunk generation across multiple dispersed zones
- Mob AI — Villager trading + hostile invasion with pathfinding (250 villagers, 200
hostiles)
- Hopper Transfer — Item pipeline throughput with parallel hopper chains
- TNT Explosions — Chain reactions and block destruction across zones
- Redstone Circuits — 1,600 piston clocks with slime block pushing
- Block Physics — 24,000 falling blocks (sand, gravel, anvils) with water/lava
- Chunk Ticking — Random tick processing (crops, saplings, grass spread)
- Lighting Updates — Light propagation engine across corridors and multi-level structures
- Tile Entities — 40,000 furnaces, hoppers, and spawners ticking simultaneously
- Bone Meal Growth — Tree generation and crop acceleration
Extra Tests (standalone)
- Projectile Storm — Continuous barrage of arrows, snowballs, and eggs (PvP simulation)
- Entity Cramming — Hundreds of entities in confined cells (mob farm simulation)
- Multi-Zone Chunk Load — Chunk load stress across N independent zones
Multi-Core test in action — scoreboard shows live TPS/MSPT
VoxelScore & Global Leaderboard
All test results are combined into a single
VoxelScore computed by the backend. Weighted
scoring:
- 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.
VoxelScore results with rank and breakdown
Benchmark World Selection
Pick exactly which world your benchmarks run in — perfect for hosting providers and admins who want to keep tests isolated from their main map.
- Pin any loaded world — set it once with /bench world set <name>, every future /bench start, /bench stresslimit and /bench test use it.
- Create flat benchmark worlds in one command — auto-prefixed voxelbench_, fixed seed for repeatable terrain across hardware.
- Multiverse-Core integration — created worlds appear in /mv list; deletion cleans up MV's registry. Works on MV 4.x and 5.x; falls back to native Bukkit when MV is not installed.
- Crash-proof player rescue — disconnecting or restarting the server mid-benchmark no longer strands you inside the bench world. Your pre-test position and gamemode are persisted to disk and restored
automatically the next time you log in.
- Safe by default — only voxelbench_* worlds can be deleted (never your survival map), the pin is auto-cleared if its world is deleted, and a delete is refused while a benchmark is
running in that world.
- Worlds survive restarts — voxelbench_* worlds created via /bench world create auto-reload on every server start, even without Multiverse-Core.
- Stale folder protection — recreating a world over an existing one used to produce mixed-terrain chunks; the command now refuses cleanly.
Stress Limit Mode
Go beyond benchmarking — find your server's
breaking point.
- Progressively increases load with exponential tiers (x1.2 multiplier) until TPS drops
below 18
- 6 stress categories: Mobs, Chunks, Hoppers, Explosions, Redstone, Entity Collisions
- Binary refinement after detecting the breaking point (2 bisections for precise results)
- Early skip for ultra-stable tiers (skips after 5s if server is clearly not stressed)
- Per-tier hover tooltips in chat with full metrics (percentiles, StdDev, samples, GC)
- Results sent to backend for scoring and online viewing
Stress Limit in action — tier progression with hover details
Custom Benchmark Profiles
Compose your own benchmark recipes from YAML — no code required. Drop a file in plugins/VoxelBench/custom_benchmarks/, pick which tests run, in what order, with what parameters.
- /bench custom run <name> — execute a profile
- /bench custom list — see what's loaded
- /bench custom info <name> — view steps and parameters
- /bench custom reload — re-scan the folder without restart
Ships with three preset profiles out of the box: standard.yml (mirrors the
built-in benchmark), showcase.yml (every test + every parameter, fully
commented — use as a reference), and example.yml (minimal starter).
Profiles carry their own name, description, author, version and tags.
Sharing a profile = sharing one YAML file. The backend uses a normalized
profile hash to recognize the same recipe across different servers, so
community-shared profiles get their own comparable leaderboards.
Real-Time Monitoring Dashboard
Built-in HTTP/HTTPS web server for live performance monitoring — no external tools required.
Web Dashboard
- Live graphs: TPS, MSPT, memory usage, player count
- Configurable port and bind address
- JSON API at /api/metrics for external tools integration
- Toggle dashboard mode (full HTML) or API-only mode
HTTPS & Security
- Auto-generate self-signed SSL certificates (/bench monitor https generate)
- Custom keystore support
- Password authentication with SHA-256 hashed credentials + session timeout
- API key system for programmatic access (separate keys for pull and push)
- IP whitelist with per-endpoint filtering (dashboard only, API only, or both)
Boss Bar Monitoring
- In-game boss bars showing live metrics above the hotbar
- Available metrics: TPS, MSPT, RAM, CPU, entities, chunks, players
- Toggle all at once with /bench monitor bars all or individual metrics
Push Mode
- Automatically send metrics to Grafana, Prometheus, or any HTTP endpoint
- Configurable interval, API key authentication, SSL support
- Test connection with /bench monitor push test
Web dashboard with live TPS/MSPT graphs
Report System
- Three report types: Standard Benchmark, Unit Test, Stress Limit
- Local JSON storage with configurable retention (max age, max per type, auto-cleanup)
- Side-by-side comparison between any two reports
- Automatic display after test completion
- Online viewing and sharing via voxelbench.com
- Multi-run mode: run 5+ benchmarks with delays for statistical variance reduction
- Account linking with /bench link for permanent report history
Report page on voxelbench.com with full test breakdown
Example :
https://voxelbench.com/en/report/vxb_vz8e3gw2
Plugin Integrations
Auto-detected — zero configuration required. Just install the plugin and VoxelBench hooks in
automatically.
- Multiverse-Core — Auto-detected (4.x and 5.x). Benchmark worlds created via /bench world create are imported into MV automatically; deletion cleans up MV's registry. Falls back to
native Bukkit when MV is not installed.
- PlaceholderAPI — %voxelbench_tps%,
%voxelbench_score%, %voxelbench_mspt%,
%voxelbench_rank%
- Dynmap — Entity density heatmap (color-coded), performance alert markers, active test zone
markers
- Spark — TPS averages (10s, 1m, 5m, 15m), MSPT statistics (mean, median, P95), GC metrics
- DiscordSRV — Benchmark completion notifications, TPS drop alerts to configurable channel
- LiteBans — Ban/mute/kick event detection for backend monitoring
Inventory GUI
Every feature accessible through clean inventory menus — no commands to memorize.
- Main dashboard with all sections
- Test category browsers (Hardware, Gameplay, Single-Core)
- Report list with pagination, detail view, and side-by-side comparison
- Server info panel (CPU, RAM, Disk, Network, Java, plugins list)
- Monitoring control panel (web server, boss bars, push mode, auth, whitelist, HTTPS)
- Settings and configuration
- Score dashboard with rank display
GUI system — tests, reports, monitoring, settings
Commands
Benchmarking
Code (Text):
/bench start — Run a full benchmark (~15 min)
/bench start <runs> [delay] — Multi-run (e.g. /bench start 5 2m)
/bench start force — Bypass rate-limit cooldown
/bench start warmup — Run with JVM warmup (discards first run)
/bench test <id> key=value... — pass parameters via key=value
/bench stresslimit — Find your server's breaking point
/bench stop — Stop a running benchmark/test
/bench tests — alias of /bench test
/bench tests list — dynamic list, grouped by category
Information & Reports
Code (Text):
/bench gui — Open the main inventory GUI
/bench info — View system information (CPU, RAM, Disk, Java)
/bench tps — Live TPS/MSPT comparison display
/bench status — Show current benchmark status
/bench reports — Browse saved reports
/bench version — Show plugin version
Custom Profiles
Code (Text):
/bench custom run <name> [force] — Execute a YAML profile
/bench custom list — Show loaded profiles
/bench custom info <name> — Display profile details
/bench custom reload — Re-scan custom_benchmarks/
Monitoring
Code (Text):
/bench monitor web start|stop — Start/stop the web dashboard
/bench monitor web dashboard on|off — Toggle dashboard vs API-only mode
/bench monitor bars — Toggle boss bar monitoring
/bench monitor bars all — Enable all metric bars (TPS, MSPT, RAM, CPU...)
/bench monitor push start|stop|test — Manage push mode (Grafana, Prometheus)
/bench monitor auth password <pwd> — Set dashboard login password
/bench monitor auth key pull|push — Generate API keys
/bench monitor whitelist add <ip> — Manage IP whitelist
/bench monitor whitelist mode <m> — Set mode: all, dashboard, or api
/bench monitor https generate — Generate self-signed SSL certificate
/bench monitor https on|off — Toggle HTTPS
World Management
Code (Text):
/bench world list — List loaded worlds (with [pinned] / [bench] / [MV] tags)
/bench world show — Show the currently pinned benchmark world
/bench world set <name> — Pin a world for every future benchmark
/bench world unset — Clear the pin (back to default)
/bench world create <name> — Create a flat benchmark world (auto-prefixed)
/bench world delete <name> — Delete a voxelbench_* world (safety guard)
Account & Configuration
Code (Text):
/bench link — Link to your voxelbench.com account
/bench verify — Verify server ownership
/bench lang <en|fr> — Change language
/bench reload — Reload configuration
Permissions
Code (Text):
voxelbench.use — Basic plugin access (GUI, info, TPS)
voxelbench.start — Run full benchmarks
voxelbench.start.force — Bypass rate-limit cooldown
voxelbench.stop — Stop running benchmarks
voxelbench.test — Run all individual tests
voxelbench.test.hardware — Hardware tests (CPU, RAM, disk, network)
voxelbench.test.gameplay — Gameplay tests (chunks, mobs, redstone...)
voxelbench.test.singlecore — Single-core gameplay tests
voxelbench.stresslimit — Access stress limit mode
voxelbench.monitor — Use monitoring system
voxelbench.monitor.bars — Manage boss bar monitoring
voxelbench.monitor.web — Manage web server
voxelbench.world — Manage benchmark worlds (list/set/create/delete)
voxelbench.custom — Run custom benchmark profiles
voxelbench.custom.reload — Reload profiles from disk
voxelbench.reports — Browse and manage reports
voxelbench.gui — Open the GUI
voxelbench.info — View system information
voxelbench.verify — Verify server ownership
voxelbench.reload — Reload configuration
voxelbench.admin — Full access to all features
voxelbench.dynmap — Dynmap integration layers
Privacy & Security
- Three anonymization levels:
- NONE — Full data (not recommended for public servers)
- PARTIAL — IP and MAC hashed, CPU and disk models visible (default)
- FULL — Maximum privacy, generic hardware types, hidden plugin list
- All reports signed with HMAC-SHA256 for tamper-proof results
- Backend communication via HTTPS exclusively
- Automatic update checker (opt-out via config)
- Reports from extension-API tests carry an extra "provider" field so the backend can distinguish first-party vs third-party tests in leaderboards. Extension test results may be excluded from public rankings depending on backend policy.
Coming soon — Extension API
A new public API will let third-party plugin developers register their own benchmark tests against VoxelBench: typed parameters, declared output metrics, automatic Bukkit event hooks, JUnit test-doubles.
Installation
- Download VoxelBench.jar and place it in your server's plugins/ folder.
- Start (or restart) your server. VoxelBench generates its default configuration.
- Use /bench gui to open the main menu, or /bench start to launch a benchmark.
- (Optional) Link your account with /bench link for online leaderboards.
- (Optional) Start the monitoring dashboard with /bench monitor web start.
- (Optional) Customize your benchmarks — drop a YAML file in plugins/VoxelBench/custom_benchmarks/ and use /bench custom run <name>. The bundled showcase.yml shows every test + every parameter.
Requirements: Java 16+ (Java 21 recommended) • Minecraft 1.17+ • Spigot, Paper, Folia, Arclight, Purpur, or Pufferfish
Supported Languages
- English (en_US) — Complete
- French (fr_FR) — Complete
- Auto-detects player language from Minecraft client
- Server-wide override option in config
Links
Made by Wasab_II