A new crafting UI with support for customizable categories and favorites. Easy bulk crafting. Better Workbench functionality. And, optionally, constructing buildings right from the crafting menu using an extra mod.
New: Added new dynamic filter for creating a category with all recipes.
New: Added option to include a category's recipes within the Miscellaneous category. Usually, only recipes that don't appear in any other categories appear within Misc. However, enabling this on a category will allow its recipes to still appear within Miscellaneous.
New: Added a new feature to recycle (or un-craft) items directly from the crafting menu. As this potentially affects game balance, the feature is disabled by default. You can also enable it separately for crafting and cooking.
General: Added a few new icons to the icon picker.
Fixed: Do not let users open the settings menu if they're holding an item, as that may result in the loss of the item.
Fixed: Pressing the menu close button (`E`) may cause the menu to close when it should not.
Translation: Added Portuguese language support.
API: Fix typos in documentation.
API: Allow passing a specific item to be returned when recycling a matcher-based ingredient. Doing so disables fuzzy-type item matching for the ingredient.
Version 1.4.0
General: Update to use SMAPI 3.17. Older versions of SMAPI are no longer supported.
General: Improve performance slightly by reducing iteration when determining if a given recipe has sufficient ingredients to be crafted.
Fixed: When clicking on UI elements when editing a category that is not rule based, do not send click events to the rule editors.
Fixed: When performing inventory manipulation (such as crafting) using a chest located on another map, manually update the mutex to ensure the action doesn't hang.
Fixed: When the "Crafting Skill" mod is enabled, do not use the incorrect ingredient consumption code. This should prevent any odd behavior, especially related to limit quality crafting and/or using lower quality ingredients first.
API: Each mod now receives a separate API instance, which will allow for better tracking of which mod provided which data in the future.
Version 1.3.1
Fixed: Larger grid items in the Better Crafting menu were having their sizes calculated incorrectly.
API: Added a new recipe builder to make it easier for other C# mods to manipulate recipes.
API: Added a new method to count items, which is compatible with Better Crafting's quality settings and aware of the mod "Stack Quality".
API: Change `CreateMatcherIngredient` to use methods for setting a display name and texture, to improve performance and i18n support.
Version 1.3.0
New: Categories can now have their items selected using dynamic filters, rather than being picked manually. This is now the default behavior for all categories in the cooking menu.
New: Cookout Kits can now function as Workbenches, but for cooking! When enabled, using a Cookout Kit will let you use items from nearby chests. Additionally, Cookout Kits can be made longer lasting so that they don't vanish overnight or when you break them.
Changed: The maximum number of visible tabs along the left side of the crafting menu is now calculated based on the height of the menu, rather than being hard coded.
Changed: Use two columns for displaying a recipe's ingredients if the recipe has more than five ingredients.
Changed: Add support for more category ingredients with names and icons.
Fixed: When opening a Workbench, return that the action succeeded so that they game won't try performing another action immediately.
Fixed: Do not crash in the menu handler when replacing a crafting menu with no material containers list.
Fixed: The crafting menu handles it better when the game window changes size, though it may still act a bit odd in some cases.
Fixed: Catch an error if one is thrown while getting a list of all NPCs in the game for the purpose of displaying likes/loves.
Fixed: Do not scroll the recipe list when the mouse is over the inventory display, to improve compatibility with certain mods that may modify the inventory.
Fixed: Un-cache recipes whenever the recipe data assets are invalidated.
Fixed: Do not crash in the cooking menu when hovering over a recipe that creates an item with no object information entry.
Fixed: Do not crash in the crafting menu if more than one recipe is registered with the same name.
Fixed: Remove duplicate inventories from the inventories list after discovery to avoid displaying inaccurate ingredient counts.
Compat: Added support for [Stack Quality](https://www.nexusmods.com/stardewvalley/mods/13724) when it comes to crafting. It will appropriately detect the number of items in a stack of a given quality, particularly when limiting crafting by quality.
Compat: Added support for [Custom Backpack Framework](https://www.nexusmods.com/stardewvalley/mods/13826) (and potentially other backpack mods) by allowing the crafting menu to expand as necessary to display more inventory rows when there are more than 3 rows.
API: Added method to register new dynamic rule handlers. Configuring rules is still a work in progress, but a simple text input is supported.
API: The method to add a new default category now allows you to use rules.
API: Removed a couple deprecated methods from the API interface. They still work, but new implementations shouldn't use them.
Version 1.2.1
New: Display character heads for gift tastes by default, rather than names. This should take up quite a bit less space for items that are liked and/or loved by many characters. There is an option to display names instead.
Fixed: Do not error if an error is thrown when trying to determine if an NPC likes a given item.
API: Added a property to `IBetterCraftingMenu` for accessing the active `IRecipe`, allowing other mods to more easily perform actions based on the current recipe.
Version 1.2.0
Added: The crafting menu now displays NPC gift tastes in tool-tips, and allows searching for items that specific NPCs like or love. By default, this only displays gift tastes that you have already discovered in-game, as well as only appearing on tool-tips while Shift is being held.
Fixed: Do not ignore containers with a `null` location when performing crafting.
Fixed: Do not ignore the existing container list when replacing the crafting menu contained within GameMenu, in case other mods have added containers.
Mod Compat: Added an option to change the priority of Better Crafting's menu event handler, potentially allowing for increased compatibility with some mods that access the game's default crafting menu.
Mod Compat: Added built-in support for SpaceCore and Dynamic Game Assets. The extra file "SpaceCore Support" is no longer necessary.
API: Added an event to allow other mods to easily add custom containers to any Better Crafting menu, including the menu embedded in the GameMenu.
API: Added a method for getting a reference to the currently active Better Crafting menu, in case other mods need it for some reason.
Version 1.1.1
Fix: Whenever closing the menu, make sure that we release all inventory locks so that no chests / workbenches / etc. are left in a state where they only function for one player in multiplayer scenarios.
Version 1.1.0
Fixed: Add translation support for currency ingredients.
Fixed: Do not write empty category arrays to a user's saved categories if the data has not been initialized yet.
Fixed: Fix support for inventory providers that don't have require mutexes, as well as providers for inventories without a physical location.
API: Add translation support for default categories added through the API.
Version 1.0.0
New: Added a button to transfer items from your inventory into all the chests connected to a workbench / kitchen. This is like a chest's "Add to Existing Stacks" button, but for a lot of chests at once.
Fixed: Improve error checking for recipes, since a lot of mods unfortunately introduce recipes with data errors.
Fixed: Stop repositioning the mouse cursor when using a gamepad and exiting the menu.
Fixed: Draw better tooltips when a recipe doesn't have ingredients.
API: Improve support for custom recipes not based on an existing vanilla `CraftingRecipe`, including support for recipes that don't produce items at all.
API: The API now provides convenience methods for creating simple ingredients so that external mods don't need to reinvent the wheel for basic tasks.
API: The API now provides convenience methods for creating simple recipes that implement existing `CraftingRecipe`s with custom ingredients.
API: The API now lets mods create new default categories and add recipes to them.
API: Consolidate all interfaces used by the API into a single `.cs` file for easy inclusion in other mods once SMAPI 3.14 is available.
API: Basically, a lot of API stuff happened and will be cool once 3.14 is out.
Add-On: Created a new add-on for Better Crafting that lets you craft buildings via the crafting menu. Buildings constructed this way are finished instantly. Due to the somewhat cheaty nature of the add-on, it is not included by default but available as an optional download.
Maintenance: All Better Crafting code, including the API, now uses nullable annotations and file-scoped namespaces.
Maintenance: General code cleanup.
Version 0.15.0
Compatibility: Added built-in support for Vintage Interface 2, Overgrown Flowery Interface, and Starry Sky Interface.
Mod Authors: Added a `bc_theme` command to list all themes, or change the current theme if called with an argument. `bc_theme reload` will reload all themes, including the active theme. `bc_retheme` can be used as a shortcut for that.
Mod Authors: We now have support for themes. Themes allow you to replace the buttons texture, as well as set custom colors for a few things in the menu. See the Vintage Interface 2 theme for an idea. Content packs can add a theme by including a theme.json.
Version 0.14.1
Fix: When opening settings from the game menu and closing it, the menu could appear with a strange offset in some situations.
Translation: Added Chinese language support.
Version 0.14.0
General: Added support for scrolling the category tabs.
General: Removed the limit on the number of categories.
General: Added a console command to clear the recipe cache.
General: Add a warning in the console when Dynamic Game Assets is detected but our compatibility mod is not.
Fix: Use separate recipe caches for each player in split-screen, as certain recipe adjustments may only affect one player.
Fix: Clear the recipe cache at the start of every new day in case recipes have been adjusted due to leveling up, etc.
Fix: Use integer positioning for all UI elements to avoid odd rendering of text and sprites.
Version 0.13.1
Add support for localizations overriding the ingredient search character.
Fix the search window's Tip not having a localization key.
Improve tool-tip positioning logic to better avoid covering the cursor.
Version 0.13.0
Added a search button to the crafting menu. Search by recipe name, description, and optionally by ingredients. When searching, matching text is highlighted in recipe tool-tips.
Added an option to sort recipes alphabetically.
When editing categories, you can now hold Shift to view an item's full tool-tip. Additionally, buff icons will appear on the normal miniature tool-tips to make sorting food into categories easier.
Slightly adjust the layout of the Bulk Crafting window for better aesthetics.
Version 0.12.0
Added "Bulk Crafting"! Craft a lot of something at once using a nice sub-menu that shows you how many ingredients it will use up.
Changed the default right-click action to instead open the Bulk Crafting interface.
Added configuration for left and right click actions, as well as extra hotkeys for favoriting an item and for opening bulk crafting.
Added a new icon picker for category icons.
Disabled unused StackSplit Redux integration for crafting multiple times. Bulk Crafting is better.
Add update keys for ModDrop to, hopefully, stop SMAPI from claiming there's an update when there's not.
Version 0.11.0
Added "Extended Workbench" feature. When enabled, Better Crafting will detect chests connected to the Workbench or kitchen and make their inventories available for crafting.
Add support for re-opening the pause menu to its crafting page after closing Better Crafting's settings in GMCM.
Added support for using Ctrl+Shift for bulk crafting.
Fixed the fridge in the island farmhouse not being detected properly.
Fixed overly-strict rules for validating chests without a set game location.
Fixed bug where ingredients may not be consumed in some cases.
Improve support for CustomCraftingStations using a Harmony patch to get direct access to the CCS restricted recipe list.
Improve support for CustomCraftingStations by replacing its crafting menu with a Better Crafting menu when possible.
Add several methods to the API.
Version 0.10.0
Added option to use lower quality ingredients first when crafting.
Added option to limit crafting materials based on quality.
Added notice to tooltips when a recipe added with the API does not support quality limits.
Added settings button to the Better Crafting menu when the Generic Mod Config Menu is installed.
Fixed ingredient check calls not passing a list of inventories along, which would break SpaceCore support.
Fixed rendering order issue with certain menu components that would cause tooltips to draw under the menu components.
Fixed bug with my menu closing code that might store a reference to a stale cleanup method.
Compat: Implement support for a potential new StackSplitRedux API. Awaiting the acceptance of a pull request.
Compat: Add slightly better support for CustomCraftingStations. The crafting menu in the game menu now supports limiting the listed crafting recipes. However, opening the crafting menu from a workbench or the kitchen will still fail to limit the listed crafting recipes.
API: Added OpenCraftingMenu() call that can be used to open the Better Crafting menu. It supports a few useful paramters, including the ability to limit the menu to only display certain recipes.
API: Added GetMenuType() call to get a reference to the BetterCraftingMenu class for doing evil things that might be better handled with a feature request.
API: Added RemoveRecipeProvider() call.
API: Added InvalidateRecipeCache() call.
API: Added GetRecipes() call to get an iterator over all our known recipes.
API: IRecipeProvider instances can now provide additional recipes that might have not otherwise been discovered.
Version 0.9.1
Display crafted item counts when advanced crafting information is enabled in Stardew's options.
Add support for displaying more than 3 rows of player inventory.
Allow Better Crafting to draw items from chests in other game locations when paired with an appropriate mod.
Use a different event for replacing vanilla menus which is more compatible with other mods.
Add initial support for the Cooking Skill mod.
Fix an exception from the Custom Crafting Station mod.
Better Crafting adds a new crafting UI with support for customizable categories, favorites, and a uniform grid size. There is easy bulk crafting. It also prevents use of a workbench from keeping chests locked when playing in multiplayer, and expands the workbench to connect to more than just the directly adjacent chests.
Note: As of version 1.2.0, you no longer need the file "Better Crafting: SpaceCore Support" so please remove it!
Download this mod and unzip it into Stardew Valley/Mods.
Run the game using SMAPI.
How to use By default, both the crafting and cooking interfaces are replaced. Just use them like you normally would.
If you want to favorite or un-favorite a recipe, you can press F while hovering over it. Controller users can press Back. You can also change these bindings as you please. You can easily see which items are favorites because they'll have a silver star.
Want to craft a lot of something? Right-click to open the Bulk Crafting menu! It lets you enter a specific quantity, and shows you how much of your resources it'd take to craft.
Categories are displayed along the left side of the crafting interface. There are default categories, but they can be customized by clicking a new button to the right. When customizing categories, right-click an item to make it the icon for that category. Categories are per-user in multiplayer saves.
As of version 1.3.0, categories can be rule-based instead of manually selected. You cannot enable or disable individual recipes for rule-based categories.
When cooking, this mod also lets you choose whether or not you want to use Qi Seasoning to enhance the quality of the food.
By using Generic Mod Config Menu, or editing the config file, you can enable or disable the replacement of Crafting and Cooking menus separately. Also, holding a key (Left-Shift by default) when opening a crafting menu will prevent it from being replaced.
Compatibility
Works with Stardew Valley 1.5.5 on Linux/Mac/Windows.
Does not work on Android, which has a separate menu system