> For the complete documentation index, see [llms.txt](https://stellarskills.gitbook.io/stellarskills-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stellarskills.gitbook.io/stellarskills-docs/naturalist.md).

# naturalist

[Tree authoring guide](file:///configuration/trees-and-nodes.md) · [All packaged trees](/stellarskills-docs/readme.md)

## `trees/naturalist.yml`

```yaml
id: naturalist
title: Pokémon Naturalist
description: Explore habitats, follow rare signals, document the Pokédex, and protect the Pokémon world through field research.
version: 1
state: active
ownership: account
theme: verdant_codex
currency: skill_points
graph: naturalist
metadata: { category: exploration, pvp-direct-effects: disabled, class: naturalist }
```

## `graphs/naturalist.yml`

```yaml
id: naturalist
canvas: { width: 2800, height: 1900 }
nodes:
  - id: trailhead
    type: gateway
    title: Trailhead
    description: Begin your work as a Pokémon Naturalist. This starting node costs no skill points.
    position: { x: 1400, y: 950 }
    max-rank: 1
    cost: { currency: skill_points, values: [0] }
    root: true
    icon: minecraft:recovery_compass
    colors: { background: "#153526", material: "#8CF2A8" }

  - id: habitat_reader
    type: ranked
    title: Habitat Reader
    description: Eligible nearby Pokémon encounter weight is increased by 5%, 10%, or 18%.
    position: { x: 1050, y: 950 }
    max-rank: 3
    cost: { currency: skill_points, values: [1, 2, 3] }
    requires: [trailhead]
    effects:
      - { key: pixelmon.encounter_weight, operation: multiply_final, values: [1.05, 1.10, 1.18], stacking-group: naturalist_habitat, cap: 4.0 }
    icon: minecraft:grass_block

  - id: field_notes
    type: ranked
    title: Field Notes
    description: Pokédex research gains are increased by 10%, 20%, or 35%.
    position: { x: 700, y: 700 }
    max-rank: 3
    cost: { currency: skill_points, values: [2, 3, 4] }
    requires: [habitat_reader]
    effects:
      - { key: pixelmon.pokedex_research, operation: multiply_final, values: [1.10, 1.20, 1.35], stacking-group: naturalist_dex, cap: 5.0 }
    icon: minecraft:writable_book

  - id: lurecraft
    type: notable
    title: Lurecraft
    description: Supported Pokémon lures gain 4, 8, or 14 blocks of effective range.
    position: { x: 700, y: 1200 }
    max-rank: 3
    cost: { currency: skill_points, values: [2, 3, 4] }
    requires: [habitat_reader]
    effects:
      - { key: pixelmon.lure_radius, operation: add_flat, values: [4, 8, 14], stacking-group: naturalist_lure, cap: 96 }
    icon: minecraft:potion_luck_icon

  - id: expedition_pace
    type: ranked
    title: Expedition Pace
    description: Gain 3%, 6%, or 10% movement speed while exploring.
    position: { x: 1750, y: 950 }
    max-rank: 3
    cost: { currency: skill_points, values: [1, 2, 3] }
    requires: [trailhead]
    effects:
      - { key: minecraft.movement_speed, operation: multiply_final, values: [1.03, 1.06, 1.10], stacking-group: naturalist_stride, cap: 1.0 }
    icon: minecraft:potion_swiftness_icon

  - id: rare_tracks
    type: notable
    title: Rare Tracks
    description: Unlocks rare encounter pings and adds 12, 24, or 40 blocks to supported scanner range.
    position: { x: 2100, y: 650 }
    max-rank: 3
    cost: { currency: skill_points, values: [2, 3, 5] }
    requires: [expedition_pace]
    effects:
      - { key: pixelmon.rare_ping, operation: unlock, values: [1, 1, 1], stacking-group: naturalist_ping, cap: 1 }
      - { key: pixelmon.scanner_range, operation: add_flat, values: [12, 24, 40], stacking-group: naturalist_scanner, cap: 128 }
    icon: minecraft:spyglass

  - id: zygarde_survey
    type: mastery
    title: Zygarde Survey
    description: Detect loaded Zygarde cells within 16, 28, or 40 blocks and gain a 5%, 10%, or 18% chance for a bonus cell.
    position: { x: 2150, y: 1250 }
    max-rank: 3
    cost: { currency: skill_points, values: [3, 4, 6] }
    requires: [expedition_pace]
    effects:
      - { key: pixelmon.zygarde_cell_detection_range, operation: set_min, values: [16, 28, 40], stacking-group: naturalist_zygarde_range, cap: 64 }
      - { key: pixelmon.zygarde_cell_bonus_chance, operation: add_percent_points, values: [5, 10, 18], stacking-group: naturalist_zygarde_bonus, cap: 0.75 }
    icon: minecraft:lime_dye

  - id: conservation_capture
    type: notable
    title: Conservation Capture
    description: Newly captured Pokémon gain 4, 8, or 14 additional friendship.
    position: { x: 1050, y: 1500 }
    max-rank: 3
    cost: { currency: skill_points, values: [2, 3, 4] }
    requires: [lurecraft]
    effects:
      - { key: pixelmon.capture_friendship, operation: add_flat, values: [4, 8, 14], stacking-group: naturalist_friendship, cap: 100 }
    icon: minecraft:heart_of_the_sea

  - id: naturalists_atlas
    type: keystone
    title: Naturalist's Atlas
    description: Gain 15% more Pokédex research, 10% encounter weight, and a permanent rare-encounter field ping.
    position: { x: 1400, y: 350 }
    max-rank: 1
    cost: { currency: skill_points, values: [8] }
    requires: [field_notes, rare_tracks]
    effects:
      - { key: pixelmon.pokedex_research, operation: multiply_final, values: [1.15], stacking-group: naturalist_atlas_dex, cap: 5.0 }
      - { key: pixelmon.encounter_weight, operation: multiply_final, values: [1.10], stacking-group: naturalist_atlas_encounter, cap: 4.0 }
      - { key: pixelmon.rare_ping, operation: unlock, values: [1], stacking-group: naturalist_atlas_ping, cap: 1 }
    icon: minecraft:filled_map
    colors: { background: "#1C4931", material: "#C7FFD2" }

edges:
  - { from: trailhead, to: habitat_reader, style: vine }
  - { from: habitat_reader, to: field_notes, style: field_notes }
  - { from: habitat_reader, to: lurecraft, style: vine }
  - { from: trailhead, to: expedition_pace, style: trail }
  - { from: expedition_pace, to: rare_tracks, style: trail }
  - { from: expedition_pace, to: zygarde_survey, style: cell_signal }
  - { from: lurecraft, to: conservation_capture, style: conservation }
  - { from: field_notes, to: naturalists_atlas, style: crown }
  - { from: rare_tracks, to: naturalists_atlas, style: crown }
```
