Importing the class

Link to importing-the-class

It might be required for you to import the package if you encounter any issues (like casting an Array), so better be safe than sorry and add the import at the very top of the file.

ZenScript
Copy
import crafttweaker.api.item.MCItemStack;

Implemented Interfaces

Link to implemented-interfaces

MCItemStack implements the following interfaces. That means all methods defined in these interfaces are also available in MCItemStack

Static Properties

Link to static-properties

NameTypeHas GetterHas Setter
Name
BASE_ATTACK_DAMAGE_UUID
Type
invalid
Has Getter
true
Has Setter
false
Name
BASE_ATTACK_SPEED_UUID
Type
invalid
Has Getter
true
Has Setter
false
Name
CRAFTTWEAKER_DATA_KEY
Type
string
Has Getter
true
Has Setter
false
Result TypeIs Implicit
Result Type
IIngredientWithAmount
Is Implicit
true
Result Type
ItemDefinition
Is Implicit
true
Result Type
ItemLike
Is Implicit
true
Result Type
MapData
Is Implicit
true
Result Type
Percentaged<IItemStack>
Is Implicit
true

Link to addGlobalAttributeModifier

Name: addGlobalAttributeModifier

Adds an AttributeModifier to this IIngredient.

Attributes added with this method appear on all ItemStacks that match this IIngredient, regardless of how or when the ItemStack was made, if you want to have the attribute on a single specific ItemStack (such as a specific Diamond Sword made in a recipe), then you should use IItemStack#withAttributeModifier

ZenScript
Copy
// MCItemStack.addGlobalAttributeModifier(attribute as Attribute, name as string, value as double, operation as AttributeOperation, slotTypes as EquipmentSlot[])

myMCItemStack.addGlobalAttributeModifier(<attribute:minecraft:generic.attack_damage>, "Extra Power", 10, AttributeOperation.ADDITION, [<constant:minecraft:equipmentslot:chest>]);
ParameterTypeDescription
Parameter
attribute
Type
Attribute
Description
The Attribute of the modifier.
Parameter
name
Type
string
Description
The name of the modifier.
Parameter
value
Type
double
Description
The value of the modifier.
Parameter
operation
Type
AttributeOperation
Description
The operation of the modifier.
Parameter
slotTypes
Type
EquipmentSlot[]
Description
What slots the modifier is valid for.

Link to addGlobalAttributeModifier

Name: addGlobalAttributeModifier

Adds an AttributeModifier to this IIngredient using a specific UUID.

The UUID can be used to override an existing attribute on an ItemStack with this new modifier. You can use /ct hand attributes to get the UUID of the attributes on an ItemStack.

Attributes added with this method appear on all ItemStacks that match this IIngredient, regardless of how or when the ItemStack was made, if you want to have the attribute on a single specific ItemStack (such as a specific Diamond Sword made in a recipe), then you should use IItemStack#withAttributeModifier

ZenScript
Copy
// MCItemStack.addGlobalAttributeModifier(attribute as Attribute, uuid as invalid, name as string, value as double, operation as AttributeOperation, slotTypes as EquipmentSlot[])

myMCItemStack.addGlobalAttributeModifier(<attribute:minecraft:generic.attack_damage>, IItemStack.BASE_ATTACK_DAMAGE_UUID, "Extra Power", 10, AttributeOperation.ADDITION, [<constant:minecraft:equipmentslot:chest>]);
ParameterTypeDescription
Parameter
attribute
Type
Attribute
Description
The Attribute of the modifier.
Parameter
uuid
Type
invalid
Description
The unique identifier of the modifier to replace.
Parameter
name
Type
string
Description
The name of the modifier.
Parameter
value
Type
double
Description
The value of the modifier.
Parameter
operation
Type
AttributeOperation
Description
The operation of the modifier.
Parameter
slotTypes
Type
EquipmentSlot[]
Description
What slots the modifier is valid for.

Link to addGlobalAttributeModifier

Name: addGlobalAttributeModifier

Adds an AttributeModifier to this IIngredient using a specific UUID.

The UUID can be used to override an existing attribute on an ItemStack with this new modifier. You can use /ct hand attributes to get the UUID of the attributes on an ItemStack.

Attributes added with this method appear on all ItemStacks that match this IIngredient, regardless of how or when the ItemStack was made, if you want to have the attribute on a single specific ItemStack (such as a specific Diamond Sword made in a recipe), then you should use IItemStack#withAttributeModifier

