0 of 0
File information
Last updated
Original upload
Created by
Khloe LeclairUploaded by
KhloeLeclairVirus scan
Safe to use
Current section
About this mod
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.
- Requirements
-
Nexus requirements
Mod name Notes SMAPI - Stardew Modding API Mods requiring this file
- Permissions and credits
-
Author's instructions
The source for my mods, including Better Crafting, is currently under an All Rights Reserved license unless otherwise noted after CurseForge went against my wishes and allowed people to upload my mods without permission. See LICENSE.
I encourage and support:- Including my mods in mod packs via linking (not via including a file)
- Making content packs that modify the look or behavior of my mods
- Translating my mods into other languages
- Contributing to the source with pull requests
Please do not:- Claim that my mods are your own work
- Release copies of my mods while I'm still maintaining them
- Publish my mods on other platforms
- Post copies of my mods for translation purposes (I am more than happy to merge translations into the main mod)
File credits
This author has not credited anyone else in this file
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
-
Translations
- Turkish
- Spanish
- Portuguese
- Mandarin
- Japanese
- German
- French
-
Translations available on the Nexus
Language Name Turkish Author: Lexith Better Crafting - Turkce Mandarin Author: Awassakura Better Crafting-Chinese for v2.15.0 Other Author: CuongNguyen Better Crafting - Vietnamese (VH) Portuguese Author: Maatsuki Better Crafting (PTBR) Spanish Author: Gonzy42 Better Crafting - Spanish French Author: Deovos Better Crafting - FR Portuguese Author: Necromante96Official Better Crafting 2.13.0 German Author: derMolli Better Crafting (German Translation) Mandarin Author: Ambernobb Better Crafting - Chinese Other Author: Duong Bui Better Crafting - Vietnamese Japanese Author: kabocchi Better Crafting - Japanese German Author: XiNaaru Better Crafting - Deutsch French Author: Splinteer Better Crafting Francais - Changelogs
-
-
Version 2.15.0
- Fixed: Issue where cooking recipe times crafted counts were not being tallied correctly in conjunction with SpaceCore.
- API: Added a new event for applying seasoning to a cooked item. This event results in ingredients only being consumed if the craft is successful, and additionally allows you to disable the base game's Qi Seasoning behavior.
- API: Added a new event for determining if a player can craft a given recipe.
-
Version 2.14.0
- Added: Setting to disallow pulling items from fish tanks and fish ponds. This is added in response to other mods adding these to Better Crafting as a source of items, even though most users probably don't want to use those fish as crafting ingredients.
- Added: Harmony patches for the vanilla crafting menu so certain category-based ingredients that don't appear correctly should now have icons and proper descriptive text.
- Fixed: Compatibility with Stardew Valley 1.6.9.
- Fixed: Recipes using SpaceCore features not displaying accurate information, including descriptions and number of times crafted.
- Fixed: Certain dynamic rules not correctly listing all items if those items are of a different type than a simple object.
- Fixed: The trash can recovery menu not properly supporting UI Scales other than 100%.
- Fixed: Reduce spammy logging from the class that prevents mutexes from being released while the crafting menu is open.
- API: Added a new recipe provider dynamic rule for debugging use, which lets you filter based on which recipe provider is handling a recipe.
- API: Fixed recipes using SpaceCore not including a reference to the vanilla `CraftingRecipe` instance for the recipe.
-
Version 2.13.0
- Fixed: Support a new 1.6 feature for showing the prices for crafted items.
- Fixed: Bulk crafting stopping at 20 items when using the Bulk Crafting menu.
- Fixed: Issue with an upcoming SMAPI update that would cause Better Crafting to fail to load due to a constructor signature change within Pintail.
- API: Added `IEventedInventoryProvider` to allow mods providing inventories an alternative to `NetMutex` for establishing a lock for ensuring exclusive access for performing write operations to an inventory.
-
Version 2.12.0
- Added: Setting to enforce some feature flags in multiplayer. Notably, this can be used by the multiplayer host to disable the recover trash feature, to disable the setting to reveal all gift tastes, to disable recycling items with unknown recipes, and to disable recycling recipes with fuzzy items.
- Added: Setting to recycle items of higher-quality than any known recipe produces, which is now enabled by default.
- Added: Setting to mark specific storage items as invalid for the purpose of acting as sources of items. You can use this to, for example, stop Better Crafting from using items that are in Hoppers.
- Changed: Inventories are now cleaned only once per crafting operation, once the crafting has finished, to avoid doing a lot of redundant work.
- Fixed: Issue where crafting too many items would crash due to a stack exception.
- Fixed: The crafting menu now protects any items that are in its list of inventories from use in crafting, as well as being trashed or removed from the player's inventory.
- API: Added new, simpler event for populating menu containers to allow mods to listen to the event while also avoiding needing to include `IBetterCraftingMenu`, `IRecipe`, etc. in their copy of the API file.
- API: Added new event for when a menu closes.
- API: Added method for casting an `IClickableMenu` to an `IBetterCraftingMenu`, if the provided menu is one of our menus.
-
Version 2.11.0
- Added: Feature to recover trashed items. Just right-click on the trash can in your menu (not all menus supported) to open a menu containing items you've recently thrown in the trash. Up to 36 items are remembered at any given time.
- Added: Ability to invert dynamic rules to exclude recipes from a category, rather than including them.
- Compatibility: Introduced a feature to block harmful Harmony patches from other mods. I do not block other mods by default, but I reserve the right to do so if another mod causes Better Crafting to break.
- Compatibility: Start logging any mods that have applied Harmony patches to Better Crafting at the end of the Game Started event.
- Compatibility: Added `Resource Storage` to the list of mods that are not allowed to Harmony patch Better Crafting. This is because old versions of Resource Storage attempted to apply patches to modify how Better Crafting consumes items, but did so inconsistently, causing players to be presented with a confusing situation where it seems as though they have enough items to perform a craft but actually trying to do the craft does nothing.
- Fixed: Minor text rendering issue where a color would leak outside of a colored text segment.
-
Version 2.10.0
- Added: `Show Unknown Recipes` setting to display unknown recipes in the crafting menu, similarly to how they're displayed in the cooking menu. That is to say: greyed out.
- Added: `Show Matching Items` setting to display exactly which items should be consumed when performing a craft. This *may* be inaccurate but it is unlikely. This is disabled by default.
- Changed: Recipes that create items with a quality greater than low quality will now display a quality icon on the crafting menu.
- Fixed: Integration with SpaceCore Vanilla Asset Expansion crafting recipe overrides. I found a way to fix it without needing to wait for Casey to merge my pull request.
- Fixed: Tool-tip caching not working correctly when the crafting menu is in category editing mode.
- API: Much of our configuration is now exposed via our API.
- API: `CategoryIcon` now has a `Frames` property that can be used to set how many frames of animation should be displayed. Note that this is largely untested, but it should allow for animated station icons.
-
Version 2.9.0
- Added: New setting to display the mod that added an item on crafting tool-tips.
- Changed: Improve integration with SpaceCore Vanilla Asset Extension crafting recipe overrides, with support for our ingredient quality features as well as item recycling. (Note: This will require an update from SpaceCore before it will function correctly.)
- Fixed: If an error happens in another mod's event handlers for one of our events, capture the error properly and log it to minimize disruption to the user.
-
Version 2.8.3
- Added: New dynamic rule for matching recipes that a given character likes or loves. By default, this only matches discovered gift tastes, but you can enable the "Show Undiscovered Gift Tastes" setting to make it match everything.
- Changed: All the dynamic rules for buffs have been combined into one rule, with a selection dialog for the specific buff you want. This allows for a better user experience by de-cluttering the rule selection dialog, as well as showing you how many recipes any particular buff actually match.
- Fixed: The cursor snapping when it shouldn't.
- Fixed: Issue where Better Crafting was loading `Data/Objects` and `Data/Buffs` during GameStarted, which could cache the resources early and cause other mods' edits to not apply.
- Fixed: When drawing the `NEW` label on recipes, use a larger rectangle that supports all languages.
- Fixed: Attempt to fix a sporadic Null Reference Exception with the temporary loading menu for controller users.
-
Version 2.8.2
- Changed: Improve cursor snapping for controller users when using the crafting menu.
- Fixed: Issue where an error would be printed to the console when attempting to load certain textures.
- Fixed: Update mutexes before attempting to lock them, which should improve some issues where mutexes were failing to lock when attempting to craft.
-
Version 2.8.1
- Fixed: The temporary menu class used to avoid immediately loading the full Better Crafting menu would throw an error when the user is using certain mod combinations.
-
Version 2.8.0
- Added: You can copy, paste, and delete categories when editing them now, making it easier to move a category into or out of your Per-Save Data or to share them. Additionally, you can shift-click the delete button to reset *all* your categories.
- Added: Better Crafting will attempt to automatically color its UI buttons to match your current UI theme.
- Changed: When opening the game menu, the Better Crafting menu won't load until you directly access it, which should improve performance somewhat.
- Changed: Added some diagnostic logging for performance.
- Fixed: Workbench connectors not working correctly.
- Translation: Removed the Turkish translation file, as that is out of date and there is an external mod providing it.
- API: Added a new event to let other mods add extra icons to the built-in icon picker.
- API: Fixed setting item to `null` in pre-craft event causing crafting to fail.
-
Version 2.7.0
- Added: The mod now uses a global save for categories and favorite recipes. This can be toggled on a per-save basis. Saves with existing category / favorite customization will automatically start with per-save customization enabled.
- Added: New dynamic rules for selecting recipes based on item category, context tags, and edibility. With these, almost all recipes in the base game are categorized using rules rather than manually.
- Changed: The "Items from Mod" dynamic rule now only displays the count of recipes within the current menu mode (cooking vs crafting) when you're selecting a mod.
- Changed: Update tool-tip rendering in our menu to be more like the base game.
- Fixed: Unable to translate a certain string from the "Items from Mod" selection dialog.
- Fixed: When using the Kitchen, always add the location's fridge to the inventories to craft from, regardless of other discover settings.
- Fixed: The controls to toggle dynamic rules on, as well as include items in the Misc. category, should not appear on the Misc. category itself.
- Fixed: Change to word wrapping causing some text to not appear on new lines when it should.
- API: When using the trigger/map action to open the menu, there is a new syntax that allows for greater flexibility in configuring how inventories are discovered.
-
Version 2.6.2
- Added: a quick setting to hide the Edit Categories button, since someone requested it and it's easy.
- Fixed: Issue where the Use Nearby Chests setting would not have its initial value set correctly when opening the settings menu, causing it to be reduced over time.
- Fixed: Issue where the Use Nearby Chests setting would be unable to include all chests in its active area due to scanning limitations meant to limit performance impacts.
- Fixed: Improve performance of item comparison slightly by changing how we apply our harmony patch for Item.canStackWith.
- Fixed: Improve word wrapping when dealing with exceptionally long unbroken character sequences, which is mainly an issue in non-English languages.
- Translation: Updated Korean language strings. Thanks, wally.
-
Version 2.6.1
- Changed: Junimo Chests are no longer blacklisted.
- Fixed: Properly check if the optional background texture is available before attempting to load it. Fixes error messages every time the menu opens.
- Fixed: Fixed an issue where the Transfer to Inventories feature would not work correctly when using Better Chests.
- Fixed: Improve de-duplication logic for inventories.
-
Version 2.6.0
- Note: This should be the last release for a while, barring any unexpected bugs. I've been toying with a few ideas while mindlessly working on this, but I have what I want thought out for Almanac now.
- Added: You can now re-order your categories when editing them.
- Added: There is a new option to open the crafting menu with the full height of your screen if opened via a workbench, kitchen, or other means that does not place it within the game menu.
- Changed: When listing the available mods to include items from a mod, we now count how many items there are from each mod, and put those without items at the end of the list. Further, we sort the list alphabetically by mod name.
- Changed: When crafting an item that will have attachment slots, show the attachment slots in the recipe tool-tip.
- Changed: When viewing a recipe with an absurd number of ingredients, try to fit it on the screen better by using more columns.
- Fixed: Apply theme text colors more thoroughly to the crafting menu.
- Fixed: Spaces appearing near recipes when a recipe would be included both by manual selection and because it matched a rule.
- API: Added the ability for content authors to create custom dynamic rules using the game's native item queries feature by modifying the target path `Mods/leclair.bettercrafting/Rules`
-
Version 2.5.0
- Added: Added the ability to label recipes as new. You can choose to either label a recipe as new if you haven't crafted it yet, or if you haven't hovered your mouse over it to view its tool-tip yet.
- Added: A dynamic category rule to match all of a specific mod's items.
- Added: Dynamic category rules for: floors and paths, fences, furniture.
- Added: Dynamic category rules for all remaining item buffs.
- Changed: You can now toggle recipes on and off even if a category is using rules. Please note that you can only enable extra recipes, you can't hide recipes that matched a rule.
- Changed: Updated how buffs are displayed in recipe tool-tips, to bring them more in line with Stardew Valley 1.6.
- Fixed: When receiving recipes from other C# mods via the API, optional interfaces are now detected correctly.
- Fixed: Changed the logic for loading recipes to not use locking, in case that was what's been causing some loading freezes for one user.
- API: Added the ability to track which specific Items are being consumed when crafting a recipe.
- API: Added a new post-craft event that can be used to modify items after its ingredients are consumed, using the tracked items as mentioned above.
- API: Added the ability for mods to register crafting and post-crafting events that apply to all recipes.
-
Version 2.4.0
- New: Added a setting to allow crafting from nearby chests. The request was made for Convenient Chests compatibility, and it was easier to just make a distinct feature for Better Crafting.
- Changed: Started caching a lot more recipe state in the crafting menu, improving performance by over 100% on average when the menu is open.
- Fixed: Make sure to check that the item is actually an object before checking for buff data.
- Fixed: The menu's exit code not running when closing the game menu while the crafting page is not the current page.
- Fixed: Attempt to handle mutexes that aren't reported as locked but that we have obtained a lock for, since apparently that's a thing.
- Fixed: Fix an issue with the Spooky Action system where locations would be considered occupied even after the player closed their menu.
- API: Added `IDynamicDrawingRecipe` for recipes that should have dynamic icons in the crafting menu, along with an API method that wraps the recipes to force them to be detected properly.
- API: The RecipeBuilder can set a drawing function using the same format as `IDynamicDrawingRecipe`.
- API: Data-driven ingredients can now have conditions to control whether or not they're displayed and required.
- API: Data-driven ingredients can now use item query fields to help filter items.
-
Version 2.3.0
- Yes, I know. Two in one day. Sorry, I just needed to fix a few issues with the new data-driven crafting recipes. I've also added a bit more logging for the Better Chests interaction issues.
- Changed: Added support for rendering smoked fish using my custom item renderer.
- Changed: Add extra debug logging for when we are unable to lock inventories.
- Changed: Remove useless debug logging from the PFM integration module.
- Changed: Vanilla crafting recipes are suppressed if there is a data-driven recipe with the same Id.
- Fixed: Properly check each recipe's `Condition` field.
- Fixed: Properly support learning data-driven crafting recipes using the mail `%item craftingrecipe [recipe]%%` command.
- API: `CreateBaseIngredient()`, `CreateMatcherIngredient()`, and `CreateCurrencyIngredient()` now all have a parameter to set how much you get back when performing recycling.
- API: The `CreateMatcherIngredient()` method now takes a delegate to decide which item to return upon recycling, rather than a static Item reference.
- API: Data-driven recipes now have a flag for if they are known by default.
- API: Data-driven ingredients can now use item spawn fields to specify which item they would be recycled into.
- API: Data-driven ingredients now have a recycle rate field to specify how much the player should get back if they recycle it.
-
Version 2.1.0
- New: Added first-party custom crafting stations for content pack creators.
- New: Added a fancy label to the menu that appears when using a Kitchen, Workbench, etc. as well as the knew custom stations.
- Changed: Buildings with inventories are now supported, such as Junimo Huts.
- Fixed: Better null handling when checking for big craftable actions. Stops spamming warnings in the log in certain circumstances.
- Fixed: Detect storage items added by Expanded Storage and categorize them appropriately.
- API: Added a `[station]` property to the map tile action.
- API: Added several properties to `IBetterCraftingMenu` to expose more of the menu's state.
- API: Add a flag to the `IPopulateContainersEvent` to let mods disable container discovery.
- API: Add a method to get recipes that should be exclusive to certain crafting stations.
- API: Expose the resource `Mods/leclair.bettercrafting/CraftingStations` for loading data on custom crafting stations, as well as reading `stations.json` files from content packs owned by Better Crafting.
- API: Expose the resource `Mods/leclair.bettercrafting/Categories` for customizing the default categories with content patcher. Please note that editing the defaults in this way is not effective if users have customized their categories.
-
Version 2.0.0
- New: Works on 1.6
- New: Dynamic rules for foods that buff custom skills added through SpaceCore.
- New: Separate mod that adds a Magic Workbench, which lets you craft using items from within adjacent buildings.
- Changed: Storage items are no longer included in the Machines dynamic rule. There is now a specific Storage rule.
- Fixed: Various typos, mostly in documentation.
- Fixed: Improve menu performance a bit by caching some of item tool-tips.
- Fixed: When displaying a recipe with more than 20 ingredients in the Bulk Crafting menu, only show 20 ingredients at a time to support smaller displays. (Also who is making recipes like this? Who hurt you?)
- Fixed: Certain currency ingredients not rendering correctly, if anyone was using currency ingredients.
- Removed: Dynamic Game Assets compatibility code. DGA is dead, long live 1.6.
- API: Added the map action `leclair.bettercrafting_OpenMenu [cooking] [includeBuildings]` map tile action.
- API: Added the ability to run map tile actions from big craftables using the `leclair.bettercrafting_PerformAction` custom field.
- API: Added a `leclair.bettercrafting_HAS_WORKBENCH` game state query to check if a Workbench has been placed at the farm.
- API: Renamed IInventory to IBCInventory to avoid collision with vanilla.
- API: IInventoryProviders have a method now to return a vanilla IInventory to allow for future optimizations.
- API: Removed obsolete API methods.
-
Version 1.5.0
- 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 customizable 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. On top of that, it provides a framework for content authors to create more powerful recipes and custom crafting stations.
Install
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 have rules to automatically add matching recipes to the category. As of version 2.5.0, you can now combine manually selected recipes with rules.
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.
But what if I don't like it?
In case you don't like the tabbed look with categories, good news! You don't need to use categories! Just go into settings and turn them off, and it'll look just like the built-in crafting menu, just with the other added features.
Compatibility
Known Issues
See also
Install
- Install the latest version of SMAPI.
- 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 have rules to automatically add matching recipes to the category. As of version 2.5.0, you can now combine manually selected recipes with rules.
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.
But what if I don't like it?
In case you don't like the tabbed look with categories, good news! You don't need to use categories! Just go into settings and turn them off, and it'll look just like the built-in crafting menu, just with the other added features.
Compatibility
- Works with Stardew Valley 1.6 on Linux/Mac/Windows.
- Does not work on Android, which has a separate menu system
- Works with Generic Mod Config Menu.
- Works in single player and multiplayer.
- May have issues with mods that add custom recipes, depending on how their items are added. Please report incompatible mods so I can work with the developers to add support.
- Works with Better Chests and Item Bags.
- Works with mods that increase the backpack size.
Known Issues
- Does not work with the craft from nearby chests feature of Convenient Chests. However, Better Crafting has its own version of that to use. You will need to configure it, though.
See also