[OPEN SOURCE] Not Yet: Dialogue System

I forgot to mention here, but now there are new event and condition types which work directly with UProperties. You can use them to set/get normal unreal float, bool, fname, and int variables, and compare them the way you do with the participant variables. It also works with auto-complete if you set up the blueprint class for the participants in the dialogue’s details panel.

@Ispheria:

I just implemented your third request, it is already in the public repository and it will be included in the next marketplace update.
I’ll try to take care of the rest in the near future as well.

Nice solution for the variables in text issue, thanks for sharing it.
As far as I know however it won’t support localization - because you convert the text to string. Unfortunately I can’t really think of any better solution at the moment - I will try to look into the C++ implementation of the FText::FormatText() node and see if we can integrate something similar into the dialogue editor.

About the new feature:

We have new functions in DlgContext which provide data from the unsatisfied options as well.
New functions are GetAllOptionNum(), GetOptionTextFromAll(int32 Index), IsOptionSatisfied(int32 Index), GetOptionSpeakerStateFromAll(int32 Index). Most of the functions are like the old ones, but these expect other indices (between 0 and GetAllOptionNum() and not between 0 and GetOptionNum()).

There is also a helper function ChooseChildBasedOnAllOptionIndex() which uses this new index type. I hope it isn’t too confusing.

Edges now have a bIncludeInAllOptionListIfUnsatisfied bool variable, which is true by default. Set this to false if you want to stop an edge from being included and accessible.