This guide is based on the comprehensive Minecraft server optimization guide from GitHub. It covers essential settings for Paper servers to improve performance.
- Server JAR
Use Paper or Purpur for the best performance. Avoid outdated software like Bukkit or Spigot. For vanilla servers, set sync-chunk-writes to false in server.properties. - Map Pre-generation
Pre-generate your world using plugins like Chunky to avoid lag from chunk generation. Set world borders to prevent new chunk loading. - Networking (server.properties)
Set network-compression-threshold to 256. For internal networks, set to -1 to disable compression. - Chunks (server.properties)
Set simulation-distance to 4 and view-distance to 7. This reduces the load while keeping visibility. - Mobs (bukkit.yml)
Lower spawn-limits: monsters to 20, animals to 5. Increase ticks-per for spawns to reduce frequency. - Mobs (spigot.yml)
Set mob-spawn-range to 3. Lower entity-activation-range and entity-tracking-range to reduce active mobs. - Mobs (paper-world config)
Enable per-player-mob-spawns. Set max-entity-collisions to 2. Adjust despawn-ranges for faster mob clearing. - Misc (spigot.yml)
Set merge-radius for items to 3.5 and exp to 4.0. Increase hopper-transfer and hopper-check to 8 for better performance. - Misc (paper-world config)
Use ALTERNATE_CURRENT for redstone-implementation. Enable optimize-explosions. Set alt-item-despawn-rate for common items. - Java Startup Flags
Use Aikar's flags or flags.sh for optimal JVM settings to reduce lag spikes. - Measuring Performance
Use /mspt command. Install Spark plugin for detailed profiling.