Open FrankTCA opened 3 years ago
As described in the Mojang issue, the problem is reproducible in a number of ways. The easiest way is to generate a world (spawn area), leave the world (saves/unloads), rejoin the world (loads). One row of chunks around the edges of the previously generated area will have been dropped and is generated a second time. If you have some way of marking chunks that are generated twice across sessions (like OTG's BO4 structures), the bug is clearly visible. This happens on every save/unload/load by the way, and affects all decoration resources.
The mixins for Forge only fix the save on exit code path, SuperCoder's Fabric mixins also fix the auto-save path. We've used the Forge mixins for a while, they fix the issue when saving on exit and don't appear to cause any issues. Mojang has confirmed the issue for 1.16.5 and 1.17.1.
Expected behavior
Member of OpenTerrainGenerator dev team here.
We're running into issues with a Minecraft bug: MC-224729. It is causing chunks to be generated twice, which some of our structures don't support.
Observed/Actual behavior
Here are some images of the glitch in action.
The following issues appear in vanilla Minecraft.
Steps/models to reproduce
While you may be able to find this in vanilla, it is easier to see in OTG. Start by loading up an OTG preset using the OTG 1.16.5 Alpha. Wildlands, Biome Bundle, Dregora, etc should all work. Once the spawn chunks are loaded in, stop the server, and then begin exploring around. If you're lucky enough, you'll see some odd chunk borders where structures were cut off.
You can also attempt to find this is a vanilla world but it may be less noticable.
Plugin list
OpenTerrainGenerator 1.16.5 Alpha 0.0.17
Paper version
This server is running Paper version git-Paper-783 (MC: 1.16.5) (Implementing API version 1.16.5-R0.1-SNAPSHOT) You are running the latest version
Agreements
Other
Here's the mixins we used to fix the problem on Forge: MixinChunkManager.java
What one of our devs did but for Fabric: MixinThreadedAnvilChunkStorage.java