How to optimize your Minecraft server!
Running a smooth Minecraft server is a balancing act. Whether you’re running a survival SMP with friends, a competitive PvP network, or a heavily modded server, dropped ticks and server lag can ruin the experience.
With Minecraft 1.21 / 1.22 and the upcoming updates, the game’s core engine demands more system resources than ever. Vanilla Minecraft code simply isn’t designed to efficiently process multiple players, high render distances, and massive mob farms at once.
In this guide, based on the famous YouHaveTrouble Minecraft Optimization Guide, we’ll walk you through tuning your configs, tweaking game mechanics, optimizing mods, and choosing the right server hosting hardware to ensure your server stays locked at a smooth 20.0 TPS.
Above all, take backups, no changes made here will break your server, but you never know what could happen if you change a value to high or to low. Play it safe and always take backups.
Understand Your Server Files
Optimizing Minecraft isn't about blind changes; it's about knowing which configuration file handles the specific type of lag you are experiencing. Rather than tweaking everything at once, learn which file targets your problem areas.
World Simulation & Network: server.properties
This is your base layer. If your server's CPU is choking under the weight of active chunks, this is where you start.
This file controls how much of the world surrounding each player is actively processing game logic versus how much is merely visual. If player exploration or massive bases are causing global tick drops.
One important value to update here is simulation-distance. Lowering this (for example, from the default 10 down to 4 or 5) tells the server to stop processing crop growth, redstone, and mob AI past a tight radius around the player. It provides an extremely big performance boost, as it allows the server to waste less resources in loading the world and gives priority to more important or demanding tasks.
There is a trade-off, however. Large automated farms will stop producing if a player moves too far away. To compensate, you can keep view-distance slightly higher so players can still see the scenery without causing extra CPU strain.
Mob Behavior & Spawns: spigot.yml
If entity counts are bogging down your TPS, spigot.yml is your control panel for managing living creatures and items on the ground.
Entities (mobs, animals, items, and arrows) are extremely CPU-intensive because the server constantly calculates their pathfinding AI and collision physics. In fact, large entity numbers are one of the most common causes for lag and rubber-banding. If you notice high entity counts in performance reports or your server struggles when players build dense animal pens and mob farms.
For this, Spigot has the entity-activation-range option. Instead of outright disabling mobs, this setting lets you put distant mobs into a "sleep mode." By reducing ranges for animals and monsters (e.g., dropping animals to 16 blocks and monsters to 24), entities outside that bubble pause their AI until a player walks closer.
This setting doesn't really have any trade-offs, other than mobs outside of the activation range will remain still and lifeless, but the moment you approach them, they will start moving again. Think of it as an on-and-off switch.
Some farms may present issues, but the CPU performance this gives is quite important, so make sure you test around these values and find the perfect balance between performance and mob-activity.
Engine Tweaks & World Saving: paper-world-defaults.yml (or paper.yml)
If you run Paper or Purpur, which you should for any vanilla-style or plugin server, this file provides granular control over the Minecraft engine itself. Paper fixes underlying bugs and inefficiencies in vanilla code, allowing you to fine-tune mechanics like autosaving, despawning, and chunk loading.
If your server experiences brief lag spikes every few minutes (autosave lag) or if fast-moving players flying with Elytras cause full-server freezes.
The best setting to optimize this is despawn-ranges. Lowering hard and soft despawn ranges causes hostile mobs to clear out faster as players travel, keeping total mob counts low without altering spawn rates. Meanwhile, settings like prevent-moving-into-unloaded-chunks protect the main CPU thread by stopping high-speed travelers from forcing the server to load terrain instantly. Players traveling at ultra-high speeds will get temporarily stopped/rubberbanded at the edge of loaded chunks while the server catches up, rather than dragging the whole server down with them.
Special AI Controls: purpur.yml
If you take the step to run Purpur, you gain access to hyper-specific gameplay tweaks. Purpur allows you to strip heavy AI features from specific problem entities that usually plague late-game survival servers. If mature bases with trading halls full of villagers are eating up all your processing power.
For example, villager lobotomization (mobs.villager.lobotomize.enabled). This strips pathfinding calculations from villagers trapped in confined spaces. They can still trade normally, but they stop constantly trying to pathfind toward bed sites or iron golem spawn points.
What About Modded Servers? (Fabric & NeoForge)
If you run modpacks, configuration files are only part of the solution. Modded lag usually stems from two issues: RAM exhaustion and live chunk generation.
Rather than relying purely on config files, modded servers require dedicated performance mods that rewrite how the game processes data:
- Managing Memory: Mods like FerriteCore optimize internal data structures, drastically lowering RAM consumption.
- Entity & Physics Optimization: Mods like Lithium (Fabric) or Canary (NeoForge) optimize physics calculations and mob pathfinding without changing vanilla farm behavior.
- Handling Exploration: The heaviest task a modded server faces is calculating new terrain while a player flies across the map at top speed. Using tools like Chunky to pre-generate your world boundaries before players join converts real-time CPU calculations into simple disk reading, eliminating exploration lag entirely.
Treat Optimization as a Living Process
Both this article and the YouHaveTrouble guide are blueprints, not strict rulebooks. There is no single "magic config" that guarantees 20 TPS for every server on earth.
Every adjustment you make is a negotiation between raw performance and gameplay fidelity:
- If you run a technical Redstone server, aggressive simulation distances and mob AI limits will frustrate your community.
- If you run a fast-paced minigame or PvP server, visual view distance matters far less than raw input latency and entity responsiveness.
As an administrator, your goal is to test settings, monitor your server using diagnostic tools like /spark, read the documentation for your server software, and adjust variables in a way that respects how your players actually play the game.
Powering Your Vision with the Right Hardware
Software optimization can only streamline what your hardware is physically capable of processing. Because Minecraft’s internal game loop relies almost entirely on a single CPU core, raw processor speed is often the ultimate bottleneck.
At PloxHost, we match our hosting infrastructure to the actual demands of your setup:
- PloxHost Budget MC Servers (Intel Xeon E5): Excellent for smaller, casual setups, such as private SMPs with 1–15 players or lightweight plugin servers, where enterprise reliability and DDoS protection matter more than raw single-core clock speeds.
- PloxHost Extreme MC Servers (AMD Ryzen 7 & 9): Designed for demanding workloads like large public networks, technical redstone communities, and heavy Fabric or NeoForge modpacks. Powered by high-boost Ryzen processors (up to 5.7GHz single-core performance) and ultra-fast NVMe storage, these nodes provide the raw headroom necessary to maintain a locked 20.0 TPS under intense player load.
Take time to evaluate your server's needs, read through your server software documentation, and tailor your environment so your players enjoy a lag-free experience!