Oh The Biomes You'll Go

Oh The Biomes You'll Go

50M Downloads

New chunk generation crash issue with BYG 1.1.5 (1.16.3/1.16.4) on Forge 31.1.1 (1.16.4)

solarblindfull opened this issue · 16 comments

commented

Hello !

Thank very much for this amazing mod !

I'm on Forge 31.1.1 for Minecraft 1.16.4. Unfortunately, I encounter a big chunk generation issue with BYG (1.1.5 version for 1.16.3/1.16.4) as you can see in the lastest log below. The crash occurs in singleplayer and in my personnal server too (same error) that leads to a world corruption (can't play this world ever again).

Lastest server log

[01déc.2020 22:46:22.050] [Worker-Main-136/FATAL] [net.minecraftforge.common.ForgeMod/]: Preparing crash report with UUID 25a7d2ed-cc0e-4d93-bff0-3f4cf1e0f828

[01déc.2020 22:46:22.054] [Server thread/ERROR] [net.minecraftforge.eventbus.EventBus/EVENTBUS]: Exception caught during firing event: net.minecraft.crash.ReportedException: Exception generating new chunk

Index: 11

Listeners:

	0: NORMAL

	1: ASM: net.quetzi.morpheus.helpers.MorpheusEventHandler@54777505 worldTickEvent(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V

	2: ASM: class com.wonderfulenchantments.enchantments.PhoenixDiveEnchantment onUpdate(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V

	3: ASM: class insane96mcp.longerdays.WorldTick onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V

	4: net.minecraftforge.eventbus.EventBus$$Lambda$2740/1328199540@b4498f

	5: ASM: class com.wonderfulenchantments.enchantments.DodgeEnchantment updateEntitiesKnockBackImmunity(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V

	6: ASM: class vazkii.quark.oddities.magnetsystem.MagnetSystem tick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V

	7: ASM: vazkii.quark.automation.module.FeedingTroughModule@56285f31 buildTroughSet(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V

	8: ASM: vazkii.quark.automation.module.PistonsMoveTileEntitiesModule@5ae52c0e onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V

	9: ASM: vazkii.quark.tweaks.module.ImprovedSleepingModule@3a5bd8b7 onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V

	10: ASM: com.natamus.zombiehorsespawn.events.ZombieHorseEvent@18c9671e onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V

	11: ASM: com.natamus.skeletonhorsespawn.events.SkeletonHorseEvent@10586f7 onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V

	12: ASM: com.natamus.giantspawn.events.GiantEvent@5f072537 onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V

java.util.concurrent.CompletionException: net.minecraft.crash.ReportedException: Exception generating new chunk

at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273)

at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280)

at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:961)

at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:926)

at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442)

at net.minecraft.world.chunk.ChunkTaskPriorityQueueSorter.func_219083_b(SourceFile:58)

at net.minecraft.util.concurrent.DelegatedTaskExecutor.func_213148_e(SourceFile:94)

at net.minecraft.util.concurrent.DelegatedTaskExecutor.func_213145_a(SourceFile:137)

at net.minecraft.util.concurrent.DelegatedTaskExecutor.run(SourceFile:105)

at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)

at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)

at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)

at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)

at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

Caused by: net.minecraft.crash.ReportedException: Exception generating new chunk

at net.minecraft.world.server.ChunkManager.lambda$null$18(ChunkManager.java:535)

at com.mojang.datafixers.util.Either$Left.map(Either.java:38)

at net.minecraft.world.server.ChunkManager.lambda$chunkGenerate$20(ChunkManager.java:522)

at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952)

... 11 more

Caused by: java.lang.ArrayIndexOutOfBoundsException: -1

at net.minecraft.world.chunk.IChunk.func_217308_a(IChunk.java:138)

at net.minecraft.world.chunk.ChunkPrimerTickList.func_205362_a(SourceFile:59)

at net.minecraft.world.ITickList.func_205360_a(SourceFile:9)

at corgiaoc.byg.common.world.surfacebuilder.CanyonSB.buildSurface(CanyonSB.java:114)

at corgiaoc.byg.common.world.surfacebuilder.CanyonSB.func_205610_a_(CanyonSB.java:17)

at net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder.func_215450_a(SourceFile:27)

at net.minecraft.world.biome.Biome.func_206854_a(Biome.java:303)

at com.qouteall.imm_ptl_peripheral.alternate_dimension.ErrorTerrainGenerator.func_225551_a_(ErrorTerrainGenerator.java:217)

at net.minecraft.world.chunk.ChunkStatus.lambda$static$6(ChunkStatus.java:63)

at net.minecraft.world.chunk.ChunkStatus$ISelectiveWorker.doWork(ChunkStatus.java:240)

at net.minecraft.world.chunk.ChunkStatus.func_223198_a(ChunkStatus.java:198)

at net.minecraft.world.server.ChunkManager.lambda$null$18(ChunkManager.java:524)

... 14 more

[01déc.2020 22:46:22.056] [Server thread/ERROR] [net.minecraft.server.MinecraftServer/]: Encountered an unexpected exception

java.util.concurrent.CompletionException: net.minecraft.crash.ReportedException: Exception generating new chunk

at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273) ~[?:1.8.0_202]

at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280) ~[?:1.8.0_202]

at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:961) ~[?:1.8.0_202]

at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:926) ~[?:1.8.0_202]

at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442) ~[?:1.8.0_202]

at net.minecraft.world.chunk.ChunkTaskPriorityQueueSorter.func_219083_b(SourceFile:58) ~[?:?]

