> 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/objectives.md).

# Objectives and Sources

An objective describes what the player must do and how many times it must be done. Use a trigger to choose the action, then conditions to restrict the blocks, mobs, items, or player state that count. Reusable objectives let several tasks share the same requirements.

## Reusable objectives

`quests/<id>.yml` defines a reusable objective, not an accepted task. Example `quests/miner.yml`:

```yaml
enabled: true
categories:
- gathering
name: '{lang:defaults.objectives.miner}'
icon:
  material: STONE_PICKAXE
trigger: block_break
amount: 16
count: events
conditions:
  survival:
    type: game_mode
    target: PLAYER
    modes:
    - SURVIVAL
    - ADVENTURE
  blocks:
    type: block_type
    types:
    - STONE
    - DEEPSLATE
    - ANDESITE
    - DIORITE
    - GRANITE
    - TUFF
anti-abuse:
  ignore-spawner-mobs: true
  ignore-internal-block-breaks: true
  ignore-player-placed: true
```

`trigger` is a registered ID, such as `block_break` or `ultimatequest:block_break`. `amount` is a positive integer completion target. `count` is `events` (default) or `items`. `name` overrides generated objective text; optional `display` supplies a fallback format. Conditions filter events, while `anti-abuse` limits repeated progress.

`events` adds one per match. `items` currently uses the caught item-stack size for fishing; other events still contribute one. Neither measures damage, XP amounts, or distance. Add `catch_match_item` to restrict fishing to caught items.

```yaml
objectives:
  stone:
    source:
      quest: miner
      amount: 64
  zombies:
    source:
      trigger: kill
      amount: 10
      conditions:
        target:
          type: match_entity
          match:
            entity-types: [ZOMBIE]
```

Copy the template first, then override with `source`, then with fields next to `source`. Root `source` is a single-objective shorthand. `source.quest` references an enabled objective, not a task. Pool sources (`pool`, `count`) are generation instructions for [periods](/for-ultimatequest/configuration/periods.md)/[scrolls](/for-ultimatequest/configuration/scrolls.md), not general normal-task objectives. [Milestone sources](/for-ultimatequest/configuration/milestones.md) use positive integer `value` per event instead of normal completion amounts.

See [triggers](/for-ultimatequest/configuration/triggers.md), [conditions](/for-ultimatequest/configuration/conditions.md), and [anti-abuse](/for-ultimatequest/features/anti-abuse.md). Event-specific filters need event data; acceptance conditions have none.
