Skip to main content
← All Guides
Performance · 7 min read

How to Pregenerate Your Minecraft World with Chunky

Step-by-step guide to using the Chunky plugin to pre-generate your Minecraft world, eliminate chunk generation lag, and prepare a smooth launch for your server.

Why Pre-generation Matters

Chunk generation is the single most expensive operation a Minecraft server performs. Every time a player walks into unexplored territory, the server has to generate the terrain heightmap, carve caves, place ores, grow trees, spawn structures, calculate lighting, and populate the chunk with entities. On vanilla terrain generation, a single chunk can take 20-50ms to fully generate. Since your entire tick budget is 50ms, generating even one chunk during a busy tick can cause a TPS drop. Generating multiple chunks at once, as happens when a player uses an elytra or is moving fast, can tank TPS to single digits.

Pre-generation solves this completely. You generate all the chunks in advance while the server is empty or in a maintenance window. Once generated, those chunks load from disk (fast NVMe reads take microseconds, not milliseconds) instead of being computed from scratch. A server with a fully pre-generated world eliminates chunk generation as a lag source entirely.

Installing Chunky

Chunky is a lightweight Paper/Spigot plugin for world pre-generation. Do not confuse it with the Chunky rendering program used for creating 3D renders of Minecraft worlds, which is a completely different piece of software. The server plugin is available on Modrinth and SpigotMC.

Download the JAR and place it in your plugins/ folder. Restart the server. You should see [Chunky] Enabled in the console. Chunky has no required configuration files. It works entirely through commands.

Basic Pre-generation Commands

The workflow for Chunky is simple: select a world, set a shape and radius, then start the generation.

Step 1: Select the world

/chunky world world

Replace world with your actual world name. For nether and end worlds, use the folder names: world_nether and world_the_end. If you use Multiverse, the world names match whatever you configured in Multiverse. You can check available worlds with /worlds or by looking at the folders in your server directory.

Step 2: Set the center point

/chunky center 0 0

This sets the center of the generation area. Most servers use 0,0 as the world center, but you can set it to your spawn coordinates or any other location.

Step 3: Set the radius

/chunky radius 5000

The radius is measured in blocks, not chunks. A radius of 5000 blocks means a 10,000 x 10,000 block area centered on your center point. In chunks, that is roughly 625 chunks in each direction, for a total of about 390,000 chunks. A radius of 10,000 blocks covers a 20k x 20k area with about 1.56 million chunks.

Step 4: Choose a shape

/chunky shape circle

Available shapes are square and circle. Circle generates fewer chunks for the same radius (no wasted corners), which saves disk space and generation time. For most servers, circle is the better choice.

Step 5: Start generating

/chunky start

Chunky begins generating chunks immediately. Progress updates appear in the console periodically, showing chunks completed, percentage done, estimated time remaining, and generation rate (chunks per second).

How Long Does Pre-generation Take?

Generation speed depends on your CPU, disk speed, world complexity, and how many mods or datapacks affect world generation. Here are rough estimates for a typical Paper server on modern hardware:

Radius (blocks)Approx. ChunksCircle Shape Estimate
1,000~12,5002-5 minutes
3,000~112,00015-30 minutes
5,000~312,00045-90 minutes
10,000~1,250,0003-6 hours
15,000~2,800,0007-14 hours

These are rough estimates. NVMe storage significantly speeds up the write side of generation. If your host uses NVMe SSDs, you will be at the faster end of these ranges. HDD-based hosting will be noticeably slower because writing millions of small chunk files to a spinning disk creates I/O bottlenecks.

Pausing and Resuming

Chunky saves its progress automatically. You can pause generation at any time with:

/chunky pause

And resume later with:

/chunky continue

Chunky tracks which chunks have already been generated and skips them when resuming. This means you can run pre-generation in sessions. Generate for a few hours overnight, pause, let players use the server during the day, then resume the next night. Chunky also survives server restarts. If the server crashes or reboots mid-generation, running /chunky continue picks up where it left off.

Running on a Fresh Server Before Opening

The ideal workflow for a new server is:

  • Set up your server with all plugins, configs, and world settings finalized. See how to start a Minecraft server for the basics.
  • Set the world border using vanilla commands: /worldborder set 10000 (for a 5000 block radius).
  • Run Chunky to pre-generate the same area as your world border.
  • Wait for generation to complete. You can monitor progress from the console.
  • Once done, optimize your server for 20 TPS.
  • Open the server to players.

This way, no player ever experiences chunk generation lag. The entire playable area is already on disk. When a player walks to the world border, they hit the boundary instead of generating new terrain.

Disk Space Considerations

Pre-generated chunks take up disk space. A lot of it if you choose a large radius. Here are approximate world folder sizes for an overworld (terrain complexity varies):

Radius (blocks)Approx. Disk Space
1,000100-200 MB
3,000800 MB, 1.5 GB
5,0002-4 GB
10,0008-15 GB
15,00018-30 GB

The nether and end are less dense and take roughly 40-60% of the overworld size for the same radius. Make sure your hosting plan has enough disk space before starting a large pre-generation. Running out of disk space mid-generation can corrupt chunks.

Using Chunky with Multiverse Worlds

If you run multiple worlds with Multiverse, you can pre-generate each one separately. Just switch the target world before starting:

/chunky world creative_world
/chunky center 0 0
/chunky radius 3000
/chunky shape circle
/chunky start

Wait for it to finish, then repeat for the next world. Each world maintains its own Chunky progress state, so you can pause one and start another without losing progress.

The NVMe Advantage

Pre-generation writes an enormous amount of data to disk. Each chunk is a small file, and millions of small file writes is one of the worst workloads for traditional hard drives. NVMe SSDs handle this workload orders of magnitude better. On NVMe storage, Chunky can generate 500-1000+ chunks per second. On an HDD, that number drops to 50-150 chunks per second.

The difference matters just as much at runtime. When a pre-generated chunk is loaded from disk, NVMe read latency is typically under 0.1ms while HDD latency can be 5-15ms. On a server with 30 players moving around, loading dozens of chunks per second from an HDD can add up to noticeable lag even though the chunks are pre-generated.

After Pre-generation

Once Chunky finishes, you can safely remove the plugin if you want to free up a slot. The generated chunks persist on disk regardless. However, keeping Chunky installed is useful if you later decide to expand the world border and need to pre-generate the new area.

With pre-generation done, run Spark to verify that chunk generation no longer appears in your tick profiles. Your server should now spend zero time on terrain generation, leaving the full tick budget for gameplay processing.

Need a server that handles all this? Astroworld Hosting runs NVMe SSD, Pterodactyl panel, and DDoS protection on every plan. See all features , plans start at €6.39/mo.

Related Tools & Resources

🔧

Minecraft Tools

Calculators, generators & server tools

🧱

Item Database

Browse all Minecraft items, stats & recipes

⚒️

Crafting Recipes

Visual crafting guides for every recipe