LootJS: KubeJS Addon

LootJS: KubeJS Addon

Mod

A Minecraft mod for packdevs to easily modify the loot system with KubeJS.

Client and server Utility

146.6k downloads
17 followers
Created2 years ago
Updated3 months ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

📑 Overview

This is a mod for Forge or Fabric and needs KubeJS.

✏️ Your first loot modification

Loot modifications are handled server side. So all your scripts will go into your your_minecraft_instance/kubejs/server_scripts directory. Just create a .js file and let's get started.

Here's simple example which adds a gunpowder for creepers:

onEvent("lootjs", (event) => {
    event
        .addEntityLootModifier("minecraft:creeper")
        .randomChance(0.3) // 30% chance
        .thenAdd("minecraft:gunpowder");
});

Instead of using a loot table for reference, you can also apply the modification to all entities:

onEvent("lootjs", (event) => {
    event
        .addLootTypeModifier(LootType.ENTITY) // you also can use multiple types
        .logName("It's raining loot") // you can set a custom name for logging
        .weatherCheck({
            raining: true,
        })
        .thenModify(Ingredient.getAll(), (itemStack) => {
            // you have to return an item!
            return itemStack.withCount(itemStack.getCount() * 2);
        });
});

Next, let's check if the player holds a specific item:

onEvent("lootjs", (event) => {
    event
        .addBlockLootModifier("#forge:ores") // keep in mind this is a block tag not an item tag
        .matchEquip(EquipmentSlot.MAINHAND, Item.of("minecraft:netherite_pickaxe").ignoreNBT())
        .thenAdd("minecraft:gravel");

    // for MainHand and OffHand you can also use:
    // matchMainHand(Item.of("minecraft:netherite_pickaxe").ignoreNBT())
    // matchOffHand(Item.of("minecraft:netherite_pickaxe").ignoreNBT())
});

⚙️ More Information

For more information about the usage and the functionality of the mod, please visit our wiki or explore the examples.

External resources



Project members

Lytho

Owner

Relentless

Member


Technical information

License
LGPL-3.0-only
Client side
required
Server side
required
Project ID