Dropping Bags - SilentChaos512/Treasure-Bags GitHub Wiki
Rarity and Entity Groups
In version 1.3.0 and higher, all bags will drop from different types of entities (mobs) based on their rarity. Each group has a loot table, which you can override to customize drop rates.
Entity group loot tables are found here: 1.16.x
Loot Function
For more control, there is a loot function which will set the bag type (as all bags are a single item). You must use this function to get the correct bag type. The function name is treasurebags:set_bag_type
and it has one property, type
, which is the bag type ID. See the example below.
An Example
This particular file (which is the bat loot table) has a single pool with one entry, which has a 10% drop rate with a 2.5% bonus per looting level, as well as requiring a player kill. You can of course omit these conditions if you like. You would probably want a much lower drop rate for most bags as well, maybe 1~5%.
Note that if you have more than one treasure bag entry in a pool, you need to include the entryName
property with a unique value for each entry. This is needed anytime you have multiple entries of the same item.
For the bag type, this should look like your_namespace:bag_type
. In this example, the bag type file is located at data/chaos_loot/treasurebags/bag_types/bat.json
, which translates to a bag type ID of chaos_loot:bat
.
Converting JSON file name to bag type ID:
data/namespace/treasurebags/bag_types/file.json => namespace:file
{
"pools": [
{
"name": "treasure_bags",
"rolls": 1,
"entries": [
{
"entryName": "bat_bag",
"type": "item",
"name": "treasurebags:treasure_bag",
"weight": 1,
"functions": [
{
"function": "treasurebags:set_bag_type",
"type": "chaos_loot:bat"
}
]
}
],
"conditions": [
{
"condition": "killed_by_player"
},
{
"condition": "random_chance_with_looting",
"chance": 0.1,
"looting_multiplier": 0.025
}
]
}
]
}