Utility Nexus Admin (0.0.0-beta.10)
Curse Maven Snippet
What's new
v0.0.0-beta.10 - Pregen no longer blocks players
Fixed
- Chunk pregeneration could pin the server thread and leave players stuck on "Loading terrain" indefinitely. Generation ran synchronously on the main thread every tick (up to 50 blocking chunk builds, no time budget), so a busy server fell tens of seconds behind and an incoming player never finished logging in.
Changed
- Asynchronous generation via
getChunkFuture(..., FULL, true)with a bounded in-flight count (pregen.maxConcurrentChunks, default 4). The main thread only submits and reaps futures — it never blocks. - Per-tick wall-time budget
pregen.maxMillisPerTick(default 8). - Load-aware throttle
pregen.maxServerMspt(default 45): pregen skips any tick where the server is already running slow. - Work / rest cycle:
pregen.workSeconds(default 300) generating, thenpregen.restSeconds(default 120) idle, repeating. SetrestSeconds = 0to always work. - Login-safe: pregen pauses on player negotiation and while any connection is in the
LOGIN/CONFIGURATIONphase (server-list pings are ignored), and waitspregen.resumeGraceSeconds(default 30) of continuous emptiness before resuming. - Deferred auto-start: starts from
ServerStartedEventpluspregen.startupDelaySeconds(default 60), only while the server is empty./una pregen startstill starts immediately. - No startup datapack reload: global packs in
<gameDir>/datapacks/are now selected before the world's first datapack load, so the fullreloadResources()that used to fire right after startup (colliding with pregen) is gone. The/una datapack ...commands are unchanged. /una pregen statusnow shows phase, in-flight chunks, MSPT-throttle state and seconds to the next phase switch.- New
[pregen]keys:maxConcurrentChunks,maxMillisPerTick,maxServerMspt,workSeconds,restSeconds,resumeGraceSeconds,startupDelaySeconds.
Not verified in-game. This build compiles and passes ./gradlew build; the runtime behaviour on a live dedicated server has not been play-tested yet.
This mod has no additional files

