A loot table is used to determine what is dropped when the game needs to drop loot.

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.loot.LootTable;

Name: fill

Fills the given container with loot rolled by this table.

ZenScript
Copy
LootTable.fill(container as Container, context as LootContext)
ParameterTypeDescription
Parameter
container
Type
Container
Description
The container to fill.
Parameter
context
Type
LootContext
Description
The context that will generate the loot.

Name: getParamSet

Gets the param set that this table uses.

Returns: The param set that this table uses.
Return Type: LootContextParamSet

ZenScript
Copy
// LootTable.getParamSet() as LootContextParamSet

lootTables.getTable(<resource:minecraft:gameplay/cat_morning_gift>).getParamSet();

Name: getRandomItems

Rolls this table and returns the rolled items in a list.

NOTE: The provided LootContext should not be reused from a loot modifier, if you want to reuse a context, look at invalid#copy(LootContext).

Returns: A list containing all the rolled items.
Return Type: stdlib.List<IItemStack>

ZenScript
Copy
// LootTable.getRandomItems(context as LootContext) as stdlib.List<IItemStack>

lootTables.getTable(<resource:minecraft:gameplay/cat_morning_gift>).getRandomItems(new LootContextBuilder(level).withParameter<Vec3>(LootContextParams.origin(), player.position).withParameter<Entity>(LootContextParams.thisEntity(), player).create(LootContextParamSets.gift()));
ParameterTypeDescription
Parameter
context
Type
LootContext
Description
The context that this loot was generated.

Name: getRandomItems

Rolls this table and passes all the rolled items to the given Consumer<[IItemStack](/vanilla/api/item/IItemStack)>

NOTE: This method does respect max stack sizes NOTE: The provided LootContext should not be reused from a loot modifier, if you want to reuse a context, look at invalid#copy(LootContext).

ZenScript
Copy
// LootTable.getRandomItems(context as LootContext, stackConsumer as Consumer<IItemStack>)

lootTables.getTable(<resource:minecraft:gameplay/cat_morning_gift>).getRandomItems(new LootContextBuilder(level).withParameter<Vec3>(LootContextParams.origin(), player.position).withParameter<Entity>(LootContextParams.thisEntity(), player).create(LootContextParamSets.gift()), (stack) => {

 println(stack.commandString);
 });
ParameterTypeDescription
Parameter
context
Type
LootContext
Description
The context that will generate the loot.
Parameter
stackConsumer
Type
Consumer<IItemStack>
Description
A consumer to act on the rolled stacks.

Link to getRandomItemsRaw

Name: getRandomItemsRaw

Rolls this table and passes all the rolled items to the given Consumer<[IItemStack](/vanilla/api/item/IItemStack)>

NOTE: This method does not respect max stack sizes! NOTE: The provided LootContext should not be reused from a loot modifier, if you want to reuse a context, look at invalid#copy(LootContext).

ZenScript
Copy
// LootTable.getRandomItemsRaw(context as LootContext, stackConsumer as Consumer<IItemStack>)

lootTables.getTable(<resource:minecraft:gameplay/cat_morning_gift>).getRandomItemsRaw(new LootContextBuilder(level).withParameter<Vec3>(LootContextParams.origin(), player.position).withParameter<Entity>(LootContextParams.thisEntity(), player).create(LootContextParamSets.gift()), (stack) => {

 println(stack.commandString);
 });
ParameterTypeDescription
Parameter
context
Type
LootContext
Description
The context that will generate the loot.
Parameter
stackConsumer
Type
Consumer<IItemStack>
Description
A consumer to act on the rolled stacks.
NameTypeHas GetterHas SetterDescription
Name
paramSet
Type
LootContextParamSet
Has Getter
true
Has Setter
false
Description
Gets the param set that this table uses.