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.