ZenScript
Copy
// MCItemStack.addGlobalAttributeModifier(attribute as Attribute, uuid as string, name as string, value as double, operation as AttributeOperation, slotTypes as EquipmentSlot[])

myMCItemStack.addGlobalAttributeModifier(<attribute:minecraft:generic.attack_damage>, "8c1b5535-9f79-448b-87ae-52d81480aaa3", "Extra Power", 10, AttributeOperation.ADDITION, [<constant:minecraft:equipmentslot:chest>]);
ParameterTypeDescription
Parameter
attribute
Type
Attribute
Description
The Attribute of the modifier.
Parameter
uuid
Type
string
Description
The unique identifier of the modifier to replace.
Parameter
name
Type
string
Description
The name of the modifier.
Parameter
value
Type
double
Description
The value of the modifier.
Parameter
operation
Type
AttributeOperation
Description
The operation of the modifier.
Parameter
slotTypes
Type
EquipmentSlot[]
Description
What slots the modifier is valid for.

Name: addShiftTooltip

ZenScript
Copy
MCItemStack.addShiftTooltip(content as Component, showMessage as Component)
ParameterTypeOptional
Parameter
content
Type
Component
Optional
false
Parameter
showMessage
Type
Component
Optional
true

Name: addTooltip

ZenScript
Copy
MCItemStack.addTooltip(content as Component)
ParameterType
Parameter
content
Type
Component

Name: anyDamage

Return Type: IngredientConditioned<IIngredient>

ZenScript
Copy
// MCItemStack.anyDamage() as IngredientConditioned<IIngredient>

myMCItemStack.anyDamage();

Link to asIIngredientWithAmount

Name: asIIngredientWithAmount

Return Type: IIngredientWithAmount

ZenScript
Copy
// MCItemStack.asIIngredientWithAmount() as IIngredientWithAmount

myMCItemStack.asIIngredientWithAmount();

Name: asItemLike

Return Type: ItemLike

ZenScript
Copy
// MCItemStack.asItemLike() as ItemLike

myMCItemStack.asItemLike();

Name: clearTooltip

ZenScript
Copy
MCItemStack.clearTooltip(leaveName as boolean)
ParameterTypeOptionalDefault Value
Parameter
leaveName
Type
boolean
Optional
true
Default Value
false

Name: contains

Does the ingredient contain the given ingredient?

Return Type: boolean

ZenScript
Copy
// MCItemStack.contains(ingredient as IIngredient) as boolean

myMCItemStack.contains((<item:minecraft:iron_ingot> | <item:minecraft:gold_ingot>));
ParameterTypeDescription
Parameter
ingredient
Type
IIngredient
Description
The ingredient to check

Name: getAttributes

Gets the Attributes and the AttributeModifiers on this IItemStack for the given EquipmentSlot

Returns: A Map of Attribute to a List of AttributeModifier for the given EquipmentSlot.
Return Type: stdlib.List<AttributeModifier>[Attribute]

ZenScript
Copy
// MCItemStack.getAttributes(slotType as EquipmentSlot) as stdlib.List<AttributeModifier>[Attribute]

myMCItemStack.getAttributes(<constant:minecraft:equipmentslot:chest>);
ParameterTypeDescription
Parameter
slotType
Type
EquipmentSlot
Description
The slot to get the Attributes for.

Name: getBurnTime

Return Type: int

ZenScript
Copy
MCItemStack.getBurnTime(manager as IRecipeManager) as int
ParameterType
Parameter
manager
Type
IRecipeManager

Name: getDefinition

Return Type: ItemDefinition

ZenScript
Copy
// MCItemStack.getDefinition() as ItemDefinition

myMCItemStack.getDefinition();

Link to getEnchantmentLevel

Name: getEnchantmentLevel

Gets the level of the given enchantment on the item. Returns 0 if the item doesn't have the given enchantment.

Return Type: int

ZenScript
Copy
MCItemStack.getEnchantmentLevel(enchantment as Enchantment) as int
ParameterType
Parameter
enchantment
Type
Enchantment

Name: getEnchantments

Return Type: int?[Enchantment]

ZenScript
Copy
// MCItemStack.getEnchantments() as int?[Enchantment]

myMCItemStack.getEnchantments();

Name: getFood

