跳到正文

Worldgen Guard

作者:DenLille_

Prevents server freezes caused by buggy mods that force-load neighboring chunks during world generation.

收藏

介绍

中文介绍正在准备中,下面暂时显示原文。

Worldgen Guard
A defensive mod that prevents server freezes caused by buggy worldgen mods that force-load adjacent chunks during chunk generation.

The Problem
Some Minecraft mods contain Feature implementations that call methods like Block.dropResources(), BlockEntity.setChanged(), or Level.getBlockState() while a chunk is still being generated. These calls can trigger a synchronous force-load of a neighbor chunk that hasn’t finished generating yet, parking the server thread on a CompletableFuture.join() indefinitely.

The symptom: the world freezes for players. Blocks stop dropping items, mobs become immobile, and the tick counter climbs from 40s → 80s → infinity. The server doesn’t crash, it just stops ticking. Restarts only delay the next freeze when worldgen rolls the same dice again.

What This Mod Does
Worldgen Guard installs four defensive Mixins that intercept the dangerous calls during the chunk decoration phase and cancel them before they can deadlock the server. The cancellations are safe: vanilla worldgen never relies on these calls, and the data they would have produced is either persisted by the regular chunk-save path or recomputed lazily on first interaction.

How It Works
* ChunkGenerator mixin marks each thread as “worldgen-active” while it’s running biome decoration.
* Block mixin cancels dropResources() calls during worldgen.
* BlockEntity mixin cancels setChanged() calls during worldgen (when relevant).
An opt-in Level mixin logs suspect cross-chunk reads to help identify additional offending mods.
All four guards can be individually toggled in config/worldgen_guard-common.toml.

When to Install
You run a heavily modded server and have seen unexplained “world frozen, server still up” symptoms.
Your players report that block-breaking or mob behavior randomly stops working after exploration into new chunks.
You’re a modpack author and want to harden your pack against the long tail of poorly-written worldgen mods.
If your server is fine, you don’t need this. The mod is a targeted fix for a specific deadlock pattern, not a general performance booster.

常见问题

Worldgen Guard 支持哪些 Minecraft 版本?

Worldgen Guard 支持 Minecraft Java 版 1.20.1,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

Worldgen Guard 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

DenLille_ 的其他作品

查看全部 →