> For the complete documentation index, see [llms.txt](https://enchantedmobs.superiormc.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://enchantedmobs.superiormc.cn/for-ultimatequest/configuration/milestones.md).

# Milestones

Milestones reward long-term progress such as total blocks mined or monsters defeated. Players do not need to accept them: matching actions accumulate automatically, and each completed stage unlocks a reward. Use `/uq milestone` to view progress and claim rewards.

## Creating a milestone

`milestones/<id>.yml` accumulates progress without acceptance. `sources` defines contributions; `stages` defines cumulative thresholds/rewards.

```yaml
enabled: true
name: '{lang:defaults.milestones.mining.name}'
description:
- '{lang:defaults.milestones.description}'
icon:
  material: IRON_PICKAXE
categories:
- gathering
sources:
  stone:
    source:
      quest: miner
    value: 1
stages:
  '1':
    required: 64
    rewards:
      emerald:
        type: item
        item:
          material: EMERALD
          amount: 2
        display:
          name: '{lang:defaults.rewards.emerald_2}'
  '2':
    required: 256
    rewards:
      experience_bottle:
        type: item
        item:
          material: EXPERIENCE_BOTTLE
          amount: 6
        display:
          name: '{lang:defaults.rewards.experience_bottle_6}'
  '3':
    required: 1024
    rewards:
      emerald:
        type: item
        item:
          material: EMERALD
          amount: 8
        display:
          name: '{lang:defaults.rewards.emerald_8}'
  '4':
    required: 4096
    rewards:
      diamond:
        type: item
        item:
          material: DIAMOND
          amount: 2
        display:
          name: '{lang:defaults.rewards.diamond_2}'
  '5':
    required: 16384
    rewards:
      diamond:
        type: item
        item:
          material: DIAMOND
          amount: 4
        display:
          name: '{lang:defaults.rewards.diamond_4}'
      experience_bottle:
        type: item
        item:
          material: EXPERIENCE_BOTTLE
          amount: 16
        display:
          name: '{lang:defaults.rewards.experience_bottle_16}'
      scroll:
        type: console_command
        command: uq scroll give {player} veteran
        display:
          name: '{lang:defaults.rewards.scroll_veteran}'
```

Each source uses inline/template objective format with positive integer `value` (default 1) per matching event. Normal objective `amount` is not a stage threshold. Fishing `count: items` multiplies by caught stack size; multiple matching sources can contribute.

Stages start at 1 without gaps and require strictly increasing positive integer `required`. Internally the track is `default`; configure `stages.<n>.rewards`. Random rewards lock at unlock. Use `/uq milestone <id>`, `/uq milestone claim <id> <stage>`, or claimall.

Without a season, progress is permanent; an optional valid `season` separates saved progress. Time windows, grace, paused, auto-claim, icons, and categories use common progression fields. Milestone reward containers do not occupy task slots.
