Create shopkeepers, quest givers, and townspeople.

NPCs & Dialogue

NPCs are the non-player characters that bring your world to life — quest givers, merchants, trainers, and ambient townspeople.

NPC list — all NPCs with search and pagination
NPC list — all NPCs with search and pagination
NPC editor modal — Identity, Visuals, World Placement, Behavior, Dialogue Defaults, Quest Integration, Light Emission, and Metadata tabs
NPC editor modal — Identity, Visuals, World Placement, Behavior, Dialogue Defaults, Quest Integration, Light Emission, and Metadata tabs
Full NPC editor with roles (Quest Giver, Merchant, Trainer, Blacksmith, Innkeeper, Guard, and more), appearance settings, and quest integration — all in one form.

NPC Properties

PropertyDescription
Name / TitleDisplay name and subtitle (e.g., "Kira — Village Blacksmith")
RoleVendor, quest giver, innkeeper, blacksmith, stable master, etc.
FactionFaction affiliation (affects reputation interactions)
Zone + PositionWhich zone and X/Y coordinates
PortraitImage shown during dialogue
SpriteIn-world visual appearance
ActiveWhether the NPC is currently in the world

What NPCs Can Do

RoleFunction
Quest GiverOffers and completes quests (linked quest definitions)
MerchantHas a shop with items to sell and buys player items
InnkeeperProvides rest and HP/MP recovery
BlacksmithRepairs equipment, may sell weapons/armor
Stable MasterManages pet and mount storage
TrainerTeaches the abilities on its Trainer list, for a gold or item fee
Guard / AmbientHas dialogue but no special function

> A trainer is how a spell reaches a player. Players can only cast abilities > they have learned or that their gear grants — so any spell that is not on a class > or template's starter list, in a skill book, or in a quest or event reward needs a > trainer, or nobody will ever be able to use it. See > Who can cast what.

Dialogue

There are two ways to give an NPC something to say, and you can mix them across a world.

On the NPC itself — NPC Conversations. The NPC's own Conversation card holds nodes, player choices and server-run actions: give an item, take payment, set a flag, start a quest, teleport, open a shop. This is the one to reach for when the conversation belongs to the character rather than to a spot on the map.

On a map event — the event command system, the same tool used for cutscenes. You build the conversation by chaining commands:

1. Show Text — "Welcome to my shop! See anything you like?" 2. Show Choices — "Show me your goods" / "Got any quests?" / "Goodbye" 3. Conditional Branch — check if a quest is active, if the player has an item, etc. 4. Open Shop — opens the merchant's inventory 5. Start Quest — begins a new quest

This gives you complete control over branching dialogue trees with conditions, loops, and variable tracking.

> They don't stack. If a map event is bound to this NPC, that event takes the whole conversation and the NPC's own Conversation never opens. Pick one per NPC.

Shops

NPC merchants have a configurable shop inventory:

PropertyDescription
ItemWhich item to sell
Base PriceGold cost
StockAvailable quantity (-1 = unlimited)
Restock IntervalSeconds between restocks
Required ReputationFaction reputation needed to see the item

Stocking a lot at once

Under Stock, Add many… opens the same browsable item list the loot editor uses — search plus Category / Type / Rarity / Tier filters, shift-click for a run, and Select all N matching. Everything you tick is stocked in one save rather than one save per item, which is the difference between a two-second general store and a forty-round-trip one.

Items the shop already stocks are greyed out as added, and if a selection includes one anyway it is skipped rather than duplicated — the result line tells you how many were stocked and how many were already there. Every new row lands on Auto pricing with unlimited stock; tune the rows afterwards. Loadout kits are still added one at a time, because a stock row sells exactly one kit.

Shops also support a buyback system — items players sell to the NPC can appear for other players to purchase.

Exchange vendors (items for items)

Any stock row can be an exchange instead of a sale: the vendor asks for items and hands items back, no silver involved. Author it on the row in NPCs → Shops → (a shop) → Stock:

FieldWhat it does
Exchange costsThe items the vendor wants — one or more entries of item × quantity. The player must hand over all of them per trade.
Gives per tradeHow many of the stocked item one trade hands over (default 1).

A row with exchange costs ignores its price fields entirely — in the shop window it lists with a cost line, an "The vendor wants" panel showing owned vs. needed counts, and an Exchange button instead of Buy.

How to set one up:

1. Open NPCs → Shops and create a shop (or open an existing one). 2. On the Stock tab, add the item the vendor gives out, then add its Exchange costs (e.g. 5× Wolf Pelt) and set Gives per trade. 3. Assign the shop to an NPC as usual — the exchange rows sit beside normal priced rows in the same window.

Gotchas:

  • Rotation and restock work unchanged — exchange rows honor stock sets, rotation groups, quantities and restock timers exactly like priced rows, so a rotating exchange list is just a rotation group of exchange rows.
  • Stock counts units of the given item: a trade that gives ×5 consumes 5 stock.
  • If a cost item's definition is deleted, the row is hidden rather than listed as unpayable.
  • Adventurer NPCs never take exchange rows — they only spend coin.
> Roles are freeform tags on top of a small set of interaction types (dialogue, quest giver, vendor, trainer, service), so "Innkeeper" or "Blacksmith" is a flavor label on a vendor/service NPC rather than a distinct engine mode.

Death VFX

Like mobs, each NPC can pick a per-NPC Death VFX from the VFX editor, falling back to the editable engine default when unset.

AI Chat (optional, runtime LLM dialogue)

When the npcAiChat feature is enabled and an AI provider/credits are configured, players can talk freely to an NPC and the server answers in character through the normal dialogue channel, with hard per-conversation budget caps. With no key or credits it simply falls back to the authored event-command dialogue — so AI chat is a live enhancement layered on top of your scripted lines, never a replacement. (This is a player-facing runtime feature, distinct from the authoring-time Studio AI; see Providers & AI Credits for the cost model.)