▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Ultimate Custom Gear
Ultimate Custom Gear

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.

Оцените первым
67
2
Все версии→Ultimate Custom Gear 1.6.0

Ultimate Custom Gear 1.6.0

Release03.08.2026

Список изменений

💥 BREAKING CHANGES

Two fields changed meaning. Existing content packs need editing.

cooking_time is now in SECONDS, not ticks

Every other time field in this mod is in seconds (eat_duration, effect duration), and cooking_time was the odd one out. Divide your existing values by 20: a recipe written as "cooking_time": 200 meant 10 seconds and now means 200 seconds.

Nothing errors — the recipe still works, just 20x slower — so this will not show up as a crash. Check every smelting, blasting, smoking and campfire_cooking recipe you have.

requires_player_kill now defaults to false

It used to default to true. Vanilla drops do not care who landed the blow, and the old default made every custom drop behave unlike everything else in the game.

If you run an item economy, declare "requires_player_kill": true explicitly — otherwise a fall damage farm can print currency. The parser warns on every item that leaves the field undeclared, so the log will tell you exactly which files to check.

Note it asks for recent player damage, not the killing blow: a mob you hit and a creeper finished still counts as yours.

⚠️ Important Notes

  • Tags need /reload after /customgear reload — the tag manager only rebinds on a datapack reload. Everything else stays hot-reloadable
  • passthrough recipes are copied verbatim and are only protected against the target mod being missing, not against it being a different version. A mod that changes its recipe schema can break datapack loading entirely
  • charge_speed no longer appears in tooltips: it never affected the real charge time. See Known Limitations

✨ New Features

Tag Patches

  • New content type tag_patch — declares that foreign content belongs to a tag, the inverse of the tags field. Needed for anything that is not an item you registered: damage types from other mods could not be referenced at all before
  • Identified by registry + tag, no id. Two patches naming the same pair merge
  • Entries are always emitted with required: false, so an uninstalled mod is ignored instead of dropping the whole tag. A typo is warned about when the namespace belongs to a mod that IS loaded
  • remove takes content out of a tag, even when another pack puts it there. That is the only way out of an inherited tag
  • Removals from minecraft: or c: tags are warned about — they affect every mod that reads them

Gear Tags

  • Armor, tools, and weapons now receive the vanilla tags they always should have had. Gear never went through the tag system at all, which is why a custom sword was offered nothing at the enchanting table while a diamond sword was offered everything
  • Slot tags (#minecraft:chest_armor…), behavior tags (#minecraft:swords, breaks_decorated_pots) and, when enchantable: true, the matching #minecraft:enchantable/* tags
  • Convention tags too (c:armors, c:tools, c:tools/melee_weapon…) so other mods recognize this mod's gear generically
  • New trimmable field on armor_set (default false). Off by default because trims draw over the armor layers: with armor_layers: transparent or a GeckoLib 3D model the trim applies but never shows

Recipes

  • Three vanilla types that were missing: smoking, campfire_cooking and stonecutting
  • stonecutting honours result_count — cutting one block into several is the normal case
  • New passthrough type: hands a raw recipe body to the game untouched, so another mod's recipe type (create:mixing, create:pressing…) can produce this mod's content without this mod knowing that schema. A neoforge:mod_loaded condition is derived from the inner type's namespace automatically; extra mods go in requires
  • Declaring a field the recipe type ignores now logs a warning naming it

Mob Drops

  • New looting_mode replaces affected_by_looting, mirroring vanilla's two separate mechanisms:
    • "count" (default) — adds 0..levels to the rolled amount, like common drops (rotten flesh, string)
    • "chance" — raises the drop probability instead and leaves the amount alone, like rare drops (wither skeleton skulls)
    • "none" — Looting does nothing
  • Vanilla never applies both to the same drop, and neither does this
  • looting_chance_bonus (default 0.01) sets how much probability each Looting level adds in chance mode. Not a universal constant in vanilla either — loot tables declare their own
  • In count mode the bonus applies before the empty check and is not clamped to max, matching vanilla

Dynamic Pack Icon

  • The dynamic pack now shows the mod's logo in the resource pack screen
  • Override it by dropping your own dynamic_pack_icon.png in the ultimatecustomgear/ folder — square, power of two (64×64 or 128×128)
  • The icon is deliberately excluded from the content hash, so branding your pack never desyncs clients

🐛 Bug Fixes

  • Two tag loaders could silently overwrite each other. A block declaring "tags": ["minecraft:mineable/pickaxe"] landed on the exact path required_tool generates, and the last one written won — entries vanished with no warning. All tag sources now feed one accumulator that merges and emits once
  • Individual bows and crossbows never worked in custom texture mode. They fell through to the generic tool branch: no pulling frames, no display transforms, rendering at a tool scale. Crossbows had no custom-mode support at all, not even inside a weapon_set
  • The bow's pull animation was desynced from the shot. It scaled with charge_speed, which does not affect the real draw — at charge_speed: 0.25 the animation ran 16x too fast and skipped bow_pulling_0 entirely
  • The crossbow could be fired before its animation finished. The pull predicate divided by the use duration instead of the charge duration, so the crossbow loaded while the animation was still on the first frame
  • A missing frame texture dropped every pulling override instead of just that one, freezing the animation with no visible cause

🔧 Technical Changes

  • TagFileBuilder.java — new in loader/: shared accumulator for every tag file. add fills values, remove emits NeoForge's remove array. When the same id is both added and removed, the removal wins, with a warning naming it
  • TagPatchData.java / TagPatchLoader.java — new: the tag_patch content type
  • GearTagLoader.java — new in loader/: derives vanilla and convention tags from registered gear
  • ItemTagLoader.java / BlockTagLoader.java — no longer write to the pack; they feed the shared builder
  • RecipeLoader.java — buildStonecutting and buildPassthrough added; buildCooking now resolves seconds to ticks; warnUnusedFields checks declared fields against the type
  • RecipeData.java — json and requires for passthrough; experience and resultCount boxed so an undeclared value is distinguishable from a declared default
  • MobDropHandler.java — Looting resolved once per death through the dynamic enchantment registry; player involvement now asks for recent damage rather than the killing blow
  • GearModelGenerator.java — loadCustomWeapon, loadCustomCrossbowTextures and customFrame added; individual weapons routed correctly in custom mode
  • ClientSetup.java — bow pull divides by a fixed 20 ticks, crossbow pull by getChargeDuration
  • DynamicResourcePack.java — addRootFile and a working getRootResource, which previously returned null unconditionally
  • TextureLoader.java — loadPackIcon

⚙️ Known Limitations

  • charge_speed does not change the real charge time. BowItem.getPowerForTime and CrossbowItem.getChargeDuration are static and cannot be overridden, so a bow always draws in 1.0s and a crossbow in 1.25s. The field only stretches how long the click can be held, which is already minutes either way. The tooltip line was removed rather than keep promising something that never happened
  • Smithing trims cannot be removed from other mods' armor, only from this mod's. Vanilla's trimmable_armor is the union of the four slot tags, so armor inherits it just by being armor
  • Tag changes need /reload after /customgear reload

📦 Dependencies

No new dependencies added.

Файлы

ultimatecustomgear-1.21.1-1.6.0-NeoForge.jar(2.01 MiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

1.6.0

Загрузчики

NeoForge

Версии игры

1.21.1

Загрузок

20

Дата публикации

03.08.2026

Загрузил

ID версии

Главная