Customize item attributes, mining behavior, durability, and item progression with JSON datapacks. No Java required.
AttributeModify is the Forge edition for Minecraft 1.20.1.
NeoAttributeModify is the NeoForge edition for Minecraft 1.21.1.
Both projects use the same datapack folder layout and the same general JSON style. The main difference is how item data is read internally:
component:apotheosis:rarity can be used to keep configs easier to maintainbody, and optional Curios slots/reloadPlace your files in:
data/<namespace>/item_attributes/<file>.json
Entries from multiple files are merged, so you can organize your datapack however you want.
{
"minecraft:diamond_chestplate": {
"attribute": "minecraft:generic.luck",
"action": "add",
"amount": 1.0,
"operation": "add_value"
}
}
Useful for quick changes. Armor and common tools can infer the correct slot automatically.
{
"minecraft:diamond_boots": {
"attributes": [
{
"attribute": "minecraft:generic.armor",
"action": "add",
"amount": 1.0,
"operation": "add_value"
},
{
"attribute": "minecraft:generic.movement_speed",
"action": "add",
"amount": 0.03,
"operation": "add_multiplied_total"
}
]
}
}
add, modify, and remove{
"minecraft:diamond_sword": {
"equipment_slots": {
"mainhand": [
{
"attribute": "minecraft:generic.attack_damage",
"action": "modify",
"amount": 10.0,
"operation": "add_value"
},
{
"attribute": "minecraft:generic.attack_speed",
"action": "remove"
}
]
}
}
}
Requires Curios to be installed.
{
"mymod:magic_ring": {
"curios_slots": {
"ring": [
{
"attribute": "minecraft:generic.max_health",
"action": "add",
"amount": 4.0,
"operation": "add_value"
}
]
}
}
}
{
"#minecraft:swords": {
"equipment_slots": {
"mainhand": [
{
"attribute": "minecraft:generic.attack_knockback",
"action": "add",
"amount": 0.5,
"operation": "add_value"
}
]
}
}
}
{
"minecraft:diamond_sword": {
"equipment_slots": {
"mainhand": [
{
"attribute": "minecraft:generic.attack_damage",
"action": "add",
"amount": 5.0,
"operation": "add_value",
"nbt": {
"path": "component:apotheosis:rarity",
"operator": "equals",
"value": "apotheosis:mythic"
}
}
]
}
}
}
You can use path or key inside the nbt block.
{
"minecraft:iron_sword": {
"quality_system": {
"tag_path": "quality",
"triggers": ["craft", "loot", "villager_trade", "apotheosis_sync"],
"levels": [
{ "value": "common", "weight": 60 },
{ "value": "rare", "weight": 30 },
{ "value": "mythic", "weight": 10 }
]
}
}
}
{
"minecraft:iron_pickaxe": {
"mining": [
{
"speed": 12.0,
"tier": "diamond",
"nbt": {
"path": "quality",
"operator": "equals",
"value": "mythic"
}
},
{
"speed": 8.0,
"tier": "iron"
}
]
}
}
{
"minecraft:diamond_pickaxe": {
"durability": 3000,
"durability_triggers": ["block_break", "right_click"]
}
}
Supported custom durability triggers:
melee_hitblock_breakright_click{
"minecraft:carved_pumpkin": {
"decorative": true
}
}
attribute: single shorthand attribute entryattributes: shorthand array of attribute entriesequipment_slots: explicit vanilla equipment slotscurios_slots: explicit Curios slotsquality_system: weighted quality roll rulesmining: mining speed and tier overridesdurability: max durability overridedurability_triggers: optional triggers for custom durabilitydecorative: marks an item as decorativemainhand, offhand, head, chest, legs, feet, body
add: add modifiers on top of existing statsmodify: replace the base modifiers for that attributeremove: remove that attribute from the item for the target slotadd_valueadd_multiplied_baseadd_multiplied_totalAccepted aliases:
additionmultiply_basemultiply_totalequalsnot_equalsgreatergreater_or_equallessless_or_equalexistsnot_existscontainsstarts_withends_withmatches_regexcraftlootvillager_tradeapotheosis_sync/reload re-reads datapack files without restarting the gamemodifier_id if you want a fixed custom modifier identity for compatibility with other modsAuthor: Etema

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.