Return Type: FoodProperties?

ZenScript
Copy
// MCItemStack.getFood() as FoodProperties?

myMCItemStack.getFood();

Name: getHoverName

Gets the hover name of the ItemStack.

This will give the raw name without the formatting that 'displayName' applies.

Returns: The hover name of the ItemStack.
Return Type: Component

ZenScript
Copy
// MCItemStack.getHoverName() as Component

myMCItemStack.getHoverName();

Link to getImmutableInternal

Name: getImmutableInternal

Return Type: ItemStack

ZenScript
Copy
// MCItemStack.getImmutableInternal() as ItemStack

myMCItemStack.getImmutableInternal();

Name: getMaxStackSize

Returns the max stack size of the Item in the ItemStack

Returns: Max stack size of the Item.
Return Type: int

ZenScript
Copy
// MCItemStack.getMaxStackSize() as int

myMCItemStack.getMaxStackSize();

Name: getOrCreateTag

Returns the NBT tag attached to this ItemStack or makes a new tag.

Returns: MapData of the ItemStack NBT Tag, empty tag if it doesn't exist.
Return Type: MapData

ZenScript
Copy
// MCItemStack.getOrCreateTag() as MapData

myMCItemStack.getOrCreateTag();

Name: getRarity

Returns the rarity of the Item in the ItemStack

Returns: Rarity of the Item.
Return Type: Rarity

ZenScript
Copy
// MCItemStack.getRarity() as Rarity

myMCItemStack.getRarity();

Name: grow

Grows this IItemStack's stack size by the given amount, or 1 if no amount is given.

Returns: This IItemStack if mutable, a new one with the new amount otherwise.
Return Type: IItemStack

ZenScript
Copy
// MCItemStack.grow(amount as int) as IItemStack

myMCItemStack.grow(2);
ParameterTypeDescriptionOptionalDefault Value
Parameter
amount
Type
int
Description
The amount to grow by.
Optional
true
Default Value
1

Name: isEdible

Return Type: boolean

ZenScript
Copy
// MCItemStack.isEdible() as boolean

myMCItemStack.isEdible();

Name: isFireResistant

Checks if this IItemStack burns when thrown into fire / lava or damaged by fire.

Returns: True if this IItemStack is immune to fire. False otherwise.
Return Type: boolean

ZenScript
Copy
// MCItemStack.isFireResistant() as boolean

myMCItemStack.isFireResistant();

Name: isMutable

Return Type: boolean

ZenScript
Copy
// MCItemStack.isMutable() as boolean

myMCItemStack.isMutable();

Name: matches

Does the given stack match the ingredient?

Return Type: boolean

ZenScript
Copy
// MCItemStack.matches(stack as IItemStack) as boolean

myMCItemStack.matches(<item:minecraft:iron_ingot>);
ParameterTypeDescription
Parameter
stack
Type
IItemStack
Description
The stack to check

Link to modifyShiftTooltip

Name: modifyShiftTooltip

ZenScript
Copy
MCItemStack.modifyShiftTooltip(shiftedFunction as ITooltipFunction, unshiftedFunction as ITooltipFunction)
ParameterTypeOptional
Parameter
shiftedFunction
Type
ITooltipFunction
Optional
false
Parameter
unshiftedFunction
Type
ITooltipFunction
Optional
true

Name: modifyTooltip

ZenScript
Copy
MCItemStack.modifyTooltip(function as ITooltipFunction)
ParameterType
Parameter
function
Type
ITooltipFunction

Name: mul

Use this in contexts where machines accept more than one item to state that fact.

Return Type: IIngredientWithAmount

ZenScript
Copy
MCItemStack.mul(amount as int) as IIngredientWithAmount
ParameterType
Parameter
amount
Type
int

Name: only

Use this if you already have the condition from another ingredient

Return Type: IngredientConditioned<IIngredient>

ZenScript
Copy
MCItemStack.only(condition as IIngredientCondition<IIngredient>) as IngredientConditioned<IIngredient>
ParameterType
Parameter
condition
Type
IIngredientCondition<IIngredient>

Name: onlyDamaged

Return Type: IngredientConditioned<IIngredient>

ZenScript
Copy
// MCItemStack.onlyDamaged() as IngredientConditioned<IIngredient>

myMCItemStack.onlyDamaged();

Link to onlyDamagedAtLeast

Name: onlyDamagedAtLeast

