How Minecraft Loot Tables Work (and How to Customize Drops)
Loot tables decide what blocks, mobs and chests give you. Here's how the pools, entries, weights and functions fit together — and how to make logs drop diamonds.
Every drop in Minecraft is decided by a loot table — a JSON file that lists possible results and the odds of each. Break a block, kill a mob, open a chest, fish something up: a loot table was consulted. Because they're just data, a datapack can override any of them, which is how 'every block drops diamonds' joke packs and serious custom progression systems alike are built.
Pools, entries and weights
A loot table contains one or more 'pools'. Each pool rolls a number of times (rolls) and, on each roll, picks one entry. Entries have a 'weight' — higher weight means a higher chance of being chosen relative to the others in the pool. So a pool with apple (weight 9) and diamond (weight 1) gives apples roughly nine times as often as diamonds. Multiple pools stack: a chest might roll a 'common' pool three times and a 'rare' pool once.
- ▸pools — independent groups that each produce drops.
- ▸rolls — how many times a pool picks an entry.
- ▸entries — the possible items (or references to other tables).
- ▸weight — relative likelihood of an entry within its pool.
Functions and conditions
Raw entries can be modified by 'functions' — set a count range (drop 1–3), apply enchantments, or copy a custom name. 'Conditions' gate whether an entry or pool happens at all: only drop with a certain tool, only when killed by a player, only with a Looting enchantment. This is how vanilla makes, say, a mob drop more loot when you kill it yourself with a sword.
Overriding a block's drop
To change what a block drops, a datapack places a loot table at data/minecraft/loot_table/blocks/<block>.json. The game looks there first, so your file wins. Want oak logs to drop a diamond? Point the oak_log block loot table at a pool whose single entry is minecraft:diamond. The block itself is unchanged — only its drop is rewritten.
This is exactly the kind of intent Mine Mod AI parses from plain English: say 'logs drop diamonds' and it writes the correct block loot-table override, no JSON required.
Build it without the busywork
Mine Mod AI turns a plain-English description into a ready-to-install Minecraft datapack or Bedrock add-on — version-correct and free to try.
Try the generator →