Mods / Improved Handbook Recipes Continued

Tags:
Utility QoL
Author:
Gabone
Side:
Client
Created:
Jan 6th at 2:34 PM
Last modified:
Jan 7th at 5:15 PM
Downloads:
4842
Latest release (for Vintage Story 1.20.0 - 1.21.6, outdated):
improvedhandbookrecipescontinued_1.3.0.zip  1-click install

A continuation of the original mod with enhanced features and improvements.

 

Features:

• Smart Recipe Selection: When multiple recipe variants exist (e.g., oak boards vs birch boards), automatically selects the recipe you have the most materials for.

• Visual Feedback: Buttons turn red and missing ingredients are highlighted with a red overlay when you lack materials for a recipe.

• Scroll Through Variants: Use the scroll wheel while hovering over recipes or items with multiple variants to flip between them freely.

• Auto-Fill Crafting Grid: When the handbook and crafting grid are both open, click the + button to add ingredients for one craft, or * button to fill for maximum crafts possible. Automatically pulls items from your inventory and any opened chests (hold Shift to exclude chests).

• Tool Durability Display: Shows a small wrench icon on non-consumed ingredients (tools) and displays durability cost in the tooltip.

• Bug Fixes: Improved null handling for mod compatibility, fixed thread safety issues, and other stability improvements.

 

This is a continuation of the original mod. All credit goes to Kathanon.

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
1.3.0 improvedhandbookrecipescontinued
1.20.0 - 1.21.6
4437 Jan 6th at 9:54 PM improvedhandbookrecipescontinued_1.3.0.zip 1-click install
  • Added: Red overlay highlights missing ingredients when auto-filling recipes
1.2.0 improvedhandbookrecipescontinued
1.20.0 - 1.20.3 1.20.5 - 1.20.7 1.20.8 - 1.20.10 1.20.11 - 1.20.12 1.21.2 - 1.21.5
184 Jan 6th at 2:56 PM Empty improvedhandbookrecipescontinued_1.2.0.zip 1-click install

Disclaimer

By downloading a mod you consent to our Terms of Use.

We tell you this specifically because we want to make sure you are aware that we cannot validate every mod, and you are responsible for any damages you might incur by installing or loading mods.

This prompt will not be shown to you again (for the current browser session) if you proceed.


29 Comments (oldest first | newest first) (threaded | flat)

bintoss, May 7th at 10:28 PM

There's another fork for VS 1.22 by @Bannta, Improved Handbook Recipe Helper.

bintoss, May 7th at 10:27 PM

Gabone Are you zdegraaf on GitHub?

The_Revisionist, Apr 27th at 6:47 PM

Does this work on 1.22?

bintoss, May 3rd at 6:52 AM (modified May 7th at 10:26 PM)
@The_Revisionist: Does this work on 1.22?

No. VS 1.21.7 -> 1.20.0 saw breaking changes to the Vintage Story API.

darklord1622, Apr 24th at 1:47 PM

are there any plans for an update ?

Vinni_Pukh, Mar 31st at 8:27 PM

This is a fantastic mod, makes life so much easier! Really hope that you'll update to 1.22 :)

Ariosh, Mar 11th at 4:01 AM

Hey there, I love the mod, looks like I made an oopsie. Hope this helps.

 

