
Minecraft Server Performance Tuning
Reduce Minecraft server lag by adjusting view distance, simulation distance, and Paper performance options.
Quick Wins for Lag
Lower view-distance in server.properties to 6-8. Default 10 is heavy on bandwidth and chunk loading.
Lower simulation-distance to 4-6. Entities and redstone beyond this distance do not tick. Simulation distance has a stronger impact on TPS than view distance.
Reduce max-players if you are hitting your slot limit and seeing TPS drops.
Use /gamerule randomTickSpeed 3 (default) or lower to reduce random tick load. Higher values cause lag.
Paper-Specific Tuning
Paper has its own config files: paper-global.yml (server-wide) and paper-world.yml (per-world). These replace the older paper.yml.
In paper-global.yml, adjust chunk loading rates: player-max-chunk-generate-rate, player-max-chunk-load-rate, and player-max-chunk-send-rate.
In paper-world.yml, set entity-activation-range to lower values to reduce mob AI processing.
Enable optimize-explosions and use-faster-teleporting in paper-world.yml.
Use the /tps command (op only) to see your server ticks per second. 20 TPS = perfect. Below 15 = noticeable lag.
Use /timings report to profile which plugins cause the most lag. The report can be viewed in a browser.
Common Lag Sources
Large mob farms - cap mob count with /gamerule doMobSpawning or use a plugin like ClearLag.
Redstone clocks and dense redstone builds - limit with Paper redstone-implementation setting in paper-world.yml.
Many loaded chunks from spread-out players - lower view-distance or use a plugin to enforce grouping.
Heavy plugins - use /timings report (Paper) to profile which plugins cause the most lag.
Hopper farms - Paper has hopper-chunk-limit settings in paper-world.yml to reduce hopper processing load.
