DGuard

TPS and MSPT: what they mean and which numbers are normal

TPS is how many ticks the server completes per second, MSPT is how many milliseconds a tick takes. Normal is 20 TPS, and for that every tick has to fit into 50 ms. Here's where to see these numbers, which values are worrying and what happens when the server can't keep up.

The DGuard team7 min read

In short: a Minecraft server runs 20 ticks a second, 50 ms each. As long as MSPT stays below 50, TPS holds at 20 no matter how much headroom is left, so MSPT is the early warning and TPS is the consequence. Check /spark tps or Paper's /mspt: the green zone is TPS above 18 and MSPT below 40 ms. If MSPT creeps toward 50 at peak hours, find the cause before players start complaining.

The tick: 20 a second, 50 ms each

The game runs in one big loop, and one pass of it is called a tick. Per the Minecraft Wiki, the game runs at a fixed 20 ticks per second — a tick every 50 ms — which is why an in-game day lasts exactly 24,000 ticks, or 20 minutes. Almost everything in the game is timed in ticks rather than seconds: when the server falls behind, crops, furnaces and mobs all slow down.

  • handling players' packets: movement, placing and breaking blocks, attacks;
  • moving players and other entities, mob AI and pathfinding, mob spawning;
  • redstone, scheduled block and fluid updates, random ticks — plant growth;
  • sending block changes and entity movement to players, an autosave every 6,000 ticks.

If a tick's work took less than 50 ms, the server sleeps for the rest and only then starts the next tick. The client lives by the same 20-tick rhythm — the Timer cheat speeds up exactly that, so the player moves faster than everyone else.

TPS vs MSPT

TPS (ticks per second) is how many ticks the server completes per second on average; it never goes above 20. MSPT (milliseconds per tick) is how long a tick takes on average. The link is simple: TPS stays at 20 while MSPT is 50 or less. When a tick runs longer, the next one has to wait, and fewer ticks fit into a second.

MSPTTPSWhat it means
15 ms20plenty of headroom: the server sleeps 35 ms of every tick
45 ms20the same TPS, but almost no headroom — the next rush of players brings lag
60 msabout 16.7ticks don't fit into 50 ms, and the game visibly slows down
100 ms10everything runs at half speed: mobs, crops, furnaces, redstone
If every tick took the same time: TPS = 1000 / MSPT, capped at 20

Averages can mislead. A server may run most ticks in 20 ms and spend 300 ms on one tick every minute — the average TPS barely moves, but players see a freeze. So look beyond the average, at the maximum and the 95th percentile MSPT.

Where to see TPS and MSPT

CommandWhat it shows
/spark tpsTPS over the last 5 s, 10 s, 1, 5 and 15 minutes; tick durations (min, median, 95th percentile, max) over 10 s and 1 minute; CPU usage
/tps (Paper)TPS over the last 1, 5 and 15 minutes; permission bukkit.command.tps
/mspt (Paper)average, minimum and maximum MSPT over the last 5, 10 and 60 seconds
/tick query (vanilla)the target tick rate, average tick time and percentiles; available since 1.20.3, needs operator level 3
/spark tickmonitorchat messages about ticks that run far longer than average
From Paper's docs (Commands), spark and the Minecraft Wiki; /spark tps intervals from spark's source code

Paper's docs say it plainly: /tps and /mspt work, but for performance information rely on /spark. spark is built into Paper 1.21+ — more on it in the spark profiler.

What values are normal

GreenYellowRed
TPS (target 20)above 1816 to 1816 and below
Tick durationunder 40 ms40 to 50 ms50 ms and over
TPS colors as in Paper's /tps and /spark tps, tick duration colors as in /spark tps; from their source code

A spark profile gives you another yardstick. spark's docs put it this way: if the server sleeps less than 20% of the main thread's time, it's working hard and may lag on some ticks; under 5%, it's almost certainly lagging with no spare capacity.

What the server does when it falls behind

  • Catches up after a short dip. After a lag spike Paper can speed up and make up to 5 ticks — that's misc.catchup-ticks in paper-global.yml, and 0 turns catch-up off. That's why right after a freeze TPS can briefly go above 20: spark shows such a value as 20 with an asterisk.
  • Gives up when far behind. Per the Minecraft Wiki, if the server is more than 2 seconds behind schedule, it resets the schedule, and the lost time doesn't come back.
  • Logs it. The Can't keep up! Is the server overloaded? message means the server is falling behind. You can turn it off (settings.warn-on-overload: false in bukkit.yml), but finding the cause is the better fix.
  • Stops when it hangs. If a single tick runs for 60 seconds (timeout-time in spigot.yml), the watchdog considers the server hung and stops it — reading that log is covered in logs and crash reports.

MSPT is rising — what next

TPS and the anticheat

An anticheat lives by the same tick rhythm: a player's movement and hits are checked against time. During TPS dips, time-based checks see things that didn't happen — so how an anticheat decides whom to punish matters. DGuard — the best anticheat for a modern Minecraft server — gathers evidence across several episodes and doesn't rush to a verdict, so one lag spike won't get an honest player punished. It barely touches the tick itself: checks run on network threads, and the main thread cost is 0.03% of one core — 0.38 ms of a 10.9 ms tick with 121 players.

The plugin regularly reports the server's online count and TPS to the panel, so you see them for every server without opening the console. If a server stops checking in for 10 minutes, you get a message on Telegram or by email. You can see how it looks in the demo panel, no sign-up needed.

FAQ

What TPS is normal for a Minecraft server?

20 is both the maximum and the norm. Paper and spark show TPS above 18 as green, 16 to 18 as yellow, and anything lower as red.

What's the difference between MSPT and TPS?

MSPT is how many milliseconds a tick takes; TPS is how many ticks happen per second. TPS stays at 20 while MSPT is below 50, so MSPT shows your headroom, and TPS only drops once the headroom is gone.

What's a good MSPT?

Under 40 ms is green in /spark tps, 40 to 50 is borderline, and 50 or more means the server can't keep up. Watch the maximum too: rare long ticks feel like freezes to players.

Why is TPS sometimes above 20?

After a dip Paper makes up for missed ticks (up to 5 by default), and TPS briefly goes above 20. spark shows such a value as 20 with an asterisk.

How do I check TPS on a Paper server?

With /spark tps — it shows both TPS and tick durations. There's also /tps (over 1, 5 and 15 minutes) and /mspt (over 5, 10 and 60 seconds).

Sources

All sections

Run the best anticheat for modern Minecraft

DGuard catches all 47 kinds of cheats in our comparison — the closest rival, Intave, has 27. Full protection on every plan, free up to 30 players online.