Minecraft Updated April 21, 2026

Run a Spark Profiler and Share the Results

Install Spark, run a performance profile on your Minecraft server, and share the report link with our support team. Works on Paper, Purpur, Fabric, Forge, and NeoForge — including wisp.gg-hosted servers.

MinecraftSparkprofilerperformanceTPSPaperFabricForgewisp

What Spark Is (and Why We Ask for It)

Spark is the standard performance profiler for Minecraft servers. When you tell us "the server is lagging," we can guess — but Spark tells us exactly which plugin, mod, or entity is eating CPU. A 2-minute profile usually nails the culprit in one glance.

When our support team asks for a Spark profile, this is the guide to run through.

Step 1: Check If Spark Is Already Installed

Spark is bundled with some server software out of the box — you don't need to install it separately.

Server Bundled?
Paper 1.21+ ✅ Yes — already available, skip to Step 3
Purpur 1.21+ ✅ Yes — already available, skip to Step 3
Paper/Purpur 1.20 and earlier ❌ Install manually (Step 2)
Forge / NeoForge ❌ Install manually (Step 2)
Fabric ❌ Install manually (Step 2)
Vanilla ❌ Install manually (Step 2) — you'll need to add a mod loader first, or switch to Paper

Quick test: run /spark in the server console. If you get a help message, it's installed. If it says "unknown command," go to Step 2.

Step 2: Install Spark (wisp.gg panel)

  1. Open spark.lucko.me/download
  2. Download the correct file for your server:
    • Paper / Purpur / Spigot → spark-<version>-bukkit.jar
    • Fabric → spark-<version>-fabric.jar
    • Forge → spark-<version>-forge.jar
    • NeoForge → spark-<version>-neoforge.jar
  3. In the wisp.gg panel, stop your server
  4. Open the File Manager
  5. Navigate to:
    • Paper/Purpur/Spigot → /plugins/
    • Fabric/Forge/NeoForge → /mods/
  6. Click Upload and select the Spark jar you just downloaded
  7. Start the server — you should see a line like [spark] Starting spark... in the console

Mismatched version? If Spark refuses to load with an error about the Minecraft version, you grabbed the wrong file. Go back to the download page, check your server's MC version in wisp.gg, and download the matching variant.

Step 3: Get Permission to Run Spark Commands

Spark requires operator permissions to run.

If you're running the command from the wisp.gg Console tab, you don't need op — the console runs as the server itself. Skip to Step 4.

If you're running it in-game, you need op:

  1. Connect to the server as yourself
  2. In the wisp.gg Console tab, type:
    op YourMinecraftUsername
    
  3. You're now an operator and can run /spark commands in-game

Step 4: Start the Profiler

Run a 2-minute profile while the server is lagging. The command depends on how you want to frame it:

Command When to use
/spark profiler --timeout 120 Best default. Auto-stops after 2 minutes and uploads.
/spark profiler Starts an open-ended profile — remember to stop it manually.
/spark profiler --thread * Profile all threads (not just the main server thread). Use when Paper tells you it's offloading work.
/spark profiler --only-ticks-over 50ms Only record ticks that took >50ms (the slow ones that matter). Great for catching rare hitches.

Kick it off:

/spark profiler --timeout 120

While the profiler runs, reproduce the lag:

  • If lag happens when a specific player logs in → have them log in now
  • If lag happens at a specific time of day → run the profile then
  • If lag is constant → just let it run
  • If lag is during a boss fight or big farm → trigger those now

The more representative the 2 minutes are, the more actionable the report.

Other useful commands:

Command What it does
/spark profiler stop Manually stop a running profile and upload the report
/spark profiler cancel Abort without uploading (useful if you started it wrong)
/spark tps Show current and historical TPS
/spark tickmonitor Live stream of every tick that exceeds 50ms (great for debugging)
/spark healthreport One-shot summary of CPU, memory, and GC health
/spark heapsummary Object counts and memory usage by Java class (find memory leaks)

Full command reference: spark.lucko.me/docs/Command-Usage.

When the profile finishes (either timeout hits or you run /spark profiler stop), Spark uploads the report to its own servers and prints a clickable URL in the console:

[spark] Profile uploaded: https://spark.lucko.me/aBcDeFgHiJ

Copy that URL. That's what support needs.

Privacy note: Spark reports include server name, plugin/mod list, and performance data. They do not include player chat, coordinates, inventories, or account credentials. The upload is stored by Spark's cloud — not by DustBowl.Games. Links are effectively unguessable (10+ random chars) but not formally private, so don't paste them publicly if your plugin list is sensitive.

Step 6: Share the Report with DustBowl Support

The fastest way to get help:

  1. Join our Discord
  2. Open a ticket in #support (or DM an admin)
  3. Paste the Spark link along with:
    • Server name (so we can find it in our panel)
    • What's laggy — TPS drops, specific actions, specific times of day
    • Recent changes — new mods, new plugins, new version, big population event

A good message looks like this:

Hey, my modpack server dustbowl-ocean has been sitting at 12 TPS since I added the Create mod last night. Lag is constant, even with just me on. Here's a 2-min Spark profile: https://spark.lucko.me/aBcDeFgHiJ

How to Read a Spark Report (Skim Version)

You don't need to be a JVM expert to get value out of a Spark report. The CPU tab is where 90% of insights come from.

Open the report link. On the CPU graph tab, look for:

Red flag: A single plugin/mod using >20% of tick time

You'll see something like:

net.somebrokenmod.BrokenTickHandler.tick()  —  28%

That one mod is eating nearly a third of your tick budget. Either:

  • Disable it to confirm it's the culprit (restart, check TPS)
  • Check if it has a config option to reduce its frequency
  • Report the issue to the mod's bug tracker

Red flag: An entity/mob class at the top

net.minecraft.entity.passive.ChickenEntity.tick()  —  15%

Too many of that entity. Either cull with /kill @e[type=chicken], find the player's chicken farm and scale it down, or install a plugin like ClearLag.

Red flag: Chunk I/O or ChunkLoader dominating

net.minecraft.world.chunk.ChunkProvider.loadChunk()  —  22%

Players are exploring new terrain. Pre-generate the world with Chunky (see Troubleshoot and Fix Minecraft Server Performance).

Red flag: GC taking >10% of server time

Open the Memory tab. If you see frequent full garbage collections, your heap is too small or your JVM flags are wrong. See the Aikar's flags section of the perf guide.

The main server thread is almost always "server-worker-0" or "main"

That's the one tab you care about. Anything on other threads (network, chunk I/O worker pool) matters less — Paper offloads those on purpose.

Troubleshooting

Unknown or incomplete command — Spark isn't installed (see Step 2) or the server isn't Paper/Purpur 1.21+ (which ships with it).

You do not have permission to use this command — Run the command from the wisp.gg Console tab instead of in-game, or op yourself first (Step 3).

Profile link returns 404 or "expired" — Spark reports auto-expire after a few weeks. Run a fresh profile.

Profile shows nothing interesting / flat 20 TPS — You captured a window where the server wasn't laggy. Wait for the lag to happen again and profile during the problem, not after.

Still stuck? Join us on Discord with your profile link and we'll dig in with you.