COWMODSКаталог модов

Chunky Pregenerator

Fabric mod that automatically pre-generates chunks around players using Chunky. Spiral batches, movement triggers, mid-bundle resume, Voxy integration, TPS auto-pause

Автор: nonprofit4 тыс.8обновлён 15 июн. 2026 г.
Механики игрыУправлениеГенерация мира

Описание

Chunky Pregenerator

Wide banner displaying the logo.

A Fabric mod for Minecraft 1.21.11 that automatically pre-generates chunks around players using Chunky as the generation backend. Runs completely in the background, survives restarts mid-spiral, and works on both singleplayer and dedicated servers.

Vibecoded using Claude. MIT licensed. Yes, it's incredibly polished and there are minimal bugs. 

Why this over Distant Horizons' built-in pregenerator

DH's pregenerator fires once at a fixed radius from the center of the world. It doesn't track where the player actually goes, can't adjust as they move, has no concept of prioritizing nearby terrain over distant terrain, and can't pause when the server is struggling. Once it fires, that's it.

This mod generates in expanding spiral rings centered on the player's actual position. The terrain closest to the player is always done first. When the player moves far enough from the last generation center, a new bundle fires automatically, re-centered on them. If server TPS tanks during generation, Chunky gets told to pause and waits for recovery. When it recovers, it picks back up. If you quit mid-spiral, it saves exactly which ring it was on and resumes from there on rejoin. Chunky naturally skips already-generated chunks within a ring, so you lose at most a partial ring worth of work.

It also forces a Voxy LOD rebuild at the start of each bundle by briefly expanding and collapsing render distance. Without this, Voxy doesn't register newly pre-generated terrain as LOD data until something else triggers a rebuild.

Features

Spiral batch generation — the bundle gets split into concentric rings using a quadratic ease-in curve. Ring spacing is tighter near the player and grows further out, which maps to how exploration actually works. Chunky skips already-generated chunks within each ring automatically, so overlapping rings are essentially free.

Movement-triggered re-center — once the player moves more than the deadzone distance from the last generation center, a new bundle fires centered on their new position. Defaults to half the generation radius, so there's always a buffer of pre-generated terrain ahead of wherever you're going.

Mid-bundle resume on rejoin — ring index, ring list, and center are written to the world's data folder on every save. On rejoin, after the join delay, it re-fires the current ring. Chunky skips the already-done portion automatically.

TPS auto-pause — Chunky pauses when server TPS drops below threshold (default 15 TPS) and resumes when it recovers (default 18 TPS). Prevents generation from compounding a performance problem.

Voxy LOD integration — when enabled, generation radius and deadzone track Voxy's actual render distance setting rather than static config values. Reads Voxy's config live via reflection, falls back to JSON parsing if reflection fails. Also fires a Voxy LOD rebuild (render distance expand/collapse cycle) at the start of each bundle so freshly generated terrain shows up in LOD without waiting.

Chunky API poll — completion detection goes through Chunky's actual ChunkyAPI.isRunning() via reflection rather than relying on log parsing or timers. Ring advance happens the moment Chunky actually finishes. Two consecutive false readings are required before advancing, as a debounce for the brief window right after a new task starts.

Stall watchdog — if Chunky goes completely silent (no isRunning()=true readings) for 10 straight minutes, the watchdog resets state so nothing hangs forever. Measures actual stall time rather than total runtime, so a legitimate multi-hour generation never trips it.

Per-session progress relay — Chunky's per-second log spam is suppressed. A clean progress summary goes out on a configurable interval instead.

Nether auto-scale — Nether generation radius is divided by 8 automatically to match the coordinate scale. A 250-chunk Overworld radius becomes ~31 chunks in the Nether.

End gate — the End won't pre-generate until a player has actually visited it. The End portal spawns the dragon on first entry, and you don't want that happening off-screen during pre-gen.

Sodium settings UI — all settings are exposed in a dedicated page in Sodium's video settings, with live tooltips that show what Voxy's render distance is actually reading as.

Server and singleplayer — runs on dedicated servers and singleplayer integrated servers. Client-side mods (Sodium, Voxy) are optional.

Requirements Dependency Required Notes Fabric Loader Yes 0.19.3+ Fabric API Yes Any 1.21.11 build Chunky Yes 1.4.55+ Sodium Client In-game settings UI + LOD rebuild cycle Voxy Optional Lets Voxy's render distance drive generation radius Chunky-Offline is recommended alongside Chunky in singleplayer. It keeps Chunky running between world loads.

Without Voxy, the mod uses the static generationRadius and triggerDistance from config.

Installation

Drop the jar into your mods/ folder. Config generates on first launch at config/chunkypregen.json. If you have Sodium installed, all settings are in Options > Video Settings > Chunky Pregenerator. Reload config in-game with /chunkypregen reload.

