Skip to content

About

NeoForge & Fabric 1.21.1 patch and compatibility mod for Copper Age Backport (Crash fix, Durability, Tool Trims & Armor Trims, Jade HUD, Better Combat, Create)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Copper Age Backport Patch

License: MIT Minecraft 1.21.1 NeoForge Fabric Modrinth CurseForge

An unofficial patch, bugfix, and compatibility addon for Copper Age Backport (by Smallinger) on Minecraft 1.21.1 for NeoForge and Fabric mod loaders.


Overview

Copper Age Backport brings official modern copper equipment and the Copper Golem to Minecraft 1.21.1.

Important loader distinction:

  • On Fabric, Copper Age Backport runs completely fine standalone and suffers from no startup or registry crashes. On Fabric, this patch serves purely as a gameplay, balance, visual, and mod compatibility enhancement.
  • On NeoForge (versions 21.1.237 and newer), Copper Age Backport has a critical registry collision bug that crashes the game on startup or aborts world loading with a safe mode warning. This patch intercepts and fixes that crash on NeoForge.

Across both loaders, this patch restores canonical armor durability, enables copper anvil repairs, corrects creative inventory ordering, implements proper vanilla armor trim rendering, adds optional compatibility for the Tool Trims mod, enhances the Copper Golem spawn egg texture, provides in-game JEI / EMI / REI information pages, brings 100% full parity to all 7 CAB copper lightning rod variants (Channeling tridents, natural lightning redirection, redstone power pulses, and stage de-oxidation), and integrates with popular mods such as Farmer's Delight, Shield Expansion, Jade, Better Combat, and Create.


Feature Breakdown

1. NeoForge Registry Duplicate Key Crash Fix

  • The Problem: NeoForge 21.1.237 and newer enforces strict registry validation during bootstrap. Upstream Copper Age Backport registers ResourceKey[minecraft:armor_material / minecraft:copper] multiple times across separate item initializations. On NeoForge, this triggers an IllegalStateException: Duplicate key error, causing the game to crash or forcing world loading into Safe Mode.
  • Important Note: Fabric does not enforce this restriction and runs Copper Age Backport standalone without issues. This crash fix is active only on NeoForge.
  • The Fix: A thread-safe MemoizedSupplier interceptor implemented via Mixin ensures the armor material registration executes exactly once during startup on NeoForge, completely eliminating the crash.

2. Canonical Copper Armor Durability Fix

  • The Problem: In upstream Copper Age Backport, copper armor items omit the canonical MAX_DAMAGE data component introduced in modern Minecraft (1.20.5+ / 1.21). As a result, copper armor pieces are completely indestructible and never lose durability when taking damage.
  • The Fix: Restores balanced durability values following standard vanilla tier progression using the canonical tier multiplier of 11:
    • Copper Helmet: 121 max durability
    • Copper Chestplate: 176 max durability
    • Copper Leggings: 165 max durability
    • Copper Boots: 143 max durability
  • Note: Separate third-party durability fix mods are obsolete and no longer needed.

