Back to Blog

TPS Explained: Why Minecraft Servers Lag

TPS Explained: Why Minecraft Servers Lag
Command of the Day
top -b -n 1 | head -n 12

What it does: Captures an instantaneous non-interactive snapshot of top CPU and system load metrics to detect server performance bottlenecks.

If you have ever played on a multiplayer Minecraft server, you have likely encountered moments where blocks re-appear after you break them, mobs move in stuttered slow-motion, or eating food takes several seconds to register. In the Minecraft community, this phenomenon is universally called server lag or TPS drop.

In this guide, we explain what TPS (Ticks Per Second) and MSPT (Milliseconds Per Tick) mean, how to measure them, and how to eliminate lag on your RivinCloud VPS.


1. What is TPS (Ticks Per Second)?

Minecraft runs on an internal clock. Under ideal conditions, a Minecraft server executes exactly 20 ticks per second (20.0 TPS):

  • 1 Second = 1,000 milliseconds
  • 1,000ms / 20 Ticks = 50 milliseconds per tick (50ms)

Every 50ms, the server calculates:

  1. Mob movement and AI pathfinding.
  2. Redstone signals, hopper item transfers, and piston pushes.
  3. Crop, sapling, and plant growth ticks.
  4. Player physics, block breaking, and damage calculations.

2. The Relationship Between TPS and MSPT

While players look at TPS, server administrators monitor MSPT (Milliseconds Per Tick) for the true health of the server:

MSPT ≤ 50.0ms ──► Server completes calculations within 50ms ──► Locked 20.0 TPS (Zero Lag!)
MSPT = 75.0ms ──► Server takes 75ms per tick (Overloaded)    ──► Drops to 13.3 TPS (Noticeable Lag)
MSPT = 100ms  ──► Server takes 100ms per tick (Severe Lag)   ──► Drops to 10.0 TPS (Heavy Rubberband)
  • TPS caps at 20.0: Even if your server is ultra-fast and finishes a tick in 10ms (10ms MSPT), TPS will never exceed 20.0. The server simply sleeps for the remaining 40ms.
  • When MSPT exceeds 50ms: The server cannot finish its work in time. Game time literally slows down relative to real-world clock time!

3. How to Check Your TPS and MSPT

Using In-Game Server Commands:

  • On Paper / Purpur: Type /tps or /mspt in the server console.
    TPS from last 1m, 5m, 15m: 20.0, 19.98, 20.0
    Server tick times (MSPT): avg: 18.4ms, min: 12.1ms, max: 28.6ms
    
  • Using Spark Plugin: Type /spark healthreport for a full memory, CPU, and tick breakdown.

4. Top Causes of Low TPS and How to Fix Them

1. Excessive Entities (Mob Farms & Villagers)

  • Problem: Cramming 500 cows or villagers into small pens consumes huge CPU calculating collision boxes and pathfinding.
  • Fix: Lower entity activation ranges in spigot.yml:
    entity-activation-range:
      animals: 16
      monsters: 24
      raiders: 32
      misc: 8
    

2. High Simulation Distance

  • Problem: Setting simulation-distance: 12 forces the server to tick millions of blocks across dozens of loaded chunks per player.
  • Fix: In server.properties, set:
    simulation-distance=5
    view-distance=8
    

3. Hopper Chains without Composters

  • Problem: Unlocked hoppers constantly query the air block above them to check for dropped items.
  • Fix: Place composters or full storage blocks directly on top of hoppers to stop unnecessary air block scans, or enable hopper.disable-move-event: true in paper-world.yml.

Common Mistakes

  • Confusing Network Ping (Latency) with TPS Lag: If TPS is a solid 20.0 but a player experiences delays, the issue is their network internet connection (ping), not server processing lag.
  • Allocating excessive RAM: Running Java with massive heap allocations without proper G1GC flags can cause periodic garbage collection freezes where TPS drops to 0 for several seconds.

Troubleshooting

  • TPS suddenly drops to 0 and server crashes: Check logs for "Watchdog Thread Dump". This indicates a single task hung for over 60 seconds (usually an infinite loop in a third-party plugin).

Best Practices

  • Use Paper or Purpur rather than standard Vanilla software.
  • Pre-generate world chunks using Chunky to avoid live chunk generation tick spikes.

Frequently Asked Questions

Can TPS be higher than 20?

No. In Minecraft's game design, 20 ticks per second is the hardcoded game loop ceiling. Any faster would speed up game physics unnaturally!


Conclusion

Understanding the dynamic between TPS and MSPT gives you the diagnostic tools needed to maintain a lag-free gaming environment. Host your high-performance Minecraft worlds on RivinCloud VPS!