How to reduce lag on a Minecraft server
Practical ways to fix Minecraft server lag on Schokr: find the cause with spark, lower view and simulation distance, pre-generate chunks and limit entities.
Updated · 2 min read
Server lag almost always comes from one of a few causes: too many entities, chunk generation while players explore, high view or simulation distance, heavy plugins or mods, or not enough CPU or memory. Measure first, then fix the biggest cause.
First, is it server lag or connection lag?
| Symptom | Likely cause |
|---|---|
| Blocks reappear after breaking, mobs freeze, everyone lags at once | Server lag (low TPS) |
| Only one player lags, everyone else is fine | That player's connection or computer |
| Low FPS, choppy screen | The player's computer (client lag) |
Check the server with /tps and /mspt on Paper. 20 TPS and MSPT under 50 means the server is keeping up. See TPS and MSPT explained.
1. Find the cause with spark
Run a profiler during a lag period instead of guessing:
/spark profiler start
/spark profiler stop
The link shows exactly what uses the most tick time. See how to use spark.
2. Lower view and simulation distance
In server.properties:
view-distance=8
simulation-distance=6
view-distance is how far chunks are sent to players. simulation-distance is how far around each player mobs, crops and redstone actually tick, and it has the bigger effect on CPU. Lowering simulation distance to 4 to 6 is one of the most effective changes on a busy server.
3. Pre-generate the world
Generating new chunks is expensive. When players explore with elytra, the server can fall far behind. Pre-generate a fixed area with Chunky and set a world border. See pre-generate your world with Chunky.
4. Control entities
- Large mob farms, item piles and hundreds of animals in one place are the most common lag sources.
- Ask players to cap animal pens and use kill chambers that clear mobs quickly.
- In
spigot.yml,entity-activation-rangemakes far-away entities tick less often, andmerge-radiusmerges nearby dropped items and XP orbs. - Paper's world config can limit how many of certain entities are saved per chunk. See Paper config optimization.
5. Tame redstone and hoppers
Big clocks and long hopper chains run every tick. Paper offers faster redstone implementations, and in a profile you will clearly see if hoppers or redstone dominate.
6. Review plugins and mods
Remove anything you do not use. In a spark profile, look for one plugin taking a large share of the tick. Update it, configure it, or replace it.
7. Check your resources
- Your team's free pool is 150% CPU (1.5 cores) and 6 GB of memory, split across all your servers. If you gave this server only a small share, it may simply be CPU-starved. Adjust the split, or add CPU with a store upgrade.
- The main game loop runs mostly on one thread, so steady CPU for that thread matters more than many cores.
- Too little memory causes frequent garbage collection pauses; too much is not helpful either. See memory and JVM flags.
8. Use Paper instead of Vanilla
Paper includes many performance fixes over Vanilla while staying compatible with normal clients. If you run Vanilla and do not need exact vanilla mechanics, switching to Paper is often the single biggest improvement.
Still lagging?
Share a spark profile link in the Schokr Discord. It tells helpers far more than a description of the lag.