Comments

Log in with itch.io to leave a comment.

Do you have a Discord username?

Hey, sorry no, you can post any question here that you like, it's always better so that people looking for the same issue can find the solution as well :)

Hello, will there be godot4.x version of it?

Hey, sorry haven't been very active with either itch or gdscript. Just uploaded the 4.x version. I didn't have the time to fix up the ui so it might be a bit off from the pictures but it is working. :) 

(+1)

Hi! I just wanted to say: thank you so much! I was always stuck on how to make a dialogue system in Godot, and happened to stumble upon your project last year. I used your project as reference for building my own dialogue system (https://github.com/QueenChristina/gd_dialog), and finally finished it. It was such a great educational experience, and your project broke down how it all worked in such an easy to follow way. Seriously, I cannot thank you enough! I don't think I could've managed this without you sharing your project.

(+2)

I am glad it was of help, your project from a quick glance seems awesome :D Thanks for sharing and making it Open Source :) I will add it to the description for people that are looking for a full fledged solution :) 

I'm a beginner in Godot and spent like a week searching for a good way to import json files into a dialogue system, this was exactly what I was looking for! Thanks a lot for this :D

(+1)

Glad it was helpful :D Looking forward to your games.

hey could you make a video tutorial for this?

Hey there, I am sorry I am not really into video making at all. If you have specific questions just fire away. In general the .json files included in the project should be self explanatory, also there is some documentation in the script, if that doesn't cover it just come back here with your questions.
The general concept is:
- Make a new script that triggers the dialogue in any way you need it (overlap with character, button press, anything else)
- Get a reference to the main UI script provided (with get_node() or with an autoload

- Then you call LoadFile("Name Of File Here")
- And finaly you call StartDialogue()

Everything else should be setup inside each .json file for each dialogue you have created, including names,text,options and where they lead etc. The one included should give a good representation of what you can do with it.

If you don't know how .json files work (or are supposed to work anyway, they are plain text files after all, they just have defined structure is all) you should check out a generic json tutorial , it should clear most things up.

(+3)

So i just wanna say i have very minimal coding experience and the most i have is what i learned in my first game jam like 3 weeks ago lol.  I've been looking for some pre built dialog systems but none of them stood out as something accesible and such. However your dialog graph is really good and nice and i managed to even get it to where letters appear one at a time and sound plays on each letter shown, etc. So like super kudos to you for making it accessible and such and just the comments throughout the code is so helpful! <3 

(+1)

I am really glad it was helpful to you,  the whole point was for it to be easy to follow/educational . Getting these stuff to work for you i just 3 weeks is amazing btw, looking forward to seeing your games one day :D

(+2)

I love this project and its worked really well so far, except one bit, For some reason I keep coming up with the error

E 0:00:25:0486   Signal 'pressed' is already connected to given method '_on_Button_Pressed' in that object.
  <C Source>     core/object.cpp:1476 @ connect()
  <Stack Trace>  DIalogueManager.gd:127 @ UpdateUI()
                 DIalogueManager.gd:98 @ HandleNode()
                 DIalogueManager.gd:89 @ NextNode()
                 DIalogueManager.gd:142 @ _on_Button_Pressed()

Any help would be really appreciated, thnx

(+1)

BTW I fixed it, here's the fixed version for reference:

func UpdateUI():
if curent_node_id >= 0:
if current_node_affect > 0:
AffectRecognition()
dialoguePanel.show()
for x in dialogueButtons:
x.hide()
#disconnect buttons
if x.is_connected("pressed",self,"_on_Button_Pressed"):
x.disconnect("pressed",self,"_on_Button_Pressed")

Thankyou, I love your code :)

(1 edit) (+1)

Hey, I am glad it was of help to someone, will fix it when I get back from work , thanks for the input :D


Edit: Fixed , thanks for pointing that out , that was a silly mistake :D

Is fine, thanks for the code, its so adaptable for everything :) !!!

(+2)

This is really cool.  Thanks for sharing. I'll let you know if I use it in a project.