Skip to main content
Guide

How to Reduce Lag on Your Minecraft Server

Lag kills the fun faster than a creeper explosion. This guide covers every practical optimization you can make to keep your server running at a smooth 20 TPS.

Understanding TPS

TPS stands for ticks per second, and it is the heartbeat of every Minecraft server. The game runs at 20 ticks per second, meaning the server processes all game logic, mob movement, block updates, redstone, player actions, twenty times every second. Each tick has a budget of 50 milliseconds. When a tick takes longer than 50ms, the server falls behind and TPS drops below 20. At 18 TPS, players start noticing slight delays. At 15 TPS, the game feels noticeably sluggish. Below 10 TPS, it becomes nearly unplayable.

Check your current TPS by running /tps in the server console or in-game. Paper servers show three averages: 1 minute, 5 minutes, and 15 minutes. Focus on the 1-minute average since it reflects current performance.

Three Types of Lag

Server-side lag is the most common and the one you have the most control over. This is when the server cannot process ticks fast enough, and it is what TPS measures. Causes include too many entities, poorly optimized plugins, massive redstone contraptions, and excessive chunk loading.

Client-side lag happens on the player's computer, not the server. This looks like low FPS, stuttering, or visual glitches. You cannot fix client-side lag from the server, but you can reduce the load on players by lowering the view distance, which sends fewer chunks to render.

Network lag, commonly called ping, is the delay between a player's action and the server receiving it. This is determined by physical distance and network routing. A player in Europe connecting to a server in the US will always have higher ping than a local player. Choosing a server location close to your players is the best way to minimize network lag.

Pre-Generate Your Chunks

Chunk generation is one of the most CPU-intensive things a Minecraft server does. Every time a player walks into unexplored territory, the server has to generate new terrain from scratch, including biomes, caves, structures, ore distribution, and lighting. If multiple players are exploring in different directions simultaneously, this can tank your TPS fast.

The solution is to pre-generate chunks before players arrive. The Chunky plugin lets you generate a radius of chunks around spawn ahead of time. Install Chunky, set a world border using /chunky radius 5000, then start the generation with /chunky start. Run this when the server is empty or during off-peak hours since the generation process itself uses CPU resources.

Lower Your View Distance and Simulation Distance

View distance controls how many chunks the server sends to each player. The default is 10, which means a 21x21 grid of chunks per player (441 chunks). Lowering it to 6 or 8 reduces that to 169 or 289 chunks, a huge reduction in memory and CPU usage. Most players will not notice the difference between 8 and 10 chunks of view distance during normal gameplay.

Paper and Purpur let you set simulation distance separately from view distance. Simulation distance controls how far from the player entities and block updates are processed, while view distance only affects which chunks are visually rendered. Set simulation distance to 4 or 5 and view distance to 7 or 8 for the best balance between performance and player experience. Edit these in your server.properties file.

Clean Up Entities

Entities are one of the biggest performance drains on a Minecraft server. Every mob, dropped item, item frame, armor stand, and minecart is an entity that the server has to process every tick. A farm with 500 chickens in a 10-block area is doing far more damage to performance than most players realize.

Paper has built-in settings to limit entity density. In paper-world-defaults.yml, you can adjust entity activation ranges and tick rates. Entities further from players can be ticked less frequently without any noticeable gameplay impact. You can also set spawn limits in bukkit.yml to reduce the total number of mobs that can exist simultaneously.

Optimize Redstone

Complex redstone circuits can consume a surprising amount of server resources. Every redstone update triggers block update events that cascade through connected components. A single fast redstone clock can generate hundreds of block updates per second. Paper includes an alternate redstone implementation that reduces unnecessary block updates while maintaining the same behavior for almost all practical redstone builds. You can enable it in the Paper configuration file.

If your server has players building elaborate redstone factories, consider setting rules around hopper usage. Hoppers are notoriously expensive because each one checks for items every tick. A large sorting system with 200 hoppers can eat more performance than 50 players exploring the world. Encouraging players to use water streams instead of hopper chains where possible can make a meaningful difference.

Use Spark to Find the Bottleneck

Spark is a performance profiler for Minecraft servers that tells you exactly where your server is spending its time. Instead of guessing what is causing lag, install Spark and run /spark profiler start during a period of lag. After a few minutes, stop the profiler and it generates a shareable link with a detailed breakdown of what consumed CPU time during the capture.

Spark's report shows you whether the problem is entity ticking, chunk loading, plugin event handling, or something else entirely. This is far more productive than randomly changing settings and hoping something helps. It comes pre-installed on Paper 1.21+ servers, so you may already have it.

Plugin-Related Lag

Not all plugins are created equal. Some are well-optimized and barely register on a profiler. Others run expensive operations on the main thread, schedule tasks too frequently, or leak memory over time. If your Spark profile shows a specific plugin taking up a large percentage of tick time, that plugin is your problem. Check if there is an update available, look for configuration options to reduce its impact, or consider switching to a lighter alternative.

Running thirty or forty plugins is not inherently bad, but each one adds some overhead. Audit your plugin list periodically and remove anything you are not actively using. A server running fifteen well-chosen plugins will outperform one running forty plugins where half of them overlap in functionality.

When to Upgrade Your Plan

If you have applied all the optimizations above and your server still struggles to maintain 20 TPS, it is time to upgrade. A server that consistently sits above 80% RAM usage or sees CPU spikes during normal gameplay needs more resources. Check our RAM guide to make sure you are on the right plan for your server's workload.

All Astroworld plans run on NVMe SSDs with dedicated vCPU cores, which helps with both chunk loading speed and tick processing. Check the full feature list to see what is included with every plan.

View Plans