Assigning a dialog
Dialogs live inplugins/NMEntities/Dialogs/. Point an NPC at one:
dialog: bob_talk directly in the NPC’s yaml. Dialogs reload with /nme reload.
How a conversation is built
A dialog is a set of nodes. Each node does up to three things, in order:- Says one or more lines.
- Optionally runs effect lines (give items, run commands, set variables).
- Either shows choices, or continues automatically to another node.
Node fields
The
start: key at the top of the dialog lists candidate entry nodes. The first one whose conditions pass becomes the opening, which is how the night greeting above wins after dark.
Ending a conversation
A conversation ends when a node has nogoto and no choices, when a chosen reply has no goto, or on goto: end. It also ends if the player walks more than 8 blocks away.
One conversation runs per player at a time, and re-clicking the NPC restarts it. Old choice menus stop working once you’ve answered or restarted, so stale clicks in the chat scrollback are simply ignored.
Text and placeholders
say lines and choice text support legacy & colors and placeholders: <player.name> for the talking player, <var.x> for variables, and the rest of the usual set.
Remembering things
Set variables in a node’seffects, then check them in later conditions. That’s persistent quest state across a conversation and between conversations:
Where to go
- Dialog Conditions: every condition you can gate a node or choice on.
- Dialog Files: organizing big conversations across multiple files.

