The Ultimate Minecraft Server Configuration Guide: Paper, Spigot, and Bukkit
A categorical breakdown of the best performance settings for your server.properties, bukkit.yml, spigot.yml, and paper configuration.
Reading time: 3 min read
The Ultimate Minecraft Server Configuration Guide
Hardware is only half the battle. To truly optimize a Minecraft server, you must tune the configuration files. This guide breaks down the most impactful settings across the four main configuration files used by PaperMC and its forks.
1. server.properties
The base configuration for all Minecraft servers.
- view-distance:
7-8. Lowering this reduces the number of chunks sent to players. - simulation-distance:
4. This is the most impactful setting. It limits the distance at which entities and blocks (like crops) actually tick. - network-compression-threshold:
256. If you are behind a proxy like BungeeCord or Velocity on the same machine, set this to-1.
2. bukkit.yml
Controls fundamental world and entity spawning settings.
- spawn-limits:
monsters: 20animals: 5ambient: 1- Reduced limits allow for more players without exceeding the global mob cap.
- ticks-per.monster-spawns:
10. Increasing this (default is 1) reduces how often the server tries to spawn new monsters.
3. spigot.yml
Focuses on entity activation and tracking.
- entity-activation-range:
animals: 16monsters: 24villagers: 16- This stops entities from "doing stuff" until a player is within this range.
- mob-spawn-range:
4. Limits how many chunks away from a player a mob can spawn. - merge-radius:
item: 3.5exp: 4.0- Groups dropped items and XP orbs together to reduce the total number of entities.
4. Paper (paper-world-defaults.yml)
Advanced, high-impact optimizations.
- max-entity-collisions:
2. Prevents entities from processing thousands of collision checks in crowded farms. - despawn-ranges:
monster.hard: 72monster.soft: 30- Clears distant mobs faster to free up the mob cap.
- per-player-mob-spawns:
true. Ensures each player gets a fair share of mob spawns, making the survival experience feel consistent regardless of other players' farms.
5. Purpur (Optional: purpur.yml)
If you're using Purpur or a fork like LeafMC, tune these:
- lobotomize-villagers:
true. Strips AI from villagers that can't pathfind, drastically reducing CPU usage in trading halls. - alternate-keepalive:
true. Helps prevent players with poor connections from being timed out.
Conclusion
Optimization is a balancing act. Start with these recommended values and monitor your server's MSPT (Milliseconds Per Tick) using /mspt or /spark profiler open --timeout 120. Adjust based on your specific player base and gameplay needs.
Detailed Guide
For a complete, in-depth breakdown of every single performance-impacting setting, we highly recommend checking the official Minecraft Optimization Guide on GitHub.
Always pre-generate your world usingChunky before inviting players. No amount of config tuning can save a server from multiple players exploring ungenerated terrain at once.
Related posts
How to Allocate More RAM to Minecraft
If your Minecraft is stuttering or crashing, it might be running out of memory. Learn how to allocate more RAM in the Java Edition launcher.
Top 5 Minecraft Performance Mods for 1.21.1 (Sodium & More)
If your Minecraft Java Edition is lagging, you need these mods. Learn how Sodium, Lithium, and Iris can triple your FPS instantly.
Top 3 Minecraft PvP Texture Packs for Performance & Visibility
Is your visibility blocked by fire and items? Discover the best 8x and 16x texture packs designed for low particles and high FPS.
