Settings, Language & Logging
This page covers everything in the settings: block of config.yml, plus the language
file and the opening log.
Settings reference
settings:
max-clicks: 5
drop-overflow-at-player: true
log-events: true
language: en_us
sounds:
click: { key: ui.hud.bubble_pop, volume: 1.0, pitch: 1.0 }
upgrade: { key: block.note_block.pling, volume: 1.0, pitch: 1.0 }
open: { key: entity.experience_orb.pickup, volume: 1.0, pitch: 1.0 }
progress:
filled: "●"
empty: "○"
separator: " "
| Setting | Default | Description |
|---|---|---|
max-clicks | 5 | Taps needed to fill the bar before a drop can be opened. See Chance Modes. |
drop-overflow-at-player | true | If a reward won't fit in the inventory, drop it at the player's feet (true) or at world spawn (false). |
log-events | true | Whether to log drop openings (see Logging). |
language | en_us | Which lang/<language>.yml file to load (see Language). |
Sounds
Sounds are global (shared by every rarity) and follow a simple formula:
| Event | Plays |
|---|---|
| A tap that did not upgrade | sounds.click |
| A tap that did upgrade | sounds.upgrade |
| The final click that opens the drop | sounds.open |
Each sound has a key (a Minecraft sound event), volume, and pitch.
Use valid sound event keys (e.g. entity.experience_orb.pickup,
block.note_block.pling). An unknown key simply plays nothing - it won't error.
Progress bar
settings.progress controls the <progress> indicator shown in the drop's name:
| Key | Default | Meaning |
|---|---|---|
filled | ● | Character for a consumed click |
empty | ○ | Character for a remaining click |
separator | " " | Inserted between characters ("" for none) |
With max-clicks: 5 and two clicks used, this renders ● ● ○ ○ ○.
Language & messages
All player-facing text lives in a language file under lang/, selected by
settings.language. The default is lang/en_us.yml.
To translate or customise:
- Copy
lang/en_us.ymlto e.g.lang/fr_fr.yml. - Edit the values (keep the keys and placeholders).
- Set
language: fr_frinconfig.ymland run/luckydrops reload.
If the file named by language is missing and isn't bundled, the plugin falls back to
en_us and warns in the console - it never crashes on a bad language setting.
Message keys & placeholders
Everything uses MiniMessage formatting (gradients, hex, styling). Placeholders available per key:
| Key | Placeholders | Notes |
|---|---|---|
prefix | - | Prepended to most chat messages |
reloaded | <count> | Shown after a clean reload |
reloaded-with-issues | <count> | Shown after a reload with validation warnings |
give-usage | - | Command usage hint |
give-success | <amount>, <target> | Sent to the command sender |
give-received | <amount> | Sent to the recipient (suppressed by -s) |
give-unknown-player | <target> | |
give-unknown-rarity | <rarity>, <rarities> | <rarities> lists valid ids |
give-bad-amount | - | |
inventory-full | - | When a reward is dropped at the feet |
upgrade-message | <tier> | Sent in chat each time a drop upgrades |
reward-message | <reward>, <tier> | The win broadcast |
no-permission | - |
Item name & lore
The drop's in-hand appearance is also in the language file:
drop-name: "<tc><tier> Lucky Drop <progress></tc>"
drop-lore:
- "<tc>A sealed lucky drop.</tc>"
- "<gray>Right-click to crack it open!"
- ""
- "<gray>Clicks remaining: <white><clicks></white>"
Available placeholders: <tier>, <progress>, <clicks>, <used>, and the <tc>…</tc>
accent-colour tag. See Rarities → How drops display.
Logging
When settings.log-events is true, LuckyDrops writes a line to
plugins/LuckyDrops/logs/latest.log every time a player opens a drop:
[2026-05-15 14:22:41] Steve (uuid…) opened a epic Lucky Drop | reward: Diamond Sword | at world 128,64,-310
Rotation works just like Minecraft's own logs:
- The active file is always
latest.log. - On each server start, the previous
latest.logis archived to a dated file (2026-05-15-1.log, incrementing the suffix on collisions), and a freshlatest.logis opened. - A
/luckydrops reloadkeeps appending to the current session's log (it does not rotate again mid-session).
Set log-events: false and reload to stop logging; the writer closes cleanly and no further
files are touched.