This guide shows you exactly, step by step, how to configure world generation so that:
- your server does NOT generate chunks during gameplay,
- players do not cause freezes while exploring,
- TPS stays stable,
- CPU, RAM, and disk are not overloaded.
1. Why World Generation Causes Lag
The biggest lag sources related to world generation:
- generating new chunks while players are online,
- fast elytra flying,
- random teleports (
/rtp), - exploration-heavy gameplay.
Every new chunk causes:
- high CPU usage,
- heavy disk I/O,
- increased RAM usage,
- TPS drops.
If your world is not pre-generated, lag is guaranteed on active servers.
2. Requirements
Make sure that:
- your server runs on Paper, Spigot, or Purpur,
- you have access to:
/plugins/server.properties,
- you can restart the server,
- you have several GB of free disk space.
3. Base World Settings Before First Start
3.1 Edit server.properties
Open:
server.properties
Set:
level-name=world
generate-structures=true
generate-structures=true
level-type=default
For SkyBlock / OneBlock servers:
generate-structures=false
Save the file and start the server once so the world is created.
Then:
- stop the server.
4. The Most Important Step - Chunk Pre-Generation
Without pre-generating chunks, your server will lag under load.
4.1 Install a Pre-Generation Plugin
Recommended plugins:
- Chunky
- WorldBorder
Example using Chunky:
- Upload
Chunky.jarto"
/plugins
- Start the server.
- Verify:
/chunky
4.2 Set World Size
Recommended production values:
- small server: 3000–5000 blocks
- medium server: 6000–8000 blocks
- large server: 10,000+ blocks
Example for 8000 blocks:
/chunky world border 8000
4.3 Start Pre-Generation
/chunky world start
During pre-generation:
- TPS may drop,
- CPU usage will be high,
- no players should be online.
Check progress:
/chunky world progress
After completion:
/chunky world pause
Repeat for:
world_nether
world_the_end
5. Block Further World Expansion
After pre-generation, prevent new chunk creation.
5.1 Enforce a World Border
Using WorldBorder:
/wb set 8000
/wb shape square
/wb fill
This ensures:
- players cannot leave the generated area,
- no new chunks will be created.
6. Paper World Optimization Settings
Open:
/config/paper-world-defaults.yml
Set:
max-auto-save-chunks-per-tick: 8
prevent-moving-into-unloaded-chunks: true
delay-chunk-unloads-by: 10s
Effect:
- reduced disk spikes,
- smoother teleports,
- better RAM management.
7. Structure Generation Optimization
Inside the same file:
generate-structures: true
For very weak machines, you may disable:
generate-structures: false
This reduces CPU load during generation at the cost of world features.
8. Nether and End Optimization
The Nether is much heavier to generate than the overworld.
Always:
- set a smaller border,
- pre-generate separately.
Example:
/chunky world_nether border 4000
/chunky world_nether start
Same for:
world_the_end
9. View Distance and Simulation Distance
In server.properties:
view-distance=6
simulation-distance=4
Avoid:
- view-distance above 10,
- simulation-distance above 6,
unless you run extremely powerful hardware.
10. Common Mistakes That Destroy Performance
❌ No chunk pre-generation
❌ /rtp without a world border
❌ Elytra on a fresh world
❌ view-distance set to 12-16
❌ No world size limit
❌ Generating overworld, nether, and end at the same time
11. How to Check If World Generation Still Causes Lag
Use:
/tps
If TPS drops:
- during fast travel,
- during teleports,
then:
- the world is not fully generated,
- or players are leaving the border.
Check:
/chunky world progress
12. When You Should NOT Use a Large Map
Avoid 10,000+ borders if:
- you have less than 8 GB RAM,
- you use HDD instead of SSD/NVMe,
- your CPU is below 3.5 GHz,
- your server heavily uses random teleports.
Large worlds = massive disk I/O = long-term lag.
13. Safe Production Preset (Recommended)
For most servers:
- World Border: 6000-8000
- Chunk Pre-Generation: ENABLED
- view-distance: 6
- simulation-distance: 4
- Nether & End: separately pre-generated
- Elytra: enabled only after pre-generation
This is the best balance between performance and playable size.
