Mods / Improved Handbook Recipes
Category:
#QoL
Author: Kathanon
Side: Client
Created: Oct 2nd at 6:23 AM
Last modified: Nov 12th at 6:55 AM
Downloads: 1453
Follow Unfollow 84
Author: Kathanon
Side: Client
Created: Oct 2nd at 6:23 AM
Last modified: Nov 12th at 6:55 AM
Downloads: 1453
Follow Unfollow 84
Latest file for v1.19.8:
ImprovedHandbookRecipes_1.0.2.zip
1-click install
Adds the following to item pages in the handbook:
- Using the scroll wheel while hovering over a recipe or item with several variants lets you flip between them freely.
- If crafting grid is also open, adds buttons to automatically add the required ingredients to the crafting grid (add one craft and add max).
- Displays a small wrench icon on ingredients that are not consumed by the recipe. Also adds how much durability will be used to the tooltip.
Auto fill also uses items from any opened chests unless shift is held.
Any suggestions or bug reports are welcome.
Version | For Game version | Downloads | Release date | Changelog | Download | 1-click mod install* |
---|---|---|---|---|---|---|
v1.0.2 | 338 | Nov 12th at 6:55 AM | Show | ImprovedHandbookRecipes_1.0.2.zip | Install now | |
v1.0.1 | 226 | Nov 8th at 2:05 AM | Show | ImprovedHandbookRecipes_1.0.1.zip | Install now | |
v1.0.0 | 889 | Oct 2nd at 6:25 AM | Show | ImprovedHandbookRecipes_1.0.0.zip | Install now |
If you post a crash log with the latest version, I can look into it. The log you posted looks exactly like the bug that 1.0.2 fixes.
Currently using your 1.0.1 version on 1.19.8 and when i click on the *, the client crashes to desktop. Had the same issue on 1.0.2 before, so i went back to 1.0.1.
I did have the items required in my inventory.
Crash report
Kathanon Yay! Thank you so much for fixing this up so quickly! ^^
The dll *is* in the root folder, and it is a client-side only mod. I think you should bring it up with them.
Kathanon Getting an error with the latest version.
12.11.2024 14:12:25 [Server Error] [workbenchexpansion] File 'ImprovedHandbookRecipes.dll' is not in the mod's root folder. Won't load this mod. If you need to ship unmanaged dlls, put them in the native/ folder.
Not sure if you have to fix this or workbench.
OniLynx69: Turns out there were two separate bugs, one affecting all of the refractory bricks, but only the * button, and one affecting both buttons, but only the tier 2 version of the recipe.
ShikiTochi: The buttons are not shown unless the crafting grid is also open. That may be the reason.
Update:
Kathanon: I downloaded the latest update, but am still experiencing issues with the mod crashing the game when attempting to pull refractory brick items to the crafting grid. I tried using both, the "+" and the "*", and both produced the same result. I attempted it several times, and even disabled all other mods (with the exception of the default game mods).
Below is the last attempt's crash log:
11/10/2024 1:48:47 PM: Critical error occurred in the following mod: improvedhandbookrecipes@1.0.1
Loaded Mods: game@1.19.8, improvedhandbookrecipes@1.0.1, creative@1.19.8, survival@1.19.8
System.NullReferenceException: Object reference not set to an instance of an object.
at ImprovedHandbookRecipes.FillGridButton.<>c__DisplayClass6_1.<AddIngredients>b__9(ItemSlot y) in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 127
at ImprovedHandbookRecipes.FillGridButton.<AddIngredients>g__PullFirst|6_3[T](T[] arr, Func`2 test) in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 219
at ImprovedHandbookRecipes.FillGridButton.<>c__DisplayClass6_0.<AddIngredients>b__7(GridRecipeIngredient x) in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 127
at System.Linq.Enumerable.SelectArrayIterator`2.ToArray()
at ImprovedHandbookRecipes.FillGridButton.AddIngredients(ItemSlot[] input, GridRecipe recipe, List`1 available) in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 126
at ImprovedHandbookRecipes.FillGridButton.TryFillGrid() in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 80
at ImprovedHandbookRecipes.FillGridButton.OnClick() in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 30
at ImprovedHandbookRecipes.ButtonRTC.Click() in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ButtonRTC.cs:line 65
at Vintagestory.API.Client.GuiElementTextButton.OnMouseUpOnElement(ICoreClientAPI api, MouseEvent args) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Controls\GuiElementTextButton.cs:line 317
at Vintagestory.API.Client.GuiElementTextButton.OnMouseUp(ICoreClientAPI api, MouseEvent args) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Controls\GuiElementTextButton.cs:line 307
at ImprovedHandbookRecipes.ButtonRTC.OnMouseUp(MouseEvent args) in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ButtonRTC.cs:line 125
at Vintagestory.API.Client.GuiElementRichtext.OnMouseUp(ICoreClientAPI api, MouseEvent args) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\GuiElementRichtext.cs:line 540
at Vintagestory.API.Client.GuiComposer.OnMouseUp(MouseEvent mouse) in VintagestoryApi\Client\UI\GuiComposer.cs:line 449
at Vintagestory.API.Client.GuiDialog.OnMouseUp(MouseEvent args) in VintagestoryApi\Client\UI\Dialog\GuiDialog.cs:line 584
at Vintagestory.Client.NoObf.GuiManager.OnMouseUp(MouseEvent args) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 415
at Vintagestory.Client.NoObf.ClientMain.UpdateMouseButtonState(EnumMouseButton button, Boolean down) in VintagestoryLib\Client\ClientMain.cs:line 1919
at Vintagestory.Client.SystemHotkeys.OnPrimaryMouseButton(KeyCombination mb) in VintagestoryLib\Client\Systems\Player\Hotkeys.cs:line 50
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.TriggerHotKey(KeyEvent keyEventargs, IWorldAccessor world, IPlayer player, Boolean allowCharacterControls, Boolean keyUp) in VintagestoryLib\Client\HotkeyManager.cs:line 395
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.OnMouseUpRaw(MouseEvent args) in VintagestoryLib\Client\ClientMain.cs:line 1949
at Vintagestory.Client.GuiScreenRunningGame.OnMouseUp(MouseEvent args) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 349
at Vintagestory.Client.ScreenManager.OnMouseUp(MouseEvent e) in VintagestoryLib\Client\ScreenManager.cs:line 890
at Vintagestory.Client.NoObf.ClientPlatformWindows.Mouse_ButtonUp(MouseButtonEventArgs e) in VintagestoryLib\Client\ClientPlatform\Input.cs:line 211
at OpenTK.Windowing.Desktop.NativeWindow.OnMouseUp(MouseButtonEventArgs e)
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 324
at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 128
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93
You mean the 1.20 pre-releases? No, I've been meaning to make a version for 1.20, but haven't yet.
Does this new version work for the PR releases? (started crashing hard a couple versions ago).
This is one of those mods that should be vanilla, hate playing without it.
Update:
OniLynx69: I couldn't reproduce the tooltip issue, but I do recognize it from development, so I may just have managed to do the initial release before it was fixed. Please do let me know if this fixes that issue as well for you.
I'll look into it.
I absolutely love this mod! A godsend for making things a lot quicker! I have encountered a minor issue, and 1 major issue resulting in a game crash (reproducable).
Minor issue:
Text for tooltips, viewable when hovering over "*" [astrisk] or "+" icons, is off center from the tooltip itself. ie, appears above and to the left of the tooltip.
https://onilynx69.live/vintagestory_error_images/tooltip_bug.png
Major issue:
When attempting to set the crafting grid to craft refractory bricks, regardless of tier, the game will crash.
https://onilynx69.live/vintagestory_error_images/game_crash.png
Crash Log:
Game Version: v1.19.8 (Stable)
11/7/2024 12:08:45 PM: Critical error occurred in the following mod: improvedhandbookrecipes@1.0.0
Loaded Mods: HumanSkinTones@0.0.3, temperaturescales@1.0.2, game@1.19.8, bodyheatbar@1.0.1, chestorganizer@1.0.0, commonlib@2.5.0-rc.2, extendedhudinfo@1.1.0, hudclock@3.4.0, improvedhandbookrecipes@1.0.0, statushud@1.4.3, creative@1.19.8, survival@1.19.8
System.NullReferenceException: Object reference not set to an instance of an object.
at ImprovedHandbookRecipes.FillGridButton.<>c__DisplayClass6_1.b__9(ItemSlot y) in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 126
at ImprovedHandbookRecipes.FillGridButton.g__PullFirst|6_3[T](T[] arr, Func`2 test) in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 218
at ImprovedHandbookRecipes.FillGridButton.<>c__DisplayClass6_0.b__7(GridRecipeIngredient x) in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 126
at System.Linq.Enumerable.SelectArrayIterator`2.ToArray()
at ImprovedHandbookRecipes.FillGridButton.AddIngredients(ItemSlot[] input, GridRecipe recipe, List`1 available) in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 125
at ImprovedHandbookRecipes.FillGridButton.TryFillGrid() in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 80
at ImprovedHandbookRecipes.FillGridButton.OnClick() in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\FillGridButton.cs:line 30
at ImprovedHandbookRecipes.ButtonRTC.Click() in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ButtonRTC.cs:line 63
at Vintagestory.API.Client.GuiElementTextButton.OnMouseUpOnElement(ICoreClientAPI api, MouseEvent args) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Controls\GuiElementTextButton.cs:line 317
at Vintagestory.API.Client.GuiElementTextButton.OnMouseUp(ICoreClientAPI api, MouseEvent args) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Controls\GuiElementTextButton.cs:line 310
at ImprovedHandbookRecipes.ButtonRTC.OnMouseUp(MouseEvent args) in E:\Programmering\VintageStory\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ImprovedHandbookRecipes\ButtonRTC.cs:line 113
at Vintagestory.API.Client.GuiElementRichtext.OnMouseUp(ICoreClientAPI api, MouseEvent args) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\GuiElementRichtext.cs:line 540
at Vintagestory.API.Client.GuiComposer.OnMouseUp(MouseEvent mouse) in VintagestoryApi\Client\UI\GuiComposer.cs:line 445
at Vintagestory.API.Client.GuiDialog.OnMouseUp(MouseEvent args) in VintagestoryApi\Client\UI\Dialog\GuiDialog.cs:line 570
at Vintagestory.Client.NoObf.GuiManager.OnMouseUp(MouseEvent args) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 415
at Vintagestory.Client.NoObf.ClientMain.UpdateMouseButtonState(EnumMouseButton button, Boolean down) in VintagestoryLib\Client\ClientMain.cs:line 1919
at Vintagestory.Client.SystemHotkeys.OnPrimaryMouseButton(KeyCombination mb) in VintagestoryLib\Client\Systems\Player\Hotkeys.cs:line 50
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.TriggerHotKey(KeyEvent keyEventargs, IWorldAccessor world, IPlayer player, Boolean allowCharacterControls, Boolean keyUp) in VintagestoryLib\Client\HotkeyManager.cs:line 392
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.OnMouseUpRaw(MouseEvent args) in VintagestoryLib\Client\ClientMain.cs:line 1949
at Vintagestory.Client.GuiScreenRunningGame.OnMouseUp(MouseEvent args) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 349
at Vintagestory.Client.ScreenManager.OnMouseUp(MouseEvent e) in VintagestoryLib\Client\ScreenManager.cs:line 890
at Vintagestory.Client.NoObf.ClientPlatformWindows.Mouse_ButtonUp(MouseButtonEventArgs e) in VintagestoryLib\Client\ClientPlatform\Input.cs:line 211
at OpenTK.Windowing.Desktop.NativeWindow.OnMouseUp(MouseButtonEventArgs e)
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 324
at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 128
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93
been looking for this mod for quite some time now! Thanks!
Cuddly_Khan: I think that would have the potential to confuse users. Maybe I can make something similar, I'll give it some thought.
jayu: Please do. If it is repeatable, it's likely to be for the same recipe. Include what recipe it was when you post the log, please.
Hey so my game freezes (doesn't crash) when I press the add max button. Will try to save the client-main log when it happens again.
I have a suggestion:
If the crafting grid has already been filled using the add max, then pressing it again will take the result out of the output and fill the grid again. Would make crafting tedious stuff a bit faster such as firewood and path blocks. :D
Amazing mod thank you so much!
More people need to know about this! It should be in vanilla lol. Please if you can put a nicer thumbnail so more people discover this very useful mod. Thanks!
Funciona perfectamente, gracias por hacerme la vida mas facil
😄