Posted December 18, 2025 by Grinstba
This week, I finished the first fully functional version of the NPC dialog system.
NPCs are no longer static props. You can now:
Interact with an NPC in the world
Receive dialog text from the server
See multiple dialog options
Select a response
Have the server validate that choice
Receive the next dialog node in the conversation
All dialog flow is server-authoritative, meaning the client never decides what happens next. This is crucial for an MMO where dialog choices can later unlock shops, quests, achievements, or story flags.
Instead of hardcoding dialog logic, NPCs now use data-driven dialog trees:
Each NPC can have one or more dialog trees
Each tree is made of dialog nodes
Nodes contain text, options, and metadata
Options can lead to other nodes or trigger actions
This makes it easy to expand content without writing code.
This dialog system is the backbone for upcoming features.
The next step is wiring dialog actions to things like:
Opening shops
Accepting quests
Triggering scripted events
Thanks for following along ❤️
More soon.