I develop and regularly update a dialogue system on the Unity Engine game engine. I use it in many projects whenever a dialogue system is needed.
This system is designed to be both comprehensive and simple. It is designed to make it easy to add parameters/elements according to the needs of the project.
When I create a dialogue system on the Unreal Engine game engine, I take the same approach.
Dialogue System
Dialogue Editor
Speaker
Tags & Text Parameters

Text Preview
Speaker Editor

Dialogue Information
Dialogue Events
In C++
I create a system using Primary Data Assets, which makes it easy to create new dialogues.
This contains a list of sentences, each of which first contains information about the character who is speaking, and finally the sentence they are saying.


I don't add characters one by one to the text box. By default, the entire sentence is already written, but all characters have 0% opacity. Then, one by one, I increase their opacity to the maximum.
This system prevents the text from wrapping to the next line when it is written, because this way, all the text is in the text box from the start.
Dialogue Manager
Finally, this is where I manage all the dialogue display. In particular, this is where I define certain values that can be found in the dialogue editor, such as the text size in expressive mode or the waiting times between sentences.




