DialogueKit - Free Drop-In NPC Dialogue System


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 CollectionService tags
  • Two dialogue modes:
    • Classic
    • Reimagined
  • 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:

  • GiveCoins
  • TeleportToPad

You can add your own actions inside the server action registry.

Setup

To add a new NPC:

  1. Put the NPC model in Workspace.DialogueFolder
  2. Make sure it has a Head
  3. Make sure it has Torso, HumanoidRootPart, or PrimaryPart
  4. Tag the model with DialogueNPC
  5. Add a ModuleScript named DialogueData
  6. 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.

6 Likes

Hello Kyanid!

I tried it and i need to say that you did good work :3

2 Likes

some screenshots or examples would be helpful

3 Likes

Check my portfolio, I uploaded a demo there. Shows the basic stuff.. dialogue, answers, location banner.

2 Likes

i was going to make my own dialogue system for my game but i’m so lazy i might just use this one

2 Likes

cool

1 Like

That doesnt really handle most things, it only shows you using it.