A player who goes 3000 blocks from spawn can bring a server down to 8 TPS if the chunks do not exist yet. Pre-generation creates these areas before opening, when nobody suffers the CPU and disk spikes. You get a border that is already calculated, cleaner movement, and a disk bill that you know how to read before clicking start.
Install Chunk-Pregenerator on a Minecraft 2026 server
First check the version, loader, Java combination. Minecraft 1.20.6 and 1.21.x practically run under Java 21 on the server side. An old jar compiled for Java 17 can still start on some setups, but a recent server quickly returns UnsupportedClassVersionError if the runtime does not match. Type the command before moving a file.
java -versionOn Paper, place the plugin file in plugins/, then restart the server. On Fabric or Forge, put the jar in the mods folder, with the loader version that matches the Minecraft version. Do not mix families. A Fabric jar on a Paper server does not load. A Paper jar on Fabric does nothing. It only adds ten minutes of console reading.
Port 25565 does not change anything for pre-generation. It is used for connections. The heavy work happens in the server thread, in the region files, and on the disk. On a 4 GB offer, Paper 1.21.x with ten to twenty players allows moderate pre-generation if the map stays closed. With 8 GB, you mainly gain headroom for the cache and plugins. It is not a magic button to generate 100000 blocks in one hour.
On the Starmine panel, installation mainly avoids handling the jar over FTP, manual restarts, and logs opened in three places. For this task, you keep the console, the world files, and the scheduled stop in the same place. When a task lasts several hours, that saves time.
Calculate the pre-generation radius without blowing up the disk
You choose a radius in blocks, but the server writes chunks of 16 blocks. A square of 5000 blocks around 0 0 covers 10000 blocks by 10000 blocks, that is 625 chunks per side. That makes about 390625 chunks to create in the Overworld. The number quickly calms down any appetite for an infinite map.
Plan generously for the disk. An empty chunk weighs almost nothing. A chunk with biomes, caves, villages, structures, lighting data and block entities often ends up between 4 Ko and 20 Ko in the region files. A square pre-generation of 5000 blocks often ends up between 2 GB and 8 GB depending on the version, seed, datapacks and generation mods. With Terralith, Biomes O' Plenty or heavy structures, the upper limit comes faster.
| Real use | Recommended radius | Approximate chunks | When it gets bad |
|---|---|---|---|
| Friends survival, 5 to 10 players | 3000 blocks | 140625 | Beyond 6000 blocks, the disk is used for an area that is rarely visited |
| Community 20 to 40 players | 5000 blocks | 390625 | Beyond 10000 blocks, generation often takes a full night |
| Semi-RP with dynmap or BlueMap | 8000 blocks | 1000000 | Beyond that, the web map and backups become the real cost |
A radius of 10000 blocks is not twice as heavy as 5000. It covers four times more surface area. That is the classic mistake. You pay for the square of the distance, not the distance shown in chat.
Launch an Overworld pre-generation properly
Close the server to players before the first launch. An active whitelist and a clean restart are better than a Discord message sent too late. Pre-generation fills the same world that the players use. If someone explores during the task, you mix generation, saving, entities and teleports into the same 50 ms per tick budget. The server rarely chooses the part that suits you.
- Stop the server from the panel or the console. Check that the world folder exists and that the seed is the right one in server.properties. Changing the seed after a pre-generation creates ugly borders between old and new chunks.
- Start the server. Wait for Done in the console. This message confirms that the dimensions are loaded and that commands answer.
- Run the command from the console, not from a player's chat. The console avoids LuckPerms permission issues, forgotten operators, and disconnects while typing.
\/pregen gen startradius square 0 0 5000 minecraft:overworldThis command generates a square centered on X 0, Z 0, with a radius of 5000 blocks in the Overworld. The square fits a square worldborder better. If your border is round, choose a circle shape if your Chunk-Pregenerator build offers it in the command help. Do not copy syntax written for another branch of the plugin. If in doubt, /pregen help gives the grammar loaded by your jar, not that of a 2021 screenshot.
Adjusting generation speed without dropping to 5 TPS
Speed is read in TPS and MSPT. At 20 TPS, a tick lasts 50 ms. If the console regularly shows 80 to 120 ms during pregeneration, the server is falling behind. The message Can't keep up! Is the server overloaded? Running 5000ms or 100 ticks behind is not decorative. It means the server is stacking up five seconds of lag.
Leave max-tick-time at 60000 during tests. Setting it to -1 avoids some watchdog crashes, but it also hides a blocked task. That is a bad idea on a server you are not monitoring. A clean crash with a report is better than a Java process using 100 % CPU for eight hours.
| Measurement over 5 minutes | Action | Reason |
|---|---|---|
| 20 TPS, less than 45 ms | Keep going | The server keeps enough margin to save the regions |
| 18 to 19 TPS, 50 to 70 ms | Reduce the speed one notch | Backups may cause stutters |
| Less than 16 TPS, more than 80 ms | Pause | The lag makes logs and estimates unusable |
The pause is really useful. Use /pregen pause before a manual backup, a map render, or maintenance. Restart with /pregen resume when the disk load drops. On a 4 GB server, do not run BlueMap, a compressed backup, and Chunk-Pregenerator at the same time. The three of them read or write the same folders heavily, often at the moment when the region files grow the most.
Pregenerating Nether and End with realistic radii
The Nether does not need the same radius as the Overworld. One block in the Nether corresponds to eight blocks of Overworld travel for portals. If your Overworld is prepared out to 5000 blocks, a Nether radius of 625 blocks already covers the direct travel link. In practice, set 1000 to 1500 blocks for fortresses, bastions, and portal errors. Beyond 3000 blocks, you mainly fill with netherrack that nobody will see.
/pregen gen startradius square 0 0 1250 minecraft:the_netherThe End is handled differently. The central spawn stays within a small radius, but End cities start far away, often beyond 1000 blocks after the portals. For a community that hunts elytra, a radius of 4000 to 6000 blocks makes sense. For a private server, 2000 blocks are often enough, then you can open it up later if players clear the area.
On disk, separate dimension folders matter. The Overworld writes to world/region, the Nether to world/DIM-1/region, the End to world/DIM1/region on many Paper servers. A 12 GB zip backup can become 20 GB after map rendering, because BlueMap or dynmap tiles sometimes double the useful volume. If your quota is 25 GB, keep 5 GB free. Below that, the No space left on device error comes at the worst possible time, during a backup or a shutdown.
Checking the generated map and fixing a failed pregeneration
Do not validate a pregeneration because the command no longer runs. Validate it with three proofs. The console must show the end of the task, often Task completed or Generation finished depending on the build. The region folder must contain new mca files with a recent date. A spectator trip to 500, 2000, then 4800 blocks from the center must stay close to 20 TPS, with no visible generation spikes in the console.
If the server restarts in the middle, first open latest.log. Look for OutOfMemoryError, Watchdog, Can't keep up and No space left on device. Those four messages cover most lost evenings. Memory rarely fails on its own. Disk saturation and overly aggressive speed settings cause more damage, especially with structure datapacks.
Deleting region files destroys the affected chunks. Builds, chests, entities, modified villages, and terrain changes in that area disappear. Make a full backup of the world folder before removing a single mca file.
To stop a task that is going wrong, use /pregen stop, wait for confirmation, then stop the server cleanly. Do not kill the Java process during a disk write, unless it is completely frozen. Region files do not handle interruptions well in the middle of a backup. A dirty shutdown can turn a failed generation into a full restore.
Keep one fixed rule, documented radius, noted seed, noted Minecraft version, noted generation date. The day you move from 1.21.4 to 1.21.8, you know which areas were generated with the old generator. That detail is what avoids impossible tickets three weeks after launch.
Guides
Can players play during pregeneration?
Yes, technically, but it is not clean. Keep the whitelist enabled during large radii, especially above 5000 blocks. Player movement adds generation and saves during the task, exactly when you are looking for stable load.
Why is my server still lagging even though the map is pregenerated?
Pregeneration mainly removes the cost of chunk creation. It does not fix entity farms, hoppers, heavy plugins, a view-distance at 12 or a map render launched at the same time.
How long does a 5000 block radius take?
On a recent server, expect often 2 to 8 hours for the Overworld depending on the CPU, the disk, structures and datapacks. If MSPT goes over 80 ms for several minutes, lower the speed instead of letting it finish in poor conditions.
Should pregeneration be done before or after installing generation datapacks?
Always before opening, but after installing the datapacks that change the terrain. If you add a biome datapack afterwards, the old chunks keep the old terrain and the new ones create visible breaks.