Chunky: The Complete Pre-Generation Guide (2026)
Short version: install Chunky, then run chunky radius 5000 and chunky start on an empty server. Let it finish, repeat for the Nether and End, and your players will stop generating terrain (and lag) live as they explore.
The single most expensive thing a Minecraft server does is generate brand-new terrain. When a player rides out into unexplored land, the server has to build, populate, and save every chunk in front of them, on the main thread, while still ticking everything else. That is what produces the classic "TPS drops every time someone explores" complaint. Chunky fixes it by generating those chunks ahead of time, during a quiet window, so the work is already done before anyone arrives.
This guide covers every command you actually use, how to point Chunky at the right region (including matching your world border), how to handle the Nether and End, and how to pace a large pregen so it does not turn into a self-inflicted lag source.
Why pre-generation matters
New-chunk generation is bursty and unpredictable. A single player flying in Elytra at full speed can outrun the server's ability to keep up, and on a multiplayer server several explorers in different directions multiply that cost. Pregeneration moves all of it to a controlled batch job. The benefits stack up:
- No exploration lag. Chunks are read from disk instead of being generated, which is far cheaper.
- Faster, fairer streaming. Players on slow connections stop seeing void terrain and late-loading chunks (see the slow chunk loading fix).
- Predictable disk size. You generate to a known radius once, so world growth is bounded instead of creeping outward forever.
- Cleaner profiling. With terrain pregenerated, a spark profile of remaining lag points at the real culprits (mobs, hoppers, redstone) rather than generation noise.
Installing Chunky
- Download the build that matches your server platform from Modrinth or SpigotMC. Chunky ships builds for Bukkit, Spigot, Paper, Purpur, Folia, Fabric, Forge, NeoForge, and Sponge.
- Drop the JAR into your
plugins/folder (Bukkit family) ormods/folder (Fabric/Forge/NeoForge). - Restart the server. On modded servers, also install the loader's required dependencies if prompted.
- Run
chunky helpin console to confirm it loaded and to see the command list for your version.
Chunky commands work from the server console and in-game. From the console you do not type a leading slash; in-game you do (/chunky ...). The examples below omit the slash since pregen is almost always run from console on a server with no players online.
The commands you actually use
| Command | What it does |
|---|---|
chunky world [world] | Set the world (dimension) the selection applies to. Omit the argument to use your current world. |
chunky radius <radius> | Set the selection radius in blocks from the center. radius 5000 covers a 10000 by 10000 area. |
chunky center [<x> <z>] | Set the center block coordinates. Defaults to 0, 0. |
chunky spawn | Snap the center to the world's spawn point. |
chunky worldborder | Copy the center and radius from the world's border into the selection. |
chunky corners <x1> <z1> <x2> <z2> | Define the region by two opposite corners instead of center plus radius. |
chunky shape <shape> | Set the generation shape (square, circle, and others). Square is the default and most common. |
chunky pattern <pattern> | Set the generation order, for example concentric (out from center) or loop. |
chunky selection | Print the current selection (world, shape, center, radius) so you can confirm before starting. |
chunky start | Begin generating the current selection. |
chunky pause | Pause the running task and save progress. |
chunky continue | Resume a paused or previously saved task, even after a restart. |
chunky cancel | Stop and discard the current task (progress is lost, unlike pause). |
chunky progress | Show progress, generation rate (chunks/sec), and ETA. |
chunky quiet <seconds> | Set how often progress messages print. Raise it to reduce console spam on long runs. |
chunky trim [world] | Delete chunks outside (or inside) a region. Used to shrink an oversized world, not for pregen. |
The standard workflow
For a fresh survival server with a 0, 0 spawn and a 5000-block play area, the whole job is two lines on an empty server:
chunky radius 5000
chunky start
Chunky prints a running rate and ETA. On a modern host this is typically hundreds of chunks per second, so a 5000 radius finishes in a few hours rather than the days a naive approach would take. When it completes, the overworld around spawn is fully generated and saved to disk.
If you want to be explicit about world, shape, center, and radius in a single command:
chunky start world square 0 0 5000
That selects a square region centered at 0, 0 with a 5000-block radius in the world named world, and starts immediately.
Matching your world border
If your server uses a fixed world border (vanilla /worldborder set or a border plugin), pregenerate exactly to it so players never reach ungenerated land inside the playable area:
chunky worldborder
chunky start
chunky worldborder reads the border's center and radius into the selection. If you run the WorldBorder plugin and a border is defined there, Chunky imports that border instead of the vanilla one. Pregenerating to the border, and no further, is the cleanest setup: you generate every chunk a player can ever reach and not one chunk more, which keeps disk usage tight.
Pre-generating the Nether and the End
Each dimension is a separate world, so you pregen them one at a time. The Nether is compressed 8 to 1 against the overworld, meaning a small Nether radius covers a large overworld travel distance, so it does not need the same radius:
# Nether
chunky world world_nether
chunky radius 1000
chunky start
# End (only the central island and a modest ring is usually enough)
chunky world world_the_end
chunky radius 1000
chunky start
The folder names world_nether and world_the_end are the defaults for a standard Paper or Spigot single-world setup. On multi-world servers (Multiverse and similar) the dimension worlds may have custom names; run chunky world with no argument first, or check your server directory, to find the correct name. Pregenerating the Nether is especially worthwhile because Nether highways and fast travel push players through new terrain quickly.
Pacing a large pregen so it does not become the lag
Pregeneration is intentionally CPU-heavy. The golden rule is to run it before players join. If your server is brand new, generate everything during setup and you will never feel it. When that is not possible, pace it:
- Pause during peak hours. Run
chunky pausebefore your busy window andchunky continueovernight. Progress survives restarts, so you can chip away at a big radius across several nights. - Start small, expand later. Generate
radius 5000first, confirm the server is healthy, then raise the radius and run again. Chunky only generates the new ring, not what already exists. - Watch the rate. Use
chunky progress. If chunks per second is high but server TPS is dropping with players online, your CPU is saturated; pause and finish during off-hours. - Quiet the console. On multi-hour runs,
chunky quiet 30cuts the progress spam to once every 30 seconds so your logs stay readable. - Do not over-generate. A radius of 5000 is plenty for most survival communities. Generating 50000 wastes disk and time on land no one will visit. Pair the radius with a world border so the play area and the generated area match.
Common mistake: running a huge pregen on a live, populated server and then blaming the host for lag. Pregen is the work you are deliberately doing now so it does not happen later. Schedule it for an empty server, or pause it whenever players are on.
How pregen fits with your other tuning
Pregeneration removes generation lag, but it does not touch the other big levers. Set a sensible view-distance and simulation-distance in server.properties so the server is not simulating more chunks than it needs, tune your JVM with Aikar's flags, and if lag persists after pregen, run a spark profile to find what is actually eating ticks. For the broader picture, the optimization guide and fixing lag articles cover the full stack.
Trimming an oversized world (the cleanup tool)
If a previous owner let the world balloon, or players explored far beyond a border you later added, chunky trim deletes chunks outside a region you define. Always back up the world first with your world management routine, because trimmed chunks are gone. A typical cleanup keeps everything inside the world border and removes the rest:
chunky worldborder
chunky trim
Trim is the opposite operation to pregen: pregen fills the region, trim empties everything outside it. Used together they let you set a hard, fully-generated play area and reclaim the disk wasted by stray exploration.
Run Chunky on a managed Minecraft Java server
On Supercraft Minecraft Java hosting, Chunky is one-click installable from the panel's plugin manager, and pregeneration runs on NVMe storage so generated chunks read back fast and your world stays responsive. Spin the server up, pregen your radius and border before launch, and your community never feels the terrain-generation lag that drives players off slower hosts. Plans from $5.99/mo with daily backups and 5 region options.