Skip to content

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:
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.

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.

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

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.