Reports
VoxelBench saves results as local reports that you can review, compare and manage in-game.
Report Types
| Type | Folder | Created By |
|---|---|---|
| Standard Benchmark | benchmark/ | /bench start and /bench custom run |
| Unit Test | unit_test/ | /bench test <id> |
| Stress Limit | stresslimit/ | /bench stresslimit, /bench tier and custom stress profiles |
Every run writes its local report when it ends, before anything is sent: a failed submission, a profile with
submit: falseand a custom profile that is never scored all leave a file. A benchmark report carries a submission status โpending,submitted,failedornot_submittedโ and the same file is rewritten with the VoxelScore when voxelbench.com answers; stress limit and unit test reports have no such status. What is saved can still be limited by type (see Storage by Type).
Viewing Reports
In-Game GUI
/bench reports
Opens the list of all reports, with one filter button per report type (and All) and a cleanup button that applies the retention rules at once. /bench reports gui <type> opens it already filtered. Lists are paginated and sorted by date, newest first. Click a report to see its details, such as:
- Status, date, player and duration
- Server information at the time of the run
- Test parameters and metrics
- For stress limit reports, the load reached for each type and whether the server broke
- For a benchmark that has no score yet โ submission pending, failed, or never sent โ No score and the submission status instead of zeros, plus the submission error when there is one
- A link to the online report when there is one, and a delete button
The Reports menu of /bench gui has one entry per report type, a Compare entry (see Comparing Reports) and a cleanup button that asks for a confirmation. It also has a Profiles entry (experimental, needs voxelbench.profile): the profiles saved by the profiler, with their own list and sheet; and a Memory entry (experimental, needs voxelbench.memory): the heap summaries and dump analyses saved by memory inspection โ never the heap dumps. The Cleanup buttons delete old reports only, never profiles, heap summaries or analyses.
The Scores Dashboard and Last Results entries of /bench gui show the last benchmark's score as voxelbench.com returned it: the plugin computes no score of its own. Under Single-Core, they list the tests the site counts in that sub-score, Redstone and Block Physics; the network and singleCoreBenchmark tiles say Not counted in the site's score. See VoxelScore.
Chat Commands
/bench reports list [type] [page]
/bench reports view <id>
/bench reports delete <id>
/bench reports cleanup
type is unit_test, benchmark, stresslimit or all. <id> is the short ID shown by list.
Results are also printed in chat when a test or benchmark ends.
Comparing Reports
The Compare entry of the reports menu (/bench gui, then Reports) shows your two most recent reports side by side. A difference is computed only when the two can actually be compared:
- the same report type (a TPS average and a VoxelScore are not the same scale),
- for two unit tests, the same test,
- and a real score on both sides.
Otherwise the screen says the two reports cannot be compared. A benchmark that has no backend score shows No score and its submission status in place of a VoxelScore.
This is useful for:
- Measuring the impact of server configuration changes
- Tracking performance over time
- Comparing before and after hardware upgrades
For a detailed comparison, open each report or compare them on voxelbench.com.
Storage
Reports are saved as JSON files, in one sub-folder per type of plugins/VoxelBench/reports/. Each file name is the date followed by the report's short ID:
plugins/VoxelBench/reports/
benchmark/
2026-09-12_18-30-45_1a2b3c4d.json
unit_test/
2026-09-12_14-00-00_5e6f7a8b.json
stresslimit/
2026-09-13_10-30-00_9c0d1e2f.json
profiles/ โ profiler output, see Profiling
20260924-153012-manual.json
memory/ โ heap summaries and dump analyses, see Memory Inspection
20260924-210908-live.json
reports:
enabled: true # false disables saving and /bench reports
folder: "reports" # relative to plugins/VoxelBench/
Storage by Type
Control which report types are saved:
reports:
storage:
unit-tests: true # /bench test
benchmarks: true # /bench start
stresslimit: true # /bench stresslimit, /bench tier, stress profiles
Retention
Automatic cleanup prevents reports from accumulating indefinitely:
reports:
retention:
max-age-days: 90 # Delete reports older than 90 days (-1 = unlimited)
max-per-type: 100 # Max reports per type (-1 = unlimited)
max-total: 500 # Max total reports (-1 = unlimited)
cleanup-on-startup: true # Run cleanup when server starts
A value of -1 (or 0) disables that rule. /bench reports cleanup applies the rules on demand. These rules and the cleanup only apply to reports: profiles in reports/profiles/ keep their own retention (profiling.storage, see Profiling) and heap summaries and dump analyses in reports/memory/ theirs (memory-inspection.summary and memory-inspection.analysis, see Memory Inspection); the reports cleanup never deletes them.
Backend Sync
Full benchmarks (/bench start) and stress limit runs are always submitted to voxelbench.com, whether or not your server is linked. Custom profiles are only sent with submit: true in the profile; with the default submit: false the run stays local, and a benchmark profile's report is marked not_submitted. Individual test results are sent only when unit-test sync is enabled and your server is linked (see Account Linking):
reports:
backend:
unit-tests: true # default: false
When enabled, results from /bench test and /bench tier are submitted to the backend for tracking in your account dashboard.
Online Reports
Visit voxelbench.com to:
- View your full report history
- Compare your server with others
- Share reports with your community
- Track performance trends over time