Why is my loot table not showing up in the /loot command?

I've created a loot table[1] and I'm having issues using it with the loot command:

loot insert ~ ~ ~ loot minecraft:op

Executing 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.


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 https://amaury.carrade.eu/minecraft/loot_tables to generate my loot tables.