Dialogue Plugin

Who knows why variables are not divided into subcategories?

Hah, a question for Epic. This window is automatically populated by the engine code, not by any of my code. You could submit a feature request, but with the way things are now, I wouldn’t bet my house that they’d implement it any time soon, if ever.

Thx for answer

Got to the point of adding in lip sync with the dialogue system. Is there a way to determine what character is speaking, so I can communicate with the speaking character and trigger the lip sync?

You feed the speaking character into the NPCActor pin of the Dialogue Widget, and so this is where you can retrieve it. Or you can just save the character into any other variable of any other class.

So it would need to be done through dialogue events?

Like this?

Actually, if it is possible instead of getting the line from the sound var used in the dialogue widget, would it be possible to get the sound from the dialogue node the dialogue event is called in?

In DisplayNpcNode you have the current node, which can be broken to retrieve the sound, and you have the NPCActor in the widget anywhere you need it. No need to bother with dialogue events. If the node has sound, do your lipsync.
Or do it in PlayDialogueSound. It’s up to you to pick a place.

I would need a way to determine whether the speaking character is the player character or partner or another npc. Otherwise, all of them will play lip sync when in dialogue. Does NPC actor refer to the currently speaking NPC actor or the NPC the player has talked with to start the conversation?

I think for my version of the system, both player dialogue and NPC dialogue are regarded as NPC dialogue.

I’ve tried placing the lip-sync call in NPC node and sound as well as continue for ours, but none seem to work. Duration always comes up 0.

It refers to the character you feed into the widget when creating the widget.

DoEvents fire before PlayDialogueSound.
Either swap them or refer to DialogueWidget->CurrentNode->Sound.

Ah, in that case, I’ll need to make a check for object type to determine which npc character is speaking during a conversation.

Edit: Found a way just through a custom loop and a string switch. Thank you for your help!

Updated the 4.27 version of the plugin today and added the typewriter effect tutorial to the documentation. Relaunch the Epic Launcher and update the plugin if you need the typewriter effect. Only available for 4.27+.


Plugins can’t introduce conflicts, they’re in their own namespace. Except if using macros (they’re global), which this plugin doesn’t use.

Decided to include the use of the dialogue menu as an option for players if they don’t want dialogue continuing automatically, tried using this condition to hide PC options after they have been clicked on, but it wont hide the options.

Also need to add in a dialogue skip.

I’m having a bug on 4.27 , the player options aren’t being cleared and can be continuously clicked on other branches and following dialogues. (i did the typewriter tutorial and that part works great)

My best guess is that either you’re opening the dialogue multiple times or you’ve changed something in the dialogue widget. If it’s not the case, then could you send me the repro steps or a minimal project with this behavior?

Has the plugin been tested on UE5?

I have been trying to use the NPC Actor reference on Event Receive Event Triggered but it isn’t working. When I create the Dialogue Widget I feed a self reference into the NPC Actor variable and nothing comes out.
I have tried looking in the Dialogue Widget to see how it is passed through, but I can not find the variable within the Widget. How do you pass the NPC Actor Variable through to the event.