Return Type: IngredientConditioned<IIngredient>

ZenScript
Copy
MCItemStack.onlyDamagedAtLeast(minDamage as int) as IngredientConditioned<IIngredient>
ParameterType
Parameter
minDamage
Type
int

Link to onlyDamagedAtMost

Name: onlyDamagedAtMost

Return Type: IngredientConditioned<IIngredient>

ZenScript
Copy
MCItemStack.onlyDamagedAtMost(maxDamage as int) as IngredientConditioned<IIngredient>
ParameterType
Parameter
maxDamage
Type
int

Name: onlyIf

Return Type: IngredientConditioned<IIngredient>

ZenScript
Copy
MCItemStack.onlyIf(uid as string, function as Predicate<IItemStack>) as IngredientConditioned<IIngredient>
ParameterTypeOptional
Parameter
uid
Type
string
Optional
false
Parameter
function
Type
Predicate<IItemStack>
Optional
true

Name: percent

Return Type: Percentaged<IItemStack>

ZenScript
Copy
MCItemStack.percent(percentage as double) as Percentaged<IItemStack>
ParameterType
Parameter
percentage
Type
double

Link to removeEnchantment

Name: removeEnchantment

Removes the given enchantment from this IItemStack.

Returns: This itemStack if it is mutable, a new one with the enchantment removed otherwise
Return Type: IItemStack

ZenScript
Copy
// MCItemStack.removeEnchantment(enchantment as Enchantment) as IItemStack

myMCItemStack.removeEnchantment(<enchantment:minecraft:riptide>);
ParameterTypeDescription
Parameter
enchantment
Type
Enchantment
Description
The enchantment to remove.

Link to removeGlobalAttribute

Name: removeGlobalAttribute

Removes all AttributeModifiers that use the given Attribute from this IIngredient.

Attributes removed with this method are removed from ItemStacks that match this IIngredient, regardless of how or when the ItemStack was made, if you want to remove the attribute on a single specific ItemStack (such as a specific Diamond Sword made in a recipe), then you should use IItemStack#withoutAttribute.

This method can only remove default Attributes from an ItemStack, it is still possible that an ItemStack can override it.

ZenScript
Copy
// MCItemStack.removeGlobalAttribute(attribute as Attribute, slotTypes as EquipmentSlot[])

myMCItemStack.removeGlobalAttribute(<attribute:minecraft:generic.attack_damage>, [<constant:minecraft:equipmentslot:chest>]);
ParameterTypeDescription
Parameter
attribute
Type
Attribute
Description
The attribute to remove.
Parameter
slotTypes
Type
EquipmentSlot[]
Description
The slot types to remove it from.

Link to removeGlobalAttributeModifier

Name: removeGlobalAttributeModifier

Removes all AttributeModifiers who's ID is the same as the given uuid from this IIngredient.

ZenScript
Copy
// MCItemStack.removeGlobalAttributeModifier(uuid as invalid, slotTypes as EquipmentSlot[])

myMCItemStack.removeGlobalAttributeModifier(IItemStack.BASE_ATTACK_DAMAGE_UUID, [<constant:minecraft:equipmentslot:chest>]);
ParameterTypeDescription
Parameter
uuid
Type
invalid
Description
The unique id of the AttributeModifier to remove.
Parameter
slotTypes
Type
EquipmentSlot[]
Description
The slot types to remove it from.

Link to removeGlobalAttributeModifier

Name: removeGlobalAttributeModifier

Removes all AttributeModifiers who's ID is the same as the given uuid from this IIngredient.

ZenScript
Copy
// MCItemStack.removeGlobalAttributeModifier(uuid as string, slotTypes as EquipmentSlot[])

myMCItemStack.removeGlobalAttributeModifier("8c1b5535-9f79-448b-87ae-52d81480aaa3", [<constant:minecraft:equipmentslot:chest>]);
ParameterTypeDescription
Parameter
uuid
Type
string
Description
The unique id of the AttributeModifier to remove.
Parameter
slotTypes
Type
EquipmentSlot[]
Description
The slot types to remove it from.

Name: removeTooltip

ZenScript
Copy
MCItemStack.removeTooltip(regex as string)
ParameterType
Parameter
regex
Type
string

Name: resetHoverName

Clears any custom name set for this ItemStack

ZenScript
Copy
// MCItemStack.resetHoverName()

