Chunk-Pregenerator

Mods
14,512,735 Downloads Last Updated: Nov 14, 2022 Game Version: 1.19.2   +3

Discord Support me on Patreon
Chunk Pregenerator is a tool that allows you to generate your World more efficiently, 
by Preemptively generating the chunks.
It is a Server-side tool that has some optional client features if wanted.
It can be also used in Single-Player too.

 

FAQ / Documentation / Known issues and Fixes to said issues.
Can be found in the wiki at the top

 

Features:

Very User friendly:
Chunk Pregenerator has a lot of features that make it very friendly to the users, such as:
Complete Documentation of each Command,
Auto Completion/Suggestions on Command-arguments as needed to provide guidance,
Improved logging that is color coded and structured to display what is going on,
Optional UI Features that are easier to use then plain text.

Multi-threaded World-Generation:
Chunk Pregenerator uses Multiple Cores to generate a Dimension,
It is achieved by Clever Management of Minecraft's Off-thread World-Generator which can do Multi-threaded World-Generation but does not enable it on its own.
This can help generate the World much quicker due to generation steps being handled independent of each other.

Multi-World Generation:
Chunk Pregenerator no longer generates Chunks on the Server-Thread, it only manages which chunks are to generate where on the Server-Thread.
This allows to generate Multiple Dimensions at the same time without affecting each others World-Generation speed. Provided the Server has enough Threads.

Playable during Pregeneration:
Chunk Pregenerator is designed to run while playing the game.
World-Generation is a CPU intensive task, but due to running Off-thread it can be ran in the background.
But this only applies if enough resources are provided, otherwise it might be affecting the Gameplay.

Improved Chunk Generation Checks:
Chunk Pregenerator has a much more Optimized way of Checking for Chunks.
This check is much much faster then a Normal Check, but it less accurate due to limited amount of information that is provided.
Extra to that Slower Checks are made Off-thread so they won't afffect Gameplay and can be done on the fly and Interrupted.

Very Efficient Memory Managment:
Chunk Pregenerator is not blindly generating chunks.
It also Manages its own Memory Usage and Keeps track of Memory Leaks and Cleans up after Minecraft if it is nessesary.
This is not perfect and can not account for other mods but it keeps known Minecraft Memory Leaks at bay without causing issues.
Side to that Pregeneration tasks got optimized to the point where they take so little that any reasonable generation wouldn't be noticed.

Retrogen:
Chunk Pregenerator is now one of the Only mods that allow Retrogeneration in 1.14 or newer.
This is achieved by recreating the WorldGeneration step itself.
It partly runs on the main thread due to the Chunks being already fully integrated into the World so this will have a effect on Server Performance but it is much less then a normal Generation.

Intigrated Profiler (1.12 or older):
Chunk Pregenerator has a Integrated UI Based Profiler, that allows to see live stats of what is happening in your world.
It also provides information on things, Such as Block Updates, Block Ticks, Active TileEntities/Entities and which are ticking and which not.
This is also done only on the Networking Thread which means it can grab the infromation without actually getting stuck if the server itself is stuck too.

Dimension Control (1.16 or newer):
Chunk Pregenerator has a way to disable or enable dimensions even while the game is running.
This can be really since Dimensions  can no longer unload on their own and can eat a small amount of resources.
This is usually not a problem that add a way to create a lot of dimensions that may only get used a couple times and then ignored this can add extra unnecessary lag.

Dimension Specific Seeds (1.19 or newer):
Chunk Pregenerator allows you to set seeds per dimension. That includes modded dimensions too.
This can be configured in the "pregen_seeds.json" in the server config folder.

   

Warnings about Massive world Generation (+400 Chunk Radius):

This section is for Any Minecraft Version. If something is version specific, it will be notated.
Since i have been asked multiple times about massive worldgen and I repeat the same warnings with these requests I thought lets type them out.
These warnings are for Vanilla Only, modded will amplify these issues massivly, so if you read this then make sure you think about how much mods actually add. (Structure mods are one specific issue)

So you want to generate larger then a 250 Chunk / 4000 Block Radius. Lets say 1500 Chunk Radius or larger. There is a couple things you as the player or server owner need to take care of to make sure you don't end with a corrupted world or with a world that uses so much ram that it is unplayable. Minecraft has sadly some memory leaks in each game version.

First thing to know is: Massive WorldGeneration takes time.
If you generate a world of 1000 ChunkRadius in Vanilla, you can be sure that this will take 24-48 hours. If you go to a 2000 Chunk Radius that time will 4x at the very least. But usally its a 8x with the amount of data that come into play. So a 2000 Chunk Radius will take a week most likely. Depending on the modpack this will 10x or 50x or only 1.2x.
If you go to the max radius (25k ChunkRadius) that thing will take a YEAR. And not with default settings. I mean a full Year at most optimized settings you can find. And that is calculated with a I5-7500 CPU.
Its not the best CPU but its already quite fast compared to server CPUs.

