Item Damage Values and Durability Tracking in Minecraft Bedrock Addons
Quick Answer: Item damage (durability) in Bedrock is tracked via the minecraft:durability component with max_damage. Damage values are not stored as separate “metadata” like in Java Edition — instead, use Data Components (1.20.50+) or the damage field on ItemStack.
Details
Issue #21 requests adding damage values to item definitions in the bedrock-samples module output, useful for debugging and exploring item limits.
How Durability Works in Bedrock
Behavior Pack Definition (pre-1.20.50):
{
"format_version": "1.20.0",
"minecraft:item": {
"description": {
"identifier": "custom:my_sword"
},
"components": {
"minecraft:durability": {
"max_damage": 1561, // Diamond sword durability
"damage_chance": { "min": 1, "max": 1 }
},
"minecraft:hand_equipped": true,
"minecraft:max_stack_size": 1
}
}
}
Data Components (1.20.50+):
{
"format_version": "1.20.50",
"minecraft:item": {
"description": {
"identifier": "custom:my_sword"
},
"components": {
"minecraft:max_stack_size": 1,
"minecraft:hand_equipped": true,
"minecraft:durability": {
"max_durability": 1561,
"damage_per_attack": 1
}
}
}
}
Reading Damage Values in Scripts
Use the @minecraft/server API to inspect item damage:
import { world, ItemStack } from "@minecraft/server";
const player = world.getPlayers()[0];
const mainhand = player.getComponent("minecraft:inventory").container.getItem(0);
if (mainhand) {
// Durability component (1.20.50+)
const durability = mainhand.getComponent("minecraft:durability");
if (durability) {
console.log(`Max: ${durability.maxDurability}, Current: ${durability.damage}`);
console.log(`Remaining: ${durability.maxDurability - durability.damage}`);
}
// Legacy damage field (pre-1.20.50)
console.log(`Legacy damage value: ${mainhand.damage}`);
}
Vanilla Item Durability Reference
Common tool/weapon durability values:
- Wooden: 59
- Stone: 131
- Iron: 250
- Golden: 32
- Diamond: 1,561
- Netherite: 2,031
Last updated: 2026-07-17
