Minecraft Can't Keep Up! Is the Server Overloaded? (Fix)

What Minecraft's "Can't keep up! Is the server overloaded?" warning means, when to ignore it, and how to find and fix the real cause with spark and MSPT.

Updated Oct 1, 2026 · 8 min read

On this page

"Can't keep up! Is the server overloaded? Running 2500ms or 50 ticks behind" means the server fell more than 2 seconds behind its schedule of 20 ticks per second, so it skipped ahead to catch up. Once at startup is normal. Repeating every few minutes means each tick is taking longer than 50 milliseconds, and players feel it as lag. The fix is to find what is eating the tick time with spark, then cut it: usually entities and farms, chunk generation or too high a simulation-distance, and only sometimes a lack of RAM.

What does "Can't keep up" actually mean?

A Minecraft server runs in ticks. Every tick it moves mobs, grows crops, runs redstone, processes hoppers, handles players and saves chunks. The target is 20 ticks per second (TPS), which gives each tick a budget of 50 milliseconds. The time a tick really takes is MSPT, milliseconds per tick.

  • MSPT under 50: the server keeps up. TPS stays at 20.
  • MSPT over 50: ticks run late. TPS drops below 20 and the game runs in slow motion. Mobs stutter, blocks you break pop back, doors open late.
  • Far enough behind (over 2 seconds of backlog): the server gives up on catching up, skips those ticks and prints the warning.

The numbers in the message are how far behind it was, in milliseconds and in ticks (1 tick = 50 ms). "2500ms or 50 ticks" means 2.5 seconds of game time were skipped.

When can I ignore it?

Once or twice in a few situations is not a problem:

  • At startup while the spawn area and plugins or mods load.
  • Right after a big world event: someone flying with an elytra into new terrain, a huge TNT blast, loading a massive farm.
  • After the machine or the process was paused, such as a laptop waking from sleep or a server resuming from a pause. The clock jumped, so the server thinks it fell behind.

It is a real problem when it repeats every few minutes, shows numbers above a few thousand ms, or players complain about lag at the same times. Then measure.

How do I check TPS and MSPT?

Server Command What it shows
Vanilla (1.20.3+) tick query Target tick rate and the actual time per tick
Paper, Purpur mspt Average, min and max MSPT over recent periods
Paper, Purpur tps TPS over 1, 5 and 15 minutes
Paper (built in), or the spark mod/plugin anywhere spark tps TPS and MSPT, plus CPU use
Paper, or spark spark health TPS, MSPT, memory, CPU and disk in one report

Run these in the console without a slash, or in game with a / as an op. Watch the max MSPT as well as the average. An average of 30 with spikes to 400 is a stutter problem, often garbage collection or a farm turning on. An average sitting at 60 is a constant overload.

Step 1: Profile with spark

Guessing wastes hours. spark shows exactly where tick time goes.

spark profiler start --timeout 300

Play normally for those 5 minutes, ideally while the lag happens. spark then posts a link to a report. Open it and expand the Server thread. Follow the biggest percentages down:

  • Entity ticking at the top, with one entity type huge: mob farm, item pile, or villagers.
  • Block entity ticking: hoppers, furnaces, chests with comparators, modded machines.
  • Chunk generation or loading: players exploring new terrain.
  • A plugin or mod name: that plugin or mod is doing too much work per tick.
  • GC or lots of time outside the tick: memory pressure, see Step 5.

spark is built into Paper since 1.21. On Fabric, Forge or NeoForge, install the spark mod from Modrinth or CurseForge. On vanilla there is no spark, so perf start and perf stop (a vanilla command) produce a basic profile in the debug folder, but switching to Paper or Fabric is the better move.

Step 2: Lower simulation-distance and view-distance

These two server.properties keys decide how many chunks the server works on per player.

Key Default Try
simulation-distance 10 6
view-distance 10 8

simulation-distance is the radius in chunks around each player where mobs move, crops grow and redstone runs. Dropping it from 10 to 6 cuts the area from 21 by 21 chunks to 13 by 13, well under half the work, per player. It is the single most effective setting for "Can't keep up".

view-distance is how far players can see. It costs less CPU but more memory and bandwidth. Keep it at or above simulation-distance, since the world beyond it is only drawn, not ticked.

Paper also lets you set these per world in its config files, so you can keep the overworld at 8 and drop the Nether to 6. Restart after changing server.properties. Every key is listed in Minecraft server.properties explained.