myMCItemStack.resetHoverName();

Name: reuse

Return Type: IIngredientTransformed<IIngredient>

ZenScript
Copy
// MCItemStack.reuse() as IIngredientTransformed<IIngredient>

myMCItemStack.reuse();

Name: setBurnTime

Sets the burn time of this ingredient, for use in the furnace and other machines

ZenScript
Copy
// MCItemStack.setBurnTime(time as int)

myMCItemStack.setBurnTime(500);
ParameterTypeDescription
Parameter
time
Type
int
Description
the new burn time

Name: setBurnTime

Sets the burn time of this ingredient, for use in the furnace and other machines

ZenScript
Copy
MCItemStack.setBurnTime(time as int, manager as IRecipeManager)
ParameterTypeDescription
Parameter
time
Type
int
Description
the new burn time
Parameter
manager
Type
IRecipeManager
Description
​

Name: setEnchantments

Sets the enchantments on this IItemStack.

Returns: This itemStack if it is mutable, a new one with the enchantments otherwise
Return Type: IItemStack

ZenScript
Copy
MCItemStack.setEnchantments(enchantments as int?[Enchantment]) as IItemStack
ParameterTypeDescription
Parameter
enchantments
Type
int?[Enchantment]
Description
The new enchantments

Link to setFireResistant

Name: setFireResistant

Sets if this IItemStack is immune to fire / lava.

If true, the item will not burn when thrown into fire or lava.

ZenScript
Copy
MCItemStack.setFireResistant(fireResistant as boolean)
ParameterTypeDescription
Parameter
fireResistant
Type
boolean
Description
Should the item be immune to fire.

Name: setFood

ZenScript
Copy
MCItemStack.setFood(food as FoodProperties?)
ParameterType
Parameter
food
Type
FoodProperties?

Name: setMaxStackSize

Sets the max stacksize of the Item.

ZenScript
Copy
// MCItemStack.setMaxStackSize(newMaxStackSize as int)

myMCItemStack.setMaxStackSize(16);
ParameterTypeDescription
Parameter
newMaxStackSize
Type
int
Description
The new max stack size of the Item.

Name: setRarity

Sets the rarity of the Item.

ZenScript
Copy
// MCItemStack.setRarity(newRarity as Rarity)

myMCItemStack.setRarity(Rarity.UNCOMMON);
ParameterTypeDescription
Parameter
newRarity
Type
Rarity
Description
The new rarity of the Item.

Name: shrink

Shrinks this IItemStack's stack size by the given amount, or 1 if no amount is given.

Returns: This IItemStack if mutable, a new one with the new amount otherwise.
Return Type: IItemStack

ZenScript
Copy
// MCItemStack.shrink(amount as int) as IItemStack

myMCItemStack.shrink(2);
ParameterTypeDescriptionOptionalDefault Value
Parameter
amount
Type
int
Description
The amount to shrink by.
Optional
true
Default Value
1

Name: transform

Use this if you already have the transformer from another ingredient

Return Type: IIngredientTransformed<IIngredient>

ZenScript
Copy
MCItemStack.transform(transformer as IIngredientTransformer<IIngredient>) as IIngredientTransformed<IIngredient>
ParameterType
Parameter
transformer
Type
IIngredientTransformer<IIngredient>

Name: transformCustom

Return Type: IIngredientTransformed<IIngredient>

ZenScript
Copy
MCItemStack.transformCustom(uid as string, function as Function<IItemStack,IItemStack>) as IIngredientTransformed<IIngredient>
ParameterTypeOptional
Parameter
uid
Type
string
Optional
false
Parameter
function
Type
Function<IItemStack,IItemStack>
Optional
true

Name: transformDamage

Return Type: IIngredientTransformed<IIngredient>

ZenScript
Copy
MCItemStack.transformDamage(amount as int) as IIngredientTransformed<IIngredient>
ParameterTypeOptionalDefault Value
Parameter
amount
Type
int
Optional
true
Default Value
1

Link to transformReplace

Name: transformReplace

Return Type: IIngredientTransformed<IIngredient>

ZenScript
Copy
MCItemStack.transformReplace(replaceWith as IItemStack) as IIngredientTransformed<IIngredient>
ParameterType
Parameter
replaceWith
Type
IItemStack

Link to withAttributeModifier

Name: withAttributeModifier

Adds an AttributeModifier to this IItemStack.

