Why is my loot table not showing up in the /loot command?
Andrew Henderson
I've created a loot table[1] and I'm having issues using it with the loot command:
loot insert ~ ~ ~ loot minecraft:opExecuting the command above drops zero items. The JSON for the loot table is:
{ "pools": [ { "rolls": { "min": 1, "max": 2 }, "bonus_rolls": { "min": 0, "max": 2.5 }, "entries": [ { "type": "item", "name": "minecraft:", "weight": 1, "functions": [ { "function": "set_count", "count": { "min": 1, "max": 2 } } ] }, { "type": "item", "name": "minecraft:diamond", "weight": 3, "functions": [ { "function": "set_count", "count": { "min": 1, "max": 7 } } ] }, { "type": "item", "name": "minecraft:totem_of_undying", "weight": 1, "functions": [ { "function": "set_count", "count": 1 } ] }, { "type": "item", "name": "minecraft:enchanted_book", "weight": 2, "functions": [ { "function": "enchant_randomly", "enchantments": [ "protection" ] } ] }, { "type": "item", "name": "minecraft:iron_block", "weight": 3, "functions": [ { "function": "set_count", "count": { "min": 1, "max": 5 } } ] }, { "type": "item", "name": "minecraft:stick", "weight": 1, "functions": [ { "function": "enchant_randomly", "enchantments": [ "knockback" ] } ] }, { "type": "item", "name": "minecraft:gold_block", "weight": 1, "functions": [ { "function": "set_count", "count": { "min": 1, "max": 5 } } ] }, { "type": "item", "name": "minecraft:potion", "weight": 1, "functions": [ { "function": "set_nbt", "tag": "{Potion:\"minecraft:strength\"}" } ] } ] } ]
}Why is my loot table not showing up for the loot command?
[1]: The JSON file is located at datapackName/data/minecraft/loot_tables.
1 Answer
Your loot table contains an error on line 10 and on line 15.
...
8. "bonus_rolls": {
9. "min": 0,
10. "max": 2.5
11. },
12. "entries": [
13. {
14. "type": "item",
15. "name": "minecraft:",
16. "weight": 1,
17. "functions": [
18. {
19. "function": "set_count",
20. "count": {
21. "min": 1,
22. "max": 2
...On line 10, you have set the max bonus_rolls to 2.5; this is not a valid number, since the rolls must be integers (i.e. whole numbers). Use 2 or 3 instead.
On line 15, you left it as "name": "minecraft:" and did not specify what item is to be given.
I also recommend to place your loot table into your namespace instead of minecraft's namespace. Your folder structure would then look like this:
datapackName > data > your_namespace > loot_tables > op.json
...and you would use /loot insert ~ ~ ~ loot your_namespace:op
Additionally, make sure that the targeted location is a container to insert the loot into or the command will fail with the error, "The target block is not a container"
If you are trying to give the loot to a player directly, you should use /loot give @p loot your_namespace:op
I use to generate my loot tables.