Mods / BetterHandbook

Tags:
QoL UI
Author:
Garward
Side:
Client
Created:
May 14th at 4:53 AM
Last modified:
Jul 5th at 5:21 AM
Downloads:
6156
Recommended download (for Vintage Story 1.22.3):
BetterHandbook-1.0.8.zip  1-click install

BetterHandbook

making information faster and more accessible to an area near you.


Overview

BetterHandbook overhauls the in game handbook to make it faster and easier to navigate. Browse items by mod, look up item relationships, auto fill crafting recipes, and keep your most used pages bookmarked. It's all built to stay out of your way while you play.


Features

⚡ Fast Loading

Caching and lazy loading make the handbook open and close noticeably faster.

📦 Browse by Mod

Adds a per-mod category to the handbook so you can browse items by which mod adds them.

🔍 Item Relationships

Press U to look up what an item is used in. The hotkey is configurable.

🔗 Uses Button

A "Uses" button appears on item pages so you can quickly see what recipes an item contributes to.

🛠️ Auto Fill Crafting

Click to place one recipe into the crafting grid. Shift-click to fill as many crafts as your inventory allows, even with items already placed.

🔖 Bookmarks & Lock

Bookmark any page from the handbook title bar. Lock it to reopen that same page on next launch instead of the search bar.


Quick Reference ▼

Navigation

  • U opens the item relationship lookup (configurable in keybinds)
  • Repeat visits to the handbook are faster thanks to background caching

Crafting

  • Click Auto Fill to place one recipe into your crafting grid
  • Shift + Click Auto Fill to prepare as many crafts as possible, including items already in the grid

Bookmarks

  • Click the bookmark icon on the handbook title to save the current page
  • Click the lock icon to reopen that page next time instead of the search bar

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
1.0.8 betterhandbook 1043 Jul 5th at 5:20 AM BetterHandbook-1.0.8.zip 1-click install

Fixed Auto Fill failing to place all ingredients for some players while keeping the latest handbook performance improvements.

1.0.7 betterhandbook 1682 Jun 10th at 5:48 PM BetterHandbook-1.0.7.zip 1-click install

fixed conflict scan causing massive lag in crafting by caching it

1.0.6 betterhandbook 827 Jun 1st at 5:04 AM BetterHandbook-1.0.6.zip 1-click install

-made basically everything configurable
-performance improvements work on more pages than before

1.0.5 betterhandbook 198 May 31st at 9:07 AM BetterHandbook-1.0.5.zip 1-click install

-added colored overlay on missing items. 

-fixed mod menu to allow searching items inside a specific mod's menu

1.0.4 betterhandbook 1528 May 16th at 2:40 AM BetterHandbook-1.0.4.zip 1-click install

Fixed bookmarks tab not refreshing correctly when other mods add handbook tabs.

1.0.3 betterhandbook 196 May 15th at 7:32 PM BetterHandbook-1.0.3.zip 1-click install

Tags only ingredients now fail immediately if the vanilla game matcher rejects them in autocrafter

1.0.2 betterhandbook 98 May 15th at 5:05 PM BetterHandbook-1.0.2.zip 1-click install

added bookmarking pages and locking a page to reopen if you close the handbook

1.0.1 betterhandbook 66 May 15th at 4:19 PM BetterHandbook-1.0.1.zip 1-click install

Added scroll wheelable slideshow for variant recipes and restored vanilla textbox focus. reduced vanilla noisy warnings caused by caching 

0.1.0 betterhandbook 518 May 14th at 4:54 AM BetterHandbook.zip 1-click install

Initial release


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

EthelVril, 1 day ago

This is crashing with CAN Jewelry mod