Command /chunkypregen status State per dimension, current ring, last center, live progress /chunkypregen trigger Manually fire a generation bundle for all enabled dimensions /chunkypregen trigger Fire for a specific dimension /chunkypregen cancel Cancel all active Chunky jobs and reset state /chunkypregen reset Clear saved last-center positions /chunkypregen stats Session stats: jobs fired, estimated chunks, active time /chunkypregen config Dump current config to chat /chunkypregen debug Toggle debug logging /chunkypregen reload Reload config from disk without restart /chunkypregen setworld reset Clear the new-world init flag so first-join pre-gen fires again

How the spiral curve works Ring radii follow radius x ((i+1)/N)^2. Ring count N scales automatically with radius and generationRingStep. At 250 chunks with default step of 25, you get 13 rings. At 1000 chunks you get 20. Each ring fires sequentially and the next ring only starts after isRunning() confirms the current one is done.

The quadratic curve means ring 1 covers the innermost ~1% of the area and the outer rings get progressively larger. The area near the player is always the first thing finished.

License MIT

Галерея

Sodium Settings!Elaborate and detailed settings!Voxy integration! Algorithm settings, dimension settings, etc. Banner Image

Последние версии

Все версии →
release

Chunky Pregenerator 2.2.0

2.2.0
15 июн. 2026 г.3,9 тыс.Minecraft: 1.21.11fabric
Скачать
Что нового
What changed since v1.0.0 Circular HUD widget A compact circular widget sits in the top-left corner (configurable). It shows two progress arcs and a proximity indicator, all in one place with no screen clutter. ![empty ring hud](https://cdn.modrinth.com/data/cached_images/61dc03a348aa18b28d91856760f1a5a56b027529.png) ![filled ring hud](https://cdn.modrinth.com/data/cached_images/49cb64e92b8294704bea694e9115669b3d176f48.png) Top arc (blue) — current ring completion, live from Chunky's per-second output Bottom arc (green) — how far through the full spiral bundle you are Inner circle — your position relative to the last generation center, scaled so the green ring represents the deadzone. Dot turns yellow then red as you approach the trigger distance Hides automatically on F1, F3, and ESC Position and size are adjustable in Sodium settings → HUD. Settings reorganized Five pages instead of four, with everything in a logical place: General — enable, shape, generation radius (deadzone auto-calculated), spiral settings, stop button Dimensions — per-dim toggles, nether auto-scale, per-dim radius overrides, player filters Performance — threads, TPS pause, join delay, check interval, LOD rebuild hold duration Voxy — all Voxy integration options together HUD — position, size, progress relay toggle, start/complete messages, debug logging Deadzone is now automatic The deadzone is always half the generation radius converted to blocks (radius / 2 × 16). There is no separate slider for it — the radius slider is the only control you need, and the tooltip explains what the resulting deadzone will be. New auto-retrigger toggle and better defaults Re-run generation when you cross into ungenerated territory, and defaults tuned for real-world use: radius 100, trigger distance 800, 6 threads, End enabled, HUD scale 0.7, ring step 10. Thread count UI Automatic mode (default, 25% of logical CPU threads) with an opt-in manual slider. The tooltip shows your exact CPU thread count and what the auto value resolves to on your machine. HUD center persists between sessions The last generation center is now restored from disk on world load, so the proximity indicator shows the correct position relative to your actual last bundle — not relative to spawn. Default settings New installs now default to: Progress relay on (Chunky's per-second chat spam suppressed; HUD shows live progress instead) Debug mode off Chat notifications on (start and complete messages only) Bug fix: thread count was never applied (closes #1) The chunkyThreads config field has existed since launch but was silently ignored — Chunky has no chunky threads command, so the stored value was never sent anywhere. Chunky always used its own internal default regardless of what you set. The fix reaches directly into Chunky's TaskScheduler.executor field via reflection and calls setCorePoolSize / setMaximumPoolSize on the underlying ThreadPoolExecutor before each bundle fires. Thread count configuration now actually works. Requirements Fabric Loader 0.19.3+ Fabric API (any 1.21.11 build) Chunky 1.4.55+ Sodium 0.8.12+ (client) Minecraft 1.21.11 Recommended Voxy (render distance integration) Chunky-Offline (keeps Chunky running between world loads in singleplayer)
release

Initial release.

1.0.0
5 июн. 2026 г.69Minecraft: 1.21.11fabric
Скачать
Что нового
- Spiral batch generation using a quadratic ease-in ring curve (tighter near player, wider outward) - Movement-triggered re-center when player moves past the deadzone threshold - Mid-bundle resume on rejoin — saves current ring index to disk, picks up exactly where it left off - Chunky API polling via reflection for instant ring advance on task completion - TPS auto-pause/resume (pauses at 15 TPS, resumes at 18) - Voxy LOD integration — reads render distance live and fires a LOD rebuild at bundle start - Stall watchdog — resets state if Chunky goes silent for 10 minutes straight - Nether auto-scale (radius divided by 8 to match coordinate scale) - End gate — suppresses End pre-gen until a player has actually visited - Sodium settings UI with live tooltips - Per-session progress relay replacing Chunky's per-second log spam - Full /chunkypregen command suite (status, trigger, cancel, reset, stats, reload, debug)