Rewards
When a drop opens, LuckyDrops picks one reward from the achieved rarity's pool using
weighted random selection. Pools are defined in rewards.yml, keyed by rarity id.
tiers:
common:
- { weight: 20, type: ITEM, material: BREAD, amount: 16 }
- { weight: 10, type: ITEM, material: IRON_INGOT, amount: 5 }
rare:
- { weight: 14, type: ITEM, material: DIAMOND, amount: 3 }
# ...one list per rarity id
Each rarity maps to a list of reward entries. The tiers: keys here must match the
rarity ids from config.yml.
Weights
weight is a relative number, not a percentage. An entry's chance is its weight divided by
the sum of all weights in that rarity. For example, weights of 30, 20, and 10 give
roughly 50% / 33% / 17%.
Reward types
ITEM
Gives a vanilla (or custom) item directly.
| Field | Required | Description |
|---|---|---|
weight | ✅ | Relative selection weight (> 0) |
type | ✅ | ITEM |
material | ✅ | Bukkit material name (e.g. DIAMOND_SWORD) |
amount | ❌ | Stack size (default 1) |
display-name | ❌ | Custom name (MiniMessage) |
lore | ❌ | List of lore lines (MiniMessage) |
enchantments | ❌ | Map of enchantment: level |
custom-model-data | ❌ | Resource-pack model id |
label | ❌ | Name shown in the win broadcast when no display-name is set |
epic:
- weight: 25
type: ITEM
material: DIAMOND_SWORD
amount: 1
display-name: "<light_purple>Lucky Blade</light_purple>"
lore:
- "<gray>Sharpened by fortune."
enchantments:
sharpness: 4
unbreaking: 3
mending: 1
COMMAND
Runs one or more console/player commands instead of (or as well as) giving an item - handy for money, crate keys, permissions, etc.
| Field | Required | Description |
|---|---|---|
weight | ✅ | Relative selection weight (> 0) |
type | ✅ | COMMAND |
source | ❌ | CONSOLE (default) or PLAYER - who runs the command |
commands | ✅ | A single command string or a list of them |
label | ❌ | Name shown in the win broadcast |
The token <player> is replaced with the winning player's name.
mythic:
- weight: 25
type: COMMAND
source: CONSOLE
label: "<gradient:#FF3030:#FFD700><bold>Mythic Bundle</bold></gradient>"
commands:
- "give <player> minecraft:netherite_block 1"
- "eco give <player> 10000"
On 1.20.5+ servers, item NBT in /give uses the data-component format, e.g.
give <player> minecraft:diamond_sword[enchantments={"minecraft:sharpness":5}] 1.
Match the syntax to the versions you run.
Editing a pool
- Open
rewards.yml. - Find the rarity id you want to change under
tiers:. - Add, remove, or re-weight entries.
- Run
/luckydrops reload.
Give common, low-value rewards a high weight and rare, powerful rewards a low weight within the same rarity. Bigger jackpots are best reserved for the higher rarities, which players reach far less often.
What if a pool is empty?
If a rarity has no rewards, opening a drop at that rarity gives nothing and tells the player the pool is empty. LuckyDrops also warns at startup/reload about:
- a rarity in
rewards.ymlthat isn't defined inconfig.yml(its rewards are unreachable); - a configured rarity that has no rewards.