Crash Report
Running on 64 bit Windows 10.0.19045.0 with 65462 MB RAM
Game Version: v1.22.3 (Stable)
7/11/2026 8:24:45 PM: Critical error occurred in the following mod: canjewelry@0.6.19
Loaded Mods: walkingstick@3.0.9, birthsignsfresh@1.6.93, bronzemeteoricmining@1.3.1, catchlivestock@0.2.4, chargedjump@1.2.3, charlottesclothes@1.4.1, cbr@2.0.1, chiseltools@1.17.3, chonkyvessels@1.5.7, clearview@0.1.1, crawlanddive@0.2.5, darkvision@1.3.5, deciduoustrees@1.7.0, dodgemaster@1.2.4, elstoneforge@1.0.5, elshadowsp@1.0.3, farmlandnutrientmanagement@1.5.2, firestarters@1.4.6, fagreenwich@1.4.5, faviking@1.1.6, pantherinae@1.2.17, geoaddons@1.4.8, hydrateordiedrate@2.4.14, immersivemining@0.3.0, immersivequicklime@0.1.7, interestingoregen@2.3.8, ithaniabackpacks@0.6.1, jsonpatcheslib@1.5.3, leaflitter@1.2.0, louderbears@1.0.2, manualdishes@0.1.2, millwright@1.3.3, molds@0.3.6, morepaperrecipes@2.0.0, overhaulliblegacycompat@1.2.4, overhaullib@2.0.10, p1nkstacksizes@1.3.1, primitivesurvival@5.0.6, prospecttogether@2.2.1, racialequalityexpanded@0.1.6, scrollrackable@1.5.2, seasonalflowers@1.1.1, spinningwheel@1.2.12, stickstepsounds@1.0.0, terratag@0.5.0, visibleoresandminerals@1.4.1, vhfp@1.22.2, game@1.22.3, vsimgui@1.2.7, wilderlandscavessystem@2.0.6, wulksmithingaddons@1.6.1, aculinaryartillery@2.0.0-dev.21, alchemy@2.1.01, algernonsterrainsampler@1.3.0, ambientsymphony@1.1.1, animationslib@0.0.2, apelanterns@1.4.1, attributerenderinglibrary@3.1.5, beamtweaksmod@2.1.1, bedspawnv2@1.7.1, bettererprospecting@3.4.3, betterhandbook@1.0.8, betternails@2.0.3, betterruins@0.6.3, blocksoverlay@4.11.5, bloodtrail@1.2.4, botaniastory@0.3.7, butchering@1.13.5, caneconomy@1.1.2, canjewelry@0.6.19, canmarket@0.5.5, carryonlib@1.0.0-pre.7, cartwrightscaravan@1.9.1, championandelitemobs@0.2.6, claims@4.3.18, coinage@2.2.1, commonlibforked@2.8.1, configlib@1.12.0, configurableroomsize@1.3.2, danatweaks@4.1.0, darkerwalnut@1.1.6, desirepaths@0.5.1, dryfuels@0.2.0, emotes@2.6.0, tackandequipment@1.1.2, extrainfo@2.2.1, fantasycreaturesupdate@0.8.3, farmlanddropswithnutrients@1.2.2, farseer@1.4.0, feverstonewilds@2.1.2, firearmsfork@1.10.1, foodshelves@3.0.4, footprints@1.2.4, fromgoldencombs@2.0.8, genelib@3.1.2, geologymap@1.1.0, gourmand@1.8.12, grassroots@0.5.8, herbarium@1.4.3, hideplayerinfo@1.3.1, immersiveimprovedsounds@1.0.1, immersivewoodworking@1.0.0, infinitumcore@1.0.0, itemsyncfixes@1.0.8, iwantsmoothtemperature@1.1.6, jaunt@3.0.0-rc.3, knapster@4.0.0, knitting@2.0.3, krpgenchantment@1.4.11, mnflowers@1.0.0, materialneeds@1.1.16, meteoricsteel@1.0.15, moatbombs@1.2.0, morepiles@3.0.1, naturalfoliage@0.0.4, navi@1.0.10, nbcartographer@2.3.0, noticeboard@2.0.2, opineuponpine@1.0.10, optitime@1.5.14, petai@5.1.1, placeonslabs@1.2.0, playerlists@2.3.7, playermodellib@1.23.5, claywheel@2.0.1, projectileflee@1.0.4, purposefulstorage@2.0.1, resinrelief@1.0.1, rivers@5.0.2, rpvoicechat@2.5.8, saltandsands@1.3.0, scaffolding@1.3.1, sheydermod@1.0.3, shipwright@1.4.1, slowtox@5.0.0, statushudcont@4.3.2, stonebakeoven@1.3.5, substrate@2.0.0, tentbagreworked@3.2.3, th3dungeon@1.0.1, toolsmith@1.2.17, vanityslotsfork@0.0.8, vsairshipmod@1.1.4, vschunkreloader@1.2.1, creative@1.22.3, vsquest@3.1.0, vsroofing@1.6.3, survival@1.22.3, watersheds@6.4.3, wcfefcompat@1.2.5, wildbeerangeextender@1.0.1, windchimes@1.5.2, xlibfork@1.0.21, xskillscatchablefotsa@0.0.3, xskillsqualitymodifiers@2.1.0, canjewelryxskill@0.1.4, carryon@2.0.0-pre.7, cats@5.0.1, combatoverhaulfork@0.18.3, rlldtco0001@2.3.0, crossbowsfork@1.10.0, draconis@1.4.4, equusdestrier@1.0.2, equus@1.4.0, expandedfoods@2.0.0-dev.12, feverstonewildsbutcheringcompatfork@2.8.0, infinitumpickuphud@1.3.0, lrc@0.3.1, medievalarchitecture@1.1.1, playercorpseforked@1.14.1, quiversfork@0.9.29, scoopofjammod@1.2.0, shearlib@1.3.0, stonequarryforked@3.5.3-dev.1, tailorsdelight@2.2.2, terrainslabs@1.0.17, wildcraftfruit@1.4.72, windowstoragelib@1.2.7, wolftaming@5.0.1, xinvtweaksfork@1.9.1, xskills@1.0.76, zrustdrops@2.1.0, armoryfork@1.11.0, combatreanimatedfork@1.0.1, draconisrhinocroma@1.0.0-rc.3, dressmakers@1.8.0, efchefstricks@1.0.0-dev.3, efmealsmodule@1.0.0-dev.5, windowstorage@1.8.5, wool@1.9.3, xskillsgilded@1.3.39, uniqueweapons@1.0.3
Involved Harmony IDs: garward.betterhandbook.handbookcache, com.zaldaryon.optitime, attributerenderinglibrary, firearmsfork.render-variant-sanitizer
System.Exception: Error while rendering item in slot Vintagestory.API.Common.DummySlot (1x Item Id 9063, Code canjewelry:canhoruseye-normal)
 ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at canjewelry.src.items.CANItemWearable.get_Item(String textureCode) in C:\Users\koeni\source\repos\CAN_Jewelry\canjewelry\canjewelry\src\items\CANItemWearable.cs:line 164
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElement(Int32 indexForLogging, MeshData meshdata, ShapeElement element, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 494
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 377
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 394
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 394
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 394
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 394
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 394
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 394
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeWithJointIds(String typeForLogging, Shape shapeBase, MeshData& modeldata, ITexPositionSource texSource, Vec3f rotation, Nullable`1 quantityElements, String[] selectiveElements) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 229
   at canjewelry.src.items.CANItemWearable.genMesh_Patch1(CANItemWearable this, ICoreClientAPI capi, ItemStack itemstack, ITexPositionSource texSource)
   at canjewelry.src.items.CANItemWearable.GenMesh(ItemStack itemstack, ITextureAtlasAPI targetAtlas, BlockPos forBlockPos) in C:\Users\koeni\source\repos\CAN_Jewelry\canjewelry\canjewelry\src\items\CANItemWearable.cs:line 250
   at canjewelry.src.items.CANItemWearable.OnBeforeRender(ICoreClientAPI capi, ItemStack itemstack, EnumItemRenderTarget target, ItemRenderInfo& renderinfo) in C:\Users\koeni\source\repos\CAN_Jewelry\canjewelry\canjewelry\src\items\CANItemWearable.cs:line 274
   at Vintagestory.Client.NoObf.InventoryItemRenderer.GetItemStackRenderInfo_Patch1(ClientMain game, ItemSlot inSlot, EnumItemRenderTarget target, Single dt)
   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 286
   --- End of inner exception stack trace ---
   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 410
   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 282
   at Vintagestory.API.Client.SlideshowItemstackTextComponent.RenderInteractiveElements(Single deltaTime, Double renderX, Double renderY, Double renderZ) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\Richtext\SlideshowItemstackTextComponent.cs:line 232
   at Vintagestory.API.Client.GuiElementRichtext.RenderInteractiveElements(Single deltaTime) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\GuiElementRichtext.cs:line 476
   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_Patch1(GuiDialogHandbook this, Single deltaTime)
   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 1048
   at Vintagestory.Client.GuiScreenRunningGame.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 251
   at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 783
   at Vintagestory.Client.ScreenManager.OnNewFrame_Patch1(ScreenManager this, Single dt)
   at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame_Patch1(ClientPlatformWindows this, FrameEventArgs e)
   at OpenTK.Windowing.Desktop.GameWindow.Run()
   at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 354
   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
System.NullReferenceException: Object reference not set to an instance of an object.
   at canjewelry.src.items.CANItemWearable.get_Item(String textureCode) in C:\Users\koeni\source\repos\CAN_Jewelry\canjewelry\canjewelry\src\items\CANItemWearable.cs:line 164
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElement(Int32 indexForLogging, MeshData meshdata, ShapeElement element, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 494
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 377
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 394
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 394
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 394
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 394
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 394
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 394
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeWithJointIds(String typeForLogging, Shape shapeBase, MeshData& modeldata, ITexPositionSource texSource, Vec3f rotation, Nullable`1 quantityElements, String[] selectiveElements) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 229
   at canjewelry.src.items.CANItemWearable.genMesh_Patch1(CANItemWearable this, ICoreClientAPI capi, ItemStack itemstack, ITexPositionSource texSource)
   at canjewelry.src.items.CANItemWearable.GenMesh(ItemStack itemstack, ITextureAtlasAPI targetAtlas, BlockPos forBlockPos) in C:\Users\koeni\source\repos\CAN_Jewelry\canjewelry\canjewelry\src\items\CANItemWearable.cs:line 250
   at canjewelry.src.items.CANItemWearable.OnBeforeRender(ICoreClientAPI capi, ItemStack itemstack, EnumItemRenderTarget target, ItemRenderInfo& renderinfo) in C:\Users\koeni\source\repos\CAN_Jewelry\canjewelry\canjewelry\src\items\CANItemWearable.cs:line 274
 t Vintagestory.Client.NoObf.InventoryItemRenderer.GetItemStackRenderInfo_Patch1(ClientMain game, ItemSlot inSlot, EnumItemRenderTarget target, Single dt)
   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 286
YourAKingGG [currently restricted], Jul 5th at 7:45 PM

QRD for the mod that adds the red oven structure in the 3rd modpage image?

Kamudo, Jul 5th at 4:13 PM

Having a weird issue where it's not letting craft a Hay (Grass) unless I autofill the item from the handbook. Attempting to do it manually will only flash the hay in the output for a brief visible flash before becoming unselectable. 

Solidude, Jul 5th at 6:10 AM

Thanks a bunch!

Kyuuragi, Jun 22nd at 9:24 PM

Game v1.22.3, crashes when attempting to look at the handbook recipe for an oil lamp, stating "System.Exception: Can't create itemstack without item!"

DinoYeOldy, Jun 22nd at 1:00 AM

Handbook gets all black when i change gui scale. Reload fixes the issue but i think a propper fix still would be nice

f0xh0und696, Jun 19th at 9:43 PM

Would you be able to add a:

'cycle between conflicting recipes button' similar to I.H.R.H.

or is it impossible to use them together even with compatibility .

plz.

boxinabox, Jun 15th at 8:57 PM

Get a very odd issue when using 1.0.7. If I try to autofill, it will only enter the first item and nothing else. When I restart the game, the items will all be there. Dropping back to 1.0.6, it goes back to normal.

kenlon, Jul 4th at 3:57 AM
@kenlon: I have the same problem - I'll try using 1.0.6 and see if the behavior persists.

Forgot to come back - 1.0.7 autofill doesn't work. 1.0.6 it does. No obvious errors in logs.

CombustedLemon, Jun 12th at 12:43 PM

Hello,

Just wanting to ask if the new updates for this mod also work in an existing 1.22.2 world. Just been updating a few mods on my server that have had some updates.

Chubz, Jun 12th at 10:22 AM (modified Jun 12th at 10:23 AM)

Hi, getting crash when opening "blocks and items" tab

Crash Report
Running on 64 bit Windows 10.0.19045.0 with 32713 MB RAM
Game Version: v1.22.3 (Stable)
12.06.2026 14:21:05: Critical error occurred
Loaded Mods: barkbeetle@1.0.6, cavesoundphysics@1.0.0, cavesymphony@1.2.2, blocklayeroverhaul@1.0.2, creaturefootsteps@1.3.0, darkvision@1.3.4, moonshinejug@1.0.2, fallingtree@0.5.2, frontiersmap@1.0.2, horperfopt@1.0.5, hydrateordiedrate@2.4.12, immersivechests@2.0.0, immersivefoliage@0.1.1, immersivemining@0.2.22, interestingoregen@2.3.8, jsonpatcheslib@1.5.3, manualfirestarter@0.1.3, meatmod@1.0.2, overhaullib@2.0.8, paniniprojection@1.1.1, qualityores@1.0.0, radialcrafting@0.2.7, realdarkness@1.0.0, realisticbiomegeneration@1.0.21, fixscythe@0.2.1, shelfobsessed@2.1.5, soapandlyecontinued@2.1.2, spinningwheel@1.2.9, stickstepsounds@1.0.0, stoneharvesting@1.2.2, stonequarryrepckfipil@3.6.3, sungaze@0.1.1, temporalsymphony@2.3.2, game@1.22.3, vsimgui@1.2.7, arthursjournal@2.0.3, arrowbarrels@1.5.0, attributerenderinglibrary@3.1.5, betterentityinteraction@1.0.5, bettererprospecting@3.3.3, betterhandbook@1.0.7, bloodtrail@1.2.3, butchering@1.13.4, carryonlib@1.0.0-pre.4, cartwrightscaravan@1.9.1, caveinfix@1.0.5, configlib@1.12.0, dairyplus@1.0.4, dryingspeedoverhaul@1.1.4, extrafurniture@1.1.2, farseer@1.4.0, fastmap@122.5.1, firepitsshowfuel@2.0.0-dev.1, foodshelves@3.0.4, footprints@1.2.3, handbookdeclutterer@2.0.1, immersivecorpsedrop@1.0.4, insanitylib@2.0.3, inspect@1.0.2, interestingme@1.0.16, ithaniacannedgoods@2.0.5, jaunt@3.0.0-rc.3, naturalfertilizer@1.5.1, placeonslabs@1.1.3, playerinventorylib@0.0.10, postsandbeams@1.5.1, purposefulstorage@2.0.1, radialhotgear@1.0.2, rivers@5.0.1, rudiments@0.7.0, seamlessrapids@1.0.1, slowtox@5.0.0, smithingplus@1.9.0-rc.1, temporalstormsfight@1.7.2, toolsmith@1.2.17, vintsbottlesncups@1.3.7, creative@1.22.3, vsecomachina@0.6.1, vslumber@0.1.1, vsroofing@1.5.7, survival@1.22.3, waterfall@1.2.2, watersheds@6.4.2, wildgrasscontinued@1.3.11, autoconfiglib@2.0.10, backpacks@0.1.0, brainfreeze@1.3.7, carryon@2.0.0-pre.4, deciduoustrees@1.2.4, elkjaunt@1.4.0, em@3.7.0, fallingecomachina@0.1.1, shearlib@1.3.0, tailorsdelight@2.2.2, terrainslabs@1.0.16, dressmakers@1.8.0, wool@1.9.2
Involved Harmony IDs: garward.betterhandbook.handbookcache
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List`1.get_Item(Int32 index)
at Vintagestory.GameContent.CookingRecipe.GenerateRandomMeal(ICoreAPI api, Dictionary`2& cachedValidStacksByIngredient, ItemStack[] allstacks, Int32 slots, ItemStack ingredientStack) in VSSurvivalMod\Systems\Cooking\CookingRecipe.cs:line 889
at Vintagestory.GameContent.GuiHandbookMealRecipePage.RenderListEntryTo(ICoreClientAPI capi, Single dt, Double x, Double y, Double cellWidth, Double cellHeight) in VSSurvivalMod\Systems\Handbook\Gui\GuiHandbookMealRecipePage.cs:line 149
at Vintagestory.GameContent.GuiElementFlatList.RenderInteractiveElements(Single deltaTime) in VSSurvivalMod\Systems\Handbook\Gui\GuiElementFlatList.cs:line 204
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_Patch1(GuiDialogHandbook this, Single deltaTime)
at Vintagestory.Client.NoObf.GuiManager.OnRenderFrameGUI(Single deltaTime) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 309
at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 1048
at Vintagestory.Client.GuiScreenRunningGame.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 251
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 783
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 686
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 354
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
AtelierAmber, Jun 10th at 12:57 PM

