spark
Performance profiler and monitoring tool. Identify TPS drops, lag spikes, memory issues and plugin bottlenecks with detailed reports.
What is spark?
spark (by Luck) is the standard performance profiler and monitoring tool for Minecraft servers. When TPS drops, ticks lag or memory climbs, spark tells you why: its CPU profiler samples what the server is actually spending time on and produces a shareable web report pinpointing the responsible plugins or code paths, while its memory and tick monitors expose GC behaviour and slow ticks. It is the tool server admins and plugin developers reach for to diagnose lag instead of guessing. It runs on Spigot/Paper and Velocity, adds negligible overhead, and its web viewer makes complex profiles readable.
Who it's for: Any admin diagnosing lag, high CPU or memory problems, and developers profiling plugin performance. Effectively essential troubleshooting infrastructure on a server experiencing performance issues. It is built and maintained by Luck and sits in the admin category.
Key features of spark
- TPS monitoring
- CPU profiling
- Memory inspection
- Tick monitoring
- Async profiling
- Web-based viewer
- Health reports
- GC monitoring
How to install spark
spark runs on Bukkit, Spigot, Paper or Velocity servers. Maintained by Luck for current Spigot/Paper versions and Velocity, with broad compatibility.
- 1Stop your server, or have it ready to restart. Always back up your world and plugins folder before adding a new plugin.
- 2Download spark.jar (a build matching your server version) and place it in your server's /plugins folder.
- 3spark has no required dependencies, so it runs on its own once the jar is in place.
- 4Start the server fully. spark generates its configuration files on first launch — stop the server, edit them to taste, then start again.
- 5Confirm it loaded by checking the console for spark on startup, or by running one of its commands in-game.
Note: Drop spark into /plugins and restart — no configuration is needed for normal use. Generating and sharing the web profiler report requires outbound internet to upload the viewer link (the profiling itself runs locally). Run a profiler during the period you experience lag, then open the link it produces to read the results.
spark commands and permissions
Main commands
/spark profiler- Starts and stops a CPU profiler, then outputs a web link to the analysed report.
/spark tps- Shows current TPS and tick timing at a glance.
/spark health- Reports overall server health including CPU, memory and TPS.
/spark tickmonitor- Watches for and reports individual slow ticks as they happen.
Permission nodes
spark.profiler- Allows running the CPU profiler; staff/admin only.
spark.tps- Allows checking TPS.
spark.health- Allows viewing the health report.
spark FAQ
How do I find out what is lagging my server?
Run /spark profiler --timeout <seconds> (or start and stop it manually) during the lag, and spark produces a web link to a report showing exactly which plugins and code paths consumed the most CPU. That report turns vague lag into a concrete culprit you can act on.
Does spark itself cause lag?
No meaningfully — spark is a sampling profiler designed to add negligible overhead, which is why it is safe to run on production servers to catch real lag. The whole point is to diagnose performance without materially affecting it.
What is the difference between the profiler and the tick monitor?
The profiler samples CPU usage over a period to show what is slow overall, ideal for sustained lag. The tick monitor watches for individual ticks that take too long and reports them as they occur, ideal for catching intermittent spikes. Use the profiler for ongoing lag, the tick monitor for occasional stutters.
Can spark show memory problems?
Yes. spark includes memory inspection and reports on garbage collection, so you can see heap usage and GC pauses that may be causing pauses or out-of-memory issues. Combined with the health report, it gives a full picture of CPU, memory and TPS.
Do I need internet to use spark?
The profiling runs locally, but sharing the results uses a web viewer that spark uploads the report to, which needs outbound internet for the link. The at-a-glance commands like /spark tps and /spark health work entirely locally with no internet required.
Features
- TPS monitoring
- CPU profiling
- Memory inspection
- Tick monitoring
- Async profiling
- Web-based viewer
- Health reports
- GC monitoring
Commands
/spark profiler/spark tps/spark health/spark tickmonitor/spark gcPermissions
spark.profilerspark.tpsspark.healthspark.tickmonitor