Mods / Quality of Building [WIP]
Tags:
#QoL
Author: BeloMaximka
Side: Both
Created: Oct 18th 2025 at 4:26 AM
Last modified: Nov 29th 2025 at 10:03 PM
Downloads: 840
Follow Unfollow 76
Author: BeloMaximka
Side: Both
Created: Oct 18th 2025 at 4:26 AM
Last modified: Nov 29th 2025 at 10:03 PM
Downloads: 840
Follow Unfollow 76
Latest release (for Vintage Story 1.21.0 - 1.21.6-rc.1, potentially outdated):
qualityofbuilding_1.1.0.zip
1-click install
What this mod does
- Adds a building menu ('B', can be remapped) while holding a block ingredient (an oak board, for example), which allows you to select a block and just place it without fiddling with the crafting grid. Materials will be automatically consumed from the inventory.
- Changes the drops of certain blocks so they return the materials they were built with. No more clutter in the inventory like slabs and roofing.
- Adjusts some grid recipes to deal with weird proportions; this may make some a bit more expensive (cob was nerfed).
- Stone blocks now use mortar instead of clay. Adds a mortar recipe from clay. Doubles the yield from the original mortar recipe to offset this.
- Adds some building modes to shovels for roadmakers.
Supports vanilla chisel menu as well

