Vanilla chunk generation runs almost entirely on a single dedicated worldgen thread. Your other CPU cores sit idle while that one thread processes chunks one at a time. Adrenaline replaces the single-threaded worldgen mailbox with a concurrent job scheduler that runs multiple chunk generation tasks in parallel across all available cores, while still preserving correctness for stages that write across chunk boundaries.


Chunk generation in vanilla goes through a series of stages (noise fill, surface placement, cave carving, feature decoration, etc.). Most of these stages write only to the chunk they are generating and are safe to run in parallel. The one exception is the FEATURES stage, which can write blocks into the immediate neighbors of the chunk being processed.
Adrenaline tracks a "footprint" for each chunk job — the set of chunk positions the job may write to. Before dispatching a job, the scheduler checks whether any position in its footprint is currently being written by another active job. If not, the job runs immediately on the thread pool. If there is a conflict, it waits. This gives maximum parallelism without ever letting two jobs race on the same chunk.
The scheduler uses a reverse wait index so that when a job finishes and frees its footprint, only the jobs actually blocked by those positions are rechecked — not the entire queue.
Additional optimizations included:
A config file is generated at config/adrenaline.json on first launch.
workerThreads — number of threads used for chunk generation. Defaults to 0, which uses all available logical processors.stageBlacklist — list of chunk generation stage names to skip parallelization for, in case a mod has a conflicting stage.featureBlacklist — list of feature registry names to exclude from parallel execution.stageBlacklist.