- Source commit:
57b9727
Chunker 26.2 is mostly a pre-generation accuracy and cleanup update. The command format stays the same, but the code that decides what chunks to request, when to stop, and how to unload chunks has changed.
The biggest user-facing change is radius handling. Older builds rounded radius inputs up to larger region-sized areas (feature of Mojan or paper is adding 2 chunk padding next to chunks generated). That could make Chunker process more chunks than the user asked for. This version converts block, chunk, and region radius inputs into chunk counts more directly, then adjusts the requested area to account for the extra neighbor chunks Minecraft can generate near the edge.
This should make pre-generation finish closer to the size you requested.
Radius and stopping changes
- Radius inputs now target chunk-sized areas more directly.
- Explicit radius runs now apply bounds around the generation center.
- The world border chunk count is now calculated from the actual chunk range touched by the border.
- Chunker no longer waits for the end of the current region before finishing a normal run.
- Progress now tracks submitted chunks, completed chunks, and active safety tasks.
- Safety mode waits for its async work to finish before counting the chunk as done.
Paper, Folia, and chunk unloading
Chunk unloading was changed in several places. Paper and Folia paths now queue unload requests instead of directly unloading chunks from async completion callbacks.
This affects:
- Normal Paper pre-generation
- Paper safety mode
- Folia region-scheduled generation
- Chunk load event cleanup
- Server shutdown cleanup
The goal is to keep chunk work safer around async loading and Folia region rules.
Player chunk tracking
Player-loaded chunk handling was cleaned up.
- Player movement now checks block coordinates first, then only updates tracking when the player changes chunks.
- Cancelled movement events are ignored.
- Player chunk tracking now looks up the task for the current world instead of scanning all tasks on every move.
- Player quit and world-change cleanup now uses a snapshot of active tasks, which is safer while tasks are starting or stopping.
Save and resume handling
Pregeneration state loading was rewritten.
- State files still use the same underscore-separated format.
- Old 7-part state files are still upgraded to the newer 9-part format with center data.
- Saved progress now uses the higher value between submitted chunks and completed chunks.
- State loading now validates number ranges before applying them.
- Error messages now use the stored world name where possible.
Performance and cleanup changes
Several hot paths were cleaned up to reduce small object creation and repeated lookups.
- Task storage now uses a faster world ID map.
- Chunk iteration now returns raw chunk coordinates instead of creating a ChunkPos object for each chunk.
- Player chunk tracking uses smaller initial sets for each player.
- Console formatting and save/load formatting now use StringBuilder paths instead of repeated string formatting.
- Game rule updates now skip writes when the world already has the target value.
Build changes
- Plugin version changed from 26.1.2 to 26.2.
- Project version changed from 26.1.2 to 26.2.
- Paper and Folia API range changed from 26.1.2 build minimum to 26.1 build minimum.
- fastutil is now listed in the Maven dependencies.
- The Maven shade plugin was removed from the build file.
Compatibility note
The main commands and config style are not meant to change in this release. Existing users should be able to keep using the same command format.
A lot has changed in this version code wise. Please report any bugs you find, especially issues with radius size, stopping early or late, resume data, Paper safety mode, Folia runs, or chunks staying loaded after a run.
Report issues here: https://github.com/DavidS-Repo/chunker/issues