If you are troubleshooting lag on a Paper Minecraft server, start with the profiler your server currently supports: spark. Paper deprecated Timings, disabled it by default in the 1.21 line, and is replacing it with spark. Existing Timings reports can still help you understand older incidents, but they are legacy evidence rather than the preferred way to diagnose a current server.
Godlike.Host offers hosted Minecraft Java servers with its own game panel, SFTP access and free DDoS protection, if you would rather not host it yourself.
A useful analysis combines tick health (TPS and MSPT), the player activity present during the problem, a profile long enough to include periodic work, and a before-and-after measurement after each change. The percentages in a legacy report are only meaningful when you know whether they describe total call time or the code’s own time.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
Minecraft | Java & Bedrock Deluxe Collection | Windows Digital Code | $39.99 | Buy on Amazon |
| 2 |
|
Minecraft | Java & Bedrock Ultimate Collection | Windows Digital Code | $49.99 | Buy on Amazon |
| 3 |
|
Minecraft | Standard Edition | XBOX Digital Code | $19.99 | Buy on Amazon |
| 4 |
|
Minecraft | $6.99 | Buy on Amazon |
| 5 |
|
Minecraft - Bedrock Edition PS4 | $42.98 | Buy on Amazon |
As an Amazon Associate I earn from qualifying purchases.
Free tools Windows power users keep installed
One-click scans. No signup required.
What a Timings report measures
Timings is a server profiler for the Bukkit and Paper ecosystem. It records where tick time is spent, including work performed by plugins and the game code they call. A report is therefore a snapshot of one period, not a permanent diagnosis: the player count, loaded areas, redstone activity, entity population, scheduled tasks and autosaves during the capture all affect the result.
The first question is not “which row has the largest percentage?” It is “is this report still the right instrument for this server?” Paper has changed its recommendation.
#1 Best Overall
- DELUXE COLLECTION — Includes Minecraft: Java & Bedrock Edition, three Bedrock add-ons, three exclusive Character Creator items, and 700 Minecoins.
- CREATE YOUR WORLD — Build whatever you imagine in an infinite world that’s unique in every playthrough.
- EXPLORE AND CRAFT — Discover biomes, resources, and mobs, then craft your way through a sandbox world filled with surprises.
- SURVIVE THE ADVENTURE — Face mysterious foes, travel across exciting landscapes, and venture into perilous dimensions.
- PLAY TOGETHER — Play cross-platform with friends in Bedrock Edition on console, mobile, and PC, or join community servers in Java Edition on PC, Mac, and Linux. Online console multiplayer requires a platform-specific subscription (sold separately).
Paper’s current position
| Profiler or command | Current status on Paper | What that means for analysis |
|---|---|---|
| Timings | Deprecated; turned off by default in Paper 1.21 and slated for removal | Use only when you must interpret a legacy report or operate an older installation. |
| spark | Bundled by Paper from version 1.21 and recommended as the replacement | Use it for new captures and repeat measurements. |
/tps and /mspt |
Still available, but superseded by spark’s diagnostics | Useful for a quick live check before profiling. |
Paper’s command documentation marks the timings command as deprecated for removal. A GitHub tracking discussion also describes Timings as unmaintained for several years, with a potentially non-negligible cost while enabled, while spark provides a lighter asynchronous profiling mode. Those statements do not supply a universal percentage overhead; treat them as a reason to migrate, not as a benchmark for your server.
Check the server and the capture before reading numbers
Write down the server software, its version, the Java runtime, the installed plugins and the time zone of the incident. Confirm whether the server is Paper 1.21 or newer. A report produced on an older build can contain different labels and call paths from a report produced on a current build.
Also record what was happening while the profile ran:
- Concurrent players and whether they were exploring, generating chunks, fighting or remaining in a farm.
- The dimensions and areas that were active.
- Whether the complaint was constant slow play, periodic pauses or a single crash-like stall.
- Any scheduled event, backup, world save, map render or maintenance task that coincided with the symptoms.
This context prevents a common mistake: treating a busy-event profile as the server’s normal baseline. Keep the original report URL or file unchanged, and note the exact start and end times so you can compare later captures.
Do not rely on obsolete Timings settings
Paper documents the timings.bypassMax system property as a Timings setting, but the same documentation states that it has no effect because Timings is deprecated. Changing that flag will not make a modern Paper server produce a better profile.
Measure tick health first: TPS and MSPT
TPS (ticks per second) is a headline rate; MSPT (milliseconds per tick) tells you how much time each tick consumed. A server can display an acceptable average TPS while suffering short, severe stalls, so always inspect both the average and the spikes.
Rank #2
- ULTIMATE COLLECTION — Includes Minecraft: Java & Bedrock Edition, five Bedrock add-ons, five exclusive Character Creator items, and 1000 Minecoins.
- CREATE YOUR WORLD — Build whatever you imagine in an infinite world that’s unique in every playthrough.
- EXPLORE AND CRAFT — Discover biomes, resources, and mobs, then craft your way through a sandbox world filled with surprises.
- SURVIVE THE ADVENTURE — Face mysterious foes, travel across exciting landscapes, and venture into perilous dimensions.
- PLAY TOGETHER — Play cross-platform with friends in Bedrock Edition on console, mobile, and PC, or join community servers in Java Edition on PC, Mac, and Linux. Online console multiplayer requires a platform-specific subscription (sold separately).
A commonly used planning figure is a 50-millisecond budget for one tick. The 50 ms figure comes from third-party analysis guidance rather than a Paper specification, so use it as an operational reference, not a guarantee. Sustained work above that budget causes the server to fall behind; occasional longer ticks may be visible as brief freezes even when an average looks healthy.
On a live server, /tps and /mspt provide a quick baseline. Run them before starting a profile and again after a change. Spark can provide the same information alongside its profiling views, and its commands are the preferred path on current Paper.
Capture a current profile with spark
Paper’s profiling example is:
/spark profiler start --timeout 600
The command runs for 600 seconds (ten minutes) and returns a report URL when the capture ends. Ten minutes is long enough to include work that occurs only periodically, but it also records more activity than a short reproduction. One third-party guide recommends approximately three minutes so an autosave or periodic plugin task is included without collecting excessive unrelated data. Because those recommendations differ, choose a duration that matches the symptom: use a longer window for intermittent pauses and a shorter, repeatable window for a problem you can trigger on demand.
Target severe tick spikes when appropriate
Some guides describe these commands for isolating long ticks:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
/spark profiler start --only-ticks-over 100
/spark tickmonitor
The 100 value is a millisecond threshold in that example. The syntax and availability of these options can vary with the spark version bundled by your Paper build, and they are not confirmed in the official Paper snippet available for this topic. If a command is rejected, open the in-game or console help for your installed spark version and use the command form it reports.
A repeatable capture procedure
- Record the Paper build, player count, dimensions in use, TPS, MSPT and the exact complaint.
- Reproduce the lag, or wait for the normal workload that causes it. Do not start and stop the profiler immediately unless the problem is instantaneous.
- Run the official spark command with a timeout selected for the symptom.
- Save the resulting report URL and the surrounding notes. Do not compare a quiet test server with a busy production capture.
- Make one operational change, then repeat the same capture method under comparable activity.
How to read a legacy Timings report
Field-by-field interpretation is not verified in a primary Paper source. A third-party Timings guide describes four commonly displayed columns—Pct Total, Pct Tick, Avg and Count. Labels and nesting can differ between report versions, so confirm the headings and units in the report you actually received.
Rank #3
- CREATE YOUR WORLD — Build whatever you imagine in an infinite world that is unique in every playthrough.
- EXPLORE AND CRAFT — Discover biomes, resources, and mobs, then craft your way through a sandbox world full of surprises.
- SURVIVAL ADVENTURES — Face mysterious foes, travel across varied landscapes, and venture into perilous dimensions.
- PLAY TOGETHER — Play solo or join friends in local split-screen and cross-platform play across console, mobile, and PC. Online multiplayer supports up to 8 players.
- COMMUNITY PLAY — Connect with players on community servers, or subscribe to Realms Plus (sold separately) to play with up to 10 friends on a private server.
| Column | Practical reading | Important caution |
|---|---|---|
| Pct Total | The row’s share of the report’s recorded total time. | A high value identifies a large consumer in the capture, not necessarily the cause of every lag event. |
| Pct Tick | The row’s share of tick time represented by the report. | Check the report’s own scope and denominator before comparing this percentage with another report. |
| Avg | Average time per recorded invocation or event, using the report’s displayed unit. | Average values can hide rare, very long calls. |
| Count | How many times the row was recorded during the capture. | A frequent inexpensive call and a rare expensive call require different remedies. |
Because this interpretation comes from a third-party guide rather than a primary Timings specification, treat the table as a reading aid, not a promise that every Paper release calculates the columns identically.
Start at the call tree, not at an isolated percentage
Timings reports normally present nested entries. Read from the broad parent operation into its children and ask where the time is actually attributed. A plugin row can include work performed in the game code that the plugin invoked. That is why a plugin’s “total” time may be much larger than its “self” time: total time includes descendants, while self time is work attributed to that row itself.
Use self time to find code that is expensive on its own. Use total time to understand the complete cost of a feature or event, including the game operations it triggers. Do not add every child percentage to every parent; nested values describe the same work at different levels.
Use Count and Avg together
A row with a large Count and a small Avg may consume substantial time simply because it runs constantly. Reducing how often that operation runs can matter more than optimizing one invocation. A row with a small Count but a high Avg points toward an intermittent stall, such as a task that occasionally performs a large amount of work. If both Count and Avg are high, investigate that path first, then verify that it was active during the reported lag.
Look for periodic patterns rather than only the largest cumulative percentage. A ten-minute report can make a task that ran once appear less important than a tiny operation that ran thousands of times, even though the one-time task caused the visible freeze.
Turn a hotspot into a testable diagnosis
1. Confirm that the hotspot matches the symptom
Compare the report’s capture time with the player’s description. If users saw freezes every few minutes, a row associated with a periodic task is more relevant than a continuously running row that merely accumulated time. If the lag occurred only while exploring, check whether the same activity was present during the capture.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Rank #4
- Skins! We have biome settlers, city folk, town folk, and more!
- The Nether and all its inhabitants. Fight Ghasts and make friends with Pigmen
- Cross platform play for up to five players between Pocket Edition and Windows 10
- Revamped touch controls, controller support, and a controller mapping screen
- Enhanced Weather effects! Accumulating snow and more
2. Separate plugin time from game time
Use the parent-child relationship and the self-versus-total distinction. A plugin may be the entry point while the expensive descendant is a game operation; disabling the plugin could still remove the workload, but the report does not prove that the plugin’s own code is inefficient. Conversely, a high self-time row gives you a stronger case to inspect that plugin’s configuration or implementation.
3. Check frequency and duration
Read Count and Avg together, then compare them with the observed pauses. High frequency with modest duration usually produces gradual overload. Low frequency with a large duration is more consistent with a spike. This classification determines whether you should reduce scheduling frequency, limit the amount of work per run, or eliminate a trigger.
4. Change one thing
Do not simultaneously remove several plugins, change view distance, alter entity limits and restart the world. You will not know which action affected the result. Apply one reversible configuration change, document it, and repeat the same measurement.
5. Re-measure under comparable load
Use the same profiling duration, similar player activity and the same commands. Compare MSPT distribution and the relevant profile branch, not just the top-line TPS. If the hotspot moves, determine whether the original work was reduced or whether another bottleneck is now exposed.
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 matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Common failure modes and fixes
The timings command is unavailable or produces no useful report
On Paper 1.21, Timings is off by default and deprecated. Do not treat that as a broken installation. Switch to spark and capture a new profile. On an older server that still exposes Timings, verify that profiling was actually enabled for the capture window and that you saved the completed report rather than a partial page.
The report looks healthy, but players still experience freezes
Check MSPT spikes rather than relying on average TPS. Extend the capture to include the periodic event, and record what players were doing at the exact time of a freeze. A short profile taken during an idle period cannot explain a workload that happens only during exploration or a scheduled task.
Best Value
- Play and share with friends on console, mobile and Windows 10
- discover community creations in the new in-game store
- access new mini games and game modes through servers
Profiling appears to make the server slower
Timings has been described as adding non-negligible overhead, which is another reason not to leave it enabled on a production server. Spark’s asynchronous mode is described as lighter, but no named organisation’s benchmark or universal percentage is established here. Capture only for the time needed to reproduce the issue, then stop profiling and compare the results with an equivalent unprofiled period.
A spark command is rejected
Spark is versioned, and Paper may bundle a different release from the one shown in a guide. Run the spark help command on the server, use the syntax it reports, and check the Paper build’s bundled version before copying examples. The official Paper example with --timeout 600 is the safest starting point for a current installation.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteUsing a standalone spark plugin
Paper’s system-property documentation describes a newer spark JAR placed in the plugins folder, selected by setting:
paper.preferSparkPlugin=true
Use this only when you have a reason to run the standalone plugin and have checked compatibility with your Paper build. The property changes which spark implementation Paper prefers; it does not revive Timings or make the deprecated timings.bypassMax setting effective.
Timings versus spark: the decision
| Decision factor | Timings | spark |
|---|---|---|
| Support direction | Deprecated and scheduled for removal from Paper | Bundled and recommended by Paper from 1.21 |
| Default on Paper 1.21 | Off | Available as the current profiler |
| Maintenance | Described in the Paper tracking discussion as unmaintained for several years | Active replacement used by current Paper tooling |
| Profiling cost | Can add non-negligible overhead | Asynchronous mode is described as lighter |
| Output | Legacy report links and legacy columns | Current spark report format and commands |
Keep a historical Timings report when it documents an old incident, but do not use old percentages as a baseline for a modern server without reproducing the workload with spark. Different profilers, builds and activity windows measure different things.
Quick Recap
A concise checklist for every lag investigation
- Identify the Paper version and confirm whether the server is in the 1.21 line.
- Record player count, active dimensions, workload and the exact time of the complaint.
- Check both TPS and MSPT; treat 50 ms as an operational tick-budget reference, not an official guarantee.
- Use spark for new captures, beginning with
/spark profiler start --timeout 600. - Choose a longer window for intermittent problems and a shorter, repeatable window for reproducible ones.
- In a legacy Timings report, inspect Pct Total, Pct Tick, Avg and Count together, then follow the call tree.
- Distinguish self time from total time before blaming a plugin.
- Change one setting or component, repeat the same capture and compare MSPT and the relevant profile branch.
- Stop using obsolete Timings properties and verify command syntax against the spark version installed on the server.
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.
Recommended Free Tools




