Milestones
Milestones are skill-specific challenge quests that unlock at skill level thresholds. Completing one grants the player a permanent MILESTONE ability — one that cannot be purchased with points and is never lost during a respec.
How milestones work
Each skill has 4 milestone tiers: levels 25, 50, 75, and 100.
When a player's skill level crosses one of these thresholds, the corresponding milestone quest auto-starts — no command needed. The challenge tab in the GUI hub shows active progress.
Once the player meets the condition, the MILESTONE ability for that tier is automatically granted at rank 1. The player receives a notification in chat and can immediately equip the ability from the hub.
There are 32 milestone abilities in total (4 per skill × 8 skills). Each grants a permanently accessible passive or active ability themed around what the player accomplished to earn it.
Milestone tiers
The four Mining quests that ship in milestones.yml:
| Tier | Skill level | Quest | Reward |
|---|---|---|---|
| I | 25 | Break 500 blocks of stone, cobblestone or deepslate | Tunneler |
| II | 50 | Mine 200 ore blocks of any kind | Veinminer Pro |
| III | 75 | Mine 100 diamond ores | Diamond Sense |
| IV | 100 | Break 5000 blocks | World Breaker |
Every skill has four quests in the same spirit: combat skills count kills, damage and streaks with their own weapon; gathering skills count blocks, crops and catches.
The 8 condition types
| Condition | YAML key | What counts |
|---|---|---|
| Kill count | kill_count |
Each mob or player the player kills. |
| Block break count | block_break_count |
Each block the player breaks. |
| No-miss arrows | no_miss_arrows |
Arrow hits in a row. An arrow that hits nothing resets the streak. |
| Timed kill | timed_kill |
Kills inside the time-limit-ms window. |
| Damage dealt | damage_dealt |
Melee damage the player deals, in half-hearts. |
| Fish caught | fish_caught |
Each catch with a fishing rod. |
| Crops harvested | crops_harvested |
Fully grown crops the player breaks. |
| Damage blocked | damage_blocked |
Damage stopped with a raised shield. |
Blocks placed by players and blocks made by a lava/water generator never count, for quests or for XP.
Quest format
milestones:
mining.lv75:
skill: mining
trigger-level: 75 # the quest starts when the skill reaches this level
condition: block_break_count
params:
material: [DIAMOND_ORE, DEEPSLATE_DIAMOND_ORE]
goal: 100
reward-ability: mining.diamond_sense # MILESTONE ability granted on completion
name: "<#FF8A5C><b>Gem Diviner"
description: "<gray>Unearth 100 diamond ores from the deep."
params narrows down what counts. Leave a key out (or write params: {}) to count everything.
| Param | Works with | Meaning |
|---|---|---|
material: [..] |
block_break_count |
Only these block types. |
biome_required: forest |
block_break_count |
Only in biomes whose name contains the word (forest also matches birch_forest, dark_forest...). |
weapon: SWORD \| AXE \| BOW |
kill_count, timed_kill, damage_dealt |
Swords and axes are the item in the main hand; BOW means the kill came from an arrow. |
pvp_only: true |
kill_count, timed_kill |
Only players. |
target: HOSTILE |
kill_count, timed_kill |
Only hostile mobs. |
low_hp_threshold: 0.2 |
kill_count, timed_kill |
The killer was at or below 20% of their max health. |
min_distance: 40 |
no_miss_arrows |
Hits closer than 40 blocks don't count. A miss still resets the streak. |
treasure_only: true |
fish_caught |
Only treasure: enchanted books and gear, name tags, saddles, nautilus shells. |
time-limit-ms (e.g. 300000 for five minutes) turns a quest into a timed one: the goal has to be reached inside that window. When the window runs out, the count starts again from the next kill. A timed quest never locks.
Progress is saved to the database and survives restarts. A respec does not reset milestone progress or take back MILESTONE abilities.
Milestone abilities vs. base abilities
| Property | BASE | MILESTONE |
|---|---|---|
| Earned by | Spending points | Completing a quest |
| Revoked by respec | Yes (points refunded) | No — permanent |
| Rankable | Yes (up to max-rank) | No — always rank 1 |
| Equippable to bar | Yes | Yes |
| Points cost | Yes | None |