UltimateCustomGear-26.1.2-2.1.0-NeoForge
Curse Maven Snippet
What's new
⚠️ Important Notes
- Recipes defined in an item's
recipefield load again. From 2.0.0 to 2.0.2 none of them did (see Bug Fixes). If you worked around it with a datapack or apassthroughcopy of the same recipe, remove the copy, or the item will have the recipe twice - If your content has two files with the same id, the multiplayer content check now gives a different result than in 2.0.x. Update the server and every client together. Content without duplicate ids checks exactly as before
✨ New Features
Recipe patches
- New content type
recipe_patch: changes recipes of any item — vanilla's, another mod's or yours — in four ways, any of them in one file:add— gives an item new recipes, whether it had any or not, in the same format as an item'srecipefieldremove— removes recipes by idremove_output— removes every recipe that makes an item, from any mod, without knowing their ids.recipe_typesnarrows it:["smelting", "blasting"]stops gold from being smelted in every furnace-like recipe and leaves crafting alonereplace— swaps a recipe for a new one under the same id, so the recipe book and advancements keep working. It keeps the original's output and count unless you change them
remove_outputonly matches an item made as a recipe's main output. A recipe that gives it as a bonus is never removed by it, since removing a recipe removes all of it- Works with other mods' machines through
passthrough, for any mod that loads its recipes from data - Applies while the game runs: add, edit or delete a patch and run
/customgear reload
Finding recipes
- New command
/customgear recipes [item]: lists every recipe that makes an item, grouped by type, with the id and the type a patch needs. Click either to copy it - Without an item, it uses the one in your hand
- Recipes where the item is only a secondary output are listed apart, with a reminder that removing one removes the whole recipe
- Open to every player, not just operators: it only reads
Recipes
- A recipe that uses another mod's item as an ingredient now only loads when that mod is installed. Without it, the recipe is skipped quietly instead of logging an error, so the same content works in modpacks with and without the mod
- New documentation page, Recipe Examples, with complete patches for Applied Energistics 2, Powah and Ender IO machines
🐛 Bug Fixes
- No recipe from an item's
recipefield ever loaded. Since 1.21.2 the game writes an ingredient as plain text —"minecraft:diamond","#minecraft:planks"— and the mod kept building them in the 1.21.1 form,{"item": ...}. Everyshaped,shapeless, cooking,stonecuttingandsmithing_transformrecipe was rejected at load with aCouldn't parse data fileerror in the log.passthroughrecipes were not affected - The content check let a player join with different stats when a duplicate id was involved. The check compares every JSON regardless of where it lives, but which of two files with the same id is loaded depends on file names and packs. A client and a server with the same files arranged differently passed the check and loaded different versions of the item
- With a duplicate id, a Windows client and a Linux server could keep different files. Content files and pack zips were read in an order that depends on the operating system. They are now read in the same order everywhere
- The reload cooldown message was always in English. It now follows the game language like the rest of the command's messages
📝 Documentation
- The
passthroughexamples in Recipes used Create's 1.21.1 format, with{"item": ...}ingredients; Create has no 26.x version and that form doesn't parse on 26.x. They now use Ender IO recipes copied from its own files
🔧 Technical Changes
RecipeLoader.java— ingredients are written as plain strings, with#for tags. A friendly-type recipe naming another mod's item as an ingredient gets amod_loadedcondition on that modRecipePatchData.java,RecipePatchLoader.java,RecipePatchHandler.java— new. Additions are written to the dynamic pack; removals and replacements run on the server's loaded recipes inTagsUpdatedEvent.ServerDataLoad, right before the game builds the recipe book and sends recipes to playersaccesstransformer.cfg—RecipeManager.recipesmade public: 26.x has noreplaceRecipes, so the patched recipe map is set directlyRecipeQueries.java,RecipesCommand.java— new. One lookup decides what makes an item for both the command andremove_output: the result of the recipe's first recipe-book display, then the output fields of its JSON for recipes that show none or have several outputsGearParser.java,UniversalParser.java— content files are read in a fixed order and the directory stream is closed, so with a duplicate id client and server keep the same file on any OSContentRoots.java— packs are mounted in an order that doesn't depend on the OSContentHasher.java,ContentRoots.java— files that lost a duplicate id, in the parsers or inGlobalIdValidator, are left out of the content hashCustomGearMod.java— the content hash is captured after the global id validationCustomGearNetworking.java— documented whenPROTOCOL_VERSIONmust change; it stays at"3", so 2.1.0 still connects with 2.0.xCustomContainerScreen.java— key and mouse transfer bindings go through separate methods instead of one taking a nullable event of each kindneoforge.mods.toml— removed an unusedmodpropertiesblock; the config screen is registered in code and works as before
⚙️ Known Limitations
- Some "recipes" are not recipes: tables that work in code and recipes a mod only draws in JEI are not in the recipe list. Neither the command nor a patch can see them
remove_outputtakes items. Machines that make fluids or chemicals instead can still be removed or replaced by id- A machine recipe with several item outputs that shows nothing in the recipe book has no main output, so
remove_outputleaves it alone. Remove it by id;/customgear recipeslists it under secondary outputs
📦 Dependencies
- Minecraft 26.1.2 · NeoForge 26.1.2 · Java 25
- JEI 29.29.0.77 — optional, recommended
- GeckoLib 5.5.2 — optional, required only for 3D armor models
- Curios 15.0.0 — optional, only needed for
curios_slots
This mod has no additional files

