Ultimate Minecraft 1.20+ Server Optimization Guide

Achieving optimal performance for your Minecraft 1.20+ server requires careful attention to configuration and best practices. This comprehensive guide provides proven techniques to maximize your server's potential and deliver a smooth gaming experience.

While individual results may vary based on your specific setup, following this guide correctly should enable your server to support up to 120+ players while maintaining 19-20 TPS for optimal gameplay performance.

Important Considerations

This optimization guide addresses server configuration and performance tuning. It cannot compensate for poorly developed plugins, incorrect RAM allocation, or inadequate hardware infrastructure.

Step one

Server Software

link

The foundation of your Minecraft 1.20+ server performance lies in choosing the right server software. Modern high-performance forks offer significant improvements over vanilla servers, with enhanced optimization, better plugin support, and advanced features. We recommend selecting from these proven, actively maintained options.


Step two

Startup Flags

link

JVM startup flags are crucial for optimizing your Minecraft server's garbage collection behavior. There are two main garbage collector types to consider: G1GC (recommended for most servers) and ZGC (for high-performance setups with JDK 16+). Properly tuned flags will eliminate garbage collection spikes and maintain consistent TPS, though CPU usage may increase slightly for better stability.


Step three

File Optimisation

link

Fine-tuning your server's configuration files is essential for maximizing performance and stability on Minecraft 1.20+ servers. Both Spigot and Paper offer extensive configuration options that let you control everything from entity processing to chunk loading. Be sure to review and adjust these files to suit your server's needs, and take advantage of features like Anti-Xray for additional protection and efficiency. For a deep dive into advanced settings and best practices, consult the community optimization guides below.


Step four

Plugins

link

Plugin selection and management is critical for maintaining optimal server performance on Minecraft 1.20+. Poorly developed or outdated plugins can significantly impact your server's resources and cause performance issues. Choose plugins with good reputations and active development that properly support modern Minecraft versions.

  • Keep plugins updated and consult developers about performance impacts.
  • Avoid performance-harming plugins like ClearLag that can cause more problems than they solve.
  • Use Spark for monitoring - it's now bundled with Paper and provides excellent server health diagnostics.

For advanced performance analysis, consider using dedicated profiling tools like WarmRoast for CPU profiling or YourKit for comprehensive Java application profiling. These tools can help identify specific bottlenecks and optimization opportunities beyond what built-in monitoring provides.


Step five

World Generation

link

Pre-generating your world is essential for maintaining consistent performance, especially on survival servers or those with large player bases. Pre-generation eliminates the performance impact of chunk loading during gameplay, ensuring smooth player experience. The Chunky plugin is the recommended solution for efficient world pre-generation.

  • Use Chunky for efficient, configurable world pre-generation with detailed progress tracking.
  • Set a vanilla world border to prevent players from generating new chunks beyond your pre-generated area.
  • Consider world size carefully - larger worlds require more storage and longer pre-generation times.

The vanilla world border prevents treasure maps, structure generation, and other world features from working beyond the border, which can cause server hangs or crashes. Ensure your vanilla world border matches the area you pre-generate with Chunky to maintain consistency and prevent these issues.


Step six

Server Restarts

link

Regular server restarts are essential for maintaining optimal performance and preventing memory leaks. Schedule restarts during low-traffic periods to minimize player disruption. You can use plugins for automated restarts, or implement custom scripts if you prefer more control over the restart process.