Minecraft Server Optimization Guide
Quick and practical optimizations for your Minecraft server. Choose your server type below and follow the relevant steps.
- Always backup your server files before making changes
- REQUIRED: Pre-generate your world locally on your PC, then upload via SFTP
- IMPORTANT: World pre-generation is NOT allowed on our servers. Any server continuously using 30%+ CPU will be automatically stopped, regardless of CPU priority or node tier.
- Changes take effect after server restart
Choose Your Server Type
🟦 Vanilla / Paper / Purpur Servers
Step 1: Optimize server.properties
Edit your server.properties file with these optimized values:
# View & Simulation Distance
view-distance=6
simulation-distance=6
# Network Optimization
network-compression-threshold=256
# Spawn Settings
spawn-animals=true
spawn-monsters=true
spawn-npcs=true
max-world-size=29999984
- 6-8: Recommended for most servers
- 4-6: If experiencing lag
- 10+: Only if you have powerful hardware
Step 2: Paper/Purpur Config Files
If using Paper or Purpur, optimize these configuration files:
bukkit.yml:
spawn-limits:
monsters: 50
animals: 8
water-animals: 3
ambient: 1
chunk-gc:
period-in-ticks: 400
ticks-per:
animal-spawns: 400
monster-spawns: 4
paper-global.yml (Paper 1.19+) or paper.yml:
# Entity Optimization
entities:
spawning:
per-player-mob-spawns: true
behavior:
disable-chest-cat-detection: true
# Chunk Optimization
chunks:
max-auto-save-chunks-per-tick: 6
prevent-moving-into-unloaded-chunks: true
# Performance
misc:
update-pathfinding-on-block-update: false
# Redstone
use-faster-eigencraft-redstone: true
spigot.yml:
world-settings:
default:
mob-spawn-range: 6
entity-activation-range:
animals: 16
monsters: 24
raiders: 48
misc: 8
merge-radius:
exp: 4.0
item: 6.0
nerf-spawner-mobs: true
settings:
save-user-cache-on-stop-only: true
Step 3: Install Performance Plugins
Essential plugins for Paper/Spigot servers:
| Plugin | Purpose | Link |
|---|---|---|
| Chunky | Pre-generate world | SpigotMC |
| ClearLagg | Auto-remove entities/items | SpigotMC |
| Spark | Performance profiler | SpigotMC |
Optional Plugins:
- Village Optimiser - Fixes villager lag
- Farm Limiter - Limits farm entities
Step 4: Pre-Generate Your World
This is the most important optimization step!
World pre-generation is NOT allowed on our servers. Any server continuously using 30%+ CPU will be automatically stopped, regardless of CPU priority or premium node tier.
You must pre-generate your world locally on your PC and upload it via SFTP.
Steps:
- Create a local server on your PC with the same version and settings
- Install Chunky and pre-generate your world locally (recommended radius: 2000-3000)
- Upload the world folder to your server using SFTP
- Learn how to setup SFTP →
Benefits:
- No CPU limits on your local PC
- Generate large radius worlds without issues
- No risk of server being stopped
- Complete in hours instead of days
Recommended RAM: 4-6GB
🟧 Modded Servers (Forge/NeoForge/Fabric) - Large Modpacks
For Large Modpacks (100+ mods, ATM10, etc.)
Step 1: Optimize server.properties
# Optimized for Large Modpacks (ATM10, etc.)
# View & Simulation Distance
view-distance=6
simulation-distance=4
# Entity Optimization
entity-broadcast-range-percentage=50
mob-spawn-range=4
# Network Optimization
network-compression-threshold=512
# Performance Tweaks
max-tick-time=-1
sync-chunk-writes=false
spawn-protection=0
Modded servers cannot use Paper config files (bukkit.yml, paper.yml, spigot.yml). Focus on performance mods instead!
Step 2: Install Performance Mods
For Fabric Servers:
All available on Modrinth:
| Mod | Purpose |
|---|---|
| Lithium | General-purpose optimization |
| Starlight | Lighting engine rewrite |
| FerriteCore | Memory usage reduction |
| Krypton | Network optimization |
| C2ME | Chunk loading optimization |
| ServerCore | Server-specific optimizations |
| LazyDFU | Faster startup times |
For Forge/NeoForge Servers:
| Mod | Version | Link |
|---|---|---|
| AI Improvements | 1.12-1.19 | CurseForge |
| Performant | 1.16+ | CurseForge |
| Clumps | 1.16+ | CurseForge |
| Canary (NeoForge) | 1.20+ | Modrinth |
Step 3: Pre-Generate Your World
World pre-generation is NOT allowed on our servers. Modded servers are extremely CPU-intensive during chunk generation and will trigger automatic shutdown.
You must pre-generate your world locally and upload via SFTP.
Steps:
- Install the modpack locally on your PC (same mods and configs as server)
- Create a single-player world or local server
- Install Chunky mod and pre-generate (radius 1500-2500 recommended for large packs)
- Upload the
worldfolder to your server via SFTP - Learn how to setup SFTP →
Why this is required:
- Large modpacks like ATM10 would take 12-24+ hours on our servers
- Continuous high CPU usage triggers automatic shutdown
- Local pre-generation completes much faster with no restrictions
Step 4: Modpack-Specific Tips
For ATM10 and Heavy Modpacks:
- Use 10-12GB RAM minimum
- Reduce view-distance to 4-6
- Pre-generate 1500-2000 block radius (takes 12-24 hours due to CPU limits)
- Remove unused mods from pack
- Disable chunk loaders or limit them
Performance vs Features:
- Heavy modpacks will always use more resources
- Some lag is expected with 200+ mods
- Focus on preventing chunk generation lag with pre-gen
Recommended RAM: 8-12GB (minimum)
🟩 Lightly Modded Servers (Fabric/Quilt)
For Vanilla+ or Light Mod Packs
Step 1: Optimize server.properties
view-distance=8
simulation-distance=6
network-compression-threshold=256
Step 2: Install Fabric Performance Mods
Install all of these for best performance:
- Lithium - Game logic optimization
- Starlight - Lighting engine
- FerriteCore - Memory reduction
- Krypton - Network optimization
- ServerCore - Server optimizations
All available on Modrinth.
Step 3: Pre-Generate World
World pre-generation is NOT allowed on our servers. You must pre-generate locally and upload via SFTP.
Steps:
- Install the modpack locally (same mods as server)
- Use Chunky to pre-generate radius 2000-3000
- Upload world folder via SFTP
- Setup SFTP guide →
Recommended RAM: 4-6GB
Universal Optimizations (All Server Types)
World Pre-Generation Priority
This is the #1 most important optimization!
Chunk generation during gameplay causes massive lag spikes. Pre-generate your world before players join.
World pre-generation is NOT allowed on our servers. Any server continuously using 30%+ CPU will be automatically stopped, regardless of CPU priority, premium node tier, or any other upgrade.
You must pre-generate locally on your PC and upload via SFTP.
Required method for all server types:
- Install locally: Set up a local server/world on your PC with the same version and mods
- Pre-generate locally: Use Chunky to generate radius 2000-3000 (no limits on your PC!)
- Upload via SFTP: Upload the world folder(s) to your server
- Start playing: Your server is ready with pre-generated chunks!
Benefits:
- ✅ No CPU limits on your local PC
- ✅ Generate any radius size you need
- ✅ No risk of server being stopped
- ✅ Complete in hours instead of risking shutdown
- ✅ Works for all server types (Paper, Forge, Fabric, etc.)
Recommended View Distance by Server Type
| Server Type | View Distance | Simulation Distance |
|---|---|---|
| Vanilla/Paper | 8-10 | 6-8 |
| Paper (Busy) | 6-8 | 4-6 |
| Fabric (Light Mods) | 6-8 | 6 |
| Forge (Heavy Mods) | 4-6 | 4 |
| ATM10 / Large Packs | 4-6 | 3-4 |
Monitoring Performance
Install Spark (available as plugin or mod) to monitor performance:
/spark tps # Check current TPS
/spark profiler start # Start profiler
/spark profiler stop # Stop and generate report
Target Metrics:
- TPS: Should stay at 20
- MSPT: Should stay below 50ms
- Memory: Keep below 80% usage
Troubleshooting Common Issues
Server is Still Lagging
- Check TPS with
/tpsor/spark tps - Run Spark profiler to identify the cause
- Reduce view distance by 2 blocks
- Check for lag-causing farms or contraptions
- Restart server (fixes memory leaks)
Players Report Connection Issues
- Increase
network-compression-thresholdto512 - Check player ping with
/ping - Ensure server location is close to players
Chunk Loading is Slow
- Pre-generate your world locally (most common cause!)
- Reduce view-distance in server.properties
- Ensure you uploaded the pre-generated world correctly via SFTP
Server Stops Unexpectedly
If your server stops unexpectedly:
- Check Service Logs in the control panel for
HighResources=True - This means the 30% CPU limit was exceeded for 15 minutes continuously
- Common causes: Attempting to pre-generate worlds on the server, too many entities, inefficient plugins/mods, or redstone lag
- Solution: Pre-generate worlds locally, reduce entity counts, optimize server settings, or remove resource-heavy plugins/mods
High Memory Usage
- Restart server every 24-48 hours
- Reduce entity counts with ClearLagg
- Check for memory leaks with Spark
- Ensure you have enough RAM allocated
Quick Reference Checklists
✅ Paper/Purpur Setup
- Pre-generate world locally (2000-3000 radius) and upload via SFTP
- Set view-distance to 6-8 in server.properties
- Configure bukkit.yml spawn limits
- Configure paper.yml optimizations
- Configure spigot.yml entity ranges
- Install ClearLagg and Spark plugins
- Test with
/tpsand/spark tps
✅ Large Modpack Setup (ATM10, etc.)
- Pre-generate world locally (1500-2500 radius) and upload via SFTP
- Set view-distance to 4-6 in server.properties
- Install performance mods (Lithium, etc. for Fabric OR Performant for Forge)
- Allocate 10-12GB RAM minimum
- Remove unused mods from pack
- Install Spark mod for monitoring
- Limit or disable chunk loaders
✅ Light Modded Setup
- Pre-generate world locally (2000-3000 radius) and upload via SFTP
- Set view-distance to 6-8 in server.properties
- Install all Fabric performance mods (Lithium, Starlight, FerriteCore, Krypton)
- Allocate 4-6GB RAM
- Install Spark mod for monitoring
Best Practices
✅ Pre-generate worlds locally on your PC and upload via SFTP (REQUIRED - not allowed on servers)
✅ Backup regularly before making config changes
✅ Monitor with Spark to identify actual lag sources
✅ Restart every 24-48 hours to clear memory
✅ Update server software to latest stable versions
✅ Keep plugins/mods minimal - only install what you need
✅ Educate players about efficient farm building
Platform Comparison
| Feature | Vanilla | Paper/Purpur | Fabric | Forge/NeoForge |
|---|---|---|---|---|
| Config Options | ⭐ Minimal | ⭐⭐⭐⭐⭐ Extensive | ⭐⭐ Some | ⭐⭐ Some |
| Performance | ⭐⭐ OK | ⭐⭐⭐⭐⭐ Excellent | ⭐⭐⭐⭐ Great | ⭐⭐⭐ Good |
| Mod Support | ❌ None | ❌ Plugins Only | ✅ Fabric Mods | ✅ Forge Mods |
| RAM Usage | 3-4GB | 4-6GB | 4-8GB | 8-12GB+ |
| Optimization Difficulty | Easy | Easy | Easy | Moderate |
- For vanilla gameplay: Use Paper or Purpur (not vanilla!)
- For light mods: Use Fabric with performance mods
- For large modpacks: Use Forge/NeoForge with 10GB+ RAM
Need Help?
If you continue experiencing performance issues after following this guide:
- Run
/spark profilerfor 5 minutes during lag - Share the Spark report with support
- Include your server type and number of players
Contact our support team for personalized assistance!
Last Updated: October 2025
Applies to Minecraft Java Edition 1.16+