CustomCrafting

CustomCrafting

Plugin

Easily create custom recipes via an in-game GUI, including Crafting, Cooking, Smithing, etc. Use advanced config features to merge/copy NBT from ingredients to results, and run Extensions on recipe completion.

Server AdventureEquipmentGame MechanicsManagementUtility

32.2k downloads
67 followers
Createda year ago
Updated2 months ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.
Filter loader...
Filter versions...
  • #357 — Fix ItemCreator not properly applying changes to CustomItems
  • #358 — Fix Custom Durability in ItemCreator
    • Known issue: Custom Durability isn't properly working and doesn't damage items when it is used. That issue will be addressed in a future WolfyUtils update.
  • 9c372b10 — Update Oraxen and fix durability application
  • 7251fda9 — Directly move from the ItemCreator to the Recipe ItemEditor when cancelling
  • 1ec37ad8 — Update Recipe ItemEditor GUI when editing/selecting item
  • 790dd645 — Opening the ItemCreator from the main menu now clears the previous item
  • 9fbf37ea — Reset previous settings when opening the ItemCreator to edit a new item
  • 5c73046a — Don't allow items in empty smithing ingredients
  • 6eb03614 — Fix Smithing Recipe preserve & onlyChangeMaterial properties
  • d5ed0bc8 — Fix ItemEditor 'Edit Item' interaction hint
  • a2a46712 — Fix ingredient choices not applying to RecipeCreator after editing them via the ingredient menu

Full Changelog: v4.16.9...v4.16.9.1

This update requires the latest WolfyUtils 4.16.15+ !


Improved Item Editor

By default, CC detects the source of the item, like Oraxen or MMOItem, etc., but if an item was manipulated manually, or contains multiple third-party plugin options, that system falls apart.
This update adds a new identifier selector to the Item Editor, so you can change the source of the detected stack.

Identifier Parser Selection

In this example the Oraxen Amethyst was renamed outside Oraxen, CC detects that the stack is from Oraxen and links to it.
However, we want to keep the changes, so we shift + right-click on the result, and shift + right-click again to open the Item Editor.
Here we select the Bukkit parser, that keeps the item as is, so it is no longer linked to Oraxen, and manual stack changes are kept.

Data Directory Backup

When using the local storage loader (default) a backup is created before the recipe and item configs are upgrade to the new format. This applies to both the automatic upgrade and manual upgrade using the /recipes save.

The backups are stored as zip files inside the CustomCrafting/data_backups directory. By default, each backup is kept for 60 days. The old backups are only deleted after the specified duration and only when a new backup was created.

The backup feature can be toggled and configured in the config.yml under local_storage.backup.
keep_for specifies the duration for which to keep the backups. The unit can be MINUTES, HOURS, DAYS, and even SECONDS etc.

Better Lockdown mode visibility

The lockdown command requires a confirmation before actually toggling the mode.

When Lockdown is enabled, then a log message is printed on the first craft attempt after lockdown has been enabled. Then another message on the first craft attempt every hour.

Changelog

  • Improved Stack Editor with new identifier parser selection
  • #328 — Fix Invalid Smithing Recipe Data Base Slot
  • #334 — Implement StackReferences & Separate CustomItems from external ItemStack references
  • #342 — Fix Smithing Recipe Crafting & Creation
  • #336 — Fix Vanilla Cooking Recipe Placeholders using Result item as source
  • #353 — Add Data Directory Backup For Local Storage
  • 54d5ad48 — Reindex Recipe Book when recipes are validated after their dependencies
  • 5abf142b — Add a lockdown warning A log message is printed on the first craft attempt after lockdown has been enabled, then on the first craft attempt every hour.
  • 602e8dc2 — The lockdown command requires a confirmation now
  • f3e01ebc — Fix ShapelessRecipe ingredients failing before validation
  • 6f07c40d, 5d99bba3 — Use the new Result#item methods & remove CustomItem usages
  • e43a7bf7 — Fix error in NBTMergeAdapter when selected ingredients are empty
  • 9056989f — Fix Anvil Recipe Validator not taking repairTask settings into account
  • 22f66be6 — Fix recipe book title in de_DE lang
  • 21ac468a — Fix old config files not accepted by validator due to missing original stack
  • cfdf5a21 — Update Cauldron Menu Title when collecting result
  • 483e27cb — Replace bukkit recipe when registering in case it already exists

Full Changelog: v4.16.8.5...v4.16.9

  • #328 - Fix Invalid Smithing Recipe Data Base Slot
  • #321 - Fix Smithing Recipes Cross Version (1.19 & 1.20) issues
  • #322 - Only allow empty hand interaction to open Cauldron GUI
  • 323 - Fix Furnace Recipe Cache not taking the Z-Axis into account

Full Changelog: v4.16.8.3...v4.16.8.5

Changelog

  • #315 - Fix Missing InjectableValue when loading old recipes
  • #316 - Fix Duplicate Bukkit Recipes
  • #318 - Fix incorrect Furnace Results
  • #319 - Fix Duplicate Disable Button In Recipe List

Full Changelog: v4.16.8.2...v4.16.8.3

Changes since 4.16.8.0

Armor Trim Merge Adapter

The new Armor Trim merge adapter makes it possible to copy armor trim patterns and materials from ingredients to the result stack. It provides some further options to customize its behaviour.

Examples

Copies the pattern and changes the material to amethyst.

{
    key = "customcrafting:armor_trim"
    copyPattern = true
    copyMaterial = false
    defaultMaterial = "minecraft:amethyst"
}

Copies the pattern from the ingredient in slot 1 and the material from slot 2.

{
    key = "customcrafting:armor_trim"
    copyPattern = [ 1 ]
    copyMaterial = [ 2 ]
}

Copies both the pattern and material.

{
    key = "customcrafting:armor_trim"
    copyPattern = true
    copyMaterial = true
}

Changelog

  • #300 - Add Exlude Option to Lore, Book & Banner Merge Adapter
  • #303 - Add Armor Trim Merge Adapter
  • #306 - Add Preserve Trim Option to Smithing Recipe
  • #309 - Add Config Option to toggle vanilla cooking recipe fallback check
  • #295 - Fix Error on interactions in Recipe Lookup Menu
  • #297 - Fix Recipe Book Editor Error in 'Add Category/Filter' Menu
  • #299 - Fix Invalid Cooking Recipe Result
  • #301 - Fix Inability to save Smithing Recipes on pre-1.19.4 servers
  • #302 - Fix Invalid Match Result of the Elite Crafting Table Condition
  • #304 - Fix Empty Base/Addition Ingredient causing Anvil Recipe to not load
  • #298 - Fix Campfire Interaction with Buckets, Flint and Steel, and more
  • #305 - Fix duplicate recipe list entry for disabled recipes
  • #307 - Fix NullPointerException in Recipe Condition
  • #308 - Update & Fix Elite Crafting Table Condition Settings
  • #310 - Fix Anvil Recipes ignoring hidden recipes & not checking conditions
  • #311 - Fix recipe priority for various recipe types

This is the first release on Modrinth. Below you'll find the changelog of the most recent update. For previous changelogs, please visit GitHub

1.20 Changes & NMS Removals

Smithing Recipe Changes

Smithing Recipes created in previous versions of CC will be loaded and converted.
By default, they will require the Netherite Upgrade Template to work. So similar to Netherite upgrade recipes.
You can edit the recipe using the in-game editor and remove the template, so that the recipe works without any template.

  • Smithing Recipes can have empty ingredients now. Leave the slot in the editor empty for that.

Crafting Recipe Changes

The crafting system got a complete overhaul again.
Crafting Recipes will register two Bukkit recipes now:

  • Display recipe, that contains the ingredients with NBT and may be sent to the client's recipe book.
  • Placeholder recipe, that contains the ingredients without NBT and is never send to the client.

Due to the placeholder recipes, it may override vanilla recipes, which then no longer work! In that scenario, you need to create a custom recipe that is the same as the vanilla recipe and has a lower priority as the other custom recipe.

Campfire Recipe Changes

Campfire recipes are now completely based on Spigots API and no longer use any NMS code like in previous CC versions.
There are no breaking changes here, and it may even work more flawlessly than previously.

Item Type Merge Adapter

The item type merge adapter allows recipes to change the type of the result stack depending on an ingredient.

This is useful for repair/transform recipes, and other similar recipes, where the type of the ingredient should determine the result type.

The ID of the merge adapter is customcrafting:item and acts similar to the other merge adapters, with the difference that it only ever uses the first targeted ingredient slot.

For example, you could create a recipe that converts swords into axes:

target {
  mergeOptions : [ {
    slots : [ 4 ]
    adapters : [ {
      key : "customcrafting:item"
      typeMappings { // Maps the sword types of the ingredient to a type for the result stack
        wooden_sword = wooden_axe
        stone_sword = stone_axe
        iron_sword  = iron_axe
        golden_sword = golden_axe
        diamond_sword = diamond_axe
      }
    } ]
  } ]
}

For the recipe to work, it of course needs to allow all the different variants of items.
You can do that by shift + right-click on ingredient slots!

This is not meant to replace type specific recipes like for boats, doors, etc. For those it is still required to create separate recipes, because this can only ever target a single ingredient!

Recipe Book Editor Overhaul

Realiable Editing & Saving

When opening the Editor, it copies the current state of the Recipe Book, and you'll edit the copy from there. (In comparison, prior to this update, you'd edit the original config directly)

When saving it, it creates a recipe_book_backup.conf of the current config. It then saves the copy to the recipe_book.conf, which overrides the current config.

Overview Improvements

Each Category/Filter listed has an extra configure button below it that allows you to edit it, or move it to the left/right, to change the order of the categories/filters.

Future Improvements

This is plainly a redesign and bug fix update of the editor. It still does not cover all the settings available in the recipe_book.conf, so editing the file is still the preferred way.

Changelog

  • Added support for empty ingredients in smithing recipes
  • Added Crafting and Cooking placeholder recipes, that represent the recipe without NBT ingredients.
  • Added docs to cooking listeners and manager adapters
  • Added ICustomVanillaRecipe#toPlaceholder function to create the placeholder keys
  • Added Campfire Listener to replace NMS system
  • Updated Recipe Book Smithing Recipe Menu to 1.20
  • Updated Smithing Recipes to handle templates in 1.20
  • Updated Smithing Recipe Creator to support 1.20 templates
  • Updated paper-api to 1.20
  • Updated to WolfyUtils 4.16.12
  • Fix buggy behaviour (like flickering and duplication) in crafting tables
  • Removed the NMS based crafting system in its entirety
  • #286 – Fix GUI Item Input Buttons deleting stacks on certain interactions
  • #292 - Add Item Type Merge Adapter
  • #290 - Fix Disappearing Ingredients When Using Recipe Book Recipe Completion
  • #294 - Recipe Book Editor Overhaul

Full Changelog: https://github.com/WolfyScript/CustomCrafting/compare/v4.16.7.2...v4.16.8.0

External resources



Project members

WolfyScript

Owner


Technical information

License
GPL-3.0-or-later
Project ID