Compatibility
Haven't tested with other mods. It can potentially mess with mods that change grid recipes and block drops
Existing saves
Safe to add / remove from existing saves
Custom recipes
The list of recipes is not final, and a lot are missing, but you can add your own. See the example for the general idea.
| Mod Version | Mod Identifier | For Game version | Downloads | Released | Changelog | Download | 1-click mod install* |
|---|---|---|---|---|---|---|---|
| 1.1.0 | qualityofbuilding | 224 | Nov 29th 2025 at 10:03 PM | qualityofbuilding_1.1.0.zip | 1-click install | ||
| |||||||
| 1.0.0 | qualityofbuilding | 616 | Oct 19th 2025 at 1:09 PM | Empty | qualityofbuilding_1.0.0.zip | 1-click install | |
been using this on my current server and wow this should just be how all these kinds of games handle building. this is now 100% neccessary for any playthroughs of this game for me
LunaGore zakhad thanks for the reports! I'll try to fix them in the next update
Had a crash while attempting to build a door using aged wood, hitting the keys to open the menu is where it crashed :(
Running on 64 bit Windows 10.0.26100.0 with 65443 MB RAM
Game Version: v1.21.6 (Stable)
1/19/2026 10:56:27 PM: Critical error occurred in the following mod: qualityofbuilding@1.1.0
Loaded Mods: walkingstick@1.0.15, alefix@1.1.0, betterandimprovedweather@0.1.8, betterarrows@1.0.1, betterbreadsatiety@1.0.0, bettercrates@1.9.0, betterforest@0.1.1, boatiespeedie12@1.0.4, bonebroth@1.2.2, bonemarrowsoup@1.0.1, bradyladder@1.1.0, bradyrockyextraction@1.1.0, bushmeatrecipe@2.0.0, butterflyredux@1.0.0, buzzybees@1.1.7, catchlivestock@0.2.2, catchledge@0.7.0, cavesymphony@1.2.1, chickenfeed@1.1.10, cbr@2.0.1, chiseltools@1.16.1, cindersandembers@1.0.2, clickuptorches@1.1.1, coldstorage@2.0.0, conquest@1.0.1, craftabletextureflipper@1.0.0, crawlanddive@0.2.3, cutthefat@1.0.3, darcesdriftersredone@1.2.8-dev.1, diversediets@1.0.3, elkmorehealth@1.0.1, perpetualstew@1.1.6, fastpicklencure@1.2.0, fixedpaths@1.0.2, flickeringlights@0.1.2, forestsymphony@1.0.6, bovinae@0.3.5, capreolinae@2.0.7, glowtorns@1.0.1, goatfeed@1.0.0, hangingoillamps@1.0.5, hidearmor@0.0.1, immersivecorpsedrop@1.0.3, immersiveminingfork@0.2.18, immersivelanterns@0.3.2, immersivemining@0.2.18, immersivetooldamagetweaks@1.0.0, JacksFirewood@1.1.0, jackslogtweak@1.2.0, jumpheight@1.3.0, lanternprojection@1.0.1, lessdrift@2.0.0, lightrifts@1.1.1, logicalclothingwarmth@1.3.0, manualdishes@0.1.1, manualdough@1.1.7, manualquenching@1.0.10, medievalclothes@1.0.9, molds@0.2.7, moreicons@1.1.1, nodrifterthrow@1.0.1, ohaa@1.0.0, overhaullib@1.19.6, particlesplus@2.3.1, pickflowers@1.0.3, pigfeed@1.0.9, pinkcurrantflowers@1.0.0, plainwallpapers@1.0.1, playermodellib@1.9.7, plumpkins@1.1.3, primitivesurvival@4.0.3, prospecttogether@2.1.2, purpleblackbronze@1.0.0, RelightTorches@1.0.0, sconce@1.0.4, ripenedwildcrops@1.0.0, rlmoonsun@0.1.3, satup@0.1.0, scrapsrevived@2.2.0, scrollrackable@1.4.0, sergsmetaltongsanimationfix@2.2.2, Sergsmetaltongs@2.2.1, sheepdontfly@1.0.1, shelfobsessed@1.9.5, shivertweaks@6.0.1, silentpause@1.0.2, skepdrop@1.0.2, smb1x1doorvariants@1.0.0, snowcaps@0.0.0, stickisolation@1.0.0, storemore@1.0.1, tankardsandgoblets@1.3.4, temporalsreformed@0.1.4, temporalsymphony@2.2.2, traderssellborax@1.1.0, unchisel@1.1.6, usefultraders@2.3.1, valkyrjahair@2.3.0, vanillapanestorage@1.0.2, vanillavarnished@1.0.4, game@1.21.6, vsimgui@1.1.16, elkspawn@1.1.0, warmerlighting@1.0.2, warmoillamp@1.0.0, wildcabbagepumpkin@1.1.0, wilderlandscavessystem@2.0.0-pre.2, wildfarmingrevival@1.4.2, windowstorage@1.0.3, zaecompatfoodshelves@0.2.0, zoombuttonreborn@2.0.1, accessibilitytweaks@4.0.0, airmapfix@1.1.0, alchemy@1.8.2, alternateelkhoofsounds@1.1.0, altmapiconrenderercontinued@1.5.0, ancestralblissshaders@1.2.11, ancienttools@1.6.0, apeflowerpots@1.3.1, apegrapes@1.3.1, armorrecyclinglite@1.0.2, attributerenderinglibrary@2.4.2, backpackpackplusexpanded@1.2.5, beararmorrepair@1.0.3, betterdeathmessages@1.0.1, betterfirepit@1.2.0, betterhopper@1.2.1, betterloot@2.0.1, betterruins@0.5.6, bettertraders@0.1.0, bloodtrail@1.1.8, bovinaddon@1.0.0, bradycrudebuilding@1.4.8, bullseyecontinued@3.4.5, butchering@1.10.17, butterflycases@1.0.2, carryon@1.12.1, chickensitreloaded@1.1.0, commonlib@2.8.0, configlib@1.10.13, configureeverything@2.2.1, Crateful@1.2.8, cratespoilage@1.2.1, critcherscalculator@1.0.2, customplayermodel@0.0.4, danatweaks@3.7.1, daytrader@1.0.5, desertificationsurfacevariation@1.0.0, durablebetterprospecting@21.2.0, egocaribautomapmarkers@4.0.3, elkphysics@2.0.0, elkvariants@1.1.2, enhancedhandbook@1.7.1, entitycolortint@3.0.0, entityguard@2.1.1, entitynametag@1.4.0, expandedbeekeeping@0.0.0, extrainfo@1.11.0, farseer@1.3.3, fatcandles@1.0.1, fatnutrition@1.0.0, fillmybloomery@1.0.2, firepitsshowfuel@1.2.1, firewoodfromsticks@0.6.9, firewoodandboardsfromdebarkedlogs@1.1.0, fixcratemod@0.1.0, floatingfish@1.1.7, foodshelves@2.3.3, footprints@1.1.2, forgesstaywarm@1.0.0, genelib@2.1.6, geologymap@1.0.2, goatappetitetweak@0.1.1, goodnightsleep@2.2.5, gourmand@1.8.5, handbookdeclutterer@1.0.0, handsometweaks@1.4.0, handytweaks@1.2.7, hangingbaskets@1.1.0, hydrateordiedrate@2.3.6, immersivefasteranims@0.1.1, improvedhandbookrecipescontinued@1.3.0, improvedsheepupdate@1.0.2, itempickuphighlighter@1.2.2, itempickupnotifier@1.9.1, jaunt@2.2.0-rc.2, juicyores@1.0.2, justthepepper@2.0.0, khanimaltweaks@2.0.0, kevinsfurniture@1.8.1, knapster@3.0.2, lcupdated@1.1.1, lathemod@1.0.3, mannequinstand@1.0.7, mngeology@1.0.5, materialneeds@1.1.13, mightywalnut@1.1.2, minimalcompass@1.1.4, moredirslabs@1.0.1, mountcamerafix@0.2.0, mulching@1.0.1, naturalfertilizer@1.3.0, ndlchiselpick@3.1.1, ndlwoodentorchholder@2.1.2, noentitypush@1.0.0, nogllogspam@1.0.1, noholdfruitpress@0.1.3, nooffhandautopickup@1.0.2, noscreenshotmessagemod@0.1.1, nutslib@3.0.9, opdoorpack@0.0.1, optitime@1.3.11, panningmachine@1.0.6, pauseonstart@1.0.1, pelaguswinds@1.2.2, pickupbabyanimals@1.2.2, placeonslabs@1.0.2, pspatch@0.1.0, purposefulstorage@1.5.1, qualityofbuilding@1.1.0, tzquarteredfirewood@1.0.1, racialequality@0.1.26, realistictemperatures@0.1.5, realmeat@1.4.0, realsmoke@1.1.10, rebuildablebloomery@1.0.6, removeprimitivesurvivalstairs@1.0.0, riverfish@1.0.2, rivers@4.7.5, rpgoverlay@1.0.9, safetydance@1.2.2, saltandsands@1.1.6, savewaypointname@1.0.0, scarecrowm@1.7.3, seraphsstonepickaxes@1.2.0, showcraftable@1.2.6, simplefootstepsredux@1.0.4, simplestarvation@1.0.2, smithingplus@1.8.3, sonitodynamictraits@1.0.10, sonitotrashslot@1.0.0, spinningwheel@1.1.4, boozetrade@1.0.0, splithidesandpelts@1.1.0, stablesurface@0.0.2, statushudcont@4.1.1, stepfixelk@0.0.3, stepupadvanced@1.2.4, stickemup@1.2.0, terraprety@7.8.0, texturedbuilding@1.2.2, th3dungeon@0.4.5, theartofpie@2.0.0, tinglyrebalance@1.0.2, toneddownpredators@1.1.0, toolsmith@1.2.14, torchholderplaceontop@1.0.1, trailmodupdated@1.3.6, vanityslots@0.0.7, variantmeals@2.6.1, vintagesymphony@1.0.4, creative@1.21.6, vsroofing@1.1.4, survival@1.21.6, vsvanillaplus@0.1.5, warmarmor@2.0.0, mapwaypointcolors@1.1.2, woodenshuttersandmore@1.2.31, xvshaders@0.1.1, zippyscroptweaks@1.3.0, zippysskysteel@1.3.0, zippysthatchpatch@1.1.0, autoconfiglib@2.0.9, beamtools@1.0.2, bbb@1.0.1, betterhoneymod@1.0.0, tradercamps@1.1.7, elkjaunt@1.3.0, em@3.4.1, extraoverlays@1.6.0, fishing@3.1.2, fueledwearablelights@1.1.4, hangingbasketsunofficialpatch@1.0.0, hydraulics@1.1.0, instantfirepits@5.0.0, jammorefruitin@1.0.2, mnflowers@0.0.0, medievalarchitecture@1.0.2, paperfletchingmod@1.0.2, passablebranches@0.0.3, qobpalisade@1.0.1, quiversandsheaths@0.6.14, realsmokeforancienttools@1.0.0, realsmokeforchiseltools@1.1.1, reforgedtools@1.2.51, saltandsandsbalance@1.0.0, seasonalbreeding@1.1.0, snowshoes@2.1.3, stonequarry@3.5.1, terrainslabs@1.0.9, vintagesymphonyassets@1.1.0, xinvtweaks@1.8.1, zrustdrops@2.0.0, aldiclasses@1.8.8, terrainslabstrailmodcompatibility@1.0.3, aldiclassnt@1.0.2
Involved Harmony IDs: qualityofbuilding, com.zaldaryon.optitime
System.NullReferenceException: Object reference not set to an instance of an object.
at QualityOfBuilding.Source.HarmonyPatches.InventoryItemRendererPatch.RenderBuildingOutputInSlot(InventoryItemRenderer __instance, ItemSlot& inSlot, Double& posX, Double& posY, Double& posZ, Single& size, Int32& color, Boolean& shading, Boolean& origRotate, Boolean& showStackSize) in D:\Projects\VintageStory\Mods\QualityOfBuilding\QualityOfBuilding\Source\HarmonyPatches\InventoryItemRendererPatch.cs:line 44
at Vintagestory.Client.NoObf.InventoryItemRenderer.RenderItemstackToGui_Patch1(InventoryItemRenderer this, ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Single dt, Boolean shading, Boolean origRotate, Boolean showStackSize)
at Vintagestory.Client.NoObf.InventoryItemRenderer.RenderItemstackToGui(ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Boolean shading, Boolean origRotate, Boolean showStackSize) in VintagestoryLib\Client\Render\InventoryItemRenderer.cs:line 276
at Vintagestory.Client.NoObf.RenderAPIGame.RenderItemstackToGui(ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Boolean shading, Boolean rotate, Boolean showStacksize) in VintagestoryLib\Client\API\RenderAPIGame.cs:line 280
at QualityOfBuilding.Source.Gui.BuildingModeDialog.OnRenderGUI(Single deltaTime) in D:\Projects\VintageStory\Mods\QualityOfBuilding\QualityOfBuilding\Source\Gui\BuildingModeDialog.cs:line 246
at Vintagestory.Client.NoObf.GuiManager.OnRenderFrameGUI_Patch1(GuiManager this, Single deltaTime)
at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 1017
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 112
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 347
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 131
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 95
Event Log entries for Vintagestory.exe, the latest 3
==================================
{ TimeGenerated = 1/14/2026 7:45:27 AM, Site = , Source = Application Error, Message = Faulting application name: Vintagestory.exe, version: 1.21.6.0, time stamp: 0x67fe0000
Faulting module name: openal32.dll, version: 1.23.0.0, time stamp: 0x63dd31ad
Exception code: 0x40000015
Fault offset: 0x00000000000df046
Faulting process id: 0xc98
Faulting application start time: 0x1dc855af232f64d
Faulting application path: C:\Users\LunaGore\AppData\Roaming\Vintagestory\Vintagestory.exe
Faulting module path: C:\Users\LunaGore\AppData\Roaming\Vintagestory\Lib\openal32.dll
Report Id: fdc978d3-98a0-4e0b-8f4c-dca17de67bca
Faulting package full name:
Faulting package-relative application ID: }
--------------
{ TimeGenerated = 1/14/2026 7:31:55 AM, Site = , Source = Application Error, Message = Faulting application name: Vintagestory.exe, version: 1.21.6.0, time stamp: 0x67fe0000
Faulting module name: openal32.dll, version: 1.23.0.0, time stamp: 0x63dd31ad
Exception code: 0x40000015
Fault offset: 0x00000000000df046
Faulting process id: 0x2edc
Faulting application start time: 0x1dc8559a3e394d6
Faulting application path: C:\Users\LunaGore\AppData\Roaming\Vintagestory\Vintagestory.exe
Faulting module path: C:\Users\LunaGore\AppData\Roaming\Vintagestory\Lib\openal32.dll
Report Id: a0d1588a-075b-4427-b7c6-682e87f3e840
Faulting package full name:
Faulting package-relative application ID: }
--------------
{ TimeGenerated = 1/14/2026 7:28:11 AM, Site = , Source = Application Error, Message = Faulting application name: Vintagestory.exe, version: 1.21.6.0, time stamp: 0x67fe0000
Faulting module name: openal32.dll, version: 1.23.0.0, time stamp: 0x63dd31ad
Exception code: 0x40000015
Fault offset: 0x00000000000df046
Faulting process id: 0x3634
Faulting application start time: 0x1dc855909353ea3
Faulting application path: C:\Users\LunaGore\AppData\Roaming\Vintagestory\Vintagestory.exe
Faulting module path: C:\Users\LunaGore\AppData\Roaming\Vintagestory\Lib\openal32.dll
Report Id: 32d965dd-39d0-4dc7-85bc-8722ef791a3b
Faulting package full name:
Faulting package-relative application ID: }
Had a crash when rebuilding a bloomery after it just made some iron bloom
Running on 64 bit Windows 6.1.7601.0 with 32735 MB RAM
Game Version: v1.21.6 (Stable)
17/01/2026 8:12:50 AM: Critical error occurred in the following mod: qualityofbuilding@1.1.0
Loaded Mods: acorns@0.7.2, arrowheadsrecovery@1.0.3, atwatersedge@1.5.1, autopanning@1.0.1, betterandimprovedweather@0.1.8, bettercrates@1.9.0, irregularguybetterjam@1.0.0, bonemarrowsoup@1.0.1, bookends@0.1.2, bradyladder@1.1.0, bushmeatrecipe@2.0.0, buzzybees@1.1.7, canoemod@1.0.2, canoemodcircuitspatch@2.0.0, catchledge@0.7.0, cavesymphony@1.2.1, cellardoor@1.4.0, cellardoorfork@1.4.1, chandeliercraft@2.0.4, chickenfeed@1.1.10, chiseltools@1.16.1, combatrebalance@1.4.6, combinethefat@1.0.0, crawlanddive@0.2.3, cutthefat@1.0.3, darcesdriftersredone@1.2.8-dev.1, diversediets@1.0.3, dodgemaster@1.2.3, hqzlights@1.1.2, driedpeat@1.1.2, dryablegroundstorage@1.0.1, expandedmolds@1.2.0, expres@1.2.1, explosive@0.1.2, fancysky@1.1.6, firestarters@1.4.5, firstaidkit@1.0.7, floralzonescaperegion@1.0.28, floralzonescaribbeanregion@1.0.23, floralzonescentralaustralianregion@1.0.20, floralzonescosmopolitanregion@1.0.11, floralzoneseastasiaticregion@1.0.19, floralzonesmediterraneanregion@1.0.19, floralzonesneozeylandicregion@1.0.19, flora@1.0.7, forestsymphony@1.0.6, bovinae@0.3.5, caninae@1.1.2, capreolinae@2.0.7, casuariidae@1.1.9, cervinae@0.1.13, chelonioidea@1.0.7, dinornithidae@1.0.22, elephantidae@1.0.17, felinae@0.2.13, iniidae@0.1.6, machairodontinae@1.1.7, manidae@1.0.19, meiolaniidae@0.1.10, pantherinae@1.2.8, rhinocerotidae@1.0.23, sirenia@1.0.26, spheniscidae@1.0.16, thylacinidae@0.1.6, viverridae@1.0.8, vombatidae@0.4.5, geoaddons@1.4.6, hangingoillamps@1.0.5, hotspringheal@1.0.3, hidearmor@0.0.1, icecutterrw@1.0.4, JacksFirewood@1.1.0, liberatedbeds@1.0.0, longtermfood@0.5.5, manualquenching@1.0.10, masonsdelight@1.0.3, millwright@1.3.1, moreicons@1.1.1, morefuel@1.1.0, mycodiversity@1.0.5, nooffhand@1.0.1, overhaullib@1.19.6, pigfeed@1.0.9, primitivesurvival@4.0.3, scrollrackable@1.4.0, Sergsmetaltongs@2.2.1, shelfobsessed@1.9.5, slings@0.0.3, slowwalkmod@1.2.5, snowcaps@0.0.0, soilmustfall@1.2.0, somedisassemblyrequired@1.8.9, sonitorecipepin@1.0.1, sprintmomentum@0.2.0, spyglass@0.6.0, steamandpower@1.7.2, stonemallet@1.0.3, swifttime@1.1.2, temporalsymphony@2.2.2, toolbelt@0.3.3, traderssellcrowbars@0.0.2, translocatorengineeringredux@1.6.3, undertangledboughs@1.0.5, usefultraders@2.3.1, vaultandroll@0.1.1, vintageengineering@0.4.9, game@1.21.6, vsimgui@1.1.16, warmgambeson@1.0.0, wgmtfix@1.1.3, whichoreiswhich@1.0.0, wildfarmingrevival@1.4.2, zaecompatfoodshelves@0.2.0, zoombuttonreborn@2.0.1, abyssaldepths@1.0.11, aculinaryartillery@2.0.0-dev.11, alchemy@1.8.2, offhandpenalty@1.2.3, ancienttools@1.6.0, animalcages@4.0.2, apegrapes@1.3.1, attributerenderinglibrary@2.4.2, egocaribautomapmarkers@4.0.3, awearablelight@1.1.4, beararmorrepair@1.0.3, bedspawnv2@1.6.4, betterentitytooltip@1.0.1, betterfirepit@1.2.0, betterruins@0.5.6, bettertraders@0.1.0, bloodtrail@1.1.8, bradycrudebuilding@1.4.8, buildingwands@1.0.1, bullseyecontinued@3.4.5, butchering@1.10.17, buzzwords@1.8.1, canjewelry@0.5.19, carryon@1.12.1, cartwrightscaravan@1.8.0, climbmountain@0.2.2, commonlib@2.8.0, composter@1.2.2, configlib@1.10.13, coreofartspatch@1.0.5, critcherscompendium@1.0.6, caffCuniculture@1.0.10, domesticanimaltrader@1.1.2, eggpiemod@0.1.0, electricalprogressivecore@2.6.4, enhancedhandbook@1.7.1, tackandequipment@1.0.0, expandedstomach@1.2.7, extendedcreation@1.1.7, extended-sleep-time@1.0.0, extrainfo@1.11.0, farmlanddropswithnutrients@1.2.2, farseer@1.3.3, fatcandles@1.0.1, fendragonbcs@0.2.1, fieldsofsalt@1.2.4, floatingfish@1.1.7, foodshelves@2.3.3, footprints@1.1.2, foragersgamble@1.2.5, fromgoldencombs@1.9.4, genelib@2.1.6, geologymap@1.0.2, glassroof@1.2.1, handbookdeclutterer@1.0.0, herbarium@1.4.1-rc.1, hudclockpatch@1.1.2, hydrateordiedrate@2.3.6, insanitylib@1.1.0, interestingoregen@2.2.3, itemmagnet@2.0.0, jaunt@2.1.2, joyofsailing@1.4.0, JustTrapdoors@1.0.2, kevinsfurniture@1.8.1, lathemod@1.0.3, lavoisier@1.3.1, lichenredux@1.8.3, maketeaforked@0.7.6-dev.1, maltiezcrossbows@1.7.0, medievalexpansionpatch@1.3.4, metalunittooltip@1.1.1, meteoricexpansion@1.2.6, mobsradar@2.1.12, moreanimals@1.6.6, mountcamerafix@0.2.0, naturalfertilizer@1.3.0, novelty@1.1.1, optimetime@1.3.6, packrat@1.0.0, panningmachine@1.0.6, pauseonstart@1.0.1, pelaguswinds@1.2.2, petai@4.0.3, pickbars@2.0.3, pickupbabyanimals@1.2.2, postsandbeams@1.5.0, claywheel@1.1.7, purposefulstorage@1.5.1, qualityofbuilding@1.1.0, realsmoke@1.1.10, realtimefirepit@1.0.0-dev.120, rebuildablebloomery@1.0.6, recyclingtools@1.4.4, riftworks@1.1.16, riverfish@1.0.2, rustboundmagic@3.1.18, saltandsands@1.1.6, saltpeterproduction@1.1.0, scarecrow@1.7.1, scientificsmithy@0.1.9, showcraftable@1.2.6, sleepneed@3.1.0, sluice@2.3.2, smithingplus@1.8.3, spinningwheel@1.1.4, sprinklersmod@1.0.2, spyglassinfo@1.0.2, statushudcont@4.1.1, stepupadvanced@1.2.4, cookie12000stickbeam@1.2.2, stillnecessaries@1.3.0, stirlingmotor@2.0.0, stonebakeoven@1.2.0, stonerailings@1.4.0, substrate@1.1.4, tasshroombodyfat@0.0.16, temperatureheighttweak@0.3.0, tentbagreworked@3.1.1, terraprety@7.9.0, th3dungeon@0.4.5, th3expansion@2.0.0, th3restock@1.1.2, toolsmith@1.2.14, tradie@1.7.0, translocatorrelocator@1.0.3, unofficialbugfix@0.0.6, variantmeals@2.6.1, versionchecker@1.2.2, Verticality@0.3.1, coffee@1.0.5, discordrichpresence@1.1.1, creative@1.21.6, vsquest@3.0.0, survival@1.21.6, vsvillage@4.0.0-pre.4, woodenfortifications@2.0.10, woodstain@1.3.1, xlib@0.9.0-pre.2, alchemistry@1.0.2, aogbetterflails@1.0.0, artofgrowingpatch@1.1.8, autoconfiglib@2.0.9, beamtools@1.0.2, boltheadsrecovery@0.0.6, bookbinders@1.4.0, brainfreeze@1.3.5, cats@4.0.1, chemistrylib@1.1.5, tradercamps@1.1.7, detailedanimals@0.7.2, electricalprogressivebasics@2.6.4, elkjaunt@1.3.0, equus@1.2.0, expandedfoods@2.0.0-dev.7, em@3.4.1, extraoverlays@1.6.0, extremefirestartersreforged@1.1.2, fueledwearablelights@1.1.4, gaiogcompatpatch@1.0.0, glassmaking@1.5.2, playercorpse@1.12.0, quiversandsheaths@0.6.14, realsmokeforancienttools@1.0.0, realsmokeforbraziers@1.1.1, realsmokeforchiseltools@1.1.1, seasonalbreeding@1.1.0, shearlib@1.2.0, stainedbeams@1.2.1, stonequarry@3.5.1, storageoptions@2.0.0, th3dungeontopentrance@0.4.2, wearandtear@1.5.17, wildcraftfruit@1.4.4, wildcraftherb@0.0.1, wildcrafttree@1.3.3, wolftaming@4.1.4, xinvtweaks@1.8.1, xskills@0.9.0-pre.2, aogbreedingaddonpatch@1.1.2, artsxskillspatch@1.1.2, bricklayers@3.1.5, crazyspotterywheelxskillspatch@1.0.0, ecwildcrafttree@1.0.2, electricalprogressiveindustry@0.5.1, electricalprogressiveqol@2.6.6, fgcwildcraftcrashfix@1.0.1, realsmokeartofgrowingfirepit@2.0.0, rustboundmagicxskillsfix@0.2.2, sandwich@1.2.9, sausages@0.0.8, tailorsdelight@2.1.2, veep@2.3.0, wool@1.8.2, xskillscatchablefotsa@0.0.2, xskillsmediterranean@1.0.0, xskillsgilded@1.3.5, zaecompatwildcraftforage@0.3.0, betterruinsbricklayerscompat@1.0.0, millwrightxwoolcompat@1.1.0
Involved Harmony IDs: qualityofbuilding, XSkillsPatch, XInvTweakPatch
System.NullReferenceException: Object reference not set to an instance of an object.
at QualityOfBuilding.Source.HarmonyPatches.BlockBloomeryPatch.HandleItemWithBuildingMode(BlockBloomery __instance, Boolean& __result, IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel) in D:\Projects\VintageStory\Mods\QualityOfBuilding\QualityOfBuilding\Source\HarmonyPatches\BlockBloomeryPatch.cs:line 37
at Vintagestory.GameContent.BlockBloomery.OnBlockInteractStart_Patch2(BlockBloomery this, IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel)
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.TryBeginUseBlock(Block selectedBlock, BlockSelection blockSelection) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 886
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleMouseInteractionsBlockSelected_Patch1(SystemMouseInWorldInteractions this, Single dt)
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 1031
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 112
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 347
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 131
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 95
Event Log entries for Vintagestory.exe, the latest 3
==================================
{ TimeGenerated = 09/01/2026 10:40:05 PM, Site = , Source = Application Error, Message = Faulting application name: Vintagestory.exe, version: 1.21.6.0, time stamp: 0x67fe0000
Faulting module name: openal32.dll, version: 1.23.0.0, time stamp: 0x63dd31ad
Exception code: 0x40000015
Fault offset: 0x00000000000df046
Faulting process id: 0x2b5c
Faulting application start time: 0x01dc81a8b607ee23
Faulting application path: G:\Games\Vintagestory\Vintagestory.exe
Faulting module path: G:\Games\Vintagestory\Lib\openal32.dll
Report Id: 23eb2f27-edac-11f0-86f7-0026831486b4 }
--------------
{ TimeGenerated = 07/01/2026 6:23:18 PM, Site = , Source = Application Error, Message = Faulting application name: Vintagestory.exe, version: 1.21.6.0, time stamp: 0x67fe0000
Faulting module name: openal32.dll, version: 1.23.0.0, time stamp: 0x63dd31ad
Exception code: 0x40000015
Fault offset: 0x00000000000df046
Faulting process id: 0x22bc
Faulting application start time: 0x01dc7ffe6db092f5
Faulting application path: G:\Games\Vintagestory\Vintagestory.exe
Faulting module path: G:\Games\Vintagestory\Lib\openal32.dll
Report Id: f0302e38-ebf5-11f0-86f7-0026831486b4 }
--------------
{ TimeGenerated = 07/01/2026 5:52:34 PM, Site = , Source = Application Error, Message = Faulting application name: Vintagestory.exe, version: 1.21.6.0, time stamp: 0x67fe0000
Faulting module name: openal32.dll, version: 1.23.0.0, time stamp: 0x63dd31ad
Exception code: 0x40000015
Fault offset: 0x00000000000df046
Faulting process id: 0x15d4
Faulting application start time: 0x01dc7febe87dc8e4
Faulting application path: G:\Games\Vintagestory\Vintagestory.exe
Faulting module path: G:\Games\Vintagestory\Lib\openal32.dll
Report Id: a51a5aed-ebf1-11f0-86f7-0026831486b4 }
BeloMaximka - Ok, here's the example: Also, i just realized the mod vanilla building expanded exists, which gets rid of both the need for me to add these recipes in the first place, and provides a nice little preview for placing blocks. Only thing is, I haven't tested these two mods together yet. In theory they should work, because the building hammer from that mod is held in the off-hand, but im not sure if it'll recognize the block fully. Will test, and get back to you.
BraniyaKz Hi! Can be an oversight from me, could you please send a recipe?
BeloMaximka - Fantastic mod! Just wanted to let you know, I made some recipes using the hammer item as the tool (hoping i could pull up some recipes by holding the hammer), and got a crash.
Pell yes, I came up with one solution to this problem recently and will try to implement it in the next update
is it possible to make a version without changing the recipes, for added compatibility? perhaps some config options
Yochan
1. Reproduce the crash, send the stepsa
2. If you use Windows: WIN+R, enter %appdata%/VintagestoryData/Logs, send client-main.log and server-main.log (put the
contents in the spoiler)
Getting crash from using soil block with the B button, how do i send crash log? sorry first time posting on here.
Some really good points there. I'm actually super stoked to see you've thought a lot of this out and came to conclusions with reason instead of just going "It is this way because I programmed it this way first" which I've always found to be a bad way to do things! I think I'm just bitter since specifically mudbricks right now are a nightmare. I don't use barren soil to begin with, so the instant I break one I'm already inventory minus. I'm pretty sure most of my current gripes are adjacent to the blocks I'm using haha
I'm not super sure what to do about inconsistencies in recipes. I have a lot of things more "generous" to craft on my end: cobblestone, dry stone, mudbrick(!!!) and whatnot are buffed. I'll see where I end up thoughts-wise later.
I absolutely LOVE the new menu system. It makes me wish that Vintage story's UI sometime could be reworked and look more fancy.
i really wish mods like Radial Crafting had a similar UI, the rusty gear menu just looks So fucking cool
Genious concept!
Vigilance thanks for you feedback!
I hope you like the new radial menu btw
Some thoughts I've gathered since running this for a few play sessions:
Some of the inconsistencies between my recipes and this mod's recipes are bothersome. For instance, I've got more expensive doors that ask for nails and strips, your mod just uses the stock recipe and I can place cheaper doors using boards instead of pre-crafting one. Additionally, my mudbrick slabs being named "barren soil" when placed is bothersome. Additionally, I kinda just don't like some of the blocks coming apart to their base ingredients, but I'm not sure if that's a "Change is bad!" or if that's actually a gripe I have. I'll probably decide in a few more sessions haha
Hey I discovered that the recepie for solid trapdoors and bookshelfs are the same.
By the way great mod.
LivCi I added configuration support, sorry for the long wait
Honestly I'm a terrible person to ask because I am awful about all of these handy easy building tools in any game that emulates them. I can probably only point out things that feel "weird," and I haven't had enough time to really complain about your mod since I'm still trying to catch up versions. I did build a small little cottage in my server before I had to do more boring administravia- I'll check back in a day or two if I have complaints, and I'll be sure to let you hear them! I don't particularly like getting barren soil back from breaking arid packed dirt, and frankly the grid recipe for arid packed dirt felt "wrong," but I don't know if that's my haven't-played-in-a-while muscle memory at work or if it's one of your changes.
Vigilance thanks. I am slowly working on an update and would love to hear you feedback regarding usability and learning curve. Tried to make it straighforward but maybe there're some room for improvement
The crafting recipes change was kind of insane to package with this but I'm actually loving it after just giving it a try. There are some slight usability things that make this mod feel a little unwieldy but it's probably a learning curve thing. I am super surprised by this mod out of the box, and honestly am generally super surprised by the quality of your work. Awesome stuff!
BeloMaximka Thank you for the response! Looking forward to what you come up with.
As for pulling the recipes from the crafting grid, you could do it the way Dana does. Where it's disabled by default, and if set to True, it could for example autofill a json. One could then adapt to their liking.
Also, you don't necessarily need to include the actual recipes in the json file, you could simply allow for a list of strings such that one could specify for which blocks to pull recipes for like "andesite-stone" or even wildcards like "*-stone". This would make it a lot easier for mod compatibility.
Just spitting out potential ideas. ;)
wasabiii Hi, glad you're enjoing it! It's a bit underbaked, but I got distracted with Terrain Slabs, need to work this one as well)
I think managing recipes through config would be more cumbersome. As for automatically pulling recipes from the crafting grid - I considered adding this feature, but there are some caveats like proportions that I need to solve first
I will definitely try to add a way to generate json from grid recipes so modders can add compatibility recipes easier
Love the mod!
Do you think it'd be possible to automatically add existing recipes (or make this toggleable)?
Or allow adding recipes with a config instead of having to make a seperate mod for it?
Some issues with the site maybe, here's the link
Is it just me or is the video on this mod page not working?
I'll have to check if this synergizes or conflicts with Salty's Radial Crafting...It'd be great if they work together.
LivCi
Yeah, I had no idea what should be configurable, so you can drop your suggestions here and I'll get to them this week
Will you add a config file to change certain things? For example, I would like to change the amount of stones it takes to make paths with the shovel function
holy
You have piqued my interest