The UUID can be used to override an existing attribute on an ItemStack with this new modifier. You can use /ct hand attributes to get the UUID of the attributes on an ItemStack.

Attributes added with this method will only appear on this specific IItemStack.

By defaults, adding a modifier will remove the default Attribute Modifiers on the Item, like the Diamond Chestplate's Armor and Toughness values. When preserveDefaults is set to true (by default it is false.), the default Attribute Modifiers will be preserved when adding this modifier. This means that if you were adding the forge:nametag_distance attribute to an Item, it would keep its default attributes (like Armor and Toughness values).

Return Type: IItemStack

ZenScript
Copy
// MCItemStack.withAttributeModifier(attribute as Attribute, name as string, value as double, operation as AttributeOperation, slotTypes as EquipmentSlot[], preserveDefaults as boolean) as IItemStack

myMCItemStack.withAttributeModifier(<attribute:minecraft:generic.attack_damage>, "Extra Power", 10, AttributeOperation.ADDITION, [<constant:minecraft:equipmentslot:chest>], true);
ParameterTypeDescriptionOptionalDefault Value
Parameter
attribute
Type
Attribute
Description
The Attribute of the modifier.
Optional
false
Default Value
​
Parameter
name
Type
string
Description
The name of the modifier.
Optional
false
Default Value
​
Parameter
value
Type
double
Description
The value of the modifier.
Optional
false
Default Value
​
Parameter
operation
Type
AttributeOperation
Description
The operation of the modifier.
Optional
false
Default Value
​
Parameter
slotTypes
Type
EquipmentSlot[]
Description
What slots the modifier is valid for.
Optional
false
Default Value
​
Parameter
preserveDefaults
Type
boolean
Description
Should the default Item Attribute Modifiers be preserved when adding this modifier.
Optional
true
Default Value
false

Link to withAttributeModifier

Name: withAttributeModifier

Adds an AttributeModifier to this IItemStack using a specific UUID.

The UUID can be used to override an existing attribute on an ItemStack with this new modifier. You can use /ct hand attributes to get the UUID of the attributes on an ItemStack.

Attributes added with this method will only appear on this specific IItemStack.

By defaults, adding a modifier will remove the default Attribute Modifiers on the Item, like the Diamond Chestplate's Armor and Toughness values. When preserveDefaults is set to true (by default it is false.), the default Attribute Modifiers will be preserved when adding this modifier. This means that if you were adding the forge:nametag_distance attribute to an Item, it would keep its default attributes (like Armor and Toughness values).

Return Type: IItemStack

ZenScript
Copy
// MCItemStack.withAttributeModifier(attribute as Attribute, uuid as invalid, name as string, value as double, operation as AttributeOperation, slotTypes as EquipmentSlot[], preserveDefaults as boolean) as IItemStack

myMCItemStack.withAttributeModifier(<attribute:minecraft:generic.attack_damage>, "8c1b5535-9f79-448b-87ae-52d81480aaa3", "Extra Power", 10, AttributeOperation.ADDITION, [<constant:minecraft:equipmentslot:chest>], true);
ParameterTypeDescriptionOptionalDefault Value
Parameter
attribute
Type
Attribute
Description
The Attribute of the modifier.
Optional
false
Default Value
​
Parameter
uuid
Type
invalid
Description
The unique identifier of the modifier to replace.
Optional
false
Default Value
​
Parameter
name
Type
string
Description
The name of the modifier.
Optional
false
Default Value
​
Parameter
value
Type
double
Description
The value of the modifier.
Optional
false
Default Value
​
Parameter
operation
Type
AttributeOperation
Description
The operation of the modifier.
Optional
false
Default Value
​
Parameter
slotTypes
Type
EquipmentSlot[]
Description
What slots the modifier is valid for.
Optional
false
Default Value
​
Parameter
preserveDefaults
Type
boolean
Description
Should the default Item Attribute Modifiers be preserved when adding this modifier.
Optional
true
Default Value
false

Link to withAttributeModifier

Name: withAttributeModifier

Adds an AttributeModifier to this IItemStack using a specific UUID.

The UUID can be used to override an existing attribute on an ItemStack with this new modifier. You can use /ct hand attributes to get the UUID of the attributes on an ItemStack.

Attributes added with this method will only appear on this specific IItemStack.

