> For the complete documentation index, see [llms.txt](https://docs.mongenscave.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mongenscave.com/premium-products/quests/supported-plugins/fancynpcs.md).

# FancyNpcs

When [FancyNpcs](https://modrinth.com/plugin/fancynpcs) is installed, the `interact_npc` trigger becomes available. Detection is automatic.

| Trigger        | Counts when the player... | Progress          |
| -------------- | ------------------------- | ----------------- |
| `interact_npc` | clicks an NPC             | 1 per interaction |

The `target` is the NPC's **name** — the one you gave it in `/npc create <name>`, not its display name. It's required; there's no `any`.

```yaml
objectives:
  report_back:
    name: "&#7CF6FF&lReport to the Captain"
    description:
      - "&#C7D0D9Find the captain at the docks"
      - "&#C7D0D9and tell him what you saw."
    trigger: interact_npc
    target: captain
    required: 1
```

### Quest chains with NPCs <a href="#quest-chains-with-npcs" id="quest-chains-with-npcs"></a>

This trigger is the building block for classic RPG-style quest flows:

* **Delivery quests** — objective 1: collect items, objective 2: `interact_npc` on the recipient. Since all objectives progress in parallel, tell players the order in the descriptions.
* **Talk-to-X-people quests** — one `interact_npc` objective per NPC, each with `required: 1`.
* **Turn-in endings** — make `interact_npc` the last objective of every story quest, so quests always end at a character instead of in mid-air.

{% hint style="info" %}
Every click counts, and there's no cooldown on the plugin side — with `required: 5`, five quick clicks on the same NPC complete the objective. For "visit 5 different NPCs" quests, use five separate objectives instead of one with `required: 5`.
{% endhint %}