3. Anvil Repair with Copper Ingots

  • Full anvil repair functionality for all copper equipment:
    • Copper Helmet, Chestplate, Leggings, and Boots can be repaired on an Anvil using Copper Ingots (#c:ingots/copper).
    • Copper Sword, Axe, Pickaxe, Shovel, and Hoe can be repaired on an Anvil using Copper Ingots (#c:ingots/copper).
  • Restores natural gear maintenance without requiring creative workarounds or item replacement.

4. Creative Inventory Tab Ordering

  • Copper Axe in Combat Tab: In vanilla Minecraft, all axes appear in both the Tools & Utilities tab and the Combat tab. Upstream omitted the Copper Axe from the Combat tab. It is now positioned in the Creative Combat tab directly after Stone Axe and before Iron Axe (Wooden -> Stone -> Copper -> Iron).
  • Copper Golem Spawn Egg Placement: Upstream placed the spawn egg at the very end of the creative tab. It is now repositioned in the Creative Spawn Eggs tab directly after the Cod Spawn Egg and before the Cow Spawn Egg, exactly matching vanilla Minecraft 1.21.9 release order.

5. Pale Oak Shelf Crafting Recipe

  • In upstream Copper Age Backport, all wood type shelves have shaped crafting recipes except the Pale Oak Shelf (minecraft:pale_oak_shelf).
  • This patch restores the missing 3x3 shaped crafting recipe: 3 stripped pale oak logs across the top row, empty middle row, and 3 stripped pale oak logs across the bottom row produce 6 Pale Oak Shelves using minecraft:stripped_pale_oak_log.
  • Strictly accepts stripped logs only (no wood blocks), consistent with all other wooden shelves in the mod.

6. Vanilla Copper Translation Restoration & Localization Fixes

  • Restored Vanilla Translations: Upstream Copper Age Backport inadvertently bundled raw English names for 42 copper blocks and subtitles that were already part of vanilla Minecraft 1.21 (Copper Doors, Copper Trapdoors, Copper Bulbs, Copper Grates, and Chiseled Copper blocks across all weathered and waxed stages). This caused vanilla translations to be overwritten with English whenever non-English languages were selected.
  • This patch restores authentic, official vanilla translations across all 30 non-English languages supported by CAB (assets/minecraft/lang/).
  • High-Priority Pack Overrides: To guarantee that restored translations win over upstream CAB regardless of alphabetical mod-ID load ordering (copper_age_patch vs copperagebackport) on both Fabric and NeoForge, localization files are embedded in both the root mod assets and the always-enabled built-in resource pack placed at Pack.Position.TOP.
  • Turkish Localization Corrections: Resolves upstream typos and unidiomatic terminology in Turkish (tr_tr.json):
    • item.minecraft.copper_pickaxe: "Bakır Kazm" -> "Bakır Kazma"
    • item.minecraft.copper_horse_armor: "Bakır At Zırh" -> "Bakır At Zırhı"
    • block.minecraft.copper_bars: "Bakır Barlar" -> "Bakır Parmaklık" (aligned with vanilla "Demir Parmaklık")
    • Subtitles for opening and closing copper chests corrected from "Bakır Golem açtı/kapattı" to "Bakır Sandık açıldı/kapandı".
    • Oxidized lightning rod variants aligned with vanilla oxidation naming conventions ("Açıkta Kalmış Paratoner", "Yıpranmış Paratoner", "Oksitlenmiş Paratoner", "Cilalı Paratoner").

7. Smithing Trim Integration: Armor vs. Tools

It is important to distinguish between how armor trims and tool trims work in this mod:

7.1 Copper Armor Trims (Native Vanilla Feature - No Other Mods Required)

  • Copper armor pieces (Helmet, Chestplate, Leggings, Boots) can be trimmed at a Smithing Table out of the box using standard vanilla armor trim smithing templates.
  • Adds model override definitions across all 4 armor pieces for all 10 standard trim materials (trim_type predicates from 0.1 to 1.0), with 44 discrete item models.
  • Includes a custom copper_darker palette permutation in assets/minecraft/atlases/blocks.json so copper trims applied to copper armor maintain high visual contrast, matching vanilla gold-on-gold and iron-on-iron conventions.
  • Preserves in-world player 3D entity armor trim rendering.

7.2 Tool Trims Compatibility (Optional Mod Integration - Requires Tool Trims)

  • Note: This mod does NOT add standalone tool trimming on its own. It is specifically an integration layer for the Tool Trims mod.
  • If Tool Trims is installed, all 5 copper tools (Copper Sword, Copper Axe, Copper Pickaxe, Copper Shovel, and Copper Hoe) become trimmable at a Smithing Table.
  • Supports all 4 Tool Trims patterns (Linear, Tracks, Charge, Frost) and all 10 trim materials (Amethyst, Copper, Diamond, Emerald, Gold, Iron, Lapis, Netherite, Quartz, Redstone), providing 200 data-driven smithing recipes.
  • Reuses Tool Trims colorized palettes based on iron tool silhouettes, avoiding redundant texture assets.
  • Z-Fighting Elimination: Trim models utilize Tool Trims layer architecture (layer0 mapped to tooltrims:item/trim_bases/iron_<tool>_<pattern> overlay) to eliminate coplanar z-fighting artifacts in first-person and world rendering.
  • Copper tools are dynamically enrolled into #tooltrims:trimmable_tools as well as standard vanilla tool tags (#minecraft:swords, #minecraft:axes, etc.).

7.3 High-Priority Built-In Resource Pack

  • To ensure copper equipment models with trim overrides are not masked by upstream plain models due to pack load order, models are packaged into an always-enabled built-in resource pack (copper_trims).
  • Registered via ResourceManagerHelper.registerBuiltinResourcePack (ALWAYS_ENABLED) on Fabric and AddPackFindersEvent (Pack.Position.TOP) on NeoForge.

8. Conditional Modern Copper Golem Spawn Egg & Tint Handling

  • Conditionally replaces the classic dotted spawn egg icon with the modern detailed Copper Golem spawn egg texture when Vanilla Backport is installed.
  • Provides clean, native texture rendering across both NeoForge and Fabric loaders without color filter distortions or tint registry bugs.
  • Configurable via config/copper_age_patch.json:
    • "AUTO" (default): Uses the modern texture if Vanilla Backport is installed, classic otherwise.
    • "MODERN": Forces the modern detailed texture.
    • "CLASSIC": Forces the classic vanilla dotted texture.

9. In-Game Guide Pages (JEI / EMI / REI)

  • Built-in recipe and information pages for Just Enough Items (JEI), EMI, and Roughly Enough Items (REI) covering:
    • Copper Golem creation and antenna items (holding flowers or decorative blocks).
    • Oxidation stages (Unaffected, Exposed, Weathered, Oxidized) and waxing with Honeycomb.
    • De-oxidation mechanics using an axe or lightning strikes via lightning rods.
    • Shelf interactions and storage mechanics.
    • Anvil repair recipes with Copper Ingots.
    • Tool Trims smithing template guides.

10. Jade HUD Integration

  • Antenna Items: Detects and displays items placed on the Copper Golem antenna (such as the poppy flower gifted by an Iron Golem).
  • Weathering & Waxing: Displays the current oxidation stage (Unaffected, Exposed, Weathered, Oxidized) and whether the golem or statue is waxed.
  • Held Items: Displays the item currently held by the Copper Golem.
  • Shelf Inventories: Provides full visual inventory previews when looking at Shelves via Jade.

11. Create Mod & Tag Interoperability

  • Enrolls copper nuggets from all sources into common tags: #c:nuggets, #c:nuggets/copper, and #c:copper_nuggets.
  • Bidirectional crafting recipes: 9 copper nuggets craft 1 copper ingot, and 1 copper ingot crafts 9 copper nuggets.
  • Adds Crushing Wheel recipes to recycle copper equipment into copper ingots and nuggets with Create.

12. Better Combat Integration

  • Configures native attack animations, weapon attributes, range, and sweeping hitboxes for copper weapons with Better Combat.

13. Multilingual Localization

Full in-game translations for all supported language variants:

  • Arabic (ar_sa)
  • Azerbaijani (az_az)
  • Chinese Simplified (zh_cn)
  • Chinese Traditional (zh_hk, zh_tw)
  • Czech (cs_cz)
  • English (en_us, en_gb)
  • French (fr_fr, fr_ca)
  • German (de_de)
  • Hungarian (hu_hu)
  • Italian (it_it)
  • Japanese (ja_jp)
  • Korean (ko_kr)
  • Polish (pl_pl)
  • Portuguese (pt_br, pt_pt)
  • Russian (ru_ru)
  • Spanish (es_es, es_mx, es_ar, es_cl, es_ec, es_uy, es_ve)
  • Thai (th_th)
  • Turkish (tr_tr)
  • Vietnamese (vi_vn)

14. Farmer's Delight Integration (Copper Knife)

  • Registered under the farmersdelight namespace (farmersdelight:copper_knife) so it seamlessly integrates into the modpack as a native Farmer's Delight tool in tooltips, recipe viewers, and identifiers.
  • Gated conditionally: only active when Farmer's Delight (farmersdelight) is installed.
  • Balanced Durability: 190 max durability (CAB copper tool tier, naturally positioned between Flint [131] and Iron [250]).
  • Authentic Knife Attributes: Utilizes authentic Farmer's Delight knife attributes (+0.5f damage bonus over Copper Tier, -2.0f attack speed modifier yielding 2.5 Attack Damage and 2.0 Attack Speed), matching all standard FD knives.
  • Preserves straw/grass harvesting and cutting board slicing interactions by reflectively instantiating the native KnifeItem class when Farmer's Delight is present.
  • Shaped Crafting Recipe: 1 copper ingot placed vertically over 1 stick (data/farmersdelight/recipe/copper_knife.json).
  • Full conventional tag integration: #c:knives, #c:tools/knife, #c:tools/knives, #farmersdelight:knives, and #farmersdelight:enchantable/knife.
  • Creative Tab Ordering: Exclusively added to the Farmer's Delight creative tab, placed immediately after the Flint Knife and before the Iron Knife. Excluded from vanilla Combat and Tools & Utilities tabs.

15. Shield Expansion Integration (Copper Shield)

  • Registered under the shieldexp namespace (shieldexp:copper_shield) so it appears natively as a Shield Expansion item.
  • Gated conditionally: only active when Shield Expansion (shieldexp) is installed.
  • Balanced Durability: 120 max durability (balanced between Wooden Shield [55] and Iron Shield [165]).
  • Custom 3D Block Model: Modeled using Shield Expansion's Iron Shield geometry and UV mapping (elements), eliminating builtin/entity to guarantee full 3D rendering in GUI, hands, and blocking across both NeoForge and Fabric.
  • Shield Expansion Data: Defines custom attributes (data/shieldexp/shields/copper_shield.json) with 25 cooldown ticks, 0.70 speed factor, 0.10 parry damage, 5 parry ticks, 2 stamina, 0.10 blast resistance, and 1 flat damage.
  • Client-Side Blocking Animation: Registers the "minecraft:blocking" item property predicate on Fabric and NeoForge client entrypoints for smooth blocking animations.
  • Shaped Crafting Recipe: 1 stick surrounded by 8 copper ingots (data/shieldexp/recipe/copper_shield.json).
  • Full tag integration: #c:shields, #c:tools/shield, #forge:shields, and #shieldexp:shields.
  • Creative Tab Ordering: Positioned in the Creative Combat tab directly after the Wooden Shield and before the Iron Shield using prioritized event listeners (EventPriority.LOW on NeoForge and phased event ordering on Fabric).

16. CAB Lightning Rod Parity (Weathering, Channeling & Redstone)

  • Full Multi-Loader Parity: Delivers complete, tested feature parity for all 7 CAB copper lightning rod blocks (exposed_lightning_rod, weathered_lightning_rod, oxidized_lightning_rod, and their 4 waxed counterparts) across both Fabric (Intermediary) and NeoForge (Mojang).
  • Natural Lightning Redirection: Dynamically registers all 168 blockstates of the 7 CAB lightning rod variants into PoiTypes.TYPE_BY_STATE mapped to LIGHTNING_ROD, allowing PoiManager to track them and enabling natural thunderstorm lightning redirection within a 128-block radius.
  • Channeling Trident Activation: Overrides the Channeling enchantment hit-block predicate (data/minecraft/enchantment/channeling.json) using explicit minecraft:any_of block state matching across all 8 lightning rod blocks (vanilla plus all 7 CAB variants), allowing Channeling Tridents to reliably summon lightning strikes on any rod variant during thunderstorms without namespace collisions or thin bounding-box offset failures.
  • Redstone Pulse & Electric Sparks: Struck CAB lightning rods emit an 8-tick redstone power pulse to neighboring blocks and spawn electric spark particles matching vanilla lightning rod behavior.
  • Stage De-oxidation & Cleaning: Striking an unwaxed weathered lightning rod de-oxidizes it by one stage, while waxed rods remain protected. Struck rods redirect de-oxidation to attached copper blocks behind them, spreading copper cleaning to nearby blocks via random-walk spread.
  • Weathering & Waxing Chains: Connects all 8 rod variants to WeatheringCopper and HoneycombItem BiMap lookup tables for standard axe scraping and honeycomb waxing.

Configuration

A client-side configuration file is located at config/copper_age_patch.json:

{
  "spawnEggTextureMode": "AUTO"
}
Value Behavior
"AUTO" Modern texture if Vanilla Backport is present; classic dotted egg otherwise. (Default)
"MODERN" Always use the modern detailed spawn egg texture.
"CLASSIC" Always use the classic vanilla dotted spawn egg texture.

Compatibility & Dependencies

Mod Platform Requirement Purpose
Copper Age Backport NeoForge & Fabric Required The base mod being patched
Fabric API Fabric Required Core framework on Fabric
Farmer's Delight NeoForge & Fabric Optional Adds Copper Knife with cutting board support and straw harvesting
Shield Expansion NeoForge & Fabric Optional Adds Copper Shield with 3D model, parry, and blocking mechanics
Tool Trims NeoForge & Fabric Optional Enables smithing trims on copper tools (optional integration)
Vanilla Backport NeoForge & Fabric Optional Modern spawn egg texture trigger
JEI / EMI / REI NeoForge & Fabric Optional In-game information and mechanic guide pages
Jade NeoForge & Fabric Optional HUD tooltips for golems, statues, and shelves
Better Combat NeoForge & Fabric Optional Custom combat animations and weapon stats
Create NeoForge & Fabric Optional Crushing recipes and nugget recycling

Building From Source

This project uses Gradle with Java 21:

# Clone the repository
git clone https://github.com/1unarea/copper-age-backport-patch.git
cd copper-age-backport-patch

# Run all verification tests
./gradlew test

# Assemble NeoForge and Fabric jars
./gradlew assemble

# Generated artifacts:
# - build/libs/copper_age_patch-neoforge-1.21.1-1.2.1.jar
# - build/libs/copper_age_patch-fabric-1.21.1-1.2.1.jar

License & Attribution

  • Original Mod: Copper Age Backport by Smallinger (CC0).
  • Patch: Developed by 1unarea under the MIT License.
  • Clean-room implementation: No proprietary or external code was copied.

About

NeoForge & Fabric 1.21.1 patch and compatibility mod for Copper Age Backport (Crash fix, Durability, Tool Trims & Armor Trims, Jade HUD, Better Combat, Create)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages