When a player explores new territory, your server has to generate brand new chunks on the spot. It is one of the heaviest jobs a Minecraft server does while people are playing, and on a busy server it can drag the TPS down for everyone.
Installing Chunky
Chunky is the usual tool for this. It has builds for Paper, Spigot, Folia, Fabric, Forge and NeoForge on Modrinth. On Paper or Purpur, drop the jar in plugins/ and restart. On Fabric it goes in mods/ together with Fabric API.
Basic usage:
/chunky radius 5000
/chunky start
This pre-generates everything within 5,000 blocks of the center, a 10,000 by 10,000 block area. Chunky's default center is 0,0 and its default shape is a square (Chunky wiki). If your spawn is somewhere else, run /chunky spawn first to center the task on it.
Picking a Radius
A bigger radius costs time and disk space, so match it to how far your players actually travel. The chunk counts below are simple arithmetic for Chunky's default square shape (one chunk is 16 by 16 blocks):
| Server Type | Radius | Area | Chunks (square) |
|---|---|---|---|
| Minigame lobby | 500 | 1,000 x 1,000 blocks | about 4,000 |
| Small SMP (5 to 10 players) | 3,000 | 6,000 x 6,000 blocks | about 141,000 |
| Medium server (20 to 50 players) | 5,000 | 10,000 x 10,000 blocks | about 391,000 |
| Large server (50+ players) | 8,000 | 16,000 x 16,000 blocks | about 1,000,000 |
Doubling the radius means four times the chunks, four times the disk space and roughly four times the generation time.
Estimating Disk Space
How much space a chunk takes depends on the Minecraft version, the terrain and any worldgen mods. To measure it:
- Run a small task first, for example
/chunky radius 1000. - When it finishes, check how big the world's region folder has become in the file manager.
- Scale by area. A 5,000 radius covers 25 times the area of a 1,000 radius, so expect roughly 25 times the space.
Modded worlds with extra biomes, structures and ores usually need more space per chunk than vanilla, so run the test on the actual pack.
Running the Pre-Generation
Pre-generation uses a lot of CPU. Two ways to do it without bothering players:
Before opening the server. The best option. Run Chunky on the empty server, let it finish, then open up.
During quiet hours on a live server.
/chunky pause
/chunky continue
Run it while few people are online and pause when it gets busy. Chunky saves its progress, and /chunky continue picks up where it stopped.
While it runs, Chunky prints progress lines with the percentage done, an ETA and the rate in chunks per second, and a total time when the task finishes. /chunky progress shows the same in game. That rate answers "how long will this take on my server".
Checking the Difference
Want to see what pre-generation does for your server? Measure a normal evening before and after with spark:
/spark tpsfor TPS and tick times (MSPT)/spark profiler start --timeout 600for a ten minute report of what the server spent its time on
Before pre-generation, chunk generation shows up in the profiler whenever someone explores. After, with players staying inside the pre-generated area, it should mostly disappear from the report. The effect is biggest when several players explore in different directions at once, because each of them makes the server generate fresh terrain at the same time.
Nether and End
Do not forget the other dimensions. The Nether also generates on the fly:
/chunky world world_nether
/chunky radius 2000
/chunky start
World names differ between server types and versions, so type /chunky world and press Tab to see the names your server uses.
The End usually does not need it unless you run custom End content. The main island is small, and players tend to explore the outer islands slowly.
Maintaining Your Pre-Generated World
After a Minecraft update that changes world generation, new chunks at the edge of your pre-generated area can look different from the old ones. That is normal.
Ways to handle it:
- Extend the radius after a major update to push the edge further out
- Set a world border so players stay inside the pre-generated area (
/chunky worldbordersets Chunky's center and radius to match the border) - Accept the seams as part of a long-running world
Pre-generating costs CPU time up front, and Chunky tells you how much while it runs. In return, your players stop paying for world generation while they play.