Skip to main content

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.

FieldRequiredDescription
weightRelative selection weight (> 0)
typeITEM
materialBukkit material name (e.g. DIAMOND_SWORD)
amountStack size (default 1)
display-nameCustom name (MiniMessage)
loreList of lore lines (MiniMessage)
enchantmentsMap of enchantment: level
custom-model-dataResource-pack model id
labelName 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.

FieldRequiredDescription
weightRelative selection weight (> 0)
typeCOMMAND
sourceCONSOLE (default) or PLAYER - who runs the command
commandsA single command string or a list of them
labelName 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"
Modern command syntax

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

  1. Open rewards.yml.
  2. Find the rarity id you want to change under tiers:.
  3. Add, remove, or re-weight entries.
  4. Run /luckydrops reload.
Balancing

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.yml that isn't defined in config.yml (its rewards are unreachable);
  • a configured rarity that has no rewards.

See Rarities → Validation.