Official Roblox Dialogue System and Dialogue Editor Beta

Official Roblox Dialogue System and Dialogue Editor Beta

Greetings, developers. Let’s talk. For a while now, Roblox has had a C++ oriented dialogue system. It’s not great. It’s very brittle, slow, uncustomizable and linear. I don’t like it. You probably don’t like it. It’s just not great. So, why am I mentioning this? Well, as part of my work here at Roblox this Summer as an intern, I was assigned to create a new dialogue system implemented in Lua. We decided not to use C++ because, well, it’s not necessary. The new system works in both normal games and in Experimental Mode games. It comes with a fancy editor. In fact, why don’t we just talk about the features?

Features of the new Dialogue System

  • Support for normal mode and Experimental Mode
  • Allows non-linear conversations, such as looping backwards in the conversation to a previous dialogue node
  • Allows conditional flow in conversations, giving you the power to script functions that determine the availability of responses
  • Implements a way for NPCs to have different responses based on different conditions, allowing them to greet you differently or say different things
  • Has a system to dynamically replace text in the dialogue by utilizing a table of DynamicTextFunctions (which you can write your own functions for). Now NPCs can greet you by name!
  • Each dialogue node can execute arbitrary code upon being encountered, such as giving you a tool or powerup, or teleporting you somewhere else for a fee
  • Each dialogue node can store arbitrary data which is passed into DynamicTextFunctions, actions, and conditions, allowing you to customize behavior
  • Has an abstract interface, allowing you to customize the look and behavior of the client-side however you like
  • Comes with a default interface, redesigning a classic Roblox look and allowing you to jump start projects
  • Allows NPC phrases to be chained into one another for such a purpose as a “next” button like in Zelda where text is split between multiple boxes
  • Fully open source and well-documented

And maybe more that I can’t remember right now. If there’s something you think is missing, go ahead and let me know. Your feedback will help me iterate on the design and make an even better product. But all this isn’t even the best part, oh no, the best part is this:

The Dialogue Editor

This plugin allows you to visually create and edit dialogue graphs. It has shortcuts, hotkeys, and many more features in order to make the creation of deep, complex dialogue graphs very easy. It’s also easy to create simple graphs, too.

Where do I get it!?

Well, if you’re not sure about it yet, see the results of its use in this neat little demo I put together: Dialogue Demo - Roblox

If you’re totally ready to go, here’s the plugin itself: Roblox Dialogue Editor - Roblox

Caveat

The default interface is not 100% complete, yet. It is still in development and subject to change. As it’s updated, I’ll provide instructions on how to acquire the most recent version.

Feedback

Thanks for listening! Please let me know what kind of feedback you have after trying it out. I’m looking forward to iterating on the design with all of your input.

TUTORIAL

177 Likes

I got theese errors, when trying out the place “live” on the website.

1 Like

The plugin isn’t feeling it either :confused:

4 Likes

Looks awesome, if it would be working… :cold_sweat:

7 Likes

Might want to move this thread to a private section until it’s fixed, or mark it as WIP.

The screenshot does look nice, although it took me a few seconds to understand how it works. The GUI doesn’t display that there are conditions/functions linked to prompts/responses, though?

6 Likes

Very excited about this, was going to make my own dialog system soon. Please fix this soon, I’d love to try it.

3 Likes

Sorry, fixed this. :stuck_out_tongue:

6 Likes

Under what circumstances did this occur? It shouldn’t happen by my understanding unless you did something weird to the data structure.

Is there any camera edits in the place, as i get a lag issue, when trying to turn my camera around.

2 Likes

Yay! Glad to finally see this being worked on once again! I was a huge fan of the dialog system and loved it when it came out. Obviously it started to become outdated and users could create their own better dialog systems so for it to start catching up again is great!

Though I do have to ask, not sure if I missed it in here or not but are there any plans to to implement a multi player interact? Meaning, when a user(1) clicks on the dialog, the dialog doesn’t just disappear making the next user(2) have to wait before user(1) is finished interacting with it.

2 Likes

Yes, this system implements just that.

Also, the plugin should be working. Can anyone else produce errors?

1 Like

Those buttons on the interface are way too huge. Feels like I’m playing a game that’s been ported to pc. Please fix :wink:

1 Like

I just used the buttons to plonk in a script, clicked the create button and got that.

I got this when hitting F6, to test the dialog
22:25:57.659 - Image “rbxassetid://955362461” failed to load in “Players.Master3395.PlayerGui.RobloxDialogueScreenGui.MainFrame.ResponsesImage.ResponsesFrame.BottomImage”: Request failed

Nice.

I noticed something with the dialogue prompt though:
https://gfycat.com/WindingAppropriateBudgie

3 Likes

Try again?

:+1:

2 Likes

This is a bug with Billboards internally that’s being worked on.

9 Likes

This is amazing! :smiley:
Haven’t actually used it yet so I’ll edit this if I find bugs.

I’m really happy this finally got an update, I’ve always avoided the current system as it is.

Though, Will there be options to edit the UI itself which responses & options?

1 Like