Skip to main content

Item modification

Item modification is a startup event.

ItemEvents.modification is a startup script event used to modify various properties of existing items.

ItemEvents.modification(event => {
  event.modify('minecraft:ender_pearl', item => {
    item.maxStackSize = 64
    item.fireResistant = true
    item.rarity = "UNCOMMON"
  event.modify('minecraft:ancient_debris', item => {
    item.rarity = "RARE"
    item.burnTime = 16000
  event.modify('minecraft:turtle_helmet', item => {
    item.rarity = "EPIC"
    item.maxDamage = 481
    item.craftingRemainder = Item.of('minecraft:scute').item

Available properties:

Property Value Type Description
maxStackSize int Sets the maximum stack size for items. Default is 64 for most items.
maxDamage int Sets the maximum damage an item can take before it is broken.
craftingRemainder Item Sets the item left behind in the crafting grid when this item is used as a crafting ingredient (like milk buckets in the cake recipe). Most items do not have one.
fireResistant boolean If this item burns in fire and lava. Most items are false by default, but Ancient Debris and Netherite things are not.
rarity Rarity Sets the items rarity. This is mainly used for the name colour. COMMON by default. Nether Stars and Elytra are UNCOMMON, Golden Apples are RARE and Enchanted Golden Apples are EPIC. 
burnTime int Sets the burn time (in ticks) in a regular furnace for this item. Note that Smokers and Blast Furnaces burn fuel twice as fast. Coal is 1600.
foodProperties FoodProperties Sets the items food properties to the provided properties. Can be null to remove food properties.
Sets the properties according to the consumer. See below for more info.
digSpeed float Sets the items digging speed to the number provided. See table below for defaults.
Currently BROKEN! Sets the tools tier according to the consumer. See below for more info.
attackDamage double Sets the attack damage of this item.
attackSpeed double Sets the attack speed of this item
armorProtection double

Sets the armor protection for this item. 20 is a full armour bar.

armorToughness double Adds an armor toughness bonus.
double Add an armor knockback resistance bonus. Can be negative. 1 is full knockback resistance.

Tool defaults
Tier level maxDamage digSpeed attackDamage (this is a bonus modified by the tool type value, not the final value) enchantmentValue



59 2 0 15
Stone 1 131 4 1 5
Iron 2 250 6 2 14
Diamond 3 1561 8 3 10
Gold 0 32 12 0 22
Netherite 4 2031 9 4 15
Armor defaults

All boxes with multiple values are formatted [head, chest, legs, feet]. Boxes with single values are the same for every piece.




armorToughness armorKnockbackResistance
Leather [65, 75, 80, 55] [1, 2, 3, 1] 0 0
Chain [195, 225, 240, 165]
[1, 4, 5, 2]
0 0
Iron [195, 225, 240, 165]
[2, 5, 6, 2]
0 0
Gold [91 ,105, 112, 77]
[1, 3, 5, 2]
0 0
Diamond [429, 495, 528, 363]
[3, 6, 8, 3]
2 0
Turtle (only has helmet) [325, nil, nil. nil]
[2, nil, nil, nil]
0 0
Netherite [481, 555, 592, 407]
[3, 6, 8, 3]
3 0.1
Elytra (not actually armor) [nil, 432, nil, nil] 0 0 0


Broken at the moment! Use the non tier methods instead.

ItemEvents.modification(event => {
  event.modify('golden_sword', item => {
    item.tier = tier => {
        tier.speed = 12
        tier.attackDamageBonus = 10
        tier.repairIngredient = '#forge:storage_blocks/gold'
        tier.level = 3
  event.modify('wooden_sword', item => {
    item.tier = tier => {
        tier.enchantmentValue = 30
Property Value Type Description
uses int The maximum damage before this tool breaks. Identical to maxDamage.
speed float The digging speed of this tool.
attackDamageBonus float The bonus attack damage of this tool.
level int The mining level of this tool.
enchantmentValue int The enchanting power of this tool. The higher this is, the better the enchantments at an Enchanting Table are.
repairIngredient Ingredient The material used to repair this tool in an anvil.

Doesnt actually exist/work at the moment. Sorry.


ItemEvents.modification(event => {
  event.modify('minecraft:diamond', item => {
    item.foodProperties = food => {
        food.eaten(e => e.player.tell('you ate')) // this is broken, use ItemEvents.foodEaten instead.

  event.modify('pumpkin_pie', item => {
    item.foodProperties = null // make pumpkin pies inedible
Method Parameters Description
hunger int h Sets the hunger restored when this item is eaten
saturation float s Sets the saturation mulitplier when this food is eaten. This is not the final value, it goes through some complicated maths first
meat boolean flag (optional, true by default) Sets if this item is considered meat. Meat can be fed to wolves to heal them.
boolean flag (optional, true by default)
If this item can be eaten even if your food bar is full. Chorus Fruit has this true by default.
boolean flag (optional, true by default)
If this item is fast to eat, like Dried Kelp.
ResourceLocation mobEffectId, int duration, int amplifier, float probability
Adds an effect to the entity who eats this, like a Golden Apple
removeEffect MobEffect mobEffect Removes the effect from the entity who eats this, like Honey Bottles (poison).
Consumer<FoodEatenEventJS> e
BROKEN! Use ItemEvents.foodEaten in server scripts instead.