promotional bannermobile promotional banner

Attribute Modify

This mod allows the modification of item attributes, both vanilla and curios. Do you want to buff or nerf a weapon or curios? With this mod, you only need a datapack to do so.

File Details

neoattributemodify-1.0.2.jar

  • R
  • Mar 2, 2026
  • 72.45 KB
  • 37
  • 1.21.1
  • NeoForge

File Name

neoattributemodify-1.0.1.jar

Supported Versions

  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:attribute-modify-1328230:7698943"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

New Features

  • Multi-File Accumulation: Multiple datapack files can now contribute attributes to the same item. Previously, the last file loaded would overwrite all others. Now entries from all files are merged together.
  • ListTag Index Navigation: NBT condition paths now support numeric indices to access elements inside list tags (e.g., enchantments.0.id).
  • not_equals returns true on missing paths: The not_equals operator now correctly returns true when the NBT path doesn't exist on the item, matching the intuitive "this value is not X" behavior.

Bug Fixes

  • Villager Trade Quality Template Mutation: Fixed a critical bug where applying quality to a villager trade would permanently modify the trade offer template, preventing re-rolls on future trades. Quality is now only applied via deferred inventory scan.
  • Network Buffer Desync (Forge): Fixed packet encode/decode that could desync when items with null registry IDs were included, causing all subsequent data in the packet to be corrupted.
  • Container Close Inventory Scan: The container close event now correctly skips the player's own inventory menu, preventing unnecessary quality re-processing when simply closing the inventory screen.
  • Regex Pattern Safety: Added PatternSyntaxException catch for the matches_regex NBT operator, preventing server crashes from malformed regex patterns in datapacks.
  • Long Precision in Quality Values: Fixed quality system NBT writing to properly distinguish between int, long, and double values, preventing precision loss for large numbers.
  • Null NBT Condition Serialization (Forge): Fixed network packet encoding to correctly handle null NBT condition values using a sentinel, preventing deserialization errors on the client.

Performance & Stability

  • Thread Safety (Forge): All attribute maps now use ConcurrentHashMap and volatile instance fields, preventing potential race conditions during reload.
  • Debug Logging Optimization: Changed all hot-path logging from info to debug level across both versions, reducing log spam during normal gameplay.
  • Removed Dead Code (Forge): Cleaned up unused handleCuriosAttributes() method and related imports.

Internal

  • Unified both Forge and NeoForge codebases to feature parity.
  • Extracted NbtCondition encode/decode into reusable helper methods (Forge).