Crash Report
Running on 64 bit Linux (Freedesktop SDK 23.08 (Flatpak runtime)) [Kernel 6.17.0.14] with 31232 MB RAM
Game Version: v1.21.6 (Stable)
2026-03-10 8:52:30 p.m.: Critical error occurred in the following mod: improvedhandbookrecipescontinued@1.3.0
Loaded Mods: walkingstick@1.0.18, biggerpockets@1.0.3, birdseye@0.1.3, bulkmoldsmod@1.3.0, catchledge@0.7.0, cbr@2.0.1, chiseltools@1.16.2, blocklayeroverhaul@1.0.2, landformoverhaul@1.0.2, conquest@1.0.3, crawlanddive@0.2.3, diversediets@1.0.3, dfsa@0.1.1, dfsaa@0.1.1, dfsf@0.1.1, finallylinenbackpacksredux@1.0.9, 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, fadynasties@1.2.6, fagothic@1.3.2, fagreenwich@1.4.3, fahussar@1.1.4, fatemplar@1.4.4, faviking@1.1.3, bovinae@0.3.5, caninae@1.1.2, capreolinae@2.0.7, casuariidae@1.1.9, elephantidae@1.0.17, pantherinae@1.2.8, rhinocerotidae@1.0.23, fragilecharcoal@0.0.1, freelook@1.0.4, geoaddons@1.4.6, increasedstoragecapacity@0.0.7, jsonpatcheslib@1.3.1, koboldcomforts@1.2.2, longtermfood@0.5.7, manualquenching@1.0.10, millwright@1.3.1, morefat@1.5.1, mitsuyoninja@1.13.1, mycodiversity@1.0.5, overhaullib@1.20.14, playermodellib@1.10.11, primitivesurvival@4.0.3, prospecttogether@2.1.2, shelfobsessed@1.9.5, stackattack@1.1.6, tankardsandgoblets@1.3.4, temporal_gears_stack@1.0.0, thatchexpanded@1.3.0, usefultraders@2.3.6, game@1.21.6, vsimgui@1.1.16, wforests@1.0.0, zoombuttonreborn@2.0.1, accessibilitytweaks@4.0.0, alchemy@1.8.2, antiqueharmonytwo@1.1.1, antlershorns@1.3.6, apelanterns@1.3.5, attributerenderinglibrary@2.8.1, augplantlib@0.0.5, bedspawnv2@1.6.4, betterentitytooltip@1.0.1, bettererprospecting@3.1.4, betterfirepit@1.2.0, betterloot@2.0.1, bloodtrail@1.1.8, butchering@1.12.0, canjewelry@0.5.20, carryon@1.12.2, cartwrightscaravan@1.8.0, coinage@2.0.3, combatoverhaul@0.16.8, commonlib@2.8.0, configlib@1.10.14, danatweaks@3.7.2, dfs@0.3.0, extrainfo@1.11.2, fermentaria@1.0.3, floatingfish@1.1.7, foodshelves@2.3.3, foragersgamble@1.2.7, genelib@2.1.8, handbookdeclutterer@1.0.0, hydrateordiedrate@2.3.7, improvedhandbookrecipescontinued@1.3.0, interestingoregen@2.2.3, ithaniacannedgoods@1.1.0, jaunt@2.2.0, juicyores@1.0.2, knitting@1.3.1, koboldrdx@1.3.13, lupines@0.1.10, maketeaforked@0.7.6, maltiezcrossbows@1.8.1, maltiezfirearms@1.7.6, mannequinstand@1.0.7, moreanimals@1.6.6, mountcamerafix@0.2.0, ndlflowergrowth@1.1.0, ndlmushroomgrowth@1.2.0, ndlwoodentorchholder@2.2.2, noticeboard@1.2.3, novelty@1.2.4, optitime@1.4.4, packrat@1.0.1, placeonslabs@1.0.3, insectoid@0.0.46, postsandbeams@1.5.0, purposefulstorage@1.5.1, realsmoke@1.1.15, rubberbandaid@1.0.1, rustboundmagic@3.1.19, saltandsands@1.1.6, skeletons@0.5.4, smithingplus@1.8.4, spinningwheel@1.1.61, statushudcont@4.1.1, stickemup@1.3.1, theartofpies@2.1.0, togglemousecontrol@1.3.0, toolsmith@1.2.14, torchholdersmithingplus@1.0.3, treetapredux@1.2.3, uraniumexpanded@1.1.6, vanity@2.4.6, vintagebirbs@0.4.0, creative@1.21.6, survival@1.21.6, watersheds@4.0.7, xlib@0.9.0-pre.2, xskillsqualitymodifiers@1.0.1, yapmaxxing@2.0.0, antiqueharmonyone@1.4.1, armory@1.10.2, crimzonskoboldtraits@0.1.4, detailedanimals@0.7.5, draconis@1.2.3, em@3.4.2, heraldry@1.0.2, mapper@0.4.0, newworldcrops@0.0.18, playercorpse@1.12.0, seraphleveling@1.11.0, shearlib@1.2.0, stonequarry@3.5.1, tabletopgames@3.0.5, terrainslabs@1.0.12, toolsmithgeologypatch@1.1.0, wwaymarkers@1.0.4, xskills@0.9.0-pre.2, aldiclasses@1.12.0, butcheringseraphlevelingcompatibility@1.1.0, heraldrybanners@1.0.1, capes@1.0.0, tailorsdelight@2.1.2, wool@1.8.3, xskillscatchablefotsa@0.0.2, xskillsgilded@1.3.5, dressmakers@1.7.5, millwrightxwoolcompat@1.1.1
Involved Harmony IDs: togglemousecontrol
System.NullReferenceException: Object reference not set to an instance of an object.
at Vintagestory.API.Common.CraftingRecipeIngredient.SatisfiesAsIngredient(ItemStack inputStack, Boolean checkStacksize) in VintagestoryApi\Common\Crafting\CraftingRecipeIngredient.cs:line 179
at ImprovedHandbookRecipesContinued.FillGridButton.<TryFillGrid>g__Satisfies|8_18(CraftingRecipeIngredient ingredient, ItemStack invStack) in C:\Users\Gabriel\Dev\vintagestory\mods\VintageStory-ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 252
at ImprovedHandbookRecipesContinued.FillGridButton.<>c__DisplayClass8_0.<TryFillGrid>g__GetMissingIngredients|17() in C:\Users\Gabriel\Dev\vintagestory\mods\VintageStory-ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 230
at ImprovedHandbookRecipesContinued.FillGridButton.TryFillGrid(String& failureReason) in C:\Users\Gabriel\Dev\vintagestory\mods\VintageStory-ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 124
at ImprovedHandbookRecipesContinued.FillGridButton.OnClick() in C:\Users\Gabriel\Dev\vintagestory\mods\VintageStory-ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 47
at ImprovedHandbookRecipesContinued.ButtonRTC.Click() in C:\Users\Gabriel\Dev\vintagestory\mods\VintageStory-ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ButtonRTC.cs:line 121
at Vintagestory.API.Client.GuiElementTextButton.OnMouseUpOnElement(ICoreClientAPI api, MouseEvent args) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Controls\GuiElementTextButton.cs:line 320
at Vintagestory.API.Client.GuiElementTextButton.OnMouseUp(ICoreClientAPI api, MouseEvent args) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Controls\GuiElementTextButton.cs:line 310
at ImprovedHandbookRecipesContinued.ButtonRTC.OnMouseUp(MouseEvent args) in C:\Users\Gabriel\Dev\vintagestory\mods\VintageStory-ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ButtonRTC.cs:line 205
at Vintagestory.API.Client.GuiElementRichtext.OnMouseUp(ICoreClientAPI api, MouseEvent args) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\GuiElementRichtext.cs:line 539
at Vintagestory.API.Client.GuiComposer.OnMouseUp(MouseEvent mouse) in VintagestoryApi\Client\UI\GuiComposer.cs:line 446
at Vintagestory.API.Client.GuiDialog.OnMouseUp_Patch1(GuiDialog this, MouseEvent args)
at Vintagestory.Client.NoObf.GuiManager.OnMouseUp(MouseEvent args) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 423
at Vintagestory.Client.NoObf.ClientMain.UpdateMouseButtonState(EnumMouseButton button, Boolean down) in VintagestoryLib\Client\ClientMain.cs:line 1996
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 424
at Vintagestory.Client.NoObf.ClientPlatformWindows.Mouse_ButtonUp(MouseButtonEventArgs e) in VintagestoryLib\Client\ClientPlatform\Input.cs:line 210
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 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
Raven_Blackwood, Feb 24th at 9:01 PM (modified Feb 24th at 9:01 PM)

Hello there, firstly thank you for the great mod. Secondly I have a crash report that seems to be very consistent whenever I try to open related handbook entry on slate rock. Here is the crash report hopefully you can help me, or point me in the right direction to who can.

Crash Report
Running on 64 bit Windows 10.0.19045.0 with 14211 MB RAM
Game Version: v1.21.6 (Stable)
2/24/2026 2:50:10 PM: Critical error occurred
Loaded Mods: allsideshaveresin@1.0.0, aloysiasagriculture@1.0.0, ancientmortar@1.0.0, astronomersdelight@1.0.1, autopanning@1.0.1, irregularguybetterjam@1.0.0, woodlogstack64@1.2.0, bloomeryfulldrops@1.0.0, bushmeatrecipe@2.0.0, chiseltools@1.16.2, coldstorage@2.0.0, rlldtco0001@1.4.1, containersbundle@1.2.0, crockmod@2.1.1, driftershaveloot@1.0.6, duncansgrass@1.0.1, easiersodroofing@0.0.1, fixedpaths@1.0.2, harvestice@1.0.0, haybales@1.1.2, horsetailtea@1.1.0, jonasboat@1.0.3, lanternsarelighters@1.0.0, limetransmute@1.1.0, metalleaf@1.3.0, moretorchholders@1.0.1, nograssontilledsoil@1.0.2, overhaullib@1.20.14, particlesplus@2.3.0, cbetterfertilizer@1.4.0, powerfulauratrees@0.1.1, primitivesurvival@4.0.3, prospecttogether@2.1.2, fseasonedfirewood@1.2.5, seedharvest@1.0.0, shearsspeedscales@1.0.0, shelfobsessed@2.0.0, sonitorecipepin@1.0.1, spyglass@0.6.0, temporal_gears_stack@1.0.0, game@1.21.6, vsimgui@1.1.16, waysearchpoint@1.0.3, wlts@1.0.1, wildcultivation@1.1.2, driftertweak@1.3.0, accessibilitytweaks@4.0.0, additionalskins@1.1.0, kalwaysgetcropseeds@1.0.0, animalcages@4.0.2, metalrecoveryrevived@0.1.20, apelanterns@1.3.5, apewindows@1.4.0, attributerenderinglibrary@2.8.1, egocaribautomapmarkers@4.0.3, beesmoker@1.0.1, betterfirepit@1.2.0, betterhopper@1.2.1, betterruins@0.5.7, biggercellars@1.0.1, helblockpick@2.6.0, buzzwords@1.8.1, canadianwinterclothes@1.2.0, captions@0.6.3, carryon@1.13.0-pre.2, chestorganizer@1.2.3, chickenSit@2.0.1, commonlib@2.8.0, configlib@1.10.14, corduroyroads@1.0.3, debarkmod@1.1.4, everripe@1.0.0, extrainfo@1.11.2, farmlanddropssoil@1.4.0, mrmeikfasterpaths@1.0.1, fillmybloomery@1.0.2, firepitsheatovens@1.0.0, florishingfungus@1.1.0, freedomunits@1.1.4, glassroof@1.2.1, hayhive@1.0.0, healthbar@1.4.0, hudclockpatch@1.1.2, improvedhandbookrecipes@1.1.3, itempickupnotifier@2.0.0, juicyores@1.0.2, knapster@3.0.2, levelup@3.0.6, makesalt@1.2.1, mobsradar@2.1.13, morepiles@2.2.0, ndlmushroomgrowth@1.1.1, ndltreehollows@1.0.1, ndlvillagers@2.5.1, ndlwoodentorchholder@2.2.2, norottinghides@1.0.0, claywheel@1.1.7, purposefulstorage@1.5.1, saltpeterproduction@1.1.0, scarecrow@1.7.1, simplerockcrafting@1.2.1, slapalabelonit@1.0.0, sluice@2.3.2, spawnhighlightcustom@1.1.2, spreadless@1.0.0, stickscrafting@1.0.16, todolist@2.2.4, torchholdersmithingplus@1.0.3, trashmod@1.0.8, treetapredux@1.2.3, vanillamoremolds@1.1.2, vanity@2.4.6, vclayp@1.0.0, creative@1.21.6, survival@1.21.6, windchimes@1.4.1, woodenfortifications@2.0.10, workbenchexpansionpatch@1.1.0, zippysskysteel@1.3.0, bauxitealuminum@1.1.2, moreblueclay@1.0.2, playercorpse@1.12.0, shellpan@1.0.0, snowshoes@2.1.3, stonequarry@3.5.1, storageoptions@2.0.0, tallowcandles@0.1.0, xinvtweaks@1.8.1
Involved Harmony IDs: improvedhandbookrecipes, recipepin, extrainfo
System.ArgumentException: Attempted to resolve the recipe ingredient wildcard Item stonemallet:mallet-* but there are no such items/blocks!
at Vintagestory.API.Client.SlideshowGridRecipeTextComponent..ctor(ICoreClientAPI capi, GridRecipe[] gridrecipes, Double size, EnumFloat floatType, Action`1 onStackClicked, ItemStack[] allStacks) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\Richtext\SlideshowGridRecipeTextComponent.cs:line 114
at Vintagestory.GameContent.CollectibleBehaviorHandbookTextAndExtraInfo.addCreatedByInfo_Patch2(CollectibleBehaviorHandbookTextAndExtraInfo this, ICoreClientAPI capi, ItemStack[] allStacks, ActionConsumable`1 openDetailPageFor, ItemStack stack, List`1 components, Single marginTop, List`1 containers, List`1 fuels, List`1 molds, Boolean haveText)
at Vintagestory.GameContent.CollectibleBehaviorHandbookTextAndExtraInfo.GetHandbookInfo_Patch1(CollectibleBehaviorHandbookTextAndExtraInfo this, ItemSlot inSlot, ICoreClientAPI capi, ItemStack[] allStacks, ActionConsumable`1 openDetailPageFor)
at Vintagestory.GameContent.GuiHandbookItemStackPage.GetPageText(ICoreClientAPI capi, ItemStack[] allStacks, ActionConsumable`1 openDetailPageFor) in VSSurvivalMod\Systems\Handbook\Gui\GuiHandbookItemStackPage.cs:line 119
at Vintagestory.GameContent.GuiHandbookItemStackPage.ComposePage(GuiComposer detailViewGui, ElementBounds textBounds, ItemStack[] allstacks, ActionConsumable`1 openDetailPageFor) in VSSurvivalMod\Systems\Handbook\Gui\GuiHandbookItemStackPage.cs:line 113
at Vintagestory.GameContent.ModSystemSurvivalHandbook.onComposePage(GuiHandbookPage page, GuiComposer detailViewGui, ElementBounds textBounds, ActionConsumable`1 openDetailPageFor) in VSSurvivalMod\Systems\Handbook\SurvivalHandbook.cs:line 128
at Vintagestory.GameContent.GuiDialogHandbook.initDetailGui() in VSSurvivalMod\Systems\Handbook\Gui\GuiDialogHandbook.cs:line 258
at Vintagestory.GameContent.GuiDialogHandbook.OpenDetailPageFor(String pageCode) in VSSurvivalMod\Systems\Handbook\Gui\GuiDialogHandbook.cs:line 313
at Vintagestory.GameContent.ModSystemSurvivalHandbook.OnSurvivalHandbookHotkey_Patch1(ModSystemSurvivalHandbook this, KeyCombination key)
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 424
at Vintagestory.Client.HotkeyManager.TriggerHotKey(KeyEvent keyEventargs, IWorldAccessor world, IPlayer player, Boolean allowCharacterControls, Boolean keyUp) in VintagestoryLib\Client\HotkeyManager.cs:line 394
at Vintagestory.Client.NoObf.ClientMain.OnKeyDown(KeyEvent args) in VintagestoryLib\Client\ClientMain.cs:line 1841
at Vintagestory.Client.GuiScreenRunningGame.OnKeyDown(KeyEvent args) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 320
at Vintagestory.Client.ScreenManager.OnKeyDown(KeyEvent e) in VintagestoryLib\Client\ScreenManager.cs:line 880
at Vintagestory.Client.NoObf.ClientPlatformWindows.game_KeyDown(KeyboardKeyEventArgs e) in VintagestoryLib\Client\ClientPlatform\Input.cs:line 249
at OpenTK.Windowing.Desktop.NativeWindow.OnKeyDown(KeyboardKeyEventArgs e)
at OpenTK.Windowing.Desktop.NativeWindow.KeyCallback(Window* window, Keys key, Int32 scancode, 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 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
Hiran, Feb 9th at 2:19 PM

Game crashed with this, while browsing candle recipes

Crash Report
Game Version: v1.21.6 (Stable)
2/9/2026 3:14:11 PM: Critical error occurred
Loaded Mods: walkingstick@1.0.18, arrowheadsrecovery@1.0.3, astriaporta@0.1.2, bettercrates@1.9.0, bola@1.4.0, chiseltools@1.16.2, clayinabarrel@1.0.1, craftfirepit@1.0.0, creativetabexpander@1.0.2, eftradersfix@1.0.4, fallingtree@0.4.11, 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, fuelbriquettes@1.0.0, hotspringheal@1.0.3, hidearmor@0.0.1, immersiveorecrush@2.2.4, jacksgrass@1.0.0, jcbsupskies@1.0.0, millwright@1.3.1, moremolds@1.4.25, sae_tule@0.4.0, overhaullib@1.20.4, particlesplus@2.3.1, jkpeltremover@1.3.1, primitivesurvival@4.0.3, prospecttogether@2.1.2, realisticseawatersalt@1.0.0, rubblewithyourhammer@2.0.0, scrapsrevived@2.2.0, slings@0.0.3, spyglass@0.6.0, storagecontroller@1.2.1, terratag@0.3.1, toolbelt@0.3.4, traderssellcrowbars@0.0.2, translocatorengineeringredux@1.6.3, translocatormap@1.0.0, tuleredone@1.1.1, game@1.21.6, vsimgui@1.1.16, whichoreiswhich@1.0.0, wildfarmingrevival@1.4.2, willsfogmod@0.9.3, aculinaryartillery@2.0.0-dev.11, aemonsessentials@0.0.3, alchemy@1.8.2, altmapiconrenderercontinued@1.5.0, ancienttools@1.6.1, animalcages@4.0.2, attributerenderinglibrary@2.8.1, backpackpackplusexpanded@1.2.5, beararmorrepair@1.0.3, betterentitytooltip@1.0.1, bettererprospecting@3.1.4, betterfirepit@1.2.0, betterruins@0.5.7, bloodtrail@1.1.8, bloomerytiers@1.0.4, buildingwands@1.0.1, butchering@1.12.0, carryon@1.12.2, commonlib@2.8.0, composter@1.2.2, configlib@1.10.14, upgradablestorage@1.1.6, crystalgrowthspringtaria@1.0.1, enhancedhandbook@1.7.1, expandedbeekeeping@0.0.1, extrainfo@1.11.2, farseer@1.3.3, fixenfontmod@0.1.0, foodshelves@2.3.3, gimap@1.6.0, handbookdeclutterer@1.0.0, handytweaks@1.2.7, healthbar@1.4.0, hydrateordiedrate@2.3.7, improvedhandbookrecipescontinued@1.3.0, insanitylib@1.1.0, itempickuphighlighter@1.2.2, knapster@3.0.2, maltiezcrossbows@1.8.1, medievalexpansionpatch@1.3.4, naturalfertilizer@1.3.0, ndltimetracker@4.0.1, nolowhealthshaking@1.0.1, novelty@1.2.3, optitime@1.4.1, realmeat@1.6.0, recipeselectorfork@2.0.0, rememberselectedmaplayers@1.0.0, riverfish@1.0.3, rustboundmagic@3.1.19, scaffolding@1.2.6, simplefootstepsredux@1.0.4, simplejewelry@1.0.1, simpletailoring@1.1.6, smithingplus@1.8.3, spawnhighlightcustom@1.1.2, statushudcont@4.1.1, substrate@1.1.4, toolsmith@1.2.14, tradie@1.7.0, creative@1.21.6, survival@1.21.6, weatherthestorm@1.1.0, boltheadsrecovery@0.0.6, expandedfoods@2.0.0-dev.7, extremefirestartersreforged@1.1.2, helvehammerext@1.8.0, quiversandsheaths@0.8.7, seraphleveling@1.10.2, snowmeltfix@1.4.5, soilamendments@1.0.0, stonequarry@3.5.1, butcheringseraphlevelingcompatibility@1.1.0, expandedfoodscrockfix@1.0.0, sandwich@1.2.9
Involved Harmony IDs: improvedhandbookrecipescontinued, com.zaldaryon.optitime
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Vintagestory.API.Client.SlideshowGridRecipeTextComponent.RenderInteractiveElements_Patch0(SlideshowGridRecipeTextComponent this, Single deltaTime, Double renderX, Double renderY, Double renderZ)
at Vintagestory.API.Client.GuiElementRichtext.RenderInteractiveElements(Single deltaTime) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\GuiElementRichtext.cs:line 483
at Vintagestory.API.Client.GuiComposer.Render(Single deltaTime) in VintagestoryApi\Client\UI\GuiComposer.cs:line 737
at Vintagestory.API.Client.GuiDialog.OnRenderGUI(Single deltaTime) in VintagestoryApi\Client\UI\Dialog\GuiDialog.cs:line 396
at Vintagestory.GameContent.GuiDialogHandbook.OnRenderGUI(Single deltaTime) in VSSurvivalMod\Systems\Handbook\Gui\GuiDialogHandbook.cs:line 559
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
Velstadt, Feb 5th at 3:56 PM

Small annoyance - the description on crocks is missing a new line after the "Max stacks" line. Currently the max stacks number and the number of servings are joined, which confused me at first. For example, it says something like "Max stacks: 14 servings of ".
I "solved" it by editing the en.json file and adding a "\n" in there but maybe you'd want to enforce it via code.

Sologil, Jan 16th at 11:11 PM (modified Jan 17th at 12:00 AM)

Hello, thank you for this mod which worked very well for me. However, I just noticed that it no longer correctly displays the value of the "maxstacksize" for an item. Instead, it shows "Improvedhandbookrecipescontinued:stacksize" without specifying any value.
Everything else seems to work fine, and I don't see what could be causing a problem in my mod list or my installation?
Thanks again for your work!
EDIT:It seems that the problem sometimes fixes itself by going into the in-game mod list, unchecking/rechecking the mod, and then reloading the mods. But the problem always comes back for me. The mod is also displayed in-game as expected for version 1.20 and incompatible with 1.21.6 if I hover my mouse over it, or if I uncheck/recheck it. Maybe this is an issue?

f0xh0und696, Jan 12th at 3:16 PM

RecipeSelector was a great QOL mod that make it a Staple in my Modlist, better yet would it be able to merge these two together or imitate Recipe selector. or am i just asking too much, not a coder so dont know how hard it would be.

Gabone , Jan 10th at 9:47 PM

Mr_J_Soda, QuickdrawMcGraw added it to my TODO list, I'll do a second pass on this mod soon. 

QuickdrawMcGraw, Jan 10th at 6:54 PM

I would like to second Mr_J_Soda's suggestion, there used to be a mod that did this called RecipeSelector: https://mods.vintagestory.at/show/mod/17708 but it has since stopped working with no updates

Mr_J_Soda, Jan 10th at 7:46 AM

Would it be possible to get a update that allows for cycling between conlicting recipies where mods have overlaping recipies?

Gabone , Jan 9th at 2:44 AM (modified Jan 9th at 2:48 AM)

Ize

Thanks for the feedback. To clarify: this mod is intentionally opt-in. It does not change handbook behavior unless you click one of the buttons it adds, so there is nothing that needs a "disable" switch in normal use. If you do not want a feature, simply do not use its button.

Regarding Enhanced Handbook: I use both together and have not seen issues so far.

Ize, Jan 9th at 2:00 AM (modified Jan 9th at 2:27 AM)

Thank you for continuing to develop this mod, it's really useful. I agree with the previous suggestion about the possibility to turn off features in the config, though. The only feature I'm using this mod for is the ability to scroll through variants (haven't found any other mod that does that! Sitting there waiting to see if a specific material shows up is really tedious...)

I also wanted to ask if you think this mod would be compatible with Enhanced Handbook, which adds bookmarks and advanced search functions. I tested them and didn't immediatelly find any issues, but I'm not sure, since they're both modifying basic things on the handbook...

FNXR, Jan 7th at 5:25 PM

Can you add alternate buttons for mouse wheel? Mine doesnt work lol.

Wandour, Jan 7th at 5:23 PM

imagine proximity crafting 

KoboldCoterie, Jan 7th at 1:36 AM

Ah, this is fantastic. Thanks for the quick turnaround on that, the missing ingredient highlight is perfect.

Gabone , Jan 7th at 12:45 AM

Desolae oh yeah, that was my first idea when I wanted to do the "Smart Recipe Selection" thing, until I got to the "Wooden Chest" recipe.... it has multiple recipes which has multiple types of wooden boards each. Maybe the ability to "pin" a recipe and fill the grid with it in addition to the current "Smart Recipe Selection" would be the best of both worlds.

Desolae, Jan 6th at 11:28 PM

With the mod itself supplying the ability to scroll through the recipe variations, I would want to scroll to the exact correct one I want and then use the mod hotkey to try and craft THAT specific version only. Not sure why, but that makes perfect sense to my brain lol

Gabone , Jan 6th at 9:55 PM

Desolae that sounds good at first, but what happens when you have 4 types of wood with varying quantity stacks? there's no way for me to read the users mind on what ingredient to use... I'll think more on this
KoboldCoterie check out version 1.3, I've implemented your 'b' suggestion

Desolae, Jan 6th at 9:42 PM

I love everything about this. Tho I wish for the ability to either turn off (config? in-game toggle?) or override (by holding CTRL?) the Smart Recipe feature. Sometimes I'm low on birch boards but I purposefully want to use them to make matching furniture, despite having 10,000 oak boards in the same storage chest.

Gabone , Jan 6th at 7:12 PM

Ohhh, that makes it clearer, thanks, I'll look into it.

KoboldCoterie, Jan 6th at 5:41 PM

Sorry, I might've been unclear - for (a), the desired functionality would be that if the player is crafting, for example, a chest (8 planks, 1 nails), but doesn't have nails, the 8 planks would be added to the grid, with the nail space being empty, to make it clear what the player doesn't have.

Gabone , Jan 6th at 5:02 PM

KoboldCoterie what you describe as "a)" is exactly what the "*" (asterisk) button does. As for "b)", yes that's on my todo list.

KoboldCoterie, Jan 6th at 4:02 PM

Loved the original, appreciate the update. As a feature request, and something that really annoyed me about the original version: Would you consider adding either a) a separate button or a modifier key to add as much of the recipe as the player has to the crafting grid or b) a highlight of the items the player doesn't possess in the recipe grid in the handbook? Or really any other way to quickly see what's missing from an uncraftable recipe.