
TPS stands for Ticks Per Second, and it's the single most important metric for Minecraft server performance. A healthy server runs at 20 TPS. When that number drops, everything slows down, mobs freeze, blocks break with delay, redstone stops working properly, and players experience the frustrating rubber-banding that makes the game unplayable.
Understanding TPS is the first step toward fixing lag on your server. Once you know what it means, how to measure it, and what drags it down, you can take targeted action instead of guessing.
What Is TPS?
TPS stands for Ticks Per Second. A tick is the basic unit of time in Minecraft, every game action happens within a tick cycle. Each tick, the server processes mob AI, block updates, player actions, redstone signals, weather, entity movement, and everything else that makes the game work.
Minecraft is designed to run at 20 ticks per second, meaning the server completes one full game cycle every 50 milliseconds. When the server can keep up with this pace, everything feels smooth. When it can't, things slow down.
A key detail: the game doesn't speed up when the server has extra capacity. If a tick finishes in 30ms instead of 50ms, the server simply waits. TPS maxes out at 20, it never goes higher.
Why TPS Matters
TPS directly controls the game speed. Unlike FPS (which only affects visuals on the client side), low TPS affects every player on the server simultaneously.
At 20 TPS (Normal):
- Everything runs at intended speed
- Blocks break and place instantly
- Mobs behave naturally
- Redstone operates correctly
At 15 TPS (Noticeable):
- Slight delays in block interactions
- Mob movement looks choppy
- Redstone timing becomes unreliable
- Players notice something feels off
At 10 TPS (Problematic):
- Significant delays in all actions
- Rubber-banding and teleporting
- Mob AI breaks down
- Farms and contraptions stop functioning correctly
Below 5 TPS (Unplayable):
- The server is effectively crawling
- Players can barely interact with the world
- Connections may time out
- Crash risk increases
Every point below 20 represents a measurable degradation in gameplay quality.
How to Check Your Server's TPS
The /tps Command
Most server software includes a built-in TPS command. On Paper, Spigot, and their forks:
/tps
This returns three numbers representing average TPS over the last 1 minute, 5 minutes, and 15 minutes. Example output:
TPS from last 1m, 5m, 15m: 20.0, 19.98, 19.95
A reading of 20.0 across all three intervals means your server is healthy.
MSPT (Milliseconds Per Tick)
MSPT tells you how long each tick takes to process. Since the server needs to complete a tick every 50ms to maintain 20 TPS:
- Under 50ms MSPT — Server is keeping up fine
- 50ms MSPT — Server is at capacity, barely maintaining 20 TPS
- Over 50ms MSPT — TPS is dropping below 20
MSPT is more useful than TPS for catching problems early. A server showing 20 TPS but averaging 48ms MSPT is about to fall behind.
Paper servers show MSPT with:
/mspt
Spark Profiler
For detailed diagnostics, Spark is the standard tool. It profiles CPU usage, identifies which processes consume the most tick time, and generates shareable reports.
/spark profiler start
Let it run for a few minutes during normal gameplay, then:
/spark profiler stop
Spark gives you a breakdown of exactly where tick time is being spent, entities, plugins, chunk loading, or something else entirely. For a full list of diagnostic and optimization plugins, see our performance plugins guide.
What Causes Low TPS
TPS drops when the server can't finish processing a tick within the 50ms window. The most common culprits:
Entities
Mobs, animals, item drops, armor stands, minecarts, and experience orbs all consume tick time. Every entity needs AI calculations, collision checks, and pathfinding updates each tick.
Worst offenders:
- Villagers (complex AI with workstation and pathfinding checks)
- Large mob farms with hundreds of entities in a small area
- Uncleared item drops accumulating on the ground
- Massive animal breeding operations
Chunk Loading and Generation
Generating new chunks is expensive. When players explore uncharted territory, the server has to calculate terrain, structures, caves, biomes, and decorations in real time. Multiple players exploring in different directions multiplies this load.
Redstone
Complex redstone contraptions, especially fast clocks and large piston machines, generate huge numbers of block updates per tick. A single poorly designed clock can fire thousands of updates per second.
Plugins
Poorly optimized plugins can dominate tick time. Plugins that run heavy operations on the main thread, scan large areas frequently, or process complex data every tick drag down the whole server.
World Size and Age
Older worlds accumulate more data, placed blocks, stored inventories, loaded tile entities like hoppers and chests. Servers running the same world for months or years process more data per tick than fresh worlds.
Insufficient Hardware
Sometimes the server hardware simply can't keep up. Minecraft is single-threaded for its main game loop, so a fast single-core CPU matters more than having many cores. Slow disk I/O and insufficient RAM also contribute to tick delays.
How to Improve TPS
Use Optimized Server Software
The server software you run has the biggest single impact on TPS.
Recommended options (most to least optimized):
- Purpur — Fork of Paper with extra performance tweaks and configuration options
- Paper — Fork of Spigot with significant performance improvements over vanilla
- Spigot — Better than vanilla but lacks Paper's optimizations
- Vanilla — No optimizations, not recommended for multiplayer
Switching from Spigot to Paper alone can improve TPS by 20-50% without changing anything else. See our Paper vs Spigot vs Fabric vs Forge comparison for details.
Optimize Server Configuration
Paper and Spigot expose configuration options that directly affect tick performance.
paper-world-defaults.yml:
# Reduce entity activation range
entity-activation-range:
animals: 16
monsters: 24
misc: 8
# Lower mob spawn limits
spawn-limits:
monsters: 50
animals: 8
ambient: 1
spigot.yml:
# Reduce view distance
view-distance: 8
# Merge nearby items to reduce entity count
merge-radius:
item: 4.0
exp: 6.0
server.properties:
# Lower simulation distance
simulation-distance=6
These are starting points. Adjust based on your player count and what your community expects.
Pre-Generate Your World
Chunk generation is one of the heaviest operations a server performs. Pre-generating your world up to the world border eliminates this cost during gameplay.
Use the Chunky plugin to generate chunks before players explore:
/chunky radius 5000
/chunky start
This is especially important for survival servers with world borders. Generate everything in advance and exploration becomes lag-free.
Manage Entities
Reducing entity counts has an immediate impact on TPS.
Practical steps:
- Install ClearLagg to automatically remove ground items on a timer
- Use FarmLimiter to cap mob counts in farms
- Install VillagerOptimiser to reduce villager AI overhead
- Set entity limits per chunk in Paper's configuration
- Add a world border to prevent infinite exploration and chunk loading
Audit Your Plugins
Not all plugins are created equal. Use Spark to identify which plugins consume the most tick time, then:
- Remove plugins you don't actively use
- Replace heavy plugins with lighter alternatives
- Check for plugin updates that fix performance issues
- Avoid plugins that run intensive operations on the main thread
Upgrade Your Hardware
When optimization isn't enough, better hardware is the answer.
What matters most for Minecraft:
- CPU single-thread performance — The game loop runs on one thread. A fast single core matters more than many slow cores.
- RAM — Enough to hold the active world without swapping to disk. See our RAM guide for specific recommendations.
- SSD storage — Fast disk I/O for chunk loading and saving.
If you're self-hosting and hitting hardware limits, consider switching to a dedicated hosting provider with hardware optimized for game servers.
TPS vs Ping vs FPS
These three metrics get confused constantly, but they measure completely different things.
| Metric | What It Measures | Affected By | Who Experiences It |
|---|---|---|---|
| TPS | Server game speed | Server hardware, entities, plugins | All players equally |
| Ping | Network latency | Distance to server, network quality | Individual players |
| FPS | Client frame rate | Player's PC, graphics settings | Individual players |
TPS is a server-side problem. When TPS drops, every player on the server experiences the same slowdown regardless of their internet or PC.
Ping is a network problem. High ping means delayed communication between the player and server. Other players with better connections aren't affected.
FPS is a client-side problem. Low FPS means the player's computer can't render frames fast enough. Installing Optifine or Sodium fixes FPS, but it won't touch TPS or ping.
If one player reports lag but nobody else does, it's ping or FPS. If everyone is lagging, it's TPS.
When TPS Alone Won't Fix Your Problems
Sometimes lag persists even at a solid 20 TPS. If your TPS is fine but players still complain:
- High ping — Players far from the server's physical location will always have some latency. Choose a server location close to the majority of your players.
- Client-side lag — Players with weak PCs or unoptimized clients will have low FPS regardless of server performance. Recommend Sodium or Optifine.
- Network congestion — ISP routing issues or shared connections can cause packet loss that feels like server lag.
- Bandwidth limits — Servers with many players or heavy chunk loading can saturate network connections, especially on residential internet.
For self-hosted servers hitting network or hardware limits, a dedicated hosting provider solves most of these issues by offering enterprise-grade hardware, high-speed networking, and optimal server locations.
Looking for hosting that keeps your server at 20 TPS? Check out Minecraft Server Hosting with high-performance hardware built for smooth gameplay.
Frequently Asked Questions
What is a good TPS for a Minecraft server?
20 TPS is perfect and the maximum possible. Anything above 18 TPS feels smooth for most players. Below 15 TPS becomes noticeably laggy, and below 10 TPS makes the game difficult to play.
How do I check TPS on a Minecraft server?
Use the /tps command on Paper or Spigot servers. For more detail, use /mspt to see tick timing, or install the Spark profiler for comprehensive performance analysis.
Why is my Minecraft server stuck at 10 TPS?
The most common causes are too many entities (mobs, items), chunk generation from players exploring, heavy redstone contraptions, or poorly optimized plugins. Use Spark to profile your server and identify the specific bottleneck.
Does more RAM fix low TPS?
Only if insufficient RAM was the cause. If your server has enough RAM but TPS is still low, the bottleneck is likely CPU performance, excessive entities, or plugin overhead. RAM prevents crashes, CPU determines TPS.
What is MSPT in Minecraft?
MSPT stands for Milliseconds Per Tick. It measures how long each server tick takes to process. Under 50ms means the server maintains 20 TPS. Over 50ms means TPS is dropping. MSPT is a more precise metric than TPS for identifying performance trends.
Does Paper improve TPS over Spigot?
Yes, significantly. Paper includes async chunk loading, optimized entity ticking, improved redstone handling, and many other changes that reduce tick time. Most servers see a 20-50% TPS improvement after switching from Spigot to Paper.
Can plugins cause TPS drops?
Absolutely. Plugins that run heavy operations every tick, scan large areas, or process complex data on the main thread are common causes of TPS loss. Use Spark to identify which plugins are consuming the most tick time, and remove or replace the worst offenders.
How many players can a 20 TPS server handle?
It depends entirely on your hardware, server software, plugins, and what players are doing. A well-optimized Paper server on good hardware can handle 30-50 players at 20 TPS. Unoptimized servers may struggle with 10. There's no universal number, monitor your TPS as player count grows and optimize accordingly.

