Krougal Posted August 14, 2025 Report Posted August 14, 2025 So being as the color changes to clay necessitated a lot of changes to molds, not to mention there wasn't 1 mod that had the 4 molds I want and only those 4, so I decided to take a stab at it. First I went the modmaker route, patched the blocktypes & language files. Models & recipes it shoved into a game directory. Nothing worked. Likely all domain issues but it was such a mess I finally decided to start over and just make it stand-alone without patching. I got all the domain issues worked out, since I was still having problems with textures, recipes, language, you name it. Now I'm down to the finish line, I thought I was done, but when I try to pour metal into them, the game crashes.I am stumped. Here's crash log, but I can attach the whole mod if anyone cares to look. Spoiler System.NullReferenceException: Object reference not set to an instance of an object. at Vintagestory.GameContent.BlockEntityToolMold.GetMoldedStacks(ItemStack fromMetal) in VSSurvivalMod\BlockEntity\BEToolMold.cs:line 443 at Vintagestory.GameContent.BlockEntityToolMold.CanReceive(ItemStack metal) in VSSurvivalMod\BlockEntity\BEToolMold.cs:line 166 at Vintagestory.GameContent.BlockSmeltedContainer.OnHeldInteractStart(ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel, Boolean firstEvent, EnumHandHandling& handHandling) in VSSurvivalMod\Block\BlockSmeltedContainer.cs:line 135 at Vintagestory.API.Common.CollectibleObject.OnHeldUseStart(ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel, EnumHandInteract useType, Boolean firstEvent, EnumHandHandling& handling) in VintagestoryApi\Common\Collectible\Collectible.cs:line 1205 at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.TryBeginUseActiveSlotItem(BlockSelection blockSel, EntitySelection entitySel, EnumHandInteract useType, EnumHandHandling& handling) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 855 at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.TryBeginUseActiveSlotItem(BlockSelection blockSel, EntitySelection entitySel) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 831 at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleMouseInteractionsBlockSelected(Single dt) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 550 at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnFinalizeFrame(Single dt) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 87 at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 1024 at Vintagestory.Client.GuiScreenRunningGame.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 250 at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 760 at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 663 at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 113 at OpenTK.Windowing.Desktop.GameWindow.Run() at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 337 at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 133 at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 95
Krougal Posted August 15, 2025 Author Report Posted August 15, 2025 (edited) So I went back to the patch version, rebuilt it all. Moved everything into assets\game\ (originally modmaker spit it out with the patches under assets\castaway) which stopped all the missing textures and shapes and recipes, even though they were all there. The domains are a total PITA. So I've got almost everything working, except 2 of the molds (spear & arrows) accept metal and 2 don't (plates and nails). I made all the needed entries. Debug is not showing anything wrong finally. The after output of the patch all looks correct. Edited August 15, 2025 by Krougal
Krougal Posted August 15, 2025 Author Report Posted August 15, 2025 (edited) So my plate mold shows 0/100 instead of 0/200 like it is supposed to. I found log entries when I try to pour now: 14.8.2025 21:22:53 [Warning] Failed resolving a blocks itemdrop or smeltedstack with code game:nailhead-tinbronze in tool mold drop for game:toolmold-blue-fired-nail 14.8.2025 21:23:55 [Warning] Failed resolving a blocks itemdrop or smeltedstack with code game:platehead-tinbronze in tool mold drop for game:toolmold-blue-fired-plate Which tells me the wildcard entry is picking them up, even though they have their own, because the word "head" is being appended. Is it patching those 2 in after the wildcard, since the other 2 seem to work fine (they haven't cooled yet, so I could have a problem still as they would be working fine with head, and if I get 1 arrow instead of 9, I will know). Sure as shit, i got 1 arrow. So the spear head works properly, because it was intended to fall under the default wildcard entry, which it does. I used addmerge instead of merge. I don't know what else to do, other than maybe remove the wildcard entry and re-add it? Edited August 15, 2025 by Krougal
Krougal Posted August 15, 2025 Author Report Posted August 15, 2025 If anyone else runs into this issue, I think I figured it out: https://wiki.vintagestory.at/Modding:JSON_Patching You need to do a move operation to make the wildcard last. Since it is as I suspected, if the thing has it's own entry it is taken out of the array once it finds a match. 1
Recommended Posts