promotional bannermobile promotional banner

Ultimate Custom Gear

Ultimate Custom Gear lets server owners and modpack creators add fully custom content to Minecraft through simple JSON files. No coding required, hot-reloadable, and verified between server and clients automatically.
Back to Files

UltimateCustomGear-26.1.2-2.1.0-NeoForge

File nameultimatecustomgear-26.1.2-2.1.0-NeoForge.jar
Uploader
NadienDevNadienDev
Uploaded
Oct 28, 2026
Downloads
6
Size
2.2 MB
Mod Loaders
NeoForge
File ID
9356281
Type
R
Release
Supported game versions
  • 26.1.2

Curse Maven Snippet

NeoForge

implementation "curse.maven:ultimate-custom-gear-1563239:9356281"

Learn more about Curse Maven

What's new

⚠️ Important Notes

  • Recipes defined in an item's recipe field 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 a passthrough copy 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's recipe field
    • remove — removes recipes by id
    • remove_output — removes every recipe that makes an item, from any mod, without knowing their ids. recipe_types narrows it: ["smelting", "blasting"] stops gold from being smelted in every furnace-like recipe and leaves crafting alone
    • replace — 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_output only 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 recipe field 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": ...}. Every shaped, shapeless, cooking, stonecutting and smithing_transform recipe was rejected at load with a Couldn't parse data file error in the log. passthrough recipes 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 passthrough examples 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 a mod_loaded condition on that mod
  • RecipePatchData.java, RecipePatchLoader.java, RecipePatchHandler.java — new. Additions are written to the dynamic pack; removals and replacements run on the server's loaded recipes in TagsUpdatedEvent.ServerDataLoad, right before the game builds the recipe book and sends recipes to players
  • accesstransformer.cfg — RecipeManager.recipes made public: 26.x has no replaceRecipes, so the patched recipe map is set directly
  • RecipeQueries.java, RecipesCommand.java — new. One lookup decides what makes an item for both the command and remove_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 outputs
  • GearParser.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 OS
  • ContentRoots.java — packs are mounted in an order that doesn't depend on the OS
  • ContentHasher.java, ContentRoots.java — files that lost a duplicate id, in the parsers or in GlobalIdValidator, are left out of the content hash
  • CustomGearMod.java — the content hash is captured after the global id validation
  • CustomGearNetworking.java — documented when PROTOCOL_VERSION must change; it stays at "3", so 2.1.0 still connects with 2.0.x
  • CustomContainerScreen.java — key and mouse transfer bindings go through separate methods instead of one taking a nullable event of each kind
  • neoforge.mods.toml — removed an unused modproperties block; 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_output takes 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_output leaves it alone. Remove it by id; /customgear recipes lists 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