Step 3: Deal with entities and farms

When spark points at entities, find where they are. On Paper:

paper entity list

It lists entity counts by type, split into ticking and non ticking. Add a filter, like paper entity list minecraft:villager, to narrow it down to one type. Typical culprits:

  • Villager trading halls with dozens of villagers. Villager pathfinding is expensive. Trap them in single block cells.
  • Mob farms that hold mobs instead of killing them. Make sure the kill chamber keeps up.
  • Item piles on the ground from broken farms. Fix the farm.
  • Animal pens with hundreds of cows or chickens. Agree a cap with your players.
  • Hopper chains: long hopper lines are surprisingly expensive. Water streams and minecarts work for moving items.

Paper settings that help, in config/paper-world-defaults.yml:

Key Default What it does
collisions.max-entity-collisions 8 Limits collision checks in crowded spaces.
entities.spawning.despawn-ranges per mob category Smaller ranges despawn far away mobs sooner.
environment.optimize-explosions false true makes TNT cheaper to process.
tick-rates.mob-spawner 1 Higher values tick spawners less often.

And in spigot.yml, entity-activation-range controls how far from players entities are fully ticked. Change one thing at a time and check MSPT again.

Step 4: Stop live world generation

Generating new chunks is one of the heaviest jobs a server does. If spark shows chunk generation, players are exploring new terrain, often fast on elytras.

The fix is to pregenerate. Install the Chunky plugin (or mod) and run, for example:

chunky radius 5000
chunky start

That generates everything within 5000 blocks of spawn ahead of time. Run it when nobody is playing, because it is heavy while it runs. Then set a world border so players cannot wander past the generated area:

worldborder set 10000

Step 5: Check memory and garbage collection

If spark shows lots of time in GC, or spark health shows memory near the limit, the server is short of RAM. Java has to keep cleaning memory, and each cleanup pauses the server. You see short freezes every minute or two and "Can't keep up" with modest numbers.

Fix: give it more RAM, or reduce what is using it (fewer loaded chunks, fewer mods). If memory sits at half the limit, RAM is not your problem and buying more will not help. Our Minecraft RAM guide has sizes by server type.

Step 6: Run better server software

Vanilla is the slowest option. Paper and Purpur, or Fabric with Lithium, do the same work in less time per tick. If you see "Can't keep up" on vanilla with a handful of players, switching to Paper often fixes it on its own. See Paper vs Spigot vs Purpur vs Fabric vs Forge. Click Backup before switching.

What about CPU?

Minecraft's main game loop runs on one thread, so single core speed matters more than core count. A server with more cores does not tick a single overloaded farm faster. That is why reducing work (Steps 2 to 4) helps more than throwing hardware at it. More cores do help with chunk loading, networking and garbage collection, which run on other threads.

FAQ

Is "Can't keep up" the same as lag?

It is one symptom of server lag. Players can also lag from their own connection or a slow PC. If TPS is 20 and MSPT is under 50, the server is fine and the lag is on the player's side.

Can one player cause "Can't keep up"?

Yes. One player flying through new terrain, running a huge farm or setting off a lot of TNT can push the whole server over 50 ms per tick. spark shows it, since the work happens around that player's location.

Does restarting fix it?

Temporarily. A restart clears loaded chunks and dropped items, so MSPT drops. If the cause is a farm or a setting, it comes back. A daily restart is still reasonable on modded servers.

What is a good MSPT for a Minecraft server?

Under 50 means no lag. Under 30 leaves headroom for spikes. Consistently above 50 means TPS is dropping and players notice.

My modpack server always shows it. Is that normal?

At startup, yes. During play, no. Big packs are heavy, so lower simulation-distance, pregenerate with Chunky, and run spark to find the mod or machine doing the most work. If memory is at the limit, the pack needs a bigger plan.

Run it on hardware that keeps up

On a GamezServers Minecraft server, Paper and its built in spark profiler are ready from the first start, the panel shows live CPU and memory next to the console, and you can move to a bigger plan from Settings without losing anything. For lag that is not "Can't keep up", such as one player rubber banding, read the Minecraft server lag fix.

Skip the setup. Your own Minecraft server.

$2.49USD first month

Then $4.99/mo. Just trying it? $1.25 for 3 days

Keep reading