By defaults, adding a modifier will remove the default Attribute Modifiers on the Item, like the Diamond Chestplate's Armor and Toughness values. When preserveDefaults is set to true (by default it is false.), the default Attribute Modifiers will be preserved when adding this modifier. This means that if you were adding the forge:nametag_distance attribute to an Item, it would keep its default attributes (like Armor and Toughness values).

Return Type: IItemStack

ZenScript
Copy
// MCItemStack.withAttributeModifier(attribute as Attribute, uuid as string, name as string, value as double, operation as AttributeOperation, slotTypes as EquipmentSlot[], preserveDefaults as boolean) as IItemStack

myMCItemStack.withAttributeModifier(<attribute:minecraft:generic.attack_damage>, "8c1b5535-9f79-448b-87ae-52d81480aaa3", "Extra Power", 10, AttributeOperation.ADDITION, [<constant:minecraft:equipmentslot:chest>], true);
ParameterTypeDescriptionOptionalDefault Value
Parameter
attribute
Type
Attribute
Description
The Attribute of the modifier.
Optional
false
Default Value
​
Parameter
uuid
Type
string
Description
The unique identifier of the modifier to replace.
Optional
false
Default Value
​
Parameter
name
Type
string
Description
The name of the modifier.
Optional
false
Default Value
​
Parameter
value
Type
double
Description
The value of the modifier.
Optional
false
Default Value
​
Parameter
operation
Type
AttributeOperation
Description
The operation of the modifier.
Optional
false
Default Value
​
Parameter
slotTypes
Type
EquipmentSlot[]
Description
What slots the modifier is valid for.
Optional
false
Default Value
​
Parameter
preserveDefaults
Type
boolean
Description
Should the default Item Attribute Modifiers be preserved when adding this modifier.
Optional
true
Default Value
false

Name: withDamage

Sets the damage of the ItemStack

Return Type: IItemStack

ZenScript
Copy
// MCItemStack.withDamage(damage as int) as IItemStack

myMCItemStack.withDamage(10);
ParameterTypeDescription
Parameter
damage
Type
int
Description
the new damage value

Name: withDisplayName

Sets the display name of the ItemStack

Return Type: IItemStack

ZenScript
Copy
// MCItemStack.withDisplayName(name as Component) as IItemStack

myMCItemStack.withDisplayName("totally not dirt");
ParameterTypeDescription
Parameter
name
Type
Component
Description
New name of the stack.

Name: withEnchantment

Enchants this IItemStack with the given Enchantment.

Returns: This itemStack if it is mutable, a new one with the enchantment added otherwise
Return Type: IItemStack

ZenScript
Copy
// MCItemStack.withEnchantment(enchantment as Enchantment, level as int) as IItemStack

myMCItemStack.withEnchantment(<enchantment:minecraft:riptide>, 2);
ParameterTypeDescriptionOptionalDefault Value
Parameter
enchantment
Type
Enchantment
Description
The enchantment to add.
Optional
false
Default Value
​
Parameter
level
Type
int
Description
The level of the enchantment
Optional
true
Default Value
1

Name: withLore

Sets the lore of the ItemStack

Return Type: IItemStack

ZenScript
Copy
// MCItemStack.withLore(lore as Component?[]) as IItemStack

myMCItemStack.withLore(new crafttweaker.api.text.TextComponent("I am the lore I speak for the trees"););
ParameterTypeDescription
Parameter
lore
Type
Component?[]
Description
the new Lore of the ItemStack.

Name: withTag

Sets the tag for the ItemStack.

Returns: This itemStack if it is mutable, a new one with the changed property otherwise
Return Type: IItemStack

ZenScript
Copy
// MCItemStack.withTag(tag as MapData) as IItemStack

myMCItemStack.withTag({Display: {lore: ["Hello"]}});
ParameterTypeDescription
Parameter
tag
Type
MapData
Description
The tag to set.

Name: withoutTag

Removes the tag from this ItemStack.

Returns: This itemStack if it is mutable, a new one with the changed property otherwise
Return Type: IItemStack

ZenScript
Copy
// MCItemStack.withoutTag() as IItemStack

myMCItemStack.withoutTag();

Name: CONTAINS

Does the ingredient contain the given ingredient?

ZenScript
Copy
ingredient as IIngredient in myMCItemStack
(<item:minecraft:iron_ingot> | <item:minecraft:gold_ingot>) in myMCItemStack