Hello! I really love this mod, would it be possible to include a history tab? 

qlVegetalp, Jun 5th at 2:02 AM

for some reason when i use this mod with my modlist it makes logging into a server lock up for a few seconds

Vynk, Jun 2nd at 10:54 PM

did notice this mod has the stack size reported twice on items now, kinda weird

Jaggedcan9ne, May 31st at 6:09 PM

I'm going to assume that this mod won't play well with HoR-PerformanceOptimizer installed? Does the same thing, uses a cache so there's less lagging when opening the handbook, but also changes how the crafting grid works. I have Optitime as well, but It disables harmony patches for compatibility reasons. 

Is there by chance any way to dissable your caching? I like the GUI look you have, and I'd rather have it than running HoR and using the plain Jane one in vanilla.

GingerAiyle, May 25th at 11:30 PM

Is this mod incompatible with Improved Recipe Helper (https://mods.vintagestory.at/show/mod/47215)? I mainly ask because of that mod's ability to cycle through recipe conflicts, as that was a feature I was looking into.

Zaelesh, May 25th at 1:03 AM

Please make this mod grab items from containers. at the moment it only works if everything is in player inventory. Pretty important that it uses the items in my huge assortment of chests so i don't have to search thru it all

Kew, Jun 1st at 2:58 PM
@Zaelesh: Please make this mod grab items from containers. at the moment it only works if everything is in player inventory. Pretty important that it uses the items in my huge assortment of chests so i don't have to search thru it all

I use Chest Organizer (to open all nerby containers in a (searchable) merged view), in combination with Improved Recipe Helper, which works wonerfully.

Although it does mean I have 2 buttons for auto-fill.

Shadoskill, May 21st at 4:12 PM

Using the [+] button to move items to the crafting grid does not work with items in special bags like the mining bag.

Micromegas, May 21st at 9:40 AM (modified May 21st at 9:41 AM)

Would be cool if this mod also included the option to write notes in a dedicated tab, like in this mod https://mods.vintagestory.at/pomnotes

I've been using a txt file to keep track of edible, poisonous and hallucinogenic shrooms, among other To Do lists. Thought it would be both more convenient and immersive being able to do so directly in game.

Voltine, May 20th at 8:05 PM

Hello man, great mod, this help me so much. but i have some problems, the handbook itself becomes all black(https://prnt.sc/Wxy9l_sOFUaa) sometimes and i dont know what to do.

gyattgobbler, May 19th at 7:00 PM

Such a great mod thank you.

Would a recipe selector be able to be implemented in this? I am having an issue with the Shadehouse doors and The gear racks atm.

IlltierateCarter, May 16th at 1:46 AM

I like the mod, but I found an issue when using other mods that add tabs to the handbook, when I play with "Ithania Canned Goods" for example I don't see my bookmarked pages when clicking the "bookmarks" tab. I can only see them when closing and re-opening the handbook with the tab already open. Not sure if you can do much about this but I wanted to report it.

Ailailou, May 15th at 9:21 PM

Oh damn this is amazing! The recipe scrolling is fantastic! Great mod! 

 

Asmodus, May 15th at 6:34 PM

I went to autofill the firewood recipe to test it and it put dry grass over logs in the crafting grid

Chumber, May 15th at 3:37 AM

Love this! My only issue so far is it's very inconsistent on whether or not the text box is auto-selected when I open it. It seems like it works the first time during a session, then doesn't after that, so I keep hitting H and trying to type and just opening a million other dialogs.

DoctorSnakes, May 14th at 10:43 AM

Could you add the ability to scroll over recipe item variants? It takes ages to see all the item variants when they just change on their own.

AgentOfChaos, May 14th at 5:34 AM

Just wondering, does it do something similar to the creative tab and if so does that fix the tab cutoff issue when in creative with lots of content mods?

Garward , May 14th at 5:37 AM (modified May 14th at 5:38 AM)
@AgentOfChaos: Just wondering, does it do something similar to the creative tab and if so does that fix the tab cutoff issue when in creative with lots of content mods?

currently does nothing to creative inventory. The mod section in the handbook does perform way better with large amounts of mods though as the near infinite nature of the handbook scroll bar lets all mods show cleanly.

AgentOfChaos, May 14th at 5:22 AM

Holy peak