How to Fix Minecraft Server Lag in 2026 (TPS, RAM & Plugins)
Server lag ruins the Minecraft experience — rubber-banding, delayed block placing, and mobs teleporting around are all symptoms of a server struggling to keep up. The good news: most lag is fixable in under 10 minutes with the right settings changes. This guide walks through every common cause, from quick wins to deeper fixes.
Contents
- Understanding TPS — the key metric
- How to diagnose the cause of lag
- Fix 1: Reduce view and simulation distance
- Fix 2: Control entity counts
- Fix 3: Find and remove laggy plugins
- Fix 4: Switch to Paper (if you haven't already)
- Fix 5: Tune Paper and Spigot config files
- Fix 6: Adjust RAM and JVM flags
- Fix 7: Deal with farm and redstone lag
- FAQ
Understanding TPS — the key metric
Minecraft's game engine runs on a loop of 20 ticks per second (TPS). At 20 TPS everything runs perfectly — mobs move smoothly, redstone fires instantly, and block interactions feel immediate. When the server can't keep up with that pace, TPS drops and lag appears.
| TPS | Status | What players notice |
|---|---|---|
| 20 | Perfect | Nothing — the server runs as expected |
| 18–19 | Good | Negligible — very light occasional stutter |
| 15–17 | Noticeable lag | Rubber-banding, delayed block breaking, mob movement stutters |
| 10–14 | Significant lag | Frequent rubber-banding, commands slow to process, items delayed |
| <10 | Severe / near-unplayable | Server is struggling critically — needs immediate attention |
/tps in-game. You'll see three numbers: the TPS over the last 1 minute, 5 minutes, and 15 minutes. All three should be at or near 20.
How to diagnose the cause of lag
Before changing settings at random, identify what is actually causing the lag. The best free tool for this is Spark, a profiler plugin that shows you exactly which part of your server is eating CPU time.
Install Spark on your server
- Download the latest Spark JAR from spark.lucko.me
- Upload it to your
/pluginsfolder via the FreeGameHost File Manager - Restart your server — Spark loads automatically
Run a profiling report
When your server is lagging, run this in the console:
# Let it run for 2–3 minutes during the lag, then:
spark profiler stop
Spark will output a URL with a detailed breakdown of every thread and plugin consuming CPU time. Look for anything using more than 5–10% of tick time — that's your culprit.
/spark entities or use the Essentials command /lag to see how many entities are loaded. More than 2,000 entities is a red flag.
Fix 1: Reduce view and simulation distance (biggest win)
This is the single most impactful change you can make. Minecraft's default view-distance is 10 chunks — that means the server is loading and ticking chunks in a 21×21 area around every player. With 4 GB of RAM and several players online, this is often the primary cause of lag.
Recommended settings in server.properties
view-distance=10
simulation-distance=10
# Recommended for a free 4GB server:
view-distance=6
simulation-distance=4
Open server.properties in your File Manager, change these two values, save, and restart. The difference is dramatic — many servers go from 14–16 TPS back to 20 TPS from this change alone.
- view-distance controls how many chunks are sent to the player's client (what they can see)
- simulation-distance controls how many chunks are actively ticked — mobs moving, crops growing, redstone firing. This is the more performance-critical setting.
Fix 2: Control entity counts
Entities — mobs, dropped items, minecarts, armour stands, arrows — each take CPU time every tick. A farm that's been running for weeks can accumulate thousands of dropped items. Mob breeders can fill a chunk with hundreds of animals.
Clear dropped items and excess mobs
# Kills all dropped items on the server instantly
/kill @e[type=!player]
# Kills everything except players — use with caution on survival servers
Set entity limits in spigot.yml
Edit spigot.yml in your File Manager and reduce mob caps per chunk. Lower values mean fewer mobs tick per chunk:
mob-spawn-range: 4 # default 8
entity-activation-range:
animals: 16 # default 32
monsters: 24 # default 32
misc: 8 # default 16
Enable merge options for items
Also in spigot.yml, increasing the item-merge radius groups nearby dropped items into stacks, drastically reducing entity count in busy areas:
item: 4.0 # default 2.5
exp: 6.0 # default 3.0
Fix 3: Find and remove laggy plugins
Plugins run code every server tick. A poorly optimised plugin — or one that scans large areas or makes database calls on the main thread — can single-handedly tank your TPS.
After running a Spark profile, look at the results for any plugin consuming a disproportionate share of tick time. Common offenders include:
- Old or unmaintained anti-cheat plugins
- Plugins that check every block in a radius every tick
- Custom plugins with blocking database queries
- WorldBorder when regenerating or filling chunks
To test if a plugin is the culprit, disable it temporarily by removing it from the /plugins folder and restarting. If TPS recovers, that's your answer.
Fix 4: Switch to Paper
If you're running a vanilla or Spigot server, switching to Paper is one of the most effective performance upgrades you can make — and it's free. Paper includes hundreds of performance patches over vanilla and Spigot, including:
- Async chunk loading (chunks load without stalling the main thread)
- Optimised entity tracking and pathfinding
- Configurable mob AI tick rates
- Built-in fixes for common vanilla lag sources (hopper spam, TNT duplication, etc.)
In your FreeGameHost panel, go to Startup and change the server type to Paper, then restart. Your world data carries over — no rebuild needed.
Fix 5: Tune Paper and Spigot config files
Paper has its own config file (config/paper-global.yml and config/paper-world-defaults.yml on newer versions) with settings that make a significant difference. These are the most impactful ones:
# Reduce how often entities outside active range tick:
entity-activation-range:
wake-up-inactive:
animals-max-per-tick: 4
monsters-max-per-tick: 8
# Limit the TPS cost of hoppers:
hopper:
disable-move-event: true
cooldown-when-full: true
# Despawn ranges for mobs:
despawn-ranges:
soft: 28
hard: 48
Fix 6: Adjust RAM and JVM flags
FreeGameHost gives you 4 GB of RAM on the free tier — enough for most friend-group servers. However, how that RAM is managed by Java's garbage collector matters too. Poorly tuned JVM flags cause "GC pauses" — brief freezes while Java cleans up memory — which show up as TPS spikes and lag bursts.
Use Aikar's JVM flags
Aikar's flags are the gold standard for Minecraft Java servers. In your FreeGameHost panel, go to Startup and check that your JVM arguments field contains these flags (or ask support to apply them):
-XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC
-XX:+AlwaysPreTouch -XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5
-XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5
-XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1
Fix 7: Deal with farm and redstone lag
Automated farms are some of the biggest sources of server lag, especially once a world has been running for a while. Here's how to identify and manage them:
If a farm produces items faster than players can pick them up, thousands of item entities pile up. Add a despawn-time reduction in paper.yml, or build in item collection via hoppers directly so items never drop loose.
A 1-tick or 2-tick redstone clock fires thousands of times per minute. Add a button or lever to pause clocks when not in use, or replace fast clocks with observer chains where possible. Paper's disable-moved-wrongly-threshold setting also helps contain the overhead.
A mob farm that stacks 300+ mobs in a small area is extremely taxing. Set the max-entity-cramming gamerule to 8–10 (default 24) to automatically kill mobs beyond that count in a block: /gamerule maxEntityCramming 8. This caps farm size without breaking the mechanic.
Piston-based flying machines update hundreds of blocks per cycle and generate block update events on the main thread. If a specific machine is causing lag, Spark will show pistonMoveReaction or similar consuming tick time. Coordinate with the builder to add an off-switch, or use Chunk Limits plugins to cap activity in specific areas.
Frequently asked questions
My server shows 20 TPS but players still feel lag — what's wrong?
TPS is a server-side metric. If the server TPS is 20 but players feel lag, the issue is likely client-side (the player's internet connection or their PC struggling to render) or network latency (high ping between the player and the server). Check players' ping in-game with /ping PlayerName if you have EssentialsX installed.
Does pre-generating the world help with lag?
Yes — significantly. When players explore new terrain, the server has to generate new chunks on the fly, which is expensive. Pre-generating a border around spawn means all the chunk data already exists on disk and just needs to be loaded, not created. The Chunky plugin handles this cleanly. Run /chunky start after configuring a radius.
Will more RAM fix my lag?
Only if RAM is the bottleneck. Check your RAM usage in the FreeGameHost panel — if it's consistently hitting 90–100%, upgrading makes sense. If RAM is only at 60–70%, more RAM won't help — the issue is likely CPU-bound (too many entities, view distance, or a laggy plugin). Our premium plans offer additional RAM from €1/GB if you do need to scale up.
Can I fix lag without restarting the server?
Many fixes can be applied live: clearing entities with /kill commands, running /gamerule changes, disabling plugins with a plugin manager (like PlugMan), and changing view distance with /paper distance on some Paper versions. Config file changes (server.properties, spigot.yml, paper.yml) generally require a restart to take effect.
Running on a slow host? FreeGameHost gives you 4 GB RAM and optimised Paper servers — free forever.
Get a Free Server →Related guides: Best Minecraft server plugins 2026 • How to install mods on a Minecraft server • How to make a Minecraft server for friends • Free Minecraft Java Hosting
Free tools & hosting: Minecraft RAM calculator