Closed Aniotid closed 2 years ago
Mhh tough one... Does vs village use default worldgen? If thats the case such thing should not happen... The villages seem to use something called "postpass" which should allow the structure to render at a later point in the Worldgen generation. That should allow it to spawn ontop of other ruins and override the blocks.
If vs village uses custom worldgen behaviour maybe something like this could be added again.
Imma look a bit more into it today but I Dont really thing I could change much to prevent this bug. This could happen with vanilla ruins or traders aswell.
Thanks for reporting.
Oh hey, something similar also happened in https://github.com/G3rste/vsvillage/issues/13 , although the mechanics of their crash were different, but another case of VSvillage and BR overlaps causing some weird with VSV. I don't think it's honestly an issue on your end, though. I'm guessing BR 0.0.2 and VSV were using similar distances for where to place things, so less likely to happen with BR 0.0.3 since you adjusted that a bit. With as many little worldgen addition mods as there are now, I wonder if it's worth taking to the devs or putting an issue up on their github to consider for stability going forward. Hmm...
This error report is mostly copied from one sent to Gerste, because this is primarily a VSvillage and basegame's VSessentials entity placement error, but Better Ruins additions to world generation set events in motion. https://github.com/G3rste/vsvillage/issues/15
I'm not even certain if there's anything at all that Better Ruins could do to avoid overlapping structures placed by other mods, but that would be the thing to look at for preventing strange and rare oddities like this one.
Crash type: Multiplayer. Fatal error to Client resulting in immediate disconnect. Server is fine.
Game version: 1.17.2 and 1.17.3
Better Ruins version: BetterRuinsv0.0.2.zip VS Village version: vsvillage_v0.2.4_vsquest_v0.0.+.zip
Loaded Mods: ancienttools@1.4.7, backpackpackplus@1.0.3, betterruins@0.0.2, Ceramos@0.1.0, CommonerPlus@1.0.0, cralutweaks@1.0.2, hideandfabric@1.2.5, nightwatcher@1.3.0, primitivesurvival@3.0.5, translocatorengineeringredux@1.2.0, game@1.17.2, wildcraft@1.4.1, fromgoldencombs@1.3.14-pre.1, hudclock@2.8.0, medievalexpansion@3.8.1, petai@1.5.4, prospectorinfo@4.1.0, ruinvariants@1.0.1, stepup@1.2.0, creative@1.17.2, vsquest@0.0.4, survival@1.17.2, workbenchexpansion@1.5.1, metalrecovery@0.1.18-rc.2, campaigncartographer@3.0.2, cats@1.5.2, tradercamps@1.0.2, em@1.0.0, vsvillage@0.2.4, wolftaming@1.5.3, bricklayers@1.0.1
Repeatable: Not easy; highly specific circumstance involving ruins added to world generation by a mod. Consistent once its happened.
What happened?: A large ruin from Better Ruins ( https://mods.vintagestory.at/betterruins ) spawned overlapping the center of a VSvillage. This led to blocks taking up space above a bed. A villager either spawned in that bed, or attempted to use it, cannot be properly placed, and caused an unavoidable client crash.
Coming within loading distance of this village with VSvillage enabled results in client crash, always. Only resolution was to temporarily disable VSvillage to allow players to leave the area. Crash continues to happen after all blocks of both ruin and village have been removed, including the bed involved. Eventually forced chunks to regenerate with mod disabled, leaving only the BR ruin and no village, before adding VSvillage back to the server again.
Error log:
Game Version: v1.17.2 (Stable) 9/11/2022 6:05:35 AM: Critical error occurred Loaded Mods: ancienttools@1.4.7, backpackpackplus@1.0.3, betterruins@0.0.2, Ceramos@0.1.0, CommonerPlus@1.0.0, cralutweaks@1.0.2, hideandfabric@1.2.5, nightwatcher@1.3.0, primitivesurvival@3.0.5, translocatorengineeringredux@1.2.0, game@1.17.2, wildcraft@1.4.1, fromgoldencombs@1.3.14-pre.1, hudclock@2.8.0, medievalexpansion@3.8.1, petai@1.5.4, prospectorinfo@4.1.0, ruinvariants@1.0.1, stepup@1.2.0, creative@1.17.2, vsquest@0.0.4, survival@1.17.2, workbenchexpansion@1.5.1, metalrecovery@0.1.18-rc.2, campaigncartographer@3.0.2, cats@1.5.2, tradercamps@1.0.2, em@1.0.0, vsvillage@0.2.4, wolftaming@1.5.3, bricklayers@1.0.1 System.NullReferenceException: Object reference not set to an instance of an object. at Vintagestory.GameContent.BlockEntityBed.get_MountPosition() in VSSurvivalMod\BlockEntity\BEBed.cs:line 35 at Vintagestory.GameContent.EntityBehaviorControlledPhysics.TickEntityPhysics(EntityPos pos, EntityControls controls, Single dt) in VSEssentials\Entity\Behavior\BehaviorControlledPhysics.cs:line 227 at Vintagestory.GameContent.EntityBehaviorControlledPhysics.TickEntityPhysicsPre(Entity entity, Single dt) in VSEssentials\Entity\Behavior\BehaviorControlledPhysics.cs:line 156 at Vintagestory.GameContent.EntityBehaviorControlledPhysics.onPhysicsTick(Single deltaTime) in VSEssentials\Entity\Behavior\BehaviorControlledPhysics.cs:line 122 at Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\Util\ClientEventManager.cs:line 201 at Vintagestory.Client.NoObf.ClientMain.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\ClientMain.cs:line 1174 at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 1216 at Vintagestory.Client.NoObf.ClientMain.MainGameLoop(Single deltaTime) in VintagestoryLib\Client\ClientMain.cs:line 1103 at Vintagestory.Client.GuiScreenRunningGame.RenderToPrimary(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 123 at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 669 at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 613 at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(Object sender, FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 125 at System.EventHandler`1.Invoke(Object sender, TEventArgs e) at OpenTK.GameWindow.RaiseRenderFrame(Double elapsed, Double& timestamp) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 476 at OpenTK.GameWindow.DispatchRenderFrame() in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 452 at OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 375 at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93