# How to Pre-Generate Chunks on Your Minecraft Server with Chunky (/docs/minecraft/pregenerate-chunks)



import { Step, Steps } from 'fumadocs-ui/components/steps';

**Chunk generation is the single most CPU-intensive operation on a Minecraft server.** Every time a player walks into a new area, the server has to generate terrain, biomes, structures, ores, and decorations — and that work happens on the main thread, causing TPS drops and rubber-banding.

The fix is to **pre-generate chunks before players need them**. The [Chunky](https://modrinth.com/plugin/chunky) plugin walks the world in advance and generates everything within a radius, so when players explore, the chunks already exist and load instantly.

> **Why it matters:** A pre-generated server can comfortably handle 50+ players. A non-pre-generated server can lag at 10 players just from one player flying around in a new direction.

Install Chunky [#install-chunky]

<Steps>
  <Step>
    Download Chunky [#download-chunky]

    Get [Chunky from Modrinth](https://modrinth.com/plugin/chunky). It supports Paper, Spigot, Bukkit, Folia, Forge, NeoForge, and Fabric.

    | Server type             | Download                                       |
    | ----------------------- | ---------------------------------------------- |
    | Paper / Spigot / Bukkit | `Chunky-X.X.X.jar` → `plugins/`                |
    | Forge / NeoForge        | Forge build → `mods/`                          |
    | Fabric                  | Fabric build → `mods/` (also needs Fabric API) |
  </Step>

  <Step>
    Upload to your server [#upload-to-your-server]

    In the [XGamingServer Panel](https://panel.xgamingserver.com), click **Files**. Navigate to `plugins/` (or `mods/`), and upload the Chunky JAR.
  </Step>

  <Step>
    Restart the server [#restart-the-server]

    Restart from **Console**. Verify Chunky loaded:

    ```
    /chunky
    ```

    You should see the Chunky help output.
  </Step>
</Steps>

Plan Your Pre-Generation [#plan-your-pre-generation]

Before you start, decide:

1. **Your final world border size** — pre-generate to match
2. **Which dimensions** to pre-generate (Overworld, Nether, End)
3. **The center** — usually `0, 0` (spawn) but can be wherever your community is based

> **Match your world border.** Pre-generating beyond your border is wasted work. Pre-generating less than your border means players will still hit ungenerated chunks.

Pre-Generate Chunks [#pre-generate-chunks]

<Steps>
  <Step>
    Set the dimension (optional) [#set-the-dimension-optional]

    Default is the Overworld. To pre-generate the Nether or End instead:

    ```
    /chunky world world_nether
    ```

    Or:

    ```
    /chunky world world_the_end
    ```
  </Step>

  <Step>
    Set the center (optional) [#set-the-center-optional]

    Default center is `0, 0`. To use a different point:

    ```
    /chunky center 1000 -2000
    ```
  </Step>

  <Step>
    Set the radius [#set-the-radius]

    The radius is in **blocks** from the center.

    ```
    /chunky radius 5000
    ```

    This will generate everything within a 10,000 × 10,000 block area centered on `0, 0`.
  </Step>

  <Step>
    Start generation [#start-generation]

    ```
    /chunky start
    ```

    Chunky begins walking the world. **The server will be laggy while this runs** — chunk generation is CPU-intensive. Run when no players are online.
  </Step>

  <Step>
    Check progress [#check-progress]

    ```
    /chunky status
    ```

    Shows percent complete, current chunk, ETA, and chunks per second.
  </Step>

  <Step>
    Pause / resume / cancel [#pause--resume--cancel]

    ```
    /chunky pause
    /chunky continue
    /chunky cancel
    ```

    Pause-and-continue works across restarts. Chunky saves progress to disk.
  </Step>
</Steps>

How Long It Takes [#how-long-it-takes]

| Radius        | Total chunks | Approx. time on hosted server |
| ------------- | ------------ | ----------------------------- |
| 1,000 blocks  | \~16,000     | 5–15 minutes                  |
| 2,000 blocks  | \~64,000     | 20–40 minutes                 |
| 3,000 blocks  | \~144,000    | 1–2 hours                     |
| 5,000 blocks  | \~400,000    | 3–6 hours                     |
| 10,000 blocks | \~1.6M       | 12–24 hours                   |
| 25,000 blocks | \~10M        | Several days                  |

Times vary heavily based on:

* **Server CPU** — single-thread performance dominates
* **Modded vs vanilla** — modded chunk gen can be 5–10× slower
* **World type** — amplified terrain takes longer than normal
* **Concurrent players** — generation slows under load

Multi-Dimension Workflow [#multi-dimension-workflow]

To pre-generate all three dimensions, run them sequentially:

```
/chunky world world
/chunky radius 5000
/chunky start
```

Wait for completion, then:

```
/chunky world world_nether
/chunky radius 1000
/chunky start
```

Then:

```
/chunky world world_the_end
/chunky radius 1500
/chunky start
```

> **Nether is 1:8 scale.** Pre-generate the Nether to **1/8th** of your Overworld radius — `world` 5000 → `world_nether` 625.

Set a World Border After Generation [#set-a-world-border-after-generation]

Once pre-generation is complete, lock the world border so players can't venture beyond:

```
/worldborder set 10000
```

This sets a 10,000-block diameter border (5,000 blocks from center). Players will be blocked from going further, so they only ever experience pre-generated chunks. Zero exploration lag forever.

Tips [#tips]

1. **Run overnight** — pre-generation tanks TPS. Start it before bed, check it in the morning
2. **Lower view-distance during generation** to free CPU for Chunky
3. **Match your world border** — don't generate more than you'll use
4. **Pre-generate before opening to players** — never on a busy live server
5. **Check disk space** — large pre-generations can use several GB
6. **Re-run after biome changes** — if you change a datapack, only newly-generated chunks reflect it
7. **Use `/chunky pause` before risky restarts** — Chunky resumes cleanly

Common Issues [#common-issues]

| Problem                              | Fix                                                                          |
| ------------------------------------ | ---------------------------------------------------------------------------- |
| Server unplayable while Chunky runs  | Expected — run during off-hours. Lower view-distance and reduce Chunky speed |
| Chunky crashes the server on modded  | Some Forge mods conflict with Chunky's chunk loader. Try smaller batches     |
| `Out of memory` during generation    | Increase server RAM, or reduce the radius. Modded gen needs more RAM         |
| Chunky generates the wrong dimension | Use `/chunky world <name>` first                                             |
| Old chunks aren't updated            | Chunky only generates *missing* chunks — existing ones aren't changed        |
| Generation appears stuck             | Check `/chunky status` — modded biomes can take seconds per chunk            |

Faster Pre-Generation Alternatives [#faster-pre-generation-alternatives]

| Option                                  | Speed       | Notes                               |
| --------------------------------------- | ----------- | ----------------------------------- |
| **Chunky** (default speed)              | Baseline    | Stable, well-tested                 |
| **Chunky** with `/chunky pause-on-time` | Same        | Auto-runs only during off-peak      |
| **Offline pre-generation tools**        | 2–5× faster | Generate the world before uploading |
| **Higher CPU server tier**              | 2–3× faster | Single-thread perf matters most     |

Common Mistakes [#common-mistakes]

| Mistake                                                   | Fix                                                     |
| --------------------------------------------------------- | ------------------------------------------------------- |
| Pre-generating with players online                        | TPS will tank — kick players or run overnight           |
| Setting a tiny radius "to test"                           | Test with at least `radius 500` to see realistic timing |
| Forgetting to set a world border after                    | Players will still generate chunks beyond your pre-gen  |
| Pre-generating the Nether at the same radius as Overworld | Nether is 1:8 — use 1/8th the radius                    |
| Pre-generating then changing the seed                     | Wastes all the work — set seed first                    |
| Not pre-generating before a big launch                    | Day-1 lag will kill your community before it starts     |

Related Guides [#related-guides]

* [Optimize Server](/docs/minecraft/optimize-server)
* [Render Distance](/docs/minecraft/render-distance)
* [Setup Spark](/docs/minecraft/setup-spark)
* [Server Tick Loop](/docs/minecraft/fix-server-tick-loop)
* [Add World Border](/docs/minecraft/add-world-border)
* [Server Properties](/docs/minecraft/server-properties)