at net.minecraft.util.concurrent.DelegatedTaskExecutor.func_213148_e(SourceFile:94) ~[?:?]

at net.minecraft.util.concurrent.DelegatedTaskExecutor.func_213145_a(SourceFile:137) ~[?:?]

at net.minecraft.util.concurrent.DelegatedTaskExecutor.run(SourceFile:105) ~[?:?]

at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402) ~[?:1.8.0_202]

at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_202]

at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_202]

at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) ~[?:1.8.0_202]

at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[?:1.8.0_202]

Caused by: net.minecraft.crash.ReportedException: Exception generating new chunk

at net.minecraft.world.server.ChunkManager.lambda$null$18(ChunkManager.java:535) ~[?:?]

at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[?:?]

at net.minecraft.world.server.ChunkManager.lambda$chunkGenerate$20(ChunkManager.java:522) ~[?:?]

at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952) ~[?:1.8.0_202]

... 11 more

Caused by: java.lang.ArrayIndexOutOfBoundsException: -1

at net.minecraft.world.chunk.IChunk.func_217308_a(IChunk.java:138) ~[?:?]

at net.minecraft.world.chunk.ChunkPrimerTickList.func_205362_a(SourceFile:59) ~[?:?]

at net.minecraft.world.ITickList.func_205360_a(SourceFile:9) ~[?:?]

at corgiaoc.byg.common.world.surfacebuilder.CanyonSB.buildSurface(CanyonSB.java:114) ~[byg:1.1.5]

at corgiaoc.byg.common.world.surfacebuilder.CanyonSB.func_205610_a_(CanyonSB.java:17) ~[byg:1.1.5]

at net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder.func_215450_a(SourceFile:27) ~[?:?]

at net.minecraft.world.biome.Biome.func_206854_a(Biome.java:303) ~[?:?]

at com.qouteall.imm_ptl_peripheral.alternate_dimension.ErrorTerrainGenerator.func_225551_a_(ErrorTerrainGenerator.java:217) ~[immersive_portals:0.9]

at net.minecraft.world.chunk.ChunkStatus.lambda$static$6(ChunkStatus.java:63) ~[?:?]

at net.minecraft.world.chunk.ChunkStatus$ISelectiveWorker.doWork(ChunkStatus.java:240) ~[?:?]

at net.minecraft.world.chunk.ChunkStatus.func_223198_a(ChunkStatus.java:198) ~[?:?]

at net.minecraft.world.server.ChunkManager.lambda$null$18(ChunkManager.java:524) ~[?:?]

at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[?:?]

at net.minecraft.world.server.ChunkManager.lambda$chunkGenerate$20(ChunkManager.java:522) ~[?:?]

at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952) ~[?:1.8.0_202]

... 11 more

The issue is random when I play in the world, even if I stay near the spawn. It seems that the "CanyonSB" biome type is responsible.

I play with Quark and Biome'O Plenty mods (lastest versions).

Can you see what's wrong please ?

Thank very much for your attention and have a good day !

commented

Closing. use this if forge didnt fix it already: https://www.curseforge.com/minecraft/mc-mods/chocolate-fix

commented

After some investigation I found out that the surface builder crash is due to CanyonSB calling schedule tick to a block under y level 0
https://github.com/CorgiTaco/BYG/blob/Fabric-1.16.X/src/main/java/corgiaoc/byg/common/world/surfacebuilder/overworld/CanyonSB.java#L114
Because alternate3/4 dimension has sea level 0 it will cause it to schedule a y=-1 blockpos and cause array out of bound exception

commented

@qouteall why dont you leave the surface builder method empty? Im assuming that these dimensions are empty space so that would only make sense? And yes ill patch this on my end ig but even then my biome should only be in the overworld but mojang haddddd to do this nonsense in 1.16.4 >:(

commented

I changed the alternate dimension sea level to 63 (the same as superflat) and it will probably be fixed. (This also make the chaos dimension to have more floating waters which makes it more chaos)
Which surface builder method is empty?

commented

@qouteall dont use this method at all:
image

commented

Use which method to replace it?

commented

Just leave it empty tbh? Or create a public static method that will never call modded biomes? Idk just some suggestions to ensure this doesnt happen w/ anyone else

commented

Well, it needs to build the surface or the chaos dimension will only have stone. I added a try catch so it won't crash if other worldgen issue happens

commented

oh alright!

commented

Do you have a dimension mod installed?

commented

Wow ! That's quick ! Thank for your reply.

I've Immersive Portal, Undergarden, Bumblezone and World Blender installed. The crash occurs in the overworld even before I generate the dimensions or a portal (except global portal for Dimension Stacking with the nether)

commented

Immersive Portals is known to cause issues w/ my surface builders. I'll open a report to them. Also sounds to me you had your chunks corrupted and the biomes switched around.

commented

com.qouteall.imm_ptl_peripheral.alternate_dimension.ErrorTerrainGenerator
Hmm

commented

com.qouteall.imm_ptl_peripheral.alternate_dimension.ErrorTerrainGenerator
Hmm

It's weird ! I don't even use this dimension because of the compatibilities issues

commented

NGL this is probably a result of the fragility of world gen datapacks

commented

Immersive Portals is known to cause issues w/ my surface builders. I'll open a report to them. Also sounds to me you had your chunks corrupted and the biomes switched around.

Thank for the details. So Immersive portals causes this corruption. I'll open an issue on their GitHub too. Thank.