config.yml
Global settings. After editing, run /milestonesadmin reload.
This file is deliberately small. There is no global milestone-icon block - every category defines its own in its own file, so each track can format its own units and colors.
Settings
Section titled “Settings”Settings: Save-Interval: 60 Notify-Interval: 3| Key | Default | Description |
|---|---|---|
Save-Interval |
60 |
Seconds between write-behind flushes of player data to SQLite. Claims are always written immediately regardless of this. |
Notify-Interval |
3 |
Seconds between unlock scans. Every online player’s progress is checked against every enabled category, and any milestone that just became claimable fires MILESTONE-UNLOCKED. |
Progress-Bar
Section titled “Progress-Bar”The shared bar rendered into {progress-bar} in milestone icons and category icons.
Progress-Bar: Length: 30 Symbol: "|" Complete-Color: "&a" Remaining-Color: "&c"| Key | Default | Description |
|---|---|---|
Length |
20 |
Number of symbols in the bar. Clamped to at least 1. |
Symbol |
| |
The character repeated. Any string works, including a multi-character one. |
Complete-Color |
&a |
Color prefix for the filled part. |
Remaining-Color |
&c |
Color prefix for the empty part. |
The bar is Complete-Color + filled symbols + Remaining-Color + remaining symbols. The fill is
progress ÷ required, capped at 100%. A required of 0 renders as full.
{percent} is the same ratio as a two-decimal number (42.50), without a % sign - add your own.
Temporary-Icons
Section titled “Temporary-Icons”Icons that flash for about two seconds in the clicked slot when a click is refused, then restore the real item. While a slot is flashing it is inert, so the deny sound can’t be spammed. A repaint (a claim, a page turn, a category switch) clears every flash.
All five are optional - remove one and that refusal just plays its sound and message. Each is a standard item definition.
Temporary-Icons: Locked: Material: BARRIER Name: "&c&lError!" Lore: - "&7You need to meet requirements." Already-Claimed: Material: RED_STAINED_GLASS_PANE Name: "&c&lError!" Lore: - "&7You already claimed this reward." Already-Selected: Material: BARRIER Name: "&c&lError!" Lore: - "&7You are already viewing this category." No-Previous-Page: Material: BARRIER Name: "&c&lError!" Lore: - "&7You are already on the first page." No-Next-Page: Material: BARRIER Name: "&c&lError!" Lore: - "&7You are already on the last page."| Key | Flashed when | Tokens |
|---|---|---|
Locked |
A milestone below its threshold is clicked. | {category}, {milestone}, {number}, {progress}, {required} |
Already-Claimed |
An already-claimed milestone is clicked. | none |
Already-Selected |
The currently-viewed category’s icon is clicked. | {category}, {complete}, {total}, {reached}, {progress}, {percent}, {progress-bar} |
No-Previous-Page |
Previous page is clicked on page 1. | none |
No-Next-Page |
Next page is clicked on the last page. | none |
Inventories-Sounds
Section titled “Inventories-Sounds”Named sounds in "NAME;volume;pitch" form. Names are XSound names, stable across Minecraft versions.
Set a key to "" to silence it.
Inventories-Sounds: "MENU-OPEN": "ENTITY_BAT_TAKEOFF;1;0.5" "CLAIM": "ENTITY_PLAYER_LEVELUP;1;1.5" "MILESTONE-UNLOCKED": "UI_TOAST_CHALLENGE_COMPLETE;1;1" "CATEGORY-CHANGED": "ENTITY_CHICKEN_EGG;1;1" "PAGE-CHANGED": "ENTITY_CHICKEN_EGG;1;1" "NO-PAGE-FOUND": "BLOCK_NOTE_BLOCK_PLING;1;0.5" "DENY": "ENTITY_VILLAGER_NO;1;0.5"| Key | Played when |
|---|---|
MENU-OPEN |
/milestones opens the menu. |
CLAIM |
A milestone is claimed. |
MILESTONE-UNLOCKED |
Progress crosses a threshold (alongside the message). |
CATEGORY-CHANGED |
The player switches to another category. |
PAGE-CHANGED |
A page turn succeeds. |
NO-PAGE-FOUND |
A page turn is refused at either edge. |
DENY |
A claim is refused, or the already-selected category is clicked. |
