CurseForge · Minecraft mod
QualityAPI
Shared item quality for NeoForge: data-driven tiers from Crude to Masterwork that change durability, speed, attributes and enchantments, carry through crafting, and break instead of vanishing. Standalone or as an API for other mods.
Quick answer
Which QualityAPI release should I use?
QualityAPI quality_api-1.1.0.jar targets 1.21.1 with NeoForge. The project page does not say whether this file belongs on the client, dedicated server, or both. No extra mods listed for this file.
Where it goes
Is QualityAPI required on the client, server, or both?
The project page does not say whether this file belongs on the client, dedicated server, or both.
The source does not explicitly classify this release as client-only or server-only.
What else does QualityAPI quality_api-1.1.0.jar need?
quality_api-1.1.0.jar. Change the file and its required mods may change too.
This file does not list any required mods. Do not add a library just because a different file uses it.
This file does not list any required or optional mods.
Before you install it
Add QualityAPI without breaking your instance.
Built for QualityAPI quality_api-1.1.0.jar. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use quality_api-1.1.0.jar. It targets 1.21.1 with NeoForge; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
This file does not list any required mods. Do not add a library just because a different file uses it.
- 03
Put it on the correct side
The project page does not say whether this file belongs on the client, dedicated server, or both.
- 04
Pick the file you checked
Use the “Get this file” button beside quality_api-1.1.0.jar. It opens that exact file at the source.
About this project
What does QualityAPI add?
Quality API
Quality API gives every item a quality, from Crude to Masterwork, that changes how it performs: durability, mining speed, attack and armor, even bonus enchantment levels. Push a quality item to zero durability and it breaks instead of vanishing, and might lose a grade. Craft with quality materials and the result inherits from them. Every mod can set, read, and react to the same quality, so a forging mod, a loot mod, and a skills mod all speak one language.
Almost everything about this mod is data driven. Change it to fit your pack.
Visit the website for more info or to see some of my other mods.
Features
Six tiers out of the box
Every tier has a level, a colour, a roll weight, and a set of effects. Level 0 is "normal" and shows nothing, so plain items still look plain.
| Tier | Level | Durability | Mining speed | Extra |
|---|---|---|---|---|
| Crude | -1 | 0.75x | 0.8x | |
| Standard | 0 | 1x | 1x | silent baseline |
| Fine | 1 | 1.15x | 1.1x | |
| Superior | 2 | 1.3x | 1.2x | |
| Exquisite | 3 | 1.45x | 1.35x | acts as Unbreaking I |
| Masterwork | 4 | 1.6x | 1.5x | acts as Unbreaking II |
Swords and axes also gain attack damage per tier, and armor gains armor points. Rename the tiers, rebalance them, add a seventh, or replace the lot with a datapack.
Nothing is baked onto the item
The item only stores which tier it is. Everything else is computed live from your data, so:
- Change a number in a datapack,
/reload, and every item already in the world updates. - Quality survives smithing upgrades, anvil repairs, and grindstones.
- Attribute bonuses are added next to vanilla's and other mods', never written over them.
- Tooltips show the item name in the tier colour, the tier, who crafted it, and whether it's broken.
Broken, not destroyed
A quality item at zero durability becomes broken. It stays in your hand but can't attack, mine, or be used until you repair it at an anvil, grindstone, or with Mending.
- Breaking rolls a downgrade chance (75% by default). Fail it and your masterwork sword is now exquisite.
- Optionally protect the top tier so masterwork never drops.
- Optional shatter chance per tier for the vanilla behaviour, if you want crude tools to just die.
- Turn the whole feature off with one config switch.
Quality carries through crafting
Craft with ingredients that have quality and the result inherits it. Only results with durability inherit by default, so a masterwork plank makes plain sticks but a masterwork ingot makes a masterwork pickaxe.
- Highest, lowest, or average of the ingredients. Average rolls the remainder: a 3.25 mean is exquisite three times in four and masterwork once.
- The preview in the crafting grid shows what you'll get, and it's stable until you actually craft. No rearranging the grid to re-roll.
- Optional downgrade chance on craft for extra risk.
- Optional roll on craft gives plain recipes a weighted random tier, so the mod works with no other mods installed.
- A quality tool head, a quality ingot, a quality diamond: anything can carry quality into a recipe. Tool heads and materials never become damageable by having a tier.
Loot
Add the quality_api:roll_quality loot modifier to any loot table and every damageable item in it rolls a tier using the tier weights.
{
"type": "quality_api:roll_quality",
"chance": 0.35,
"conditions": [
{ "condition": "neoforge:loot_table_id", "loot_table_id": "minecraft:chests/simple_dungeon" }
]
}
Datapack control
Tiers live in data/<namespace>/quality_api/quality/<name>.json:
{
"level": 3,
"color": "#17DD62",
"weight": 2,
"items": "#c:tools",
"effects": {
"durability_multiplier": 1.45,
"mining_speed_multiplier": 1.35,
"enchantment_levels": { "minecraft:unbreaking": 1 },
"break_downgrade_chance": 0.5,
"attributes": [ { "type": "minecraft:generic.attack_damage", "operation": "add_value", "amount": 1.5 } ]
}
}
items is optional and limits what the tier can apply to. weight 0 means the tier is never rolled, only granted.
Per item and per tag overrides use a NeoForge data map at data/quality_api/data_maps/item/item_qualities.json. Each entry is a patch on top of the tier: name only the fields you want to change.
{
"values": {
"#minecraft:pickaxes": {
"quality_api:masterwork": { "mining_speed_multiplier": 3.0, "enchantment_levels": { "minecraft:fortune": 1 } }
},
"minecraft:netherite_sword": {
"quality_api:masterwork": { "attributes": [ { "type": "minecraft:generic.attack_damage", "operation": "add_value", "amount": 6.0 } ] }
}
}
}
Item entries beat tag entries. Remove something by setting its neutral value: an empty list, an empty map, or a multiplier of 1.0.
#quality_api:blacklist(items): items that can never receive quality.quality_api:min_qualityingredient: recipes can demand "a stick of at least Superior". Exact tiers work with NeoForge's built in component ingredient.
Extremely customizable
| Config | What it does |
|---|---|
| craftInheritance | highest, lowest, average, or none |
| craftInheritanceDamageableOnly | only results with durability inherit (default on) |
| downgradeChance | chance a crafted quality drops one tier |
| rollOnCraft | plain recipes roll a weighted tier |
| recordCrafter | show "Crafted by" on quality items |
| brokenInsteadOfDestroyed | the broken state, on or off |
| breakDowngradeChance | chance breaking drops a tier (tiers and items can override) |
| highestTierCanDowngrade | whether the top tier is protected |
| showQualityTooltip, colorItemName | client side tooltip toggles |
For mod developers
Everything goes through one static class, Qualities:
getId,get,levelto read a stack's tier. Level is 0 when there is none.canApply,apply,removeto set it.applyrespects the blacklist and the tier's item filter.rollfor a weighted random tier,forLevelto turn an integer or fractional level into a tier,shiftto move up or down,meanLevelto average a set of ingredients.
QualityCraftEvent fires for every crafting result with the player, recipe, ingredients, the ingredient mean level, and the proposed tier. Call setQuality to change the outcome. A skill mod can nudge the level up for a good crafter; a minigame mod can drop it for a bad run.
Custom stations like a forging anvil don't need the crafting table at all: run your minigame, call forLevel with the level your score earns, apply, and hand over the item. Post QualityCraftEvent yourself and other mods get the same hook they have on the vanilla table.
The API returns empty before a world loads and has no side effects, so the usual ModList.isLoaded bridge pattern works for optional integration.
Commands
For server admins and testing:
/quality set <tier> — set the quality of the item in your main hand
/quality remove — strip it
Why Quality API?
Item quality is a great mechanic and several mods have built one: forging mods, tailoring mods, food mods. Each stores it differently, each re-implements durability and attributes, and none of them can see the others. A masterwork ingot from one mod is just an ingot to the next. Quality API pulls that into one place: one component, one set of tiers, one way to apply effects, and an event any mod can hook. Use it standalone through datapacks and configs, or build your crafting station on top of it and get tooltips, durability, attributes, the broken state, and every other mod's compatibility for free.
Requires NeoForge for Minecraft 1.21.1.
Project description from CurseForge.
Pick your setup
QualityAPI by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
Check the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
QualityAPI versions and loaders
quality_api-1.1.0.jar
9 Sept 2026
quality_api-1.0.0.jar
7 Sept 2026
Looking for an older file? The official CurseForge project page is in Resources.