Install the Spark JAR that matches your Minecraft server version and loader, put it in the loader’s plugins or mods directory, restart, and verify with /spark version. During normal play, run /spark profiler start, collect a few minutes of data with players online, then run /spark profiler stop. Spark uploads the completed profile and prints a viewer link to an interactive flamegraph, which shows where server tick time is being spent.
Prefer not to run the server on your own PC? Godlike.Host offers hosted Minecraft Java servers with free DDoS protection and up to three free backups a day.
What Spark profiles and why it helps with lag
Spark is a Minecraft server profiler. It samples the work being performed by server threads and turns that sample into a report you can inspect in a browser. The report is useful when a server feels slow, ticks take too long, or lag appears only during particular activities such as exploration, redstone, mob farms, chunk generation, or scheduled tasks.
As an Amazon Associate I earn from qualifying purchases.
A profile is not a permanent performance score and it does not automatically identify one guilty plugin. It is a time window showing which call paths consumed sampled CPU time. You get the most useful evidence when the profile includes the actual problem: have players online, reproduce the lag, and keep the collection period long enough to include ordinary activity rather than an empty server.
Spark also exposes live health and memory commands. Those are useful for checking whether a problem is low TPS, high ping, garbage collection, a memory allocation pattern, or a specific tick spike before you create a longer profile.
#1 Best Overall
- [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
- [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
- [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
- [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
- [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
Before installing: identify your server loader and version
Spark is distributed as a JAR for different Minecraft server environments. Download the file that matches both your Minecraft version and the loader running the server. A plugin JAR is installed differently from a mod JAR, so do not choose only by the Minecraft version.
- Paper or Spigot: install Spark as a server plugin.
- Fabric, Forge, or NeoForge: install Spark as a server mod.
- BungeeCord: use the
/sparkbcommand prefix. - Velocity: use the
/sparkvcommand prefix. - Forge or Fabric client: client commands use the
/sparkcprefix; this is separate from profiling a dedicated server.
Use the official download page at spark.lucko.me/download. A SpigotMC resource listing is also available at spigotmc.org/resources/spark.57242, but the important compatibility decision remains the loader and Minecraft version shown for your server.
Some recent Paper distributions may already include Spark, according to a third-party hosting summary, but that is not established here for every Paper build. Check the startup console and your existing plugin list before adding another JAR. If the console reports Spark loading successfully, do not install a second copy.
Install Spark step by step
Paper and Spigot
- Stop the server cleanly. Do not replace a plugin JAR while the server is still writing files.
- Download the Spark build matching the server’s Minecraft version from spark.lucko.me/download.
- Upload or copy the JAR into the server’s
pluginsfolder. Keep the downloaded file as a JAR; do not unzip it. - Start or restart the server and watch the console for Spark’s enable message. A startup error usually indicates a wrong loader, wrong Minecraft version, a duplicate installation, or a damaged download.
- Join the server or use the console and run
/spark version. The command should return Spark’s installed version and environment information.
Fabric, Forge, and NeoForge
- Stop the server.
- Download the Spark build intended for your Minecraft version and mod loader.
- Place the JAR in the server’s
modsfolder. Do not put a mod build inplugins. - Restart the server. Read the loader log for dependency or compatibility errors before troubleshooting the command itself.
- Run
/spark versionfrom the console or in game to confirm that the mod loaded.
How to tell whether installation succeeded
/spark version is the first check. If Minecraft says the command is unknown, Spark did not load, the JAR is in the wrong directory, or you are using the wrong command prefix for a proxy or client environment. If the command exists but you cannot run it, installation is probably complete and the remaining issue is permission.
After a restart, also inspect the startup log for a duplicate Spark warning. Running two copies can create confusing command or update behavior. Remove the extra copy, restart, and verify again.
Permissions: allow the profiler to run
The documented permission nodes are spark and spark.profiler. Server operators can run Spark commands, and an administrator can grant the node to a group through a permissions manager such as LuckPerms. Grant only the access level your staff needs rather than making every player an operator.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Rank #2
- 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
- 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
- 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
- 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
- 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
- For a quick test, run the command from the server console, which is not subject to in-game permission checks.
- For an operator, confirm the account has operator status and reconnect after changing it.
- For a permissions group, assign
sparkorspark.profiler, then verify the effective permission with that player.
If /spark version works but /spark profiler start returns a denial, check the permission node before reinstalling the JAR. A proxy command prefix is also easy to overlook: use /sparkb on BungeeCord or /sparkv on Velocity instead of the server-only form.
Run your first server profile
Basic start-and-stop workflow
- Tell players what you are measuring and ask them to continue normal activity. A profile collected while nobody is online may miss the workload that causes the complaint.
- Start sampling with
/spark profiler start. - Let the server run for several minutes. Hosting guides commonly suggest about three to five minutes with players online; the official command reference does not mandate a fixed duration.
- Reproduce the lag during that window if possible. Note the time and action, such as opening a farm, entering a new area, or triggering a redstone machine.
- Finish with
/spark profiler stop. Spark processes the sample and normally uploads the profile automatically. - Copy the viewer URL printed in chat or the console and open it in a browser.
Use /spark profiler info to inspect the active recording without ending it. If the test is irrelevant, use /spark profiler cancel to discard the current profile rather than publishing it.
Prevent a profile from running indefinitely
Add a timeout when you start a recording:
/spark profiler start --timeout 300
The value is in seconds, so this example stops after five minutes. A timeout is useful on a production server where an administrator may disconnect or forget to stop the recording. You can still stop it earlier with /spark profiler stop.
Capture only slow ticks during a spike
When the issue is intermittent, filtering out ordinary ticks can make the report easier to read. For example:
/spark profiler start --only-ticks-over 60
This asks Spark to record ticks taking more than 60 milliseconds. Treat 60 ms as an example threshold from a hosting guide, not as a universal definition of lag. Choose a threshold that matches the symptom you are investigating, and remember that filtering can omit useful context about what the server was doing immediately before a spike.
Useful profiler options
Options can be combined after /spark profiler start. Command names and flags can vary by Spark release, so check the version-specific reference at spark.lucko.me/docs/Command-Usage if a flag is rejected.
Rank #3
- [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
- [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
- [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
- [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
- [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
| Option | Purpose | Example |
|---|---|---|
--timeout <seconds> |
Stops the profile automatically after the specified number of seconds. | --timeout 300 |
--thread * |
Profiles all matching threads. | --thread * |
--thread <name> |
Limits sampling to a named thread when you are investigating one execution path. | --thread Server thread |
--alloc |
Profiles memory allocations instead of only focusing on CPU sampling. | --alloc |
--interval <ms> |
Sets the sampling interval in milliseconds. The command documentation reports a default of 4 ms; confirm it for your installed release. | --interval 10 |
--only-ticks-over <ms> |
Records only ticks longer than the supplied duration. | --only-ticks-over 60 |
--ignore-sleeping |
Excludes sleeping threads from the sample, which can reduce idle-thread noise. | --ignore-sleeping |
--comment <text> |
Adds a note to identify the test conditions. | --comment "nether farm test" |
--save-to-file |
Saves the result to a file rather than relying only on the automatic upload workflow. | --save-to-file |
Start with the simplest command and add one option at a time. A highly filtered profile can answer a narrow question but may hide the broader chain of work needed to diagnose it.
How to read the Spark report
Open the uploaded result
After /spark profiler stop, Spark normally uploads the completed profile and presents a shareable link. Open that page while the test conditions are still fresh. Add the link and the exact test description to an incident note if several administrators will review it.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallThe central visualization is an interactive flamegraph. Each block represents sampled work in a call stack; wider blocks account for more of the sampled time than narrower blocks. Click a large block to zoom into its child operations, then move back up the stack to understand which plugin, subsystem, or server task called it.
Interpret width, depth, and context correctly
- Width: indicates the share of samples attributed to that path during this profile. It is not a direct percentage of all wall-clock time unless the report labels it that way.
- Depth: shows how work was called. A deep method is not automatically the cause; the useful clue may be a parent task that invokes it repeatedly.
- Thread: tells you where the work ran. The main server thread is especially important for tick duration, while worker threads may explain asynchronous work without directly blocking the tick loop.
- Repetition: a narrow operation repeated thousands of times can matter as much as one visually large operation. Compare the stack with the activity players performed during the recording.
Use the report to form a testable hypothesis: for example, a particular entity tick, chunk-generation path, or scheduled task dominates slow ticks. Then reproduce only that activity in a second profile and see whether the same path expands. Spark identifies where sampled time went; it does not prove that removing a plugin or machine will fix every symptom.
Check live health before and after profiling
Spark’s health commands can distinguish a general tick-rate problem from a network or memory symptom:
/spark healthgives a health overview./spark pingchecks latency from the command context./spark tpsreports ticks per second./spark tickmonitormonitors tick durations and helps expose spikes.
Run these commands before the profile, during the reported lag, and after the workload stops. Record the conditions beside the values: player count, dimension, activity, and whether the command ran in the console or in game. A single reading cannot describe an intermittent issue.
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #4
- Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
- Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
- All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
- Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
- Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
Investigate memory and garbage collection
If the server pauses, repeatedly reports memory pressure, or shows allocation-heavy behavior, use Spark’s memory commands:
/spark gcrequests garbage collection information or an immediate collection according to the installed version’s behavior./spark gcmonitorwatches garbage-collection activity over time./spark heapsummarysummarizes heap usage./spark heapdumpcreates a heap dump for deeper memory investigation.
Heap dumps can be large and may contain detailed server state. Store them securely, make sure the host has enough disk space, and avoid generating one during a crisis unless you have a plan to analyze and retain it. Use --alloc on a profiler run when you need to see which paths are creating objects, then compare that evidence with the garbage-collection monitor.
Use activity data to connect lag to events
Spark also provides an activity command. Activity information can help connect a performance change to a player action, scheduled task, or server event. Correlate the activity timeline with the profile’s collection period rather than treating every listed event as a cause. The strongest diagnosis is one where the same event repeatedly appears alongside the same expensive call path in separate tests.
Automate collection with the background profiler
The Spark configuration page documents spark.backgroundProfiler, which can start profiling automatically at startup. This is useful when the lag occurs during boot or before an administrator can connect, but automatic recording also creates a larger volume of data and can capture routine startup work that is not relevant to gameplay.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteEnable a background profile only when you understand where Spark will save or upload its result and how long it will run. For a recurring production issue, a short timeout or a clearly documented start condition is safer than leaving continuous profiling enabled indefinitely. Verify the resulting configuration on a test instance first, then apply it during a maintenance window.
Common installation and command problems
“Unknown command” after restart
- Confirm the JAR is in
pluginsfor Paper or Spigot, ormodsfor Fabric, Forge, or NeoForge. - Check that the JAR matches the Minecraft version and loader.
- Read the startup log for a load failure or a duplicate Spark installation.
- On a proxy, try the appropriate
/sparkbor/sparkvprefix. - On a client, remember that client commands use
/sparkc; they do not profile the dedicated server.
Permission denied
Run /spark version from the console. If it works there but not in game, grant spark or spark.profiler, confirm operator status, and reconnect. Check the effective group permissions rather than assuming that a parent administrative group inherited the node.
Best Value
The profile has no useful data
Make sure the profiler was actually active with /spark profiler info. Collect during normal player activity, reproduce the lag, and avoid stopping immediately after starting. If the problem is a short spike, use --only-ticks-over with a sensible threshold and run a second unfiltered profile for context.
Conflicting stop syntax in guides
Some third-party instructions show /spark profiler --stop. The official command list and the other guides use /spark profiler stop; use the latter. If a command behaves differently on your build, consult the version-specific documentation at spark.lucko.me/docs/Command-Usage rather than mixing syntax from unrelated versions.
The report link is missing
Check the console as well as in-game chat after stopping. Confirm the server has outbound network access and that the profile completed rather than being cancelled. Use /spark profiler open when you need to view the current profile without stopping it, or use --save-to-file when your environment requires local retention.
A repeatable troubleshooting workflow
- Record the Minecraft version, loader, Spark version, player count, and the exact lag symptom.
- Check
/spark health,/spark tps,/spark ping, and/spark tickmonitorwhile the issue is visible. - Start an unfiltered profile with
/spark profiler start --timeout 300 --comment "normal play". - Reproduce the issue during the five-minute window and note what players did.
- Stop with
/spark profiler stop, open the report, and inspect the widest relevant stacks first. - Run a focused second test using a thread restriction,
--only-ticks-over, or--allocaccording to the hypothesis. - Change one server setting, plugin configuration, farm behavior, or workload at a time, then repeat the same profile so the reports are comparable.
This process prevents a common mistake: changing several things after one dramatic flamegraph and then having no way to know which change mattered.
Command quick reference
| Task | Command |
|---|---|
| Confirm installation | /spark version |
| Start a profile | /spark profiler start |
| Start with a five-minute timeout | /spark profiler start --timeout 300 |
| Record only ticks over 60 ms | /spark profiler start --only-ticks-over 60 |
| Inspect an active profile | /spark profiler info |
| Open the current profile without stopping | /spark profiler open |
| Finish and upload | /spark profiler stop |
| Discard the current profile | /spark profiler cancel |
| Health overview | /spark health |
| Ticks per second | /spark tps |
| Tick spike monitor | /spark tickmonitor |
| Garbage-collection monitor | /spark gcmonitor |
| Heap summary | /spark heapsummary |
| Heap dump | /spark heapdump |
What a good Spark investigation should leave you with
Keep the original report link, the server and Spark versions, the command options, and a short description of what players were doing. A useful profile is reproducible: another administrator can see when it ran, what symptom was present, which stacks dominated the flamegraph, and what change was tested afterward.
Install the loader-matched JAR, verify it with /spark version, grant the documented permission, and collect evidence during real play. Use an ordinary profile to understand the workload, a slow-tick filter for brief spikes, allocation profiling for memory questions, and the health commands to keep the flamegraph in context.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




