Minecraft server lag is one of three different problems: the server is ticking too slowly, a player’s connection is slow, or a player’s device is drawing too few frames. Only the first is fixed on the server. So check before you change anything. On Paper, run /tps and /mspt. A healthy server shows 20 TPS and an MSPT below 50.
The three kinds of Minecraft server lag
| Kind | What players see | Who feels it | How to check |
|---|---|---|---|
| Server tick lag (low TPS) | Mobs freeze, broken blocks come back, players snap backward | Everyone, at the same moment | /tps, /mspt, /tick query |
| Network lag (high ping) | Actions land late, chat and doors respond slowly | One player, or the players far from the server | /spark ping, the player list |
| Low frame rate (FPS) | A choppy picture, while everything still happens on time | One player, on one device | The F3 screen on Java Edition |
How to tell which one you have
Run these in the server console without the slash, or in game as an operator.
1. Check the tick rate. The server tries to run 20 ticks a second, so each tick has 50 milliseconds. MSPT is milliseconds per tick: Paper’s command reference notes that it should be below 50 for 20 TPS.
/tps
/mspt
/tick query
/spark tps
/tps(Paper and Purpur) shows the average TPS over the last 1, 5 and 15 minutes./mspt(Paper and Purpur) shows the average, lowest and highest milliseconds per tick over the last 5, 10 and 60 seconds./tick queryworks on a vanilla server. It reports the target rate and the time per tick, and says so when the game cannot keep up./spark tpsprints TPS and processor usage. spark has been bundled with Paper since 1.21. On Fabric, Forge and NeoForge, install it from its download page.
2. Check ping. /spark ping prints the average ping of the players online. Add --player and a name for one player. On Java Edition, holding Tab shows connection bars beside each name: according to the Minecraft Wiki, the fullest icon means under 150 ms. F3 + 3 shows a ping graph.
3. Check frame rate. On Java Edition, press F3 and read the FPS line. The debug screen is Java only.
Then read the result:
- MSPT above 50, everyone affected: server tick lag. Use the fixes below.
- 20 TPS, one player with high ping: that player’s connection or distance from the server.
- 20 TPS, good ping, choppy picture: that player’s device.
Fix server tick lag, in order of payoff
Change one thing at a time and run /mspt again after each.
1. Run Paper if you do not need mods
Paper is server software built for performance. Its own documentation says “Out of the box, Paper is optimized for performance.” It runs plugins, not mods. Back up your world before switching. Our comparison of Paper, Spigot and Purpur explains the choice.
On a modded server you cannot use Paper. The Lithium mod optimizes game logic on Fabric and NeoForge servers, and Modrinth lists it for Minecraft 26.3 as of October 2026.
2. Lower simulation distance, then view distance
Both live in server.properties. Both default to 10 and accept 3 to 32.
simulation-distanceis how far from each player the server updates entities. It costs processor time.view-distanceis how much of the world the server sends to each player. It is cheaper than simulation distance, but every chunk takes memory: about 441 chunks per player at 10, and 289 at 8.
Paper’s documentation does not recommend numbers. It links to a community optimization guide, which says to keep simulation distance equal to or lower than view distance and strongly discourages setting either below 5. Within those limits, this is a starting point of our own:
simulation-distance=6
view-distance=8
Stop the server, edit the file, then start it again. The server.properties guide covers the file, and the server.properties generator writes it for you.
3. Pre-generate the world
Creating new terrain is heavy work, so lag often appears when players explore. Chunky generates the chunks ahead of time. It is listed for Paper, Spigot, Fabric, Forge and NeoForge. Install it first, the same way as any plugin or mod, and restart. Then run these in the console while nobody is online:
chunky radius 3000
chunky start
chunky pause saves progress, chunky continue resumes and chunky cancel stops the task. A generated world takes disk space, so watch your storage. A free Severoo server has up to 20 GB of NVMe SSD storage.
4. Cut entity and redstone load
Every mob, dropped item and minecart is updated every tick. On Paper, /paper entity list lists the entities that are currently ticking, so you can see which kinds have piled up. Then:
- Ask players to cap animal pens and switch off redstone clocks they are not using.
- Lower the mob caps under
spawn-limitsinbukkit.yml. The defaults are 70 for monsters and 10 for animals. Go down in steps: fewer mobs also means slower mob farms. - Try a faster redstone engine. In
config/paper-world-defaults.yml, find the existingredstone-implementationline undermiscand change its value:
misc:
redstone-implementation: ALTERNATE_CURRENT
The default is VANILLA. Restart after the change. Paper’s world configuration reference says the alternatives “can greatly reduce the lag caused by redstone dust” but also change how redstone dust behaves, so test your players’ contraptions afterward.
5. Find a slow plugin or mod with a profiler
A profiler records what the server spends its time on. Start it while the lag is happening. Paper’s profiling page is firm that the problem must be occurring for the result to mean anything.
/spark profiler start --timeout 600
After 600 seconds, spark returns a link to a report. Open the Server thread and follow the lines with the highest percentages. The Sources view shows a separate tree for each plugin or mod, which is the quickest way to spot one that stands out. Update or remove it, or send the link to its developer.
For short spikes instead of constant lag, record only the slow ticks, then stop the profiler by hand:
/spark profiler start --only-ticks-over 150
/spark profiler stop
6. Set memory correctly
Memory settings come last because they rarely cause tick lag. Paper’s documentation says to give -Xms and -Xmx the same value, about 1000 to 1500 MB below what your host gives you. The start script generator builds the command. If you are truly short, the RAM calculator shows how much you need.
Fix high ping
Ping comes from the distance between a player and the server and from the player’s own connection. No server setting changes it.
- If your host lets you pick a location, choose the one nearest to most of your players.
- Players on Wi-Fi can move closer to the router or use a cable, and pause downloads and streams.
- If everyone has a high ping at once, the problem is on the host’s network. Contact the host.
Fix low frame rate
Frame rate belongs to the player’s device. The player can lower render distance and graphics quality in the game’s video settings, and close other apps. Nothing on the server raises it.
What no free host can promise
Free hosts generally run many servers on shared processors. When other servers on the same machine are busy, your ticks can take longer, and no setting of yours changes that. Nobody can honestly promise zero lag, and Severoo does not.
What you control is how much work your server asks for. The six fixes above lower it, and our plans page lists what a free server gets. If MSPT stays above 50 on a small, clean server at every hour of the day, the machine is too busy: tell your host, and send a spark report with the message.