Skip to content
Bytearium

No ads or affiliate links active

Hardware

TPS: ticks per second on a Minecraft server

TPS counts how often a Minecraft server runs its main loop per second. The target is 20 TPS or at most 50 ms per tick; how to measure it with spark.

This entry is still below our minimum bar for the search index (length and number of sources) and is being reworked. It is therefore not listed in search engines.

Your server can have fast internet and plenty of RAM and still stutter. TPS is the number that tells you whether its heart keeps the beat.

The short answer

TPS (ticks per second) counts how often a game server runs its main loop each second. Minecraft normally runs at 20 TPS, so one tick takes 50 milliseconds [1]. Is 20 good? Yes, it is the target, and it is also the ceiling. If the server needs longer than 50 milliseconds per tick, the TPS falls below 20 and the game slows down [1]. Our assessment: when players report lag, read TPS and MSPT before you buy hardware.

How it works

  1. The tick loop. One cycle of the game loop is called a tick. Most actions in the game are timed by tick count, not by real time, so on a slow server many things simply take longer [1].
  2. TPS and MSPT. MSPT (milliseconds per tick) is the time a server actually needs to compute a tick. The Minecraft Wiki states that TPS can be kept at 20 only if MSPT is no higher than 50 [1]. The spark documentation explains it the same way: for a lag-free experience each tick needs to last 50 milliseconds or less [3].
  3. Averages hide spikes. spark reports not only the average MSPT but also the minimum, the maximum, the median and the 95th percentile [3]. Our assessment: a good average with a high maximum feels like short freezes, so look at the 95th percentile too.
  4. Built-in commands. Paper's documentation describes /tps, which shows TPS for the past 1, 5 and 15 minutes, and /mspt, which shows MSPT for the last 5, 10 and 60 seconds. It also says both are superseded by /spark [2].
  5. spark. The command /spark tps prints the server's TPS and CPU usage [4]. Since version 1.21, Paper bundles the spark profiler, and it is the preferred way to profile Paper [5].
  6. Profiling the cause. /spark profiler start --timeout 600 runs the profiler for ten minutes and returns a link to a report [5]. Paper's documentation notes that the problem you diagnose must be happening while you profile [5].
  7. Typical causes. The Minecraft Wiki lists contributors to server-side lag: hoppers searching for items, redstone components that cause many block updates, large numbers of mobs, and a random tick speed set too high [1]. A single weak CPU core can also limit a server (our assessment, unverified as a general rule).
  8. Java Edition can change the rate. Tick rates can be controlled with the command /tick in Java Edition [1]. Do not change it on a server without understanding the effect on gameplay.

A homelab example

The Bytearium homelab runs rack servers (HPE ProLiant DL360 Gen9 and DL380 Gen10) and a QNAP NAS, as of 14 to 18 Oct 2026. We have not recorded game server workloads or TPS values, so we say nothing about them. A general example for a Paper server of your own: join as an operator and run /spark tps during a busy moment with several players online. If TPS stays at 20.0 and MSPT lies clearly below 50, the server keeps up and the lag is likely somewhere else, such as the network. If TPS drops, start /spark profiler start --timeout 600, play normally for ten minutes and open the report link [4][5]. Write down the values with date and player count, so that you can compare after a change.

Checklist

  • Read TPS and MSPT during a busy moment, not on an empty server.
  • Compare MSPT against the 50 millisecond limit [1].
  • Look at the 95th percentile and the maximum, not only the average [3].
  • Check that you use spark, since Paper's older commands are superseded [2].
  • Start a profiler run while the lag happens [5].
  • Change one thing at a time and measure again.
  • Note values with date and number of players.
  • Check the network and the client before you blame the server.

Primary sources

These sources are the basis of this page. That does not mean every claim was checked individually; whether a review record exists is shown above under “Status”. The interpretation and checklist are our own work.

There is no documented review record for this version yet. The text relies on the sources listed.

How this page was made: Bytearium creates these pages with the help of AI and is responsible for publishing them. AI can be wrong, so we show our sources and review status openly.

  1. Minecraft WikiTick
  2. PaperMCCommands
  3. sparkTPS and MSPT
  4. sparkCommand Usage
  5. PaperMCProfiling

This page has no ads and no affiliate links.