Pre-Generating Your Minecraft World
Generate every chunk in your play area ahead of time so nothing generates live while players explore.
By Lodgichost Team · Last updated: August 19, 2026
When a player walks into ungenerated terrain, the server must compute the whole chunk on the spot: biomes, terrain, caves, structures, and lighting. Vanilla runs most of that work on a single thread tied to the main game loop, so one player sprinting into new land can drop your TPS into single digits for seconds, and several explorers multiply the damage. Pre-generating writes every chunk in your chosen area to disk ahead of time, so when players arrive the server only reads finished files instead of building terrain live. This guide covers why generation lags, how to run it with Chunky, and the disk, RAM, and timing tradeoffs.
Why Chunk Generation Causes Lag
World generation is expensive because it assembles everything at once: biomes, terrain, structures, then per-block lighting. Vanilla does this on the server thread; Paper spreads parts across worker threads, but the final assembly still lands back on the main loop. When players push the frontier in different directions, the generation queue backs up and every loaded chunk waits on it, which players see as rubber-banding and frozen mobs.
- Spikes are worst on fresh spawns, border expansion, and after terrain-changing updates.
- Generated chunks load straight from disk, so player-triggered generation drops to zero.
- Structures are placed during generation, so pre-generating also removes first-exploration lag.
What You Need Before You Start
Install Chunky from its official sources, the plugin build for Paper, Spigot, or Purpur and the mod build for Fabric or Forge, then restart once. Chunky supports Minecraft 1.15 and later. Run it on a fresh world before publishing the address, because generating alongside live players competes for the same CPU. The maintenance-window rule also applies after an update that changes world generation.
- The overworld is the default target; the_nether and the_end need separate /chunky world passes.
- Pre-generate during maintenance or right after install, never at peak hours.
- Leave a few quiet minutes afterward so the chunk cache flush settles.
Choosing a Radius That Matches Your Border
The Chunky radius is measured in blocks while chunks are 16 by 16 blocks, so divide by 16 to get the distance in chunks. A radius of 1000 blocks is 62.5 chunks in every direction: 125 by 125 chunks, or 15,625 files, as a square, roughly 12,270 as a circle. Match the radius to your world border so players never reach ungenerated terrain. A radius of 500 blocks suits a small survival server; large communities commonly use 2000 or 3000.
Set a 1000-block square centred on spawn and start it: /chunky center 0 0 /chunky radius 1000 /chunky shape square /chunky start
Running Chunky, Including From a Command Block
The command set is small: /chunky radius sets the area, /chunky shape picks square or circle, /chunky start begins, /chunky progress reports chunks per second, and /chunky stop pauses. The same commands run from the console without the slash, and from a command block: a repeating command block inside spawn chunks firing /chunky start on boot restarts interrupted runs. A finished run reads 100% in /chunky progress and logs a done message.
Minimal full run from chat or console: /chunky radius 1000 /chunky start /chunky progress
Tradeoffs: Disk, RAM, and Timing
Pre-generation trades short-term CPU for disk and memory. Each region file holds up to 1024 chunks, so a 15,625-chunk square is about 16 files, controllable storage. RAM is the livelier cost: Chunky buffers chunks as it writes them. On Paper, tune the chunk-system section in paper.yml to cap flushing. Schedule the run for an upgrade window or launch, never a peak session.
- Disk: megabyte-scale region files, small but real on small plans.
- RAM: pause Chunky near peak memory or lower its thread count in config.
- Timing: do it at launch or in maintenance, then restart once afterward.
- After it finishes, set spawn and build out the spawn chunks too.
Troubleshooting
- Unknown command when typing /chunky: the jar is not installed or the server was not restarted; put the correct build for your software in plugins/ or mods/ and restart once.
- Generation stops after a restart: Chunky pauses with the server; re-run /chunky start or use a repeating command block in spawn chunks to restart it automatically.
- Server lags while pre-generating: lower the thread count with /chunky config set threads or run during maintenance; Paper's threaded chunk system shares the load.
- World border and generated area do not match: set the same radius with /worldborder set so players never reach ungenerated terrain.
FAQ
Do I need to pre-generate a small server?
Probably not: generation only hurts when several players explore different directions at once. It pays off on larger communities, world-border servers, or heavy modded packs.
Does pre-generation change my seed or its structures?
No. Chunky runs the same generator your seed produces naturally, so biomes, villages, and strongholds are identical, simply finished earlier.
Can I pre-generate the Nether and the End?
Yes. Run /chunky world the_nether or the_end, set the radius, and start. This also shrinks portal-chain lag when large groups cross dimensions together.
How long does pre-generation take?
It depends on CPU and radius. A 15,625-chunk square typically finishes in 30 to 90 minutes on modern hardware; /chunky progress shows chunks per second.
Can I change the radius partway through?
Yes. Chunky only generates what is missing, so stop, change the radius, and start again; finished chunks are kept and the run resumes.
Related Guides
- Understanding Your World's File Structure — see where the generated region files land
- Chunk Loading Explained — know which chunks stay active after generation
- Optimising Server Performance — measure the TPS pre-generation protects