Next thing is: Have enough Storage.
I have a small World in 1.16.5 (150 Chunk Radius overworld and 100 Chunk Nether) and it already takes 700MB in a very light (worldgen) modded world. Pregen didn't even notice the mods.
So if you double that you are already at 2.8GB with a 300 & 200 Chunk Radius. If you go with a 1000 chunk radius you will be most likely at the 3 digit GB usage just for the world. (Modded will make it worse)
Make sure you are prepared for that. If you massgen have a 1TB at the very least of free room if you go large enough. This is just a suggestion, if you know better then you know what to do.

Next thing is: Do not start with the final world.
If you are massgenerating, do not start with the final world you want to play on. Start with a Smaller test world (same seed) and look how well it works. Like do a 300 radius gen and see what problems arise, because if there is a problem midgen at 75% and it corrupted the world you lose a lot more time then just doing a 24 hour generation test. And the cool thing is Chunk pregen can do expansions too. So in a step by step generation you can see problems and fix them. Its a slower process but you need to see what your game needs to stay stable.
You can go the risky rout and just start and hope that it goes well but usually it won't at that scale. Up to 300 chunk radius is save to do even so some ram usage effects will appear, they will stay small enough not to cause trouble with a 4-5GB Ram setup.

Next thing is: Keep Track of Structure files, Mineshafts specifically (1.12 Only)
In 1.12 or older structures are stored Globally. That means they are always loaded. Now usually that is not an issue if you don't have a lot (likeless then 100). Problem is Mineshafts spawn EVERYWHERE and a LOT of them spawn.
Why is that a problem though the "mineshaft file is only 500kb big" (example), well you see. Minecraft not only stores them Globally, but they are globally stored 2x. Yes 2 times. Once in the usable form for the  game, and the second time in Uncompressed NBT form to speed up writing time. And that is a problem because the actual files are Extremely compressed. So that 500 KB could be already 1.5-3GB of Ram usage. That high of a Compression. All files in the "data" folder are that compressed. So if you see outliers that could be a reason of high ram usage. Because they are globally stored in ram. (But mods usually only store them 1x instead of the structures 2x).
So whats a fix for it? For vanilla structures. You can just delete the files, just make sure the server is not running at the time. The only thing that no longer works is the "locate" command because that actually uses these files. And you only need to delete the excessivly large files. Like anything below 3 digits in the KB range is fine to keep. If you are worried that things might break. Just rename them for a test.
But for vanilla structures make sure to keep track of the mineshafts file. Oh and for mods that add structures. Depending on the implementation this problem exists for them too. Reconcurrent complex actually stores all its structures in a single file and that usually gets large pretty quickly.

Last thing: You need to maintain your pregeneration.
Yeah, you can not just start and wait it to finish, you need to keep track of it. Like keep the chat messages open at any given time while you are not sleeping.
Because if a problem arises you need to know that. In 1.12 chunkpregen has fail switches that will kill the game to ensure the save file stays safe. In +1.14 there is almost non there yet because the problems that 1.12 has are so decentralized that they can not affect the main game anymore.
But in general if you don't keep track of your pregeneration and anything corrupts because of a thing you didn't check that will be most likely a restart from scratch.

This list is the most often repeated issues with mass generation. (+300 Chunk Radius (10k world diameter)) I have been warning about.
I hope that helps you get the most stuff prepared and that you account for all of that.

 
Spotlights:

If you want to submit a Spotlight it will be inserted here:

 

Spotlight Bears Den (Version 3.0.3):

Preview Spotlight Bears Den (Version 3.0.3):


By Bears Den (Version 2.0):


Spotlight By Goshen (Version 1.9.0)

 

Tips and tricks with Amidst & JourneyMap (Version 1.9.2)

 
Progress Chat Spam:

This is how the Progress bar in chat looks like. (Fancy I know)
[Task Name] Shows the Active Task.
[World] Shows the World the Task runs in.
[Task Type] Shows the Generation Type
[Task] Shows how far the Progress of the task is. "Main" is the main generation step, "Light" is the finalization of the chunks so they can be used. And "Total" is how many chunks are in total to generate.
[Speed] Shows how fast each Generator is running per tick. (20 ticks a second)
[Loaded]: Shows the Loaded Chunks, RegionFiles (save files) and the PointsOfInterest (Villager stuff). This is shown only for pure Debug reasons and if any of these numbers get to crazy high you know you have a problem. (Loaded Chunks: Should never go above 15-20k the starting amount, RegionFiles should never go above 150 and Points of Interest should always go back to 50k but not instantly)
[Time Left] Shows the Estimated time until the task is finished. (needs 5-10 mins to get accurate)
[Ram Usage] Shows the Ram Usage of the server


Comments

  • To post a comment, please or register a new account.
Posts Quoted: