Mods / RepairMe

Tags: #Crafting #QoL #Simplification
Author: Infi
Side: Both
Created: Mar 22nd at 2:20 PM
Last modified: Mar 25th at 1:06 PM
Downloads: 2069
Follow Unfollow 49

Latest release (for outdated Vintage Story v1.20.6):
RepairMe1.1.0.zip  1-click install


Whetstone

 

Repair any tool by 25% of its total durability, while the whetstone loses 5% (from the tools total durability) each time it is used.

(Should also work for modded tools)

 

Flint Recipe:

1x Flint + 3x Any Stone

 

Variant Recipe:

1x Gem + 3x Any Board

 

Available Variants:

  • Flint (125 Durability)
  • Lapis Lazuli (300 Durability)
  • Perdiot (600 Durability)
  • Amethyst (1000 Durability)
  • Emerald (1500 Durability)
  • Diamond (2000 Durability)

 

Config:

{
  "WhetstoneDamageAsPercent": 5, // Damage the whetstone takes, calculated as percent from the total durability of the repaired tool
  "WhetstoneMinimumDamage": 10, // Flat minimum damage the whetstone will take if the %-result is below it
  "ToolRestoreAsPercent": 25 // Restored durability, calculated as percent from the total durability
}

 

Planned:

  • Configurable limit how many times a tool can be repaired

 

Feedback, Feature Requests are very welcome~

Discord: @infi

Version For Game version Downloads Release date Changelog Download 1-click mod install*
v1.1.0 1371 Mar 25th at 1:06 PM Show RepairMe1.1.0.zip 1-click install
v1.0.3 490 Mar 23rd at 12:31 AM Show RepairMe1.0.3.zip 1-click install
v1.0.2 31 Mar 22nd at 10:57 PM Show RepairMe1.0.2.zip 1-click install
v1.0.1 80 Mar 22nd at 7:02 PM Show RepairMe1.0.1.zip 1-click install
v1.0.0 97 Mar 22nd at 2:25 PM Show RepairMe1.0.0.zip 1-click install

28 Comments (oldest first | newest first)

💬 Kylocard, 2 days ago

Hey @Infi any chance you can make the whetstones stackable?

💬 Scorives, 3 days ago

Hey @Infi this was his response to me @Scorives with that repair me mod, they may need to put in a null check for those items that you shouldn't repair, like my temporary ones created with magic.

💬 Scorives, May 7th at 5:57 PM

Thanks for reply think your right as in his json files it states any new model needs a repair recipe my gues is he did not specify one for those items i already posted to his form waiting on a reply but i do appreciate the look into it for me.

💬 Infi , May 7th at 12:55 PM

Scorives can't see any RepairMe callpoints in the stacktrace, all seems to be vanilla related, so i assume its something on rustbounds side going wrong, as RepairMe doesn't really change anything related to the handbook.

💬 Scorives, May 7th at 6:14 AM

issue with the rustbound magic update in the hand book can click the brilliant bag  fine but clicking any tool in the hand book of the brilliant class from rustbound magic causes a crash. not sure if this can be fixed on your end or if it has to be fixed on the rustbound magic side

