I rebuilt my Roblox dialogue system from the ground up and decided to release it for free.
This version is made to be easier to use, easier to configure, and much cleaner to drop into new NPCs. You do not need to write a new script for every NPC anymore. Just tag the NPC, add a DialogueData module, choose a mode, and the system handles the rest.
What's New
- Drop-in NPC setup using
CollectionServicetags - Two dialogue modes:
ClassicReimagined
- Shared sound system
- Classic camera setup with configurable distance and FOV
Dialogue Modes
Classic
Classic mode uses the normal screen dialogue UI.
It includes:
- Bottom dialogue box
- NPC name label
- Location label
- Skip button
- Answer buttons
- Camera focused on the NPC
- Configurable camera distance
- Configurable FOV
- Player character transparency while talking
Example:
mode = "Classic", options = { distance = 2, FOV = 90, }
Reimagined
Reimagined mode does not use a camera.
It creates local-only world dialogue UI for the player:
- BillboardGui above the NPC head
- AnswerPart with answer buttons
- Hover effects
- Click/hover sounds
Example:
mode = "Reimagined", options = {}
How It Works
Each NPC has one DialogueData ModuleScript.
Example:
return { mode = "Classic", options = { distance = 2, FOV = 90, }, dialogue = { start = { speed = 0.03, lines = { "Hello, {player}.", "This is a dialogue line.", }, answers = { { text = "Continue", next = "more" }, { text = "Goodbye" }, }, }, more = { speed = 0.03, lines = { "This is another node.", }, answers = { { text = "Back", next = "start" }, { text = "Goodbye" }, }, }, }, }
{player} automatically becomes the player’s display name.
Lower speed values type faster. Higher values type slower.
Server Actions
The system supports server-approved actions, so important rewards and teleports are not blindly trusted from the client.
Example coin reward:
{ text = "Give me 100 Coins", action = "GiveCoins", amount = 100, next = "coins" }
Example teleport:
{ text = "Teleport me to Town", action = "TeleportToPad", target = "TownTeleport", next = "teleport" }
Current built-in actions:
GiveCoinsTeleportToPad
You can add your own actions inside the server action registry.
Setup
To add a new NPC:
- Put the NPC model in
Workspace.DialogueFolder - Make sure it has a
Head - Make sure it has
Torso,HumanoidRootPart, orPrimaryPart - Tag the model with
DialogueNPC - Add a ModuleScript named
DialogueData - Configure the mode, options, lines, answers, and actions
No new NPC script is needed.
License
Free for personal use.
You may:
- Use it in your own games and systems
- Modify or rework it
- Extend it with your own actions, modes, quests, or rewards
You may not:
- Use it for commercial purposes
- Resell it
- Claim it as your own work
- Use it to train AI models
Credit is not required, but it is appreciated.
Download:
DialogueV3.rbxl (121.0 KB)
Showcase
If you break it, rebuild it, or extend it, feel free to post improvements.


