Updated 2026-10-27 ยท All guides
How to fix Minecraft server lag
"The server is lagging" can mean three different problems, and the fix for one does nothing for the others. The first job is to work out which kind you have.
Three kinds of lag
| Kind | What players notice | Where the problem is |
|---|---|---|
| Server lag (low TPS) | Everything slows down for everyone: mobs move in slow motion, blocks take a moment to break, furnaces are slow, the day lasts longer. | The server's CPU can't keep up. |
| Network lag (high ping) | Rubber-banding, delayed hits, but the world itself runs at normal speed. Often only some players are affected. | The connection between a player and the server, often your upload speed. |
| Client lag (low FPS) | Choppy, stuttering picture for one player only. | That player's own PC. Lower their render distance or add Sodium. |
The quickest test: if you're on the server PC and join with localhost, network lag disappears. If it's still slow for you, it's server lag.
Measure it: TPS and MSPT
Minecraft runs in ticks. A healthy server does 20 ticks per second (TPS), which leaves 50 milliseconds for each one. MSPT is how many milliseconds a tick actually takes.
- MSPT under 50 and TPS at 20: the server is fine. Any lag is network or client.
- MSPT around 40 to 50: it's coping, but has no room to spare when more players join.
- MSPT over 50, TPS under 20: the server is falling behind. You'll also see "Can't keep up! Is the server overloaded?" in the console.
On Paper and Purpur, type /tps and /mspt. On Vanilla 1.20.3 and newer, /tick query shows the same numbers. On any version, the spark plugin or mod gives you /spark tps.
Find the cause with spark
Guessing at lag wastes a lot of time. spark is a free profiler for Paper, Purpur and Fabric (and it's built into newer Paper versions). Run /spark profiler start, play normally for a few minutes while the lag happens, then run /spark profiler stop. It gives you a link to a report that shows exactly what the server spent its time on.
You don't need to understand all of it. Open the tree under the main "Server thread" and follow the biggest percentages down. The usual suspects have recognisable names:
- Entity ticking (names with "entity" or specific mobs): too many mobs or dropped items somewhere.
- Chunk generation or loading: players exploring new land.
- Block entities / tile entities: lots of hoppers, furnaces or modded machines.
- A plugin or mod name: one add-on is doing too much work.
Fix 1: lower view and simulation distance
This is the single most effective change. In server.properties:
simulation-distancecontrols how far from each player mobs, crops and redstone actually run. Going from 10 to 6 cuts the area that ticks by almost two thirds.view-distancecontrols how far players can see. Going from 12 to 8 cuts the chunks sent to each player by more than half.
Something like view distance 8 and simulation distance 6 is a good target for a home PC with a handful of players. Players who want to see further can install a client mod like Distant Horizons or Bobby, which shows distant terrain without the server doing the work.
Fix 2: pre-generate the world
Generating new chunks is one of the most expensive things a server does. When several players fly with elytra in different directions, the server has to build the world around all of them in real time. Pre-generating does that work in advance, while nobody is playing.
Install the Chunky plugin (Paper/Purpur) or mod (Fabric), set a border, and let it run:
/worldborder set 10000
/chunky radius 5000
/chunky start
A 5,000-block radius takes a few hours and a couple of gigabytes of disk. Run it overnight. The world border stops players going beyond the pre-generated area.
Fix 3: use Paper or performance mods
If you're on Vanilla, switching to Paper or Purpur is a big, free improvement, and your world carries over. Make a backup, swap the server jar and start it up. If you play modded, add these Fabric mods to the server, which change nothing about gameplay:
- Lithium: faster game logic.
- FerriteCore: uses less memory.
- C2ME: faster chunk loading and generation.
See Paper vs Fabric vs Vanilla if you're not sure which server software suits you.
Fix 4: deal with too many entities
A single farm with hundreds of animals, a chicken farm nobody collects from, or a pile of dropped items can bring a server to its knees. Ways to find and fix it:
- spark's report names the busy entity types, and Paper's
/paper entity listcommand shows where they are. - Breed animals in sensible numbers. Fifty cows don't give you more leather per minute than twenty if you only have one killing area.
- Use hoppers or minecarts to collect farm output so items don't pile up on the floor.
- On Paper,
paper-world-defaults.ymlhas limits for things like how often hoppers check for items and how many items or experience orbs merge together. The defaults are already sensible; the Paper documentation explains each one.
Fix 5: check the PC itself
- Single-core speed matters more than core count. The main game loop runs on one core, so a fast modern CPU beats an old one with more cores.
- Use an SSD. Saving and loading chunks from an old hard drive causes stutters.
- Give it the right amount of RAM. Too little causes constant garbage collection and crashes; much too much can cause long pauses. See how much RAM a server needs.
- Close heavy programs. Playing Minecraft, streaming and running the server on one PC adds up. The Windows Task Manager shows if the CPU is pinned at 100%.
- Laptops: plug it in and pick the "Best performance" power mode, otherwise Windows slows the CPU down to save battery.
Fix 6: network lag
If TPS is a solid 20 but players still rubber-band:
- Check your upload speed with a speed test. Home broadband often has a much lower upload than download. Plan for about 1 Mbit/s of upload per player.
- Use a network cable for the server PC instead of Wi-Fi.
- Stop big uploads while people play: cloud backups, OneDrive syncing and streaming all compete for the same upload.
- Lower view distance helps here too, because players download fewer chunks.
- If only one player lags, the problem is probably their connection, especially if they're far away or on mobile data.
A quick checklist
- Is MSPT over 50? If not, it isn't server lag.
- Run a spark profile while it lags.
- Lower simulation distance to 6โ8 and view distance to 8โ10.
- Pre-generate the world and set a world border.
- Switch to Paper or add Lithium.
- Look for a farm or item pile with far too many entities.
HostCraft's Performance tab graphs the server's CPU and memory use over time, so you can see whether lag lines up with players joining, a backup running or the server running out of memory.