Help with dialogue UI

I want my game to have a dialogue pop-up in the beginning, saying hello, welcome, etc. I don’t want to use roblox’s basic dialogue system for obvious reasons. I want a UI to pop-up on the screen and then a series of messages to play out, and then when that is done I want it to disappear. I’ve checked out tons of tutorials and they all are either outdated or not what I am looking for.

I do know that I need a script that puts the dialogue on the players screen when they load into the game.

Then a script that types out a couple lines of text, deletes it after a few the seconds, and types out a few more lines.

Lastly a script that closes the UI

How can I achieve this? Thank you.

1 Like

This should help, it was released a few months ago and is a standard when making dialogue systems! When making your system, keep in mind if you want rich text (multi color text/italic-bold text), and remember to make it easy to scale!

1 Like

I can help you with this!

Im rlly sorry if what I sent is rlly confusing and some stuff you dont understand since of my bad english, I also wrote this early in the morning. Feel free to message me if you have any questions

1st of all you need to setup all the values required to run the dialogue System. Make 2 string values called “Speaker” (if you want to identify who’s speaking in your dialogue system) and “Dialogue” which where we’ll store the current dialogue being played. We are putting it as values because we want the values to be server sided and not client since it can be easily exploited and so that every client can also access the Dialogue

Now if you want to call the dialogue in multiple scenarios like, opening a door or something, we need to make use of modules and in that module we store the function there that sets the dialogue, speaker and stuff. If you want a quick typewrite effect function to be stored in that function in the module check out AlvinBlox’s tutorial. It’s well explained and you can use it for the module but your gonna need to modify some stuff such as the Dialogue Value needs to be set in the DIalogue Value we made earlier

Now in a server script we call the module and set the values for our modules here. If your function in the module is like this:
DialogueHandler.MakeDialogue = function(dialogue, speaker)
we call our function and fill in our arguments! and by doing that we can call our module every time using a server script.

Client Side
Since we want our dialogue system to have some effects like popping in. We will be making use of Tween Service . Here we can make our pop-up effect with closing and opening. After that we want to check if our Dialogue Value in ReplicatedStorage has been changed and we can do that by doing DialogueValue:GetPropertyChangedSignal("Value"):Connect(function()
and inside that function we set our Dialogue Text to the Dialogue Value and set our Speaker Text to the speaker value. And we can :Play() our tween so our pop-up effect can play.

1 Like