NewSchokr 13 is here. A whole new UI, seven locations, snapshots and more. Read more →

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?

SymptomLikely cause
Blocks reappear after breaking, mobs freeze, everyone lags at onceServer lag (low TPS)
Only one player lags, everyone else is fineThat player's connection or computer
Low FPS, choppy screenThe 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-range makes far-away entities tick less often, and merge-radius merges 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.