Direct answer
TPS measures completed game ticks per second, while MSPT measures the time spent processing a tick. At the usual 20 TPS target, a server has roughly 50 ms per tick; a single 80 ms spike can still be noticeable while average TPS is near 20.
Recommended procedure
- Record player count and the activity occurring during the lag.
- On a Paper server, inspect
/spark tpsor an equivalent supported status command to see TPS and tick times. - Capture a spark profile during the issue with
/spark profiler start --timeout 120if supported by your installed version. - Compare average tick time with high-percentile values and the most expensive call stacks rather than relying on a single TPS snapshot.
- Repeat the same test after one controlled optimization change.
Why this matters
TPS can remain at 20 while the server is consuming most of its time budget. Conversely, packet loss or high client ping can feel like lag even when MSPT is healthy. Region-threaded servers need software-appropriate metrics.
Practical example: Example: a server at 20.0 TPS with 45 ms typical MSPT but 120 ms spikes during teleportation still needs investigation. Average TPS hides those momentary stalls. If MSPT remains near 10 ms while only distant players lag, capture network/proxy evidence rather than changing entity activation. Look at percentile values during the actual event.
How to verify the result
- Compare before/after profiles from similar workloads.
- Confirm the original symptom improved for an affected player, not only the number in a dashboard.
- If MSPT is low but players rubber-band, also investigate network latency, packet loss and proxy routing.
Version and compatibility notes
- Paper bundles spark in modern releases; command availability differs by software and version.
- Do not use deprecated Timings output as the default approach on current Paper versions.
Official references
These sources were checked for the current MSH revision. Version-sensitive details should always be confirmed against the project documentation for the release you run.
Related guides
Help us improve this article
Tell us what is missing, unclear, outdated, or incorrect. You can also suggest something we should add.