The Godot Q&A is currently undergoing maintenance!

Your ability to ask and answer questions is temporarily disabled. You can browse existing threads in read-only mode.

We are working on bringing this community platform back to its full functionality, stay tuned for updates. | Twitter

0 votes

Hi all,

I've developed a modal dialog system where a guide talks you through various parts of the game.

It's quite cool. You can:

  • instance it from anywhere
  • feed it some data in an array as you instance it
  • and that data is used to determine what happens in the dialog screen.

For example I can send it this kind of info: = ["Hi, this is me, what's your name?", "input", "Great name!", "finish"]
#then add_child to show dialog etc

It loads, shows the first screen, you tap, it shows an input box where you can enter your name, tap enter on that and it says "Great name" tap again and it closes. It writes out data etc, quite cool. There's more that it can do but that's the basic idea.

What I want to do though is to do something like:

  • instance dialog with a flow as above
  • on close of instance, move onto other game flow screens.
  • on close of those screens, instance dialog again with a flow as above

Depending on what is chosen you could branch into any particular set of dialogs.

I was thinking of having a _process delta happening and real time watching for variable that are switched on and off but that seems a little wasteful to me.

I could use signals (am using Godot) and depending on signals I could trigger different dialogs. I'm suspecting that's the best way but want to check in first.

What is the best way to handle a branching effect like this do you think?

Thanks so much

in Engine by (824 points)

Please log in or register to answer this question.

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to [email protected] with your username.