Spark is a performance profiling plugin and mod for Minecraft servers that diagnoses lag, monitors CPU and memory usage, and generates detailed reports to identify performance bottlenecks. Unlike older tools like timings,
Spark provides method level profiling that shows exactly which lines of code are consuming resources. It works on Spigot, Paper, Fabric, Forge, and other platforms, making it the most versatile profiling tool available for Minecraft.
Spark is a modern profiling tool created by lucko (the developer behind LuckPerms) that tracks everything happening on your server at the code level. It records which methods are being called, how long they take, and how often they run. This data gets compiled into interactive flame graphs and call trees that reveal performance problems with precision timings can't match.
The tool runs as either a plugin (Spigot/Paper/Sponge) or a mod (Fabric/Forge/NeoForge). It's lightweight, actively maintained, and has become the standard profiling tool recommended by Paper developers and support communities.
plugins foldermods folderCheck Spark's documentation for the correct version. Some platforms require specific builds.
No configuration needed. Spark works immediately after installation.
When you open a Spark profile link, you'll see a flame graph. This is an interactive visualization where:
Look for wide bars near the top of the graph. These represent hot spots where your server spends most of its time.
Common patterns:
Entity.tick, MobAI, or PathFinding consuming 30%+ means too many entities. Reduce mob counts or use entity management plugins.ChunkProvider, ChunkGeneration, or ChunkSave taking significant time means chunk operations are slow. Pre-generate your world or optimize chunk settings.RedstoneTick or TileEntity.tick consuming large portions indicates redstone lag or too many hoppers/furnaces.Spark and timings both profile performance, but Spark is generally superior:
| Feature | Spark | Timings |
|---|---|---|
| Detail level | Method level, extremely granular | Category level, less detailed |
| Platform support | Plugin and mod platforms | Spigot/Paper only |
| Performance impact | Minimal, async profiling available | Higher overhead |
| Active development | Yes, regularly updated | Abandoned since 2020 |
| Learning curve | Steeper, requires understanding code | Easier for beginners |
| Report format | Flame graphs, call trees | Category breakdowns with percentages |
| Identifying exact lag source | Yes, down to specific methods | No, only general categories |
Timings tells you "PluginX is using 30% of tick time." Spark tells you "PluginX's database query in the PlayerMoveEvent listener is using 30% of tick time."
For experienced troubleshooting, Spark wins. For quick overviews, timings is simpler.
Health monitoring:
/spark health
Shows current TPS, CPU usage, memory usage, and disk usage. Quick snapshot of server health without generating a full profile.
TPS monitoring:
/spark tps
Displays TPS history for the last 5 seconds, 10 seconds, 1 minute, 5 minutes, and 15 minutes. More detailed than /tps.
Memory usage:
/spark heapsummary
Shows what's consuming heap memory. Useful for tracking down memory leaks or seeing if you need more RAM.
Garbage collection stats:
/spark gc
Displays garbage collection frequency and pause times. Frequent or long GC pauses indicate memory pressure.
Activity monitoring:
/spark activity
Shows what players are doing that might cause lag. Useful for identifying if specific players are triggering lag events.
Finding laggy plugins:
/spark profiler/spark profiler --stopDiagnosing entity lag:
Entity.tick, MobAI, PathFinding methods/spark health to see entity counts per worldMemory leak detection:
/spark profiler --alloc --alloc-live-onlyIdentifying tick spikes:
--thread *
CYBER DEAL
UP TO -40%
Host a Minecraft Server today with the best Cyber deal discount