Name: EQUALS

ZenScript
Copy
myMCItemStack == o as Object

Name: MOD

ZenScript
Copy
myMCItemStack % percentage as double

Name: MUL

Use this in contexts where machines accept more than one item to state that fact.

ZenScript
Copy
myMCItemStack * amount as int

Name: OR

ZenScript
Copy
myMCItemStack | other as IIngredient
NameTypeHas GetterHas SetterDescription
Name
amount
Type
int
Has Getter
true
Has Setter
false
Description
Gets the amount of Items in the ItemStack
Name
baseRepairCost
Type
int
Has Getter
true
Has Setter
false
Description
Gets the base repair cost of the ItemStack, or 0 if no repair is defined.
Name
burnTime
Type
void
Has Getter
false
Has Setter
true
Description
Sets the burn time of this ingredient, for use in the furnace and other machines
Name
damage
Type
int
Has Getter
true
Has Setter
false
Description
​
Name
damageableItem
Type
boolean
Has Getter
true
Has Setter
false
Description
Returns if the ItemStack is damageable
I.E Swords and tools are damageable, sticks are not.
Name
damaged
Type
boolean
Has Getter
true
Has Setter
false
Description
Returns if the ItemStack is damaged
I.E a Swords that is no at full durability is damaged.
Name
definition
Type
ItemDefinition
Has Getter
true
Has Setter
false
Description
​
Name
descriptionId
Type
string
Has Getter
true
Has Setter
false
Description
Returns the unlocalized Name of the Item in the ItemStack
Name
displayName
Type
Component
Has Getter
true
Has Setter
false
Description
Gets the display name of the ItemStack
Name
enchantments
Type
int?[Enchantment]
Has Getter
true
Has Setter
true
Description
​
Name
fireResistant
Type
boolean
Has Getter
true
Has Setter
true
Description
Checks if this IItemStack burns when thrown into fire / lava or damaged by fire.
Name
food
Type
FoodProperties?
Has Getter
true
Has Setter
true
Description
​
Name
hasCustomHoverName
Type
boolean
Has Getter
true
Has Setter
false
Description
Returns true if the ItemStack has a display name.
Name
hasFoil
Type
boolean
Has Getter
true
Has Setter
false
Description
Returns true if this ItemStack has a foil effect.

Foil is the glint / effect that is added to enchanted ItemStacks (and other items).
Name
hasTag
Type
boolean
Has Getter
true
Has Setter
false
Description
Returns true if this ItemStack has a Tag
Name
hoverName
Type
Component
Has Getter
true
Has Setter
false
Description
Gets the hover name of the ItemStack.

This will give the raw name without the formatting that 'displayName' applies.
Name
isEdible
Type
boolean
Has Getter
true
Has Setter
false
Description
​
Name
isEnchantable
Type
boolean
Has Getter
true
Has Setter
false
Description
Can this ItemStack be enchanted?
Name
isEnchanted
Type
boolean
Has Getter
true
Has Setter
false
Description
Is this ItemStack enchanted?
Name
isMutable
Type
boolean
Has Getter
true
Has Setter
false
Description
​
Name
maxDamage
Type
int
Has Getter
true
Has Setter
true
Description
Returns the max damage of the ItemStack
This is the max durability of the ItemStack.
Name
maxStackSize
Type
int
Has Getter
true
Has Setter
true
Description
Returns the max stack size of the Item in the ItemStack
Name
owner
Type
string
Has Getter
true
Has Setter
false
Description
Gets owning mod for the Item in this IItemStack
Name
rarity
Type
Rarity
Has Getter
true
Has Setter
true
Description
Returns the rarity of the Item in the ItemStack
Name
registryName
Type
ResourceLocation
Has Getter
true
Has Setter
false
Description
Gets the registry name for the Item in this IItemStack
Name
stackable
Type
boolean
Has Getter
true
Has Setter
false
Description
Returns if the ItemStack can have an amount greater than 1
I.E Swords and tools are not stackable, sticks are.
Name
tag
Type
MapData?
Has Getter
true
Has Setter
false
Description
Returns the NBT tag attached to this ItemStack.
Name
useDuration
Type
int
Has Getter
true
Has Setter
false
Description
Gets the use duration of the ItemStack
Name
useOnRelease
Type
boolean
Has Getter
true
Has Setter
false
Description
Returns true if this stack is considered a crossbow item