Custom dialogue entity

The default nodes in the dialogue system should be enough for most projects. But if your project needs a specific type of entity that does something new, you can create a custom dialogue entity class in C++ or blueprints.
To create a custom dialogue entity, create a class derived from UDialogueEntity. Add necessary variables and override the functions neccessary to add the logic you need. The functions you can override are:
PrepForPlay(): called before the dialogue is played. Allows the entity to prepare data for playing.
OnPlay(UDialoguePlayer*): This is the function where the core logic of the entity must be implemented.
Stop(UDialoguePlayer*): called when the entity is stopped. This is useful in cases like playing cinematics where the dialogue may want to stop playing the cinematic.
Next(UDialoguePlayer*): called to play the next entity. This allows the dialogue entity to decide what entity to play after it is done playing.
OnConstructed(): called when the entity is created in dialogue editor. Useful to setup the object.
OnDestroy(): called when the entity is destroyed in dialogue editor.