Home Migration Guide Getting Started With Scripts Commands Examples
Generic JSON Recipes

ItemBuilder

The item builder is to… build items (surprise!)

It allows you to set various properties that will change how the item behaves and what it can do. You can also use this#withType to switch to a more specialized builder, if there exist any.

To tell CoT that you want the item to appear in-game you need to call this#build(String) and specify a valid resource location path.

This class was added by a mod with mod-id contenttweaker. So you need to have this mod installed if you want to use this feature.

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.

script.zs
import mods.contenttweaker.item.ItemBuilder;

Implemented Interfaces

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

Constructors

Creates a new ItemBuilder.
Remember that this will not create a new block in the game, you need to call this#build(String) for that.

script.zs
new ItemBuilder() as ItemBuilder
new ItemBuilder();

Methods

Instructs CoT to actually build whatever this builder is supposed to be building.

Return Type: void

script.zs
// ItemBuilder.build(resourceLocation as string) as void
new ItemBuilder().build("my_awesome_block");
ParameterTypeDescription
Parameter
resourceLocation
Type
string
Description
The resource path to give this block

Sets that this item is immune to fire

Returns: The builder, used for method chaining
Return Type: ItemBuilder

script.zs
// ItemBuilder.isImmuneToFire() as ItemBuilder
new ItemBuilder().isImmuneToFire();

Sets that this item is a food

Returns: The builder, used for method chaining
Return Type: ItemBuilder

script.zs
ItemBuilder.withFood(food as MCFood) as ItemBuilder
ParameterTypeDescription
Parameter
food
Type
MCFood
Description
the food

Allows you to set the item group that this item will appear in. By default, items will land in misc

Returns: This builder, used for method chaining
Return Type: ItemBuilder

script.zs
// ItemBuilder.withItemGroup(itemGroup as ItemGroup) as ItemBuilder
new ItemBuilder().withItemGroup(<itemGroup:misc>);
ParameterTypeDescription
Parameter
itemGroup
Type
ItemGroup
Description
The item group this item should appear in

Allows you to set the maximum damage for this item.
Be warned that this cannot be used in combination with this#withMaxStackSize!

Returns: This builder, used for method chaining
Return Type: ItemBuilder

script.zs
// ItemBuilder.withMaxDamage(maxDamage as int) as ItemBuilder
new ItemBuilder().withMaxDamage(250);
ParameterTypeDescription
Parameter
maxDamage
Type
int
Description
The maximum stack size

Allows you to set the maximum stack size for this item.
Be warned that this cannot be used in combination with this#withMaxDamage!

Returns: This builder, used for method chaining
Return Type: ItemBuilder

script.zs
// ItemBuilder.withMaxStackSize(maxStackSize as int) as ItemBuilder
new ItemBuilder().withMaxStackSize(16);
ParameterTypeDescription
Parameter
maxStackSize
Type
int
Description
The maximum stack size

Sets that this item may not be repaired in an anvil

Returns: This builder, used for method chaining
Return Type: ItemBuilder

script.zs
// ItemBuilder.withNoRepair() as ItemBuilder
new ItemBuilder().withNoRepair();

Allows you to set the item’s rarity

Returns: This builder, used for method chaining
Return Type: ItemBuilder

script.zs
// ItemBuilder.withRarity(rarity as string) as ItemBuilder
new ItemBuilder().withRarity("EPIC");
ParameterTypeDescription
Parameter
rarity
Type
string
Description
The rarity

Sets the specific type of this item. After this method is called the builder’s context will switch to the more provided type builder. That means that the methods of this builder will no longer be available, so any properties you wish to set should be set before you call this method.

Returns: A builder with the given item.
Return Type: T

script.zs
ItemBuilder.withType<T : ItemTypeBuilder>() as T
ParameterTypeDescription
Parameter
T
Type
ItemTypeBuilder
Description
The Type of item that this should become