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-1.21.1-1.8.0-NeoForge

File nameultimatecustomgear-1.21.1-1.8.0-NeoForge.jar
Uploader
NadienDevNadienDev
Uploaded
Oct 27, 2026
Downloads
7
Size
2.2 MB
Mod Loaders
NeoForge
File ID
9340553
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

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

Learn more about Curse Maven

What's new

⚠️ Important Notes

  • NeoForge 21.1.248 or newer is required, up from 21.1.235. Update NeoForge before updating this mod, or the game will refuse to start
  • With JEI installed, JEI 19.70.0.460 or newer is required. JEI is still optional; without it nothing changes
  • If your content has two files with the same id, the multiplayer content check now gives a different result than in 1.7.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 by vanilla, Create and Mekanism alike, 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 — Create's crushing and its experience nuggets — is never removed by it, since removing a recipe removes all of it
  • Works with other mods' machines through passthrough: Create, Mekanism, Botania and 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 Create, Mekanism and Botania machines

🐛 Bug Fixes

  • 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

🔧 Technical Changes

  • RecipePatchData.java, RecipePatchLoader.java, RecipePatchHandler.java — new. Additions are written to the dynamic pack; removals and replacements run on the server's loaded recipes after every datapack load, before they are sent to players
  • RecipeQueries.java, RecipesCommand.java — new. One lookup decides what makes an item for both the command and remove_output: the result a recipe reports, then the output fields of its JSON for recipes that don't report one or have several outputs
  • RecipeLoader.java — a friendly-type recipe naming another mod's item as an ingredient gets a mod_loaded condition on that mod
  • 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"
  • CustomContainerScreen.java — key and mouse transfer bindings go through separate methods instead of one with placeholder values
  • 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, like Iron's Spellbooks' scroll forge and arcane anvil, 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

📦 Dependencies

  • NeoForge — 21.1.248 or newer, up from 21.1.235
  • JEI — optional; when installed, 19.70.0.460 or newer