What is TPS, and why is my Minecraft server lagging? TPS (ticks per second) measures how many of the server’s 20 ticks per second actually completed, a healthy server holds 20.0. MSPT (milliseconds per tick) warns you before TPS visibly drops, and “lag” is usually one of three separate problems: TPS (server speed), ping (network), or FPS (the player’s own PC), only the first of which hosting can fix.
What TPS actually measures
Minecraft’s server updates the world 20 times a second, each update is a tick. TPS (ticks per second) is just how many of those 20 actually happened in the last second.
A healthy server holds 20.0. Frozen mobs, delayed block breaks, and slow redstone are what a dropped TPS looks like, the server literally couldn’t keep up.
Tip: TPS can only ever read 20.0 or lower, it never goes above 20 even on an idle server with tons of headroom. That’s normal, not a sign anything’s wrong.
MSPT: the number that warns you before TPS drops
MSPT (milliseconds per tick) is how long each tick actually took to process. The server has a 50ms budget per tick, 20 ticks × 50ms = one full second, go over that and TPS starts dropping.
TPS caps at 20.0, so it can hide a server that’s already struggling. MSPT keeps climbing, 30ms, then 40ms, before TPS visibly drops. It’s the earlier warning sign.
Tip: Healthy MSPT sits well under 50ms, most well-tuned servers idle around 5–15ms. Consistently pushing 40ms+ means a TPS drop is close even while TPS still reads 20.0.
TPS, ping, and FPS are three different problems
“Lag” gets blamed on the server by default, but it’s actually three unrelated problems. TPS is the server’s own speed, the only one hosting affects. Ping is network latency between player and server. FPS is the player’s own PC, nothing to do with the server at all.
Rubber-banding (snapping back to an old position) points to ping. Choppy or stuttery visuals point to their PC. Frozen mobs, slow block breaking, delayed redstone point to TPS, the one this guide (and Spark) actually helps with.
Tip: A player with bad FPS or high ping will still blame “server lag” even on a server holding a perfect 20.0 TPS. Check your own TPS/MSPT first before chasing a problem that isn’t on your end.
What does “Can’t keep up! Is the server overloaded?” mean?
That console warning means a tick took longer than its 50 ms budget, so the server fell behind the 20 ticks per second it is supposed to run at. The numbers at the end tell you how far behind it got.
One warning during a big burst of work, like generating a lot of new world, is not a problem. Repeated warnings during normal play are. Profile with Spark first, then lower view and simulation distance, remove plugins you do not need, and cap entities. Extra RAM rarely fixes it.
Example console warning
[12:04:31 WARN]: Can't keep up! Is the server overloaded? Running 2145ms or 42 ticks behindTip: Not sure where to start? See our Paper and Spigot optimization guide for the exact settings to change.
What Spark is, and when to reach for it
Spark is a lightweight profiler available as a plugin or mod for Paper, Spigot, Forge, Fabric, and more, and some server software bundles it. It replaced the older Timings system.
Reach for it once you already know TPS or MSPT looks bad, Spark points at the exact plugin, mod, or vanilla system eating the tick time instead of you guessing.
Run a profile from the console
Start it with /spark profiler start, then let the server run normally for a few minutes while the lag actually happens. Stop it with /spark profiler stop, Spark uploads the report and hands back a link.
Console commands
/spark profiler start
/spark profiler start --timeout 300
/spark profiler stopTip: Add
--only-ticks-over 50when starting to only capture ticks that actually ran long, it cuts out the noise from ticks that were already fine.
What to look for in the report
The report is a flame graph of where the server spent its time, wider bars mean more time spent. Start with the Server thread, that’s the one that actually controls TPS.
Look for a few unusually wide branches rather than one obvious villain. Most real lag comes from several plugins or mods each taking a little, not one broken feature.
Vanilla systems like tickEntities, chunk generation, and worldGenRegion show up naturally on any busy server, they’re not bugs by themselves. A plugin or mod’s own package name sitting high in the tree is the real signal.
Tip: Cross-check with /spark tickmonitor to catch which specific ticks spiked, and /spark gc if you suspect garbage collection pauses rather than a single hot method.
Frequently asked questions
What is a good TPS for a Minecraft server?
20.0 is the maximum, and a healthy server holds 19.9 to 20.0. If it sits below 18 consistently, players will notice.
What is MSPT in Minecraft?
MSPT is milliseconds per tick, how long each tick takes to process. The server has a 50 ms budget per tick, and well-tuned servers idle around 5 to 15 ms.
How do I use the Spark profiler on my server?
Run /spark profiler start, let the server run through the lag, then run /spark profiler stop. Spark uploads the report and gives you a link.
Is Minecraft lag caused by my server or my own computer?
It can be either. TPS is the server’s own speed, ping is network latency, and FPS is the player’s PC. Rubber-banding points to ping, choppy visuals to their PC, and frozen mobs or slow block breaking to TPS.