Links
Tags
Creators
Details
0.1.0-beta.1
Compatibility
Changes
First beta release after a round of production tuning on real hosts. The plugin now ships with auto-scaled throttle defaults calibrated against an actual container-host crash, six chunk-visit patterns, a resume command, and a simplified config aimed at public use.
Added
- Traversal patterns as an optional last argument to
/cg start. Six patterns:center(default, spiral outward from the zone center),edge(concentric rings inward from the outer perimeter to the center), andnorth/south/east/west(linear row or column sweep starting at the named edge). All patterns visit the same set of chunks; only the order differs, and the saved iterator index is pattern-aware so a paused job resumes in its own sequence. /cg resume <world>to restart a paused job from where it left off, completing the start / stop / resume / cancel quartet. Paused jobs were previously only reactivated by a server restart withauto-resume: true. New permission nodechunkgenerator.command.resume.inflight/targetpipeline pressure reading in/cg statusand the periodic console log. When chunks are being submitted but not completing (slow Paper chunk worker, stuck futures, far-out generation) the diagnosis is obvious from one command.- Startup log lines that report the resolved throttle values and
recommend a
paper-global.yml > chunk-system > worker-threadssetting matching the host's core count, so operators do not have to derive the Paper-side tuning themselves. - README sections on container hosts and
MaxRAMPercentage(Pterodactyl, Docker — heap-based monitoring cannot observe the cgroup RSS ceiling) and on maximising sustained throughput (the real ceiling is Paper's chunk worker count, not the plugin's queue depth).
Changed
config.ymlflattened and trimmed for public use. A short Basics block at the top (target-tps, bossbar / actionbar / console toggles,auto-resume) and an Advancedthrottlesection that most servers never need to touch. A banner at the very top points operators atpaper-global.yml > chunk-systemfor the actual speed lever. Thedisplay,monitoringandpersistencewrapper sections are gone — every knob lives at the root now.- Auto-scaled defaults retuned against production data and tied to
the core count rather than the heap alone, with a conservative
30 MB-per-inflight-chunk transient estimate.
max-inflight = max(64, min(cores × 32, heapMB / 60))start-inflight = max(16, cores × 6)
- Default memory thresholds lowered:
memory-backoff-pct85 → 70,memory-pause-pct92 → 80, to keep a margin from the container RSS limit that heap-based monitoring cannot see directly.
Fixed
- Kernel-OOM crash on container hosts (Pterodactyl, exit code 137) when the throttle saturated to its previous auto-scaled ceiling and Paper's chunk save thread fell behind: held chunks plus native memory exceeded the cgroup limit even while JVM heap stayed under the old 85 % backoff threshold.
- ETA no longer overflows to
Long.MAX_VALUE(rendered as2562047788015215h30m) when the smoothed speed decays toward zero. Below 0.01 chunk/s or for predicted ETAs over a year, the status returns?instead of a meaningless number. - Speed readout shows two decimals below 10 chunk/s and one decimal
below 100, so sub-1 chunk/s progress no longer rounds to a flat
0.
Migration
- Delete
plugins/ChunkGenerator/config.ymlafter upgrading so the new flat layout (with thepaper-global.ymltuning banner) regenerates. Old YAMLs still load but stay on the previous keys that the plugin no longer reads.
Optional dependencies
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:NWpw6ccW:GXA8VVAA"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:NWpw6ccW:GXA8VVAA"
}
