Links
Tags
Creators
Details
Licensed ARR
Published 11 months ago
Updated 15 hours ago
All versions
1.0.6
Release
Attribute Modify 1.0.65 months ago 32
Compatibility
Minecraft: Java Edition
1.20.1
Platform
Forge
Supported environments
Client and server
Changes
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_equalsreturns true on missing paths: Thenot_equalsoperator now correctly returnstruewhen 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
PatternSyntaxExceptioncatch for thematches_regexNBT 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
ConcurrentHashMapandvolatileinstance fields, preventing potential race conditions during reload. - Debug Logging Optimization: Changed all hot-path logging from
infotodebuglevel 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).
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:bOWz461U:ypEokFA0"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:bOWz461U:ypEokFA0"
}