Game Version: v1.20.10 (Stable)
5/6/2025 3:10:28 PM: Critical error occurred
Loaded Mods: aculinaryartillery@1.2.5, autosifter@1.1.0, axleinblocks@1.20.1-rc.5, backpackpackStandardcontinued@1.0.0, bedrespawner@1.0.0, bettercrates@1.8.0, cairns12recoverablestones@1.2.0, chiseltools@1.14.17, clayworks@0.4.2, blocklayeroverhaul@1.0.2, fieldsandplateaus@1.0.8, millwright@1.2.0, more-chute-rotations@0.0.2, mushroom@1.0.3, overhaullib@0.2.8, plainsandvalleys@1.0.11, primitivesurvival@3.7.7, prospecttogether@2.0.3, snowcaps@0.0.0, somedisassemblyrequired@1.4.5, speararrowheadbits@1.1.0, specialexpandedbags@1.1.2, temporaltechnology@1.1.3, terraprety@6.0.2, torchholdersmithingplus@1.0.0, usefuldrifterloot@1.2.1, vintageengineering@0.3.7, game@1.20.10, vsimgui@1.1.8, awearablelight@1.1.31, betterruins@0.4.12, blacksmithenhancements@1.1.4, butchering@1.8.2, carryon@1.8.0-rc.4, cartwrightscaravan@1.4.0, combatoverhaul@0.3.9, commonlib@2.6.1, configlib@1.5.3, coreofarts@0.2.3, danatweaks@3.4.1, electricalprogressivecore@0.9.8, expandedfoods@1.7.4, extendedcreation@1.1.3, foodshelves@1.6.3, fromgoldencombs@1.8.12, healthbar@1.0.7, herbarium@1.4.0, hudclockpatch@1.0.0, immersivewoodchopping@0.8.1, immersivewoodsawing@0.2.8, infinitumpickupmod@1.0.1, labeledtrunk@1.0.5, lootablebloomery@1.0.0, maltiezcrossbows@1.2.0, miningtools@1.1.4, moreanimals@1.4.1, morepiles@2.1.3, petai@3.4.3, repairme@1.1.0, rivers@4.1.0, rustandrailroads@2.0.11, rustboundmagic@2.5.3, smithingplus@1.6.0-rc.2, stonebakeoven@1.1.6, stonerailings@1.3.0, storagecontroller@1.1.5, substrate@1.1.2, tabletopgames@2.10.4, toolsanimations@1.0.2, traitacquirer@0.9.6, creative@1.20.10, vsinstrumentsbase@2.0.1, survival@1.20.10, xlib@0.8.16, armory@0.2.4, artofcooking@0.2.4, artofgrowing@1.1.2, astriaporta@0.0.3, captureanimals@2.8.1, electricalprogressivebasics@0.9.9, em@3.2.1, helvehammerext@1.7.0, playercorpse@1.11.1, stonequarry@3.4.3, vsinstruments_quackpack@1.0.2, wildcrafttree@1.3.1, wolftaming@3.0.6, xinvtweaks@1.8.0, xskills@0.8.19, aogbreedingaddon@1.1.0, artsxskills@1.1.0, bricklayers@3.0.2, electricalprogressiveqol@0.9.9, rustboundmagicxskills@0.2.1, theworkingclasses@1.0.4, electricalprogressiveequipment@0.9.9, twccormcompatredux@1.0.0
System.NullReferenceException: Object reference not set to an instance of an object.
at Vintagestory.API.Common.CollectibleObject.UpdateAndGetTransitionStatesNative(IWorldAccessor world, ItemSlot inslot) in VintagestoryApi\Common\Collectible\Collectible.cs:line 2461
at Vintagestory.API.Common.CollectibleObject.UpdateAndGetTransitionState(IWorldAccessor world, ItemSlot inslot, EnumTransitionType type) in VintagestoryApi\Common\Collectible\Collectible.cs:line 2398
at Vintagestory.Client.NoObf.InventoryItemRenderer.GetItemStackRenderInfo(ClientMain game, ItemSlot inSlot, EnumItemRenderTarget target, Single dt) in VintagestoryLib\Client\Render\InventoryItemRenderer.cs:line 315
at Vintagestory.Client.NoObf.InventoryItemRenderer.RenderItemstackToGui(ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Single dt, Boolean shading, Boolean origRotate, Boolean showStackSize) in VintagestoryLib\Client\Render\InventoryItemRenderer.cs:line 194
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 274
at Vintagestory.API.Common.CollectibleObject.OnHandbookRecipeRender(ICoreClientAPI capi, GridRecipe recipe, ItemSlot slot, Double x, Double y, Double z, Double size) in VintagestoryApi\Common\Collectible\Collectible.cs:line 2050
at Vintagestory.API.Client.SlideshowGridRecipeTextComponent.RenderInteractiveElements(Single deltaTime, Double renderX, Double renderY, Double renderZ) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\Richtext\SlideshowGridRecipeTextComponent.cs:line 338
at Vintagestory.API.Client.GuiElementRichtext.RenderInteractiveElements(Single deltaTime) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\GuiElementRichtext.cs:line 482
at Vintagestory.API.Client.GuiComposer.Render(Single deltaTime) in VintagestoryApi\Client\UI\GuiComposer.cs:line 718
at Vintagestory.API.Client.GuiDialog.OnRenderGUI(Single deltaTime) in VintagestoryApi\Client\UI\Dialog\GuiDialog.cs:line 398
at Vintagestory.GameContent.GuiDialogHandbook.OnRenderGUI(Single deltaTime) in VSSurvivalMod\Systems\Handbook\Gui\GuiDialogHandbook.cs:line 546
at Vintagestory.Client.NoObf.GuiManager.OnRenderFrameGUI(Single deltaTime) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 318
at Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\Util\ClientEventManager.cs:line 188
at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 992
at Vintagestory.Client.GuiScreenRunningGame.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 242
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 695
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 670
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 88
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 334
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 130
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93
Game Version: v1.20.10 (Stable)
5/6/2025 3:13:22 PM: Critical error occurred
Loaded Mods: aculinaryartillery@1.2.5, autosifter@1.1.0, axleinblocks@1.20.1-rc.5, backpackpackStandardcontinued@1.0.0, bedrespawner@1.0.0, bettercrates@1.8.0, cairns12recoverablestones@1.2.0, chiseltools@1.14.17, clayworks@0.4.2, blocklayeroverhaul@1.0.2, fieldsandplateaus@1.0.8, millwright@1.2.0, more-chute-rotations@0.0.2, mushroom@1.0.3, overhaullib@0.2.8, plainsandvalleys@1.0.11, primitivesurvival@3.7.7, prospecttogether@2.0.3, snowcaps@0.0.0, somedisassemblyrequired@1.4.5, speararrowheadbits@1.1.0, specialexpandedbags@1.1.2, temporaltechnology@1.1.3, terraprety@6.0.2, torchholdersmithingplus@1.0.0, usefuldrifterloot@1.2.1, vintageengineering@0.3.7, game@1.20.10, vsimgui@1.1.8, awearablelight@1.1.31, betterruins@0.4.12, blacksmithenhancements@1.1.4, butchering@1.8.2, carryon@1.8.0-rc.4, cartwrightscaravan@1.4.0, combatoverhaul@0.3.9, commonlib@2.6.1, configlib@1.5.3, coreofarts@0.2.3, danatweaks@3.4.1, electricalprogressivecore@0.9.8, expandedfoods@1.7.4, extendedcreation@1.1.3, foodshelves@1.6.3, fromgoldencombs@1.8.12, healthbar@1.0.7, herbarium@1.4.0, hudclockpatch@1.0.0, immersivewoodchopping@0.8.1, immersivewoodsawing@0.2.8, infinitumpickupmod@1.0.1, labeledtrunk@1.0.5, lootablebloomery@1.0.0, maltiezcrossbows@1.2.0, miningtools@1.1.4, moreanimals@1.4.1, morepiles@2.1.3, petai@3.4.3, repairme@1.1.0, rivers@4.1.0, rustandrailroads@2.0.11, rustboundmagic@2.5.3, smithingplus@1.6.0-rc.2, stonebakeoven@1.1.6, stonerailings@1.3.0, storagecontroller@1.1.5, substrate@1.1.2, tabletopgames@2.10.4, toolsanimations@1.0.2, traitacquirer@0.9.6, creative@1.20.10, vsinstrumentsbase@2.0.1, survival@1.20.10, xlib@0.8.16, armory@0.2.4, artofcooking@0.2.4, artofgrowing@1.1.2, astriaporta@0.0.3, captureanimals@2.8.1, electricalprogressivebasics@0.9.9, em@3.2.1, helvehammerext@1.7.0, playercorpse@1.11.1, stonequarry@3.4.3, vsinstruments_quackpack@1.0.2, wildcrafttree@1.3.1, wolftaming@3.0.6, xinvtweaks@1.8.0, xskills@0.8.19, aogbreedingaddon@1.1.0, artsxskills@1.1.0, bricklayers@3.0.2, electricalprogressiveqol@0.9.9, rustboundmagicxskills@0.2.1, theworkingclasses@1.0.4, electricalprogressiveequipment@0.9.9, twccormcompatredux@1.0.0
System.NullReferenceException: Object reference not set to an instance of an object.
at Vintagestory.API.Common.CollectibleObject.UpdateAndGetTransitionStatesNative(IWorldAccessor world, ItemSlot inslot) in VintagestoryApi\Common\Collectible\Collectible.cs:line 2461
at Vintagestory.API.Common.CollectibleObject.UpdateAndGetTransitionState(IWorldAccessor world, ItemSlot inslot, EnumTransitionType type) in VintagestoryApi\Common\Collectible\Collectible.cs:line 2398
at Vintagestory.Client.NoObf.InventoryItemRenderer.RenderItemstackToGui(ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Single dt, Boolean shading, Boolean origRotate, Boolean showStackSize) in VintagestoryLib\Client\Render\InventoryItemRenderer.cs:line 194
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 274
at Vintagestory.API.Common.CollectibleObject.OnHandbookRecipeRender(ICoreClientAPI capi, GridRecipe recipe, ItemSlot slot, Double x, Double y, Double z, Double size) in VintagestoryApi\Common\Collectible\Collectible.cs:line 2050
at Vintagestory.API.Client.SlideshowGridRecipeTextComponent.RenderInteractiveElements(Single deltaTime, Double renderX, Double renderY, Double renderZ) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\Richtext\SlideshowGridRecipeTextComponent.cs:line 338
at Vintagestory.API.Client.GuiElementRichtext.RenderInteractiveElements(Single deltaTime) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\GuiElementRichtext.cs:line 482
at Vintagestory.API.Client.GuiComposer.Render(Single deltaTime) in VintagestoryApi\Client\UI\GuiComposer.cs:line 718
at Vintagestory.API.Client.GuiDialog.OnRenderGUI(Single deltaTime) in VintagestoryApi\Client\UI\Dialog\GuiDialog.cs:line 398
at Vintagestory.GameContent.GuiDialogHandbook.OnRenderGUI(Single deltaTime) in VSSurvivalMod\Systems\Handbook\Gui\GuiDialogHandbook.cs:line 546
at Vintagestory.Client.NoObf.GuiManager.OnRenderFrameGUI(Single deltaTime) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 318
at Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\Util\ClientEventManager.cs:line 188
at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 992
at Vintagestory.Client.GuiScreenRunningGame.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 242
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 695
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 670
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 88
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 334
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 130
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93

 

💬 Infi , Apr 30th at 5:16 PM

ShiroSlinky i will look into it, thanks for sharing

 

Confirmed with Toolsmith that the issue comes from their side :)

So it should be fixed in one of the next updates.

💬 ShiroSlinky, Apr 28th at 6:18 PM

Hello! 

Don't know who to send to this to for trying to see who needs to fix if possible. It seems there's a conflict between toolsmith and repairme where it crashes the game when trying to craft a tool with toolsmith.

at RepairMe.ItemPatch.OnCreatedByCrafting(ItemSlot[] allInputslots, ItemSlot outputSlot, GridRecipe byRecipe) in H:\worky\VintageStory_mods\RepairMe\RepairMe\ItemPatch.cs:line 17
at Vintagestory.API.Common.CollectibleObject.OnCreatedByCrafting_Patch4(CollectibleObject this, ItemSlot[] allInputslots, ItemSlot outputSlot, GridRecipe byRecipe)
at Toolsmith.ToolTinkering.CollectibleBehaviorToolHead.CraftTool(Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel, EnumHandling& handling) in D:\Vintage Story\Modding\Toolsmith\Toolsmith\ToolTinkering\CollectibleBehaviorToolHead.cs:line 80
at Toolsmith.ToolTinkering.CollectibleBehaviorToolHead.OnHeldInteractStop(Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel, EnumHandling& handling) in D:\Vintage Story\Modding\Toolsmith\Toolsmith\ToolTinkering\CollectibleBehaviorToolHead.cs:line 43
at Vintagestory.API.Common.CollectibleObject.OnHeldInteractStop(Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel) in VintagestoryApi\Common\Collectible\Collectible.cs:line 1359
at Vintagestory.API.Common.CollectibleObject.OnHeldUseStop(Single secondsPassed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel, EnumHandInteract useType) in VintagestoryApi\Common\Collectible\Collectible.cs:line 1183
at Vintagestory.Server.ServerSystemInventory.HandleHandInteraction(Packet_Client packet, ConnectedClient client) in VintagestoryLib\Server\Systems\Inventory.cs:line 255
at Vintagestory.Server.ServerMain.HandleClientPacket_mainthread(ReceivedClientPacket cpk) in VintagestoryLib\Server\ServerMainNetworking.cs:line 238
at Vintagestory.Server.ServerMain.ProcessMain() in VintagestoryLib\Server\ServerMain.cs:line 957

This is the error the server gave me when crashing out of the server.

💬 Infi , Apr 19th at 8:59 PM

Maxilos33 it is planned, currently just busy with FFXIV :)

💬 Maxilos33, Apr 14th at 4:03 PM

Considering the whetstone at the moment is able to repair every tool, would it be possible to add a whitelist / blacklist into the config so that one could limit it to only knives, only bladed weapons or exclude blunt weapons for example? Great mod nevertheless, keep up the good work!

💬 AcidNight, Apr 1st at 2:56 PM

Infi

hello, ha I didn't get the response notification x), but apparently Amarillo has it like me and I also have itemrarity so I'll see on their side if they haven't forgotten to incorporate the unknown items

💬 Infi , Mar 31st at 4:37 PM

Amarillo this issue comes from itemrarity and isn't limited to just RepairMe.

See https://github.com/raevendev/ItemRarity/issues/7

💬 Amarillo, Mar 31st at 11:44 AM

here is the log of the crash when trying to craft any whetstone

Running on 64 bit Windows 10.0.26100.0 with 32679 MB RAM
Game Version: v1.20.7 (Stable)
31/03/2025 13:44:11: Critical error occurred in the following mod: itemrarity@1.1.4
Loaded Mods: Allclasses@1.3.1, anticheesedist@1.1.1, autowalk@1.0.4, TA_fieldsandplateaus@1.0.6, indappledgroves@2.1.2-rc.1, primitivesurvival@3.7.6, storylesselk@1.0.0, usefultraders@2.2.0, game@1.20.7, bastion@1.1.0, bulwarkContinued@0.0.8, canmarket@0.4.12, carryon@1.8.0-pre.1, cartwrightscaravan@1.2.0, commonlib@2.6.1, cratelockfix@1.0.0, fairplayguardian@1.1.8, fromgoldencombs@1.8.12, hardcorewater@1.3.5, nbcartographer@2.0.11, noticeboard@1.1.0, plumbandcube@1.1.0, repairme@1.1.0, rpvoicechat@2.3.15, somethinginthewater@1.2.5, tabletopgames@2.10.1, unconscious@1.10.3, creative@1.20.7, vsinstrumentsbase@2.0.1, survival@1.20.7, woodenfortifications@2.0.5, xlib@0.8.16, em@3.2.0, itemrarity@1.1.4, playercorpse@1.11.0, stonequarry@3.4.3, thebasics@5.0.2-rc.1, vsinstruments_quackpack@1.0.2, xskills@0.8.17, bricklayers@3.0.0-pre.3
Involved Harmony IDs: itemrarity.patches
System.NullReferenceException: Object reference not set to an instance of an object.
at ItemRarity.Rarity.SetRarity(ItemStack itemStack, String rarity) in C:\Users\doria\Documents\Code\ItemRarity\ItemRarity\ItemRarity\Rarity.cs:line 120
at ItemRarity.Rarity.SetRandomRarity(ItemStack itemStack) in C:\Users\doria\Documents\Code\ItemRarity\ItemRarity\ItemRarity\Rarity.cs:line 90
at ItemRarity.Patches.CollectibleObjectPatch.ConsumeCraftingIngredientsPatch(CollectibleObject __instance, ItemSlot[] slots, ItemSlot outputSlot, GridRecipe matchingRecipe) in C:\Users\doria\Documents\Code\ItemRarity\ItemRarity\ItemRarity\Patches\CollectibleObjectPatch.cs:line 84
at Vintagestory.API.Common.CollectibleObject.ConsumeCraftingIngredients_Patch1(CollectibleObject this, ItemSlot[] slots, ItemSlot outputSlot, GridRecipe matchingRecipe)
at Vintagestory.Common.InventoryCraftingGrid.ConsumeIngredients(ItemSlot outputSlot) in VintagestoryLib\Common\GameContent\Inventory\InventoryCraftingGrid.cs:line 197
at Vintagestory.Common.ItemSlotCraftingOutput.CraftSingle(ItemSlot sinkSlot, ItemStackMoveOperation& op) in VintagestoryLib\Common\GameContent\Inventory\ItemSlotCraftingOutput.cs:line 176
at Vintagestory.Common.ItemSlotCraftingOutput.TryPutInto(ItemSlot sinkSlot, ItemStackMoveOperation& op) in VintagestoryLib\Common\GameContent\Inventory\ItemSlotCraftingOutput.cs:line 60
at Vintagestory.API.Common.ItemSlotOutput.ActivateSlot(ItemSlot sourceSlot, ItemStackMoveOperation& op) in VintagestoryApi\Common\Inventory\ItemSlotOutput.cs:line 37
at Vintagestory.API.Common.InventoryBase.ActivateSlot(Int32 slotId, ItemSlot sourceSlot, ItemStackMoveOperation& op) in VintagestoryApi\Common\Inventory\InventoryBase.cs:line 459
at Vintagestory.Common.InventoryCraftingGrid.ActivateSlot(Int32 slotId, ItemSlot sourceSlot, ItemStackMoveOperation& op) in VintagestoryLib\Common\GameContent\Inventory\InventoryCraftingGrid.cs:line 111
at Vintagestory.API.Client.GuiElementItemSlotGridBase.SlotClick(ICoreClientAPI api, Int32 slotId, EnumMouseButton mouseButton, Boolean shiftPressed, Boolean ctrlPressed, Boolean altPressed) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Inventory\GuiElementItemSlotGridBase.cs:line 991
at Vintagestory.API.Client.GuiElementItemSlotGridBase.OnMouseDownOnElement(ICoreClientAPI api, MouseEvent args) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Inventory\GuiElementItemSlotGridBase.cs:line 789
at Vintagestory.API.Client.GuiElementItemSlotGridBase.OnMouseDown(ICoreClientAPI api, MouseEvent mouse) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Inventory\GuiElementItemSlotGridBase.cs:line 757
at Vintagestory.API.Client.GuiComposer.OnMouseDown(MouseEvent mouseArgs) in VintagestoryApi\Client\UI\GuiComposer.cs:line 459
at Vintagestory.Client.NoObf.GuiDialogInventory.OnMouseDown(MouseEvent args) in VintagestoryLib\Client\Systems\Gui\Dialogs\GuiDialogInventory.cs:line 549
at Vintagestory.Client.NoObf.GuiManager.OnMouseDown(MouseEvent args) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 393
at Vintagestory.Client.NoObf.ClientMain.UpdateMouseButtonState(EnumMouseButton button, Boolean down) in VintagestoryLib\Client\ClientMain.cs:line 1952
at Vintagestory.Client.HotkeyManager.TriggerHotKey(KeyEvent keyEventargs, IWorldAccessor world, IPlayer player, Boolean allowCharacterControls, Boolean isGlobal, Boolean fallBack, Boolean keyup) in VintagestoryLib\Client\HotkeyManager.cs:line 431
at Vintagestory.Client.HotkeyManager.OnMouseButton(ClientMain game, EnumMouseButton button, Int32 modifiers, Boolean buttonDown) in VintagestoryLib\Client\HotkeyManager.cs:line 574
at Vintagestory.Client.NoObf.ClientMain.OnMouseDownRaw(MouseEvent args) in VintagestoryLib\Client\ClientMain.cs:line 1906
at Vintagestory.Client.GuiScreenRunningGame.OnMouseDown(MouseEvent args) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 337
at Vintagestory.Client.ScreenManager.OnMouseDown(MouseEvent e) in VintagestoryLib\Client\ScreenManager.cs:line 906
at Vintagestory.Client.NoObf.ClientPlatformWindows.Mouse_ButtonDown(MouseButtonEventArgs e) in VintagestoryLib\Client\ClientPlatform\Input.cs:line 201
at OpenTK.Windowing.Desktop.NativeWindow.MouseButtonCallback(Window* window, MouseButton button, InputAction action, KeyModifiers mods)
--- End of stack trace from previous location ---
at OpenTK.Windowing.Desktop.NativeWindow.RethrowCallbackExceptionsIfNeeded()
at OpenTK.Windowing.Desktop.NativeWindow.ProcessWindowEvents(Boolean waitForEvents)
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 334
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 130
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93

Event Log entries for Vintagestory.exe, the latest 1
==================================
{ TimeGenerated = 28/03/2025 2:00:29, Site = , Source = Application Error, Message = Nombre de aplicación con errores: Vintagestory.exe, versión: 1.20.7.0, marca de tiempo: 0x66470000
Nombre del módulo con errores: openal32.dll, versión: 1.23.0.0, marca de tiempo: 0x63dd31ad
Código de excepción: 0x40000015
Desplazamiento con errores: 0x00000000000df046
Id. de proceso con errores: 0x5650
Tiempo de inicio de aplicación con errores: 0x1db9efcc08fdef7
Ruta de aplicación con errores: C:\Users\PC GAMING\AppData\Roaming\Vintagestory\Vintagestory.exe
Ruta de módulo con errores: C:\Users\PC GAMING\AppData\Roaming\Vintagestory\Lib\openal32.dll
Id. de informe: 8d982428-6863-4911-ba1d-4856c7dc00cd
Nombre completo del paquete con errores:
Id. de aplicación relacionado con el paquete con errores: }

💬 Amarillo, Mar 31st at 11:44 AM
💬 Infi , Mar 30th at 3:31 PM

@AcidNight please share the error log

💬 AcidNight, Mar 29th at 2:13 PM

hello, I just tested it on my server and when you try to craft it when you take it the client cuts out

 

💬 Mokug, Mar 28th at 1:07 AM

I have no idea why it's working now, they were interfering before and nothing has changed. They are both working fine on my end now as well.

💬 Infi , Mar 27th at 10:25 PM

I tried to replicate the "From Golden Combs" conflict, but both mods work fine in my test.

Can you provide logs or more details how the conflict looks like?

💬 Mokug, Mar 26th at 4:35 PM

Might be worth noting that this mod conflicts with From Golden Combs. Depending on which mod loads first, either the whetstone item is non-craftable and non-functional or the clay and langstroth hives break.

💬 AcidNight, Mar 25th at 4:28 PM

This mod is really interesting. I already have the one with the sharpening stone. I'll wait for the durability reduction of the repaired item. ^^

To be more in line with the idea, it would be great if the stone could be placed on a block like the other one and re-sharpened on it, but hey, that's going to be more complicated to code. x)

💬 Infi , Mar 24th at 8:57 PM

> i have a suggestion for tool repair limit.

Was thinking about something similar already

 

> I'll absolutely use this after it's made configurable

Is planned for the next version :)

 

> Configurable whitelist

Maybe in one of the future updates

 

The next update will also include 5(6) new variants

Flint (125 Durability), Lapis (300), Peridot (600), Amethyst (1000), Emerald (1500), Diamond (2000)
The tier of each variant depends on their rating in the Mohs Hardness Scale

💬 SoggyGravel, Mar 23rd at 7:47 AM

i have a suggestion for tool repair limit. would it be possible to make it so with every repair the tool or weapon loses 1 total  durability? it would be like loseing material over time. i think the devs of smithing plus has somthing like this with broken tool heads shows how many times its been repaired and less total durability on said tool/weapon. maybe they will give you permission to have a plugin mod so they can kinda work together? i would love to  see these two features combind

💬 Tisajokt, Mar 23rd at 2:59 AM

I'll absolutely use this after it's made configurable, and if it doesn't break things when used in conjunction with the repairing from Smithing Plus. Feature request, configurable whitelist for what tool types are repairable with the whetstone? (It'd be cool, for immersion's sake, to make it only work with knives, spears, axes, etc)

💬 SoggyGravel, Mar 23rd at 2:48 AM

loving the mod. feels essential

💬 Infi , Mar 22nd at 7:03 PM

Thanks for all the reports about duplication, i found the issue and implemented measures to prevent such a thing from occuring.

1.0.1 has holding shift while repairing disabled and it will leads to an on-screen error, sorry for the inconvince

1.0.2 should have fixed all the problems.

1.0.3 hopefully

💬 Junrall, Mar 22nd at 6:10 PM

This is a great addition! Once you have the other variants in place, I'm guessing they will have their own durability levels? I will say that the current flint version's durability feels a little overpowered. It takes away the need to harvest flint (though I feel that flint is too abundant anyway).

As for issues, I find that I am unable to repair my flint spear and hoe. Not sure about the other tools as I haven't tried them yet.

Also, I had a one-time error that I wasn't able to repeat. VS seems to think XinvTweakPatch is involved. I restarted the game with XinvTweak disabled and had no errors. Then I re-enabled XinvTweak and got no errors?? So weird.

 

3/22/2025 9:45:44 AM: Critical error occurred in the following mod: repairme@1.0.0
Loaded Mods: tadmorecharcoal@1.0.0, ATadMoreTorchLife@1.0.0, aculinaryartillery@1.2.5, atwatersedge@1.5.0, axleinblocks@1.20.1-rc.5, signs@1.0.2, Beamium@1.1.0, bedrespawn@1.1.0, bettercrates@1.8.0, bf@0.0.3, BetterGrass@0.0.3, bettertraders@0.0.9, carpet@1.0.2, chiseltools@1.14.12, clayblock2clay@1.20.3, crackedrockweak@1.0.0, entitiesinteract@1.0.11, fixedpaths@1.0.2, floralzonescaperegion@1.0.15, floralzonescaribbeanregion@1.0.12, floralzonescentralaustralianregion@1.0.9, floralzoneseastasiaticregion@1.0.7, floralzonesmediterraneanregion@1.0.5, floralzonesneozeylandicregion@1.0.8, bovinae@0.1.4, caninae@1.0.30, capreolinae@1.2.5, casuariidae@1.0.22, cervinae@0.1.3, dinornithidae@1.0.14, elephantidae@1.0.8, felinae@0.2.8, machairodontinae@1.0.23, manidae@1.0.13, meiolaniidae@0.1.3, pantherinae@1.1.23, rhinocerotidae@1.0.16, sirenia@1.0.17, spheniscidae@1.0.8, viverridae@1.0.2, vombatidae@0.3.1, giantgouramis@1.0.2, immersivecorpsedrop@1.0.3, immersiveorecrush@2.2.1, juicyores@1.0.0, junesoccasionalextragrassdrops@1.0.0, junesoccasionalextrawetlanddrops@1.0.0, plantstograss@1.0.1, ATadMoreLight@1.0.0, knappingmastery@1.0.1, m00ngrass@1.0.5, manualquenching@1.0.4, manualscraping@1.2.1, millwright@1.1.8, mineralinguisticswithatadmoreinfo@1.0.0, more-chute-rotations@0.0.2, moreicons@1.1.0, morebonetools@1.0.2, mr@0.0.1, nacatfish@1.0.1, nadarters@2.0.0, nailsmold@1.0.2, natshumanskin@1.0.1, nobearjetpacks@1.0.2, OrnamentalFish@4.0.1, peacockbasses@1.1.2, plumpkins@1.0.3, primitivesurvival@3.7.6, prospecttogether@2.0.2, roas@1.0.0, scraps@1.1.1, SmokingChimneys@1.3.0, suevitebricks@1.0.0, terraprety@6.0.2, translocatormap@1.0.0, truesunfishes@1.1.2, unevenbricks@1.0.0, untamedwildsursidae@1.0.9, game@1.20.6, vsimgui@1.1.7, wforests@1.0.0-dev.1, abcsredux@1.0.9, AbsoluteProspecting@1.500.02, airmapfix@1.0.0, altmapiconrendererpatch@1.0.0, ancienttools@1.5.25, apebeams@1.0.1, egocaribautomapmarkers@4.0.1, autoatlas@1.1.1, awearablelight@1.1.31, betterentityinteraction@1.0.3, betterfirepit@1.1.5, betterfpcamera@1.3.0, betterjonasdevicesfixed@2.0.2, betteroutline@1.3.0, betterruins@0.4.9, blocksoverlay@4.2.0, bmt@1.0.6, carryon@1.8.0-pre.1, chestorganizer@1.2.3, chuteblockplacer@1.0.3, chutemod@1.0.0, commonlib@2.6.1, composter@1.2.1, configlib@1.5.2, danatweaks@3.4.1, debarkedlogintofirewood@1.0.0, deconstructchutes@1.0.1, doubleslabs@0.1.3, easyprospect@1.1.0, expandedfoods@1.7.4, extrainfo@1.9.8, fancyclouds2d@1.1.0, fancyplanters@1.2.0, farmlanddropswithnutrients@1.2.0, fixtogglesprint@1.0.0, floatingfish@1.0.1, foodshelves@1.5.3, freedomunits@1.1.4, fromgoldencombs@1.8.11, grenades@1.1.0, hangingbaskets@1.1.0, immersivewoodchopping@0.7.5, improvedhandbookrecipes@1.1.3, knapster@2.14.3, mannequinstand@1.0.5, medievalexpansionpatch@1.0.1, metalunittooltip@1.0.0, meteoricexpansion-reborn@1.3.0, moreanimals@1.4.1, morepiles@2.1.2, nooceantranslocators@1.0.1, oneroof@1.8.2, passthruchutes@1.0.2, petai@3.3.0, placeongrass@1.0.3, claywheel@1.1.2, resmeltableslight@1.1.0, repairme@1.0.0, rivers@4.1.0, smithingplus@1.4.0, somethinginthewater@1.2.5, spawnhighlight@1.2.0, statushudcont@3.2.6, stepupadvanced@1.0.4, storagecontroller@1.1.5, strspawnchances@0.1.6, customplaystyles@1.0.1, th3dungeon@0.4.1, th3restock@1.1.2, traitacquirer@0.9.6, mouseunlocktoggle@1.0.0, vanvar@6.0.11, Verticality@0.3.1, creative@1.20.6, survival@1.20.6, woodstain@1.3.1, animation-resync@1.3.0, apanserbjornstory@0.9.5, autoconfiglib@2.0.6, bbb@1.0.1, cats@3.1.1, em@3.2.0, feverstonewilds-1205@1.20.5, foxtaming@1.6.1, gespileslib@1.2.0, helvehammerext@1.7.0, junesbiomesoverridespatch@1.0.0, moreblueclay@1.0.1, onestick@1.0.1, pickupartist@0.2.0, playercorpse@1.11.0, stonequarry@3.4.3, th3dungeontopentrance@0.4.1, thriftysmithing@1.2.0, treetapping@1.0.0, wolftaming@3.0.5, xinvtweaks@1.8.0, bricklayers@3.0.0-pre.7, gespilesgran@1.0.1
Involved Harmony IDs: XInvTweakPatch
System.NullReferenceException: Object reference not set to an instance of an object.
at RepairMe.RepairItem.CalculateDurabilityChange(ItemStack repairedTool) in H:\worky\VintageStory_mods\RepairMe\RepairMe\RepairItem.cs:line 24
at RepairMe.RepairItem.OnConsumedByCrafting(ItemSlot[] allInputSlots, ItemSlot stackInSlot, GridRecipe gridRecipe, CraftingRecipeIngredient fromIngredient, IPlayer byPlayer, Int32 quantity) in H:\worky\VintageStory_mods\RepairMe\RepairMe\RepairItem.cs:line 16
at Vintagestory.API.Common.GridRecipe.ConsumeInputShapeLess(IPlayer byPlayer, ItemSlot[] inputSlots) in VintagestoryApi\Common\Crafting\GridRecipe.cs:line 388
at Vintagestory.API.Common.GridRecipe.ConsumeInput(IPlayer byPlayer, ItemSlot[] inputSlots, Int32 gridWidth) in VintagestoryApi\Common\Crafting\GridRecipe.cs:line 300
at Vintagestory.Common.InventoryCraftingGrid.ConsumeIngredients(ItemSlot outputSlot) in VintagestoryLib\Common\GameContent\Inventory\InventoryCraftingGrid.cs:line 199
at Vintagestory.Common.ItemSlotCraftingOutput.CraftMany(ItemSlot sinkSlot, ItemStackMoveOperation& op) in VintagestoryLib\Common\GameContent\Inventory\ItemSlotCraftingOutput.cs:line 108
at Vintagestory.Common.ItemSlotCraftingOutput.TryPutInto(ItemSlot sinkSlot, ItemStackMoveOperation& op) in VintagestoryLib\Common\GameContent\Inventory\ItemSlotCraftingOutput.cs:line 57
at Vintagestory.Common.PlayerInventoryManager.TryTransferAway(ItemSlot sourceSlot, ItemStackMoveOperation& op, Boolean onlyPlayerInventory, StringBuilder shiftClickDebugText, Boolean slotNotifyEffect) in VintagestoryLib\Common\GameContent\Inventory\PlayerInventoryManager.cs:line 248
at Vintagestory.API.Common.InventoryBase.ActivateSlot_Patch1(InventoryBase this, Int32 slotId, ItemSlot sourceSlot, ItemStackMoveOperation& op)
at Vintagestory.Common.InventoryCraftingGrid.ActivateSlot(Int32 slotId, ItemSlot sourceSlot, ItemStackMoveOperation& op) in VintagestoryLib\Common\GameContent\Inventory\InventoryCraftingGrid.cs:line 111
at Vintagestory.API.Client.GuiElementItemSlotGridBase.SlotClick(ICoreClientAPI api, Int32 slotId, EnumMouseButton mouseButton, Boolean shiftPressed, Boolean ctrlPressed, Boolean altPressed) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Inventory\GuiElementItemSlotGridBase.cs:line 983
at Vintagestory.API.Client.GuiElementItemSlotGridBase.OnMouseDownOnElement(ICoreClientAPI api, MouseEvent args) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Inventory\GuiElementItemSlotGridBase.cs:line 789
at Vintagestory.API.Client.GuiElementItemSlotGridBase.OnMouseDown(ICoreClientAPI api, MouseEvent mouse) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Inventory\GuiElementItemSlotGridBase.cs:line 757
at Vintagestory.API.Client.GuiComposer.OnMouseDown(MouseEvent mouseArgs) in VintagestoryApi\Client\UI\GuiComposer.cs:line 477
at Vintagestory.Client.NoObf.GuiDialogInventory.OnMouseDown(MouseEvent args) in VintagestoryLib\Client\Systems\Gui\Dialogs\GuiDialogInventory.cs:line 549
at Vintagestory.Client.NoObf.GuiManager.OnMouseDown(MouseEvent args) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 393
at Vintagestory.Client.NoObf.ClientMain.UpdateMouseButtonState(EnumMouseButton button, Boolean down) in VintagestoryLib\Client\ClientMain.cs:line 1952
at Vintagestory.Client.HotkeyManager.TriggerHotKey(KeyEvent keyEventargs, IWorldAccessor world, IPlayer player, Boolean allowCharacterControls, Boolean isGlobal, Boolean fallBack, Boolean keyup) in VintagestoryLib\Client\HotkeyManager.cs:line 431
at Vintagestory.Client.HotkeyManager.OnMouseButton(ClientMain game, EnumMouseButton button, Int32 modifiers, Boolean buttonDown) in VintagestoryLib\Client\HotkeyManager.cs:line 574
at Vintagestory.Client.NoObf.ClientMain.OnMouseDownRaw(MouseEvent args) in VintagestoryLib\Client\ClientMain.cs:line 1906
at Vintagestory.Client.GuiScreenRunningGame.OnMouseDown(MouseEvent args) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 337
at Vintagestory.Client.ScreenManager.OnMouseDown(MouseEvent e) in VintagestoryLib\Client\ScreenManager.cs:line 906
at Vintagestory.Client.NoObf.ClientPlatformWindows.Mouse_ButtonDown(MouseButtonEventArgs e) in VintagestoryLib\Client\ClientPlatform\Input.cs:line 201
at OpenTK.Windowing.Desktop.NativeWindow.MouseButtonCallback(Window* window, MouseButton button, InputAction action, KeyModifiers mods)

💬 Losvaize, Mar 22nd at 6:09 PM

I ran into a similar issue while my friend and I were playing on Lan Server, I accidently held down shift and clicked on the repaired tool, and it crashed me out. I do not run immersive mouse mode.

Also after coming back in, it did create a repaired 25% duplicate of the original (I tossed one). However if you just tool + whetstone and pull the tool out WITHOUT holding any buttons, your good. So something is up with shift+repaired tool

💬 Infi , Mar 22nd at 6:03 PM

Seems liek immersive handles the mouse item different, i will look into it later :) thanks for reporting

💬 SoggyGravel, Mar 22nd at 5:36 PM

Crashed while repairing  when holding shift+alt. with immersive mouse mode.. if i just normal left click no crash. only when holding shift

 

Edit: the crash has caused  the repaired item to dupe in my inv. im guessing the game saved along  with the crash.. happend twice now. once with my chisel and just again with tin bronze pickaxe. the chisel duped but the pickaxe  dupe ended up being a ghost item..maybe because i stored away the chisel on the rack and the pick i tried to throw away in the water. but no pickaxe to throw.

Hope this helps with updating the mod.

Running on 64 bit Windows 10.0.22631.0 with 24314 MB RAM
Game Version: v1.20.6 (Stable)
3/22/2025 1:34:51 PM: Critical error occurred in the following mod: repairme@1.0.0
Loaded Mods: barstogears@0.1.0, barstotemporal@0.1.0, betterandimprovedweather@0.1.0, bettertraders@0.0.9, chiseltools@1.14.12, craftablemetalparts@1.0.0, fernslikegrass@1.2.2, grasstoropes@1.1.4, hangingoillamps@1.0.3, instandtemporalmobdrops@1.0.1, metalscraprecipe@1.0.0, nomonsters@1.0.3, obdoltools@1.2.2, pipeleaf@1.10.0, preservationmod@1.0.0, primitivesurvival@3.7.6, sticksfromfirelogs@1.3.0, storylesselk@1.0.0, temporal_gears_stack@1.0.0, tradie@1.0.3, game@1.20.6, zoombuttonreborn@2.0.0, ancienttools@1.5.25, bedspawnv2@1.4.0, betterruins@0.4.9, carryon@1.8.0-pre.1, chestorganizer@1.2.3, combatrebalance@1.3.1, commonlib@2.6.1, earlychiseling@1.0.1, extremefirestarters@0.4.0, farmlanddropswithnutrients@1.2.0, firewoodfromsticks@0.6.9, grassiergrass@1.0.0, grasstoflax@1.0.1, hudclockpatch@1.0.0, ndlchiselpick@2.2.0, pelaguswinds@1.0.0, rdishome@1.0.0, realloy@0.4.0, resmeltableslight@1.1.1, repairme@1.0.0, smithingplus@1.4.0, stepupcontinued@0.0.1, tailorsachet@1.0.1, creative@1.20.6, survival@1.20.6, em@3.2.0, mcbpicks@1.1.1, cookie12000stickbeam@1.2.0, bricklayers@3.0.0-pre.7
System.NullReferenceException: Object reference not set to an instance of an object.
at RepairMe.RepairItem.CalculateDurabilityChange(ItemStack repairedTool) in H:\worky\VintageStory_mods\RepairMe\RepairMe\RepairItem.cs:line 24
at RepairMe.RepairItem.OnConsumedByCrafting(ItemSlot[] allInputSlots, ItemSlot stackInSlot, GridRecipe gridRecipe, CraftingRecipeIngredient fromIngredient, IPlayer byPlayer, Int32 quantity) in H:\worky\VintageStory_mods\RepairMe\RepairMe\RepairItem.cs:line 16
at Vintagestory.API.Common.GridRecipe.ConsumeInputShapeLess(IPlayer byPlayer, ItemSlot[] inputSlots) in VintagestoryApi\Common\Crafting\GridRecipe.cs:line 388
at Vintagestory.API.Common.GridRecipe.ConsumeInput(IPlayer byPlayer, ItemSlot[] inputSlots, Int32 gridWidth) in VintagestoryApi\Common\Crafting\GridRecipe.cs:line 300
at Vintagestory.Common.InventoryCraftingGrid.ConsumeIngredients(ItemSlot outputSlot) in VintagestoryLib\Common\GameContent\Inventory\InventoryCraftingGrid.cs:line 199
at Vintagestory.Common.ItemSlotCraftingOutput.CraftMany(ItemSlot sinkSlot, ItemStackMoveOperation& op) in VintagestoryLib\Common\GameContent\Inventory\ItemSlotCraftingOutput.cs:line 108
at Vintagestory.Common.ItemSlotCraftingOutput.TryPutInto(ItemSlot sinkSlot, ItemStackMoveOperation& op) in VintagestoryLib\Common\GameContent\Inventory\ItemSlotCraftingOutput.cs:line 57
at Vintagestory.Common.PlayerInventoryManager.TryTransferAway(ItemSlot sourceSlot, ItemStackMoveOperation& op, Boolean onlyPlayerInventory, StringBuilder shiftClickDebugText, Boolean slotNotifyEffect) in VintagestoryLib\Common\GameContent\Inventory\PlayerInventoryManager.cs:line 248
at Vintagestory.API.Common.InventoryBase.ActivateSlot(Int32 slotId, ItemSlot sourceSlot, ItemStackMoveOperation& op) in VintagestoryApi\Common\Inventory\InventoryBase.cs:line 442
at Vintagestory.Common.InventoryCraftingGrid.ActivateSlot(Int32 slotId, ItemSlot sourceSlot, ItemStackMoveOperation& op) in VintagestoryLib\Common\GameContent\Inventory\InventoryCraftingGrid.cs:line 111
at Vintagestory.API.Client.GuiElementItemSlotGridBase.SlotClick(ICoreClientAPI api, Int32 slotId, EnumMouseButton mouseButton, Boolean shiftPressed, Boolean ctrlPressed, Boolean altPressed) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Inventory\GuiElementItemSlotGridBase.cs:line 966
at Vintagestory.API.Client.GuiElementItemSlotGridBase.OnMouseDownOnElement(ICoreClientAPI api, MouseEvent args) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Inventory\GuiElementItemSlotGridBase.cs:line 762
at Vintagestory.API.Client.GuiComposer.OnMouseDown(MouseEvent mouseArgs) in VintagestoryApi\Client\UI\GuiComposer.cs:line 459
at Vintagestory.Client.NoObf.GuiDialogInventory.OnMouseDown(MouseEvent args) in VintagestoryLib\Client\Systems\Gui\Dialogs\GuiDialogInventory.cs:line 591
at Vintagestory.Client.NoObf.GuiManager.OnMouseDown(MouseEvent args) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 390
at Vintagestory.Client.NoObf.ClientMain.UpdateMouseButtonState(EnumMouseButton button, Boolean down) in VintagestoryLib\Client\ClientMain.cs:line 1931
at Vintagestory.Client.HotkeyManager.TriggerHotKey(KeyEvent keyEventargs, IWorldAccessor world, IPlayer player, Boolean allowCharacterControls, Boolean isGlobal, Boolean fallBack, Boolean keyup) in VintagestoryLib\Client\HotkeyManager.cs:line 431
at Vintagestory.Client.NoObf.ClientPlatformWindows.Mouse_ButtonDown(MouseButtonEventArgs e) in VintagestoryLib\Client\ClientPlatform\Input.cs:line 198
at OpenTK.Windowing.Desktop.NativeWindow.MouseButtonCallback(Window* window, MouseButton button, InputAction action, KeyModifiers mods)
--- End of stack trace from previous location ---
at OpenTK.Windowing.Desktop.NativeWindow.RethrowCallbackExceptionsIfNeeded()
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 334
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 130
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93

 (edit comment delete)