GUIDE MINECRAFT Reduce Server Lag with Chunky

One of the most common causes of lag on survival Minecraft servers is new chunk generation.

When several players explore different directions at the same time, the server may need to generate terrain, structures, caves, mobs and other world data on demand. On weaker or heavily populated servers this can cause MSPT spikes, TPS drops and noticeable stuttering.

A simple way to reduce this problem is to pre-generate the playable area before players explore it.

For this guide we will use Chunky, a lightweight and widely used chunk pre-generation plugin.


Step 1: Install Chunky​

Download the version of Chunky compatible with your server version.

Chunky supports popular server platforms such as Paper and Purpur.

Place the <span>.jar</span> file inside:

<span>/plugins/</span>
Restart the server.

After startup, test that the plugin loaded correctly:

<span>/chunky</span>
If the command displays the Chunky command menu, installation was successful.


Step 2: Decide How Large Your World Should Be​

Before generating anything, decide how much of the world players actually need.

For a small or medium survival server, you could start with something like:

<span>3,000-5,000 block radius</span>
For example, a radius of <span>5000</span> means Chunky will generate the area extending approximately 5,000 blocks from the selected center.

Do not immediately generate an enormous world unless you actually need it.

Large pre-generated worlds can:

  • Take a long time to generate
  • Use significant disk space
  • Increase backup sizes
  • Make server transfers slower
You can always expand the generated area later.


Step 3: Select the World​

First select the world you want to generate.

For the normal overworld this is commonly:

<span>/chunky world world</span>
If your server uses a different world name, replace <span>world</span> with the correct name.

You can check your server files to see the exact world folder name.


Step 4: Select the Shape​

I normally recommend using either a circle or square.

For a circular world:

<span>/chunky shape circle</span>
For a square world:

<span>/chunky shape square</span>
A circular area is useful if you also use a circular world border.


Step 5: Set the Center​

To generate around coordinates <span>0, 0</span>:

<span>/chunky center 0 0</span>
Alternatively, you can use the world's spawn location:

<span>/chunky spawn</span>
For most survival servers, generating around spawn makes the most sense.


Step 6: Set the Radius​

Example for a 5,000 block radius:

<span>/chunky radius 5000</span>
You can verify your current selection with:

<span>/chunky selection</span>
Check the world, center, shape and radius before starting.


Step 7: Start Pre-Generation​

Once everything is configured:

<span>/chunky start</span>
Chunky will begin generating the selected area.

You can check the current progress with:

<span>/chunky progress</span>
Chunky reports useful information such as:

  • Percentage completed
  • Number of chunks processed
  • Generation speed
  • Estimated completion time
For best results, I recommend doing the initial generation while the server has few or no players online.


Quick Setup Example​

If you want a circular 5,000-block overworld centered at <span>0, 0</span>, the complete setup would look like this:

<span>/chunky world world<br>/chunky shape circle<br>/chunky center 0 0<br>/chunky radius 5000<br>/chunky start</span>
That's all you need for a basic pre-generation.


Step 8: Pausing and Continuing Generation​

You do not need to finish everything in one session.

To pause generation:

<span>/chunky pause</span>
To continue later:

<span>/chunky continue</span>
To check progress:

<span>/chunky progress</span>
This is especially useful if you notice that generation is affecting players during peak hours.

You can pause it and continue when the server is quiet.


Step 9: Generate the Nether​

You can also pre-generate other dimensions.

The Nether world is commonly named:

<span>world_nether</span>
Example:

<span>/chunky world world_nether<br>/chunky shape circle<br>/chunky center 0 0<br>/chunky radius 3000<br>/chunky start</span>
You usually do not need the Nether to be as large as the Overworld.

Your exact world names may be different depending on your server setup.


Step 10: Generate The End​

The End is commonly:

<span>world_the_end</span>
Example:

<span>/chunky world world_the_end<br>/chunky shape circle<br>/chunky center 0 0<br>/chunky radius 3000<br>/chunky start</span>
Again, adjust the radius depending on your server.


Using Chunky with a World Border​

If your server already has a world border configured, Chunky can match its generation area.

Select the correct world and use:

<span>/chunky worldborder</span>
Then verify the selection:

<span>/chunky selection</span>
And finally:

<span>/chunky start</span>
This is one of the cleanest setups because players cannot travel beyond the area you intended to generate.


Important Performance Tips​

1. Generate Before Launch​

If you are creating a new survival server, pre-generate the world before opening it publicly.

Generating chunks while nobody is playing avoids unnecessary gameplay impact.

2. Do Not Generate an Unlimited World​

There is usually no reason to pre-generate tens of thousands of blocks immediately.

Start small and expand later.

3. Watch Server Performance​

Paper includes the spark profiler on modern versions.

If you suspect your server is struggling, you can profile it instead of guessing.

Example:

<span>/spark profiler start --timeout 600</span>
This records approximately ten minutes of server activity and produces a report that can help identify what is consuming tick time.

4. Temporarily Disable Map Rendering​

If you use plugins such as Dynmap, BlueMap or Squaremap, generating chunks and rendering a map simultaneously can create unnecessary additional work.

It can be more efficient to complete the world generation first and render the map afterwards.

5. Keep Enough Free Disk Space​

Pre-generating chunks permanently creates world data.

Before generating a large radius, make sure your hosting plan has enough storage available.


How to Verify That Pre-Generation Helped​

Do not assume an optimization worked just because you changed something.

Test it.

Before pre-generation:

  1. Have a player fly quickly into unexplored terrain.
  2. Check TPS/MSPT or create a spark profile.
  3. Note any large tick-time spikes.
After pre-generation:

  1. Repeat the same test inside the generated area.
  2. Check the server performance again.
  3. Compare the results.
Inside the pre-generated region, the server should normally be loading existing terrain instead of creating completely new chunks during exploration.


Recommended Setup for a New Survival Server​

A simple starting configuration could be:

<span>Overworld: 5,000 block radius<br>Nether: 3,000 block radius<br>The End: 3,000 block radius</span>
Then increase the border later if your community actually needs more space.

There is no universal perfect radius. A 10-player SMP and a 500-player network obviously have very different requirements.


Common Mistakes​

Generating a massive radius immediately

This wastes storage and can take an extremely long time.

Running generation during peak player hours

Pre-generate before launch or during quiet periods whenever possible.

Using the wrong world name

Always check <span>/chunky selection</span> before starting.

Assuming more RAM fixes chunk generation

Minecraft performance is not simply "more RAM = more TPS". CPU performance, plugins, entities, world generation and configuration can all affect tick time.

Changing dozens of optimization settings at once

Make one meaningful change, test it, and measure the result.


Final Notes​

Chunk pre-generation will not magically fix every Minecraft server performance issue.

If a plugin is consuming huge amounts of CPU time, you have thousands of entities in one area or your hardware is simply overloaded, you still need to diagnose those issues separately.

However, for survival servers where players frequently explore new terrain, pre-generating the playable world is one of the easiest ways to remove unnecessary real-time world generation from normal gameplay.

Useful commands:

<span>/chunky selection<br>/chunky start<br>/chunky progress<br>/chunky pause<br>/chunky continue</span>
Always make a backup before making major changes to an existing production world.

Hopefully this helps some server owners avoid unnecessary lag during exploration.
 
Back