# Dialogue Plugin

**URL:** <https://forums.unrealengine.com/t/dialogue-plugin/59871>\
**Category:** UE Marketplace\
**Tags:** unreal-engine, fab\
**Created:** [March 31, 2016, 11:23pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871 "2016-03-31T23:23:48Z")\
**Posts on this page:** 20\
**Page:** 13

<div class="post-metadata">

**Author:** ![anonymous\_user\_f7390959](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_f7390959](https://forums.unrealengine.com/u/anonymous_user_f7390959)\
**Post date:** [May 27, 2018, 1:55pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/255 "2018-05-27T13:55:14Z")

</div>

Could you make a video how you trigger the dialogue with gamepad? Many thanks

---

<div class="post-metadata">

**Author:** ![codarth](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@codarth](https://forums.unrealengine.com/u/codarth)\
**Post date:** [May 30, 2018, 12:55am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/257 "2018-05-30T00:55:50Z")

</div>

The NPCActor node coming off ‘Event Recieve Event Triggered’… What does it return? I tried printing just the name of the ‘whatever it is’ and get nothing. The Considering Player node gives me the player controller.

PS… Receive is spelt wrong. Thought you should know.

---

<div class="post-metadata">

**Author:** ![Ore\_Creative](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Ore\_Creative](https://forums.unrealengine.com/u/Ore_Creative)\
**Post date:** [May 31, 2018, 3:26pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/258 "2018-05-31T15:26:18Z")

</div>

> [@Wu\_Yao](#):
>
> Could you make a video how you trigger the dialogue with gamepad? Many thanks

Code Spartan made a few videos showing how to do this.

- Part 1 [https://www.youtube./watch?v=Xs1m…ature=youtu.be](https://www.youtube./watch?v=Xs1mFoCOJfM&feature=youtu.be)
- Part 2 [https://www.youtube./watch?v=4wq1…ature=youtu.be](https://www.youtube./watch?v=4wq1s5SE3eg&feature=youtu.be)

---

<div class="post-metadata">

**Author:** ![CodeSpartan](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/codespartan/32/1194561_2.png) [@CodeSpartan](https://forums.unrealengine.com/u/CodeSpartan)\
**Post date:** [June 3, 2018, 12:51pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/259 "2018-06-03T12:51:10Z")

</div>

> [@cloganart](#):
>
> Hey there
> 
> I was wondering the network capabilities of this project. We are working on an MMO and we need a dialogue system that we can incorporate with our quests. I was wondering the network replication capabilities of This system in particular.

There’s no out of the box network support, no. Dialogue lines in MMOs aren’t normally sent through the network, so I would suggest sending node ids from client to server every time you select a dialogue line. Clients would have authority in navigating the dialogue tree (so no delay occurs), but the server would have to check if the navigation that is happening is allowed, and if so, would fire necessary events.

> [@SirCashinOut](#):
>
> How can I get animations played on NPC Answers?

Depends. There are multiple ways to go about it depending on how frequently you want animations to play, and if you want specific montages to play or just a random chit chat animation to play every time the NPC says something.

If it’s the former, I’d suggest each node to have an enum chat\_animation {Angry, Casual, Casual 2, Amused, etc}, and to have the UMG widget trigger that animation on the NPC every time a new NPC line is displayed. I can go into more detail about that if this is what you need.

And if you simply want to play a specific montage, try doing it through the event system that is described in tutorial #2.

> [@codarth](#):
>
> The NPCActor node coming off ‘Event Recieve Event Triggered’… What does it return? I tried printing just the name of the ‘whatever it is’ and get nothing. The Considering Player node gives me the player controller.
> 
> PS… Receive is spelt wrong. Thought you should know.

Make sure something is connected to the NPCActor pin when spawning the dialogue widget:

https://i.gyazo./587b72f6c4d9ea97f50bb5357869b179.png

---

<div class="post-metadata">

**Author:** ![CodeSpartan](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/codespartan/32/1194561_2.png) [@CodeSpartan](https://forums.unrealengine.com/u/CodeSpartan)\
**Post date:** [June 3, 2018, 12:56pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/260 "2018-06-03T12:56:31Z")

</div>

> [@Nemo1991](#):
>
> Hey there.  
> I have a question about the dialogue events functionality:  
> Is it possible to turn it in some kind of a static event dispatcher? In the tutorial video I see that You’ve used a controller blueprint to interact with other actors. Is there a more modular approach possible?
> 
> Essentially I would like for it to work along these points:
> 
> 1. I create an instance of my blueprint that shows a dialog in a level when a player goes near it. (imagine a NPC that starts a conversation when You approach him)
> 2. I chose in the instance which dialogue should be used here. (may be kept as variable in the blueprint - no problem)
> 3. I add some events to the dialogue to make it more influential on the environment and define it’s parameters. (ex. event that would change a light color and I pass in the dialogue node the color value)
> 4. I add listening functionality to some actor’s blueprint (a blueprint class maybe?) that listens for a particular event and does something with it. (ex. a light changes it’s color defined previously in the dialogue)
> 5. I create 5-6 more instances of the light and they should automatically listen for the same event.
> 6. I create a different blueprint that also listens for the light changing event and do something different with it. (ex. when the player choose the red color the gate with the same color opens)
> 
> I’ve already tried event dispatchers, but You need a target to bind in to that, and I don’t know how to get an instance of the event from a different blueprint.  
> Please, let me know if the explanation is sufficient enough and You get what I’m trying to achieve here (reusability is the key). Also, I should mention that I’m new to the Unreal Engine stuff as I previously worked with Unity for couple of years (there I would simply do it with a static event and a Monobehaviour that adds a delegate to it), so this may be a trivial issue or some known design pattern that I can’t seem to grasp.
> 
> Thanks in advance and I hope for Your, much needed, support. 🙂

To answer your question, nodes such as “Get All Actors of Class”, “Spawn Actor from Class”, “Set Timer By Event”, etc have all been exposed to the plugin’s conditions/events system in the later versions of the plugin (rendering the tutorial slightly obsolete), so now you don’t have to interact with the environment through the PlayerController. It’s all possible right inside the condition/event logic.

---

<div class="post-metadata">

**Author:** ![Quantum\_Theory](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Quantum\_Theory](https://forums.unrealengine.com/u/Quantum_Theory)\
**Post date:** [June 8, 2018, 9:34pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/262 "2018-06-08T21:34:04Z")

</div>

Thanks for this excellent and powerful plugin. I picked it up the other day.

I have an NPC who is a main character. When you meet her, you’ll get one series of dialogue. When you speak to her again, it’ll be another. If you finish a quest, you’ll get another series, and so forth…

So, for multiple dialogues from a single NPC, which would you recommend?

1. Putting all the dialogue text series’ into a single Dialogue object and having conditions control which get run?
2. Put all dialogue text series’ into individual Dialogue objects, put them into an array or map, then have the NPC actor object have logic to control which gets run?

Also, would you mind elaborating on how the graph for the main widget is done so we can do our own? I know the documentation suggests duplicating, but I want to be able to understand how it’s constructed so I can go further.

Thanks again!

---

<div class="post-metadata">

**Author:** ![CodeSpartan](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/codespartan/32/1194561_2.png) [@CodeSpartan](https://forums.unrealengine.com/u/CodeSpartan)\
**Post date:** [June 14, 2018, 12:17pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/263 "2018-06-14T12:17:08Z")

</div>

> [@Quantum\_Theory](#):
>
> Thanks for this excellent and powerful plugin. I picked it up the other day.
> 
> I have an NPC who is a main character. When you meet her, you’ll get one series of dialogue. When you speak to her again, it’ll be another. If you finish a quest, you’ll get another series, and so forth…
> 
> So, for multiple dialogues from a single NPC, which would you recommend?
> 
> 1. Putting all the dialogue text series’ into a single Dialogue object and having conditions control which get run?
> 2. Put all dialogue text series’ into individual Dialogue objects, put them into an array or map, then have the NPC actor object have logic to control which gets run?
> 
> Also, would you mind elaborating on how the graph for the main widget is done so we can do our own? I know the documentation suggests duplicating, but I want to be able to understand how it’s constructed so I can go further.
> 
> Thanks again!

I would go for #2, but I never worked on an RPG with complex dialogues yet, so it’s basically a guess.

As for your second question, do you mean the UMG widget or the Slate graph where you write your dialogue? I’m going to assume the former, because this is what has to be duplicated.

So for the UMG widgets, there’s only 2 entry points.

- One is in the **Event Construct** in the DialogueWidget when it gets spawned.
- The other one happens in ReplyWidget when you select a reply - **OnClicked (ButtonReply)**.

I would recommend placing a breakpoint on those two, then stepping in and seeing for yourself where the execution leads you. The widgets’ logic has comment blocks around them.

In short, the only cpp method that drives the whole process is \*\*GetNextNodes(). \*\*You start the dialogue by getting the first node **(Dialogue -\> Data[0]**) and feeding it into **GetNextNodes()**. If it returns an NPC node, you display it, then feed it into **GetNextNodes()** again and display the PC replies. Once the PC reply has been selected by the player, you feed it into **GetNextNodes()** and the process repeats. Everything else around it is just UMG logic.

---

<div class="post-metadata">

**Author:** ![dcaspi](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@dcaspi](https://forums.unrealengine.com/u/dcaspi)\
**Post date:** [June 15, 2018, 8:45am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/265 "2018-06-15T08:45:40Z")

</div>

Hello,

Is there a way to track the updates of the plugin? we are using it in our SVN and currently working on 4.18.  
It will be great if I could know if there were a bug fixes or new features rather then just support of 4.20 for example…

thanks!

---

<div class="post-metadata">

**Author:** ![JoeWintergreen](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/joewintergreen/32/1194565_2.png) [@JoeWintergreen](https://forums.unrealengine.com/u/JoeWintergreen)\
**Post date:** [June 15, 2018, 9:31am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/266 "2018-06-15T09:31:23Z")

</div>

Hey , question: Over a year ago we bought this and made some modifications (so that you don’t have to go into C++ to set up conditions, etc). Just wondering if you’ve made any major changes of your own in that time that we might be missing out on.

---

<div class="post-metadata">

**Author:** ![Quantum\_Theory](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Quantum\_Theory](https://forums.unrealengine.com/u/Quantum_Theory)\
**Post date:** [June 15, 2018, 1:07pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/267 "2018-06-15T13:07:41Z")

</div>

I just noticed that events aren’t firing on PC answers. Is this intentional?

---

<div class="post-metadata">

**Author:** ![Quantum\_Theory](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Quantum\_Theory](https://forums.unrealengine.com/u/Quantum_Theory)\
**Post date:** [June 15, 2018, 3:12pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/268 "2018-06-15T15:12:22Z")

</div>

> [@JoeWintergreen](#):
>
> Hey , question: Over a year ago we bought this and made some modifications (so that you don’t have to go into C++ to set up conditions, etc). Just wondering if you’ve made any major changes of your own in that time that we might be missing out on.

Yea, conditions are now blueprint objects. Check out the events and conditions video.

---

<div class="post-metadata">

**Author:** ![Kenji453](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Kenji453](https://forums.unrealengine.com/u/Kenji453)\
**Post date:** [June 16, 2018, 12:35am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/269 "2018-06-16T00:35:14Z")

</div>

Hi there. I just bought this project but for some reason, even when I enable show Plugin Folder in the editor, nothing show up so I cannot get access to the demo widget. Does anyone know what happen?

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_38e5aa46](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_38e5aa46](https://forums.unrealengine.com/u/anonymous_user_38e5aa46)\
**Post date:** [June 16, 2018, 9:10pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/270 "2018-06-16T21:10:22Z")

</div>

> [@Kenji453](#):
>
> Hi there. I just bought this project but for some reason, even when I enable show Plugin Folder in the editor, nothing show up so I cannot get access to the demo widget. Does anyone know what happen?

Are you using a MAC? I had the same issue with Quest Extension on my MAC. No fix known. It would install and show up in the plugin manager, but be a complete ghost in the editor. I’m just deving on a PC until this gets figured out.

---

<div class="post-metadata">

**Author:** ![Witdarkstar](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Witdarkstar](https://forums.unrealengine.com/u/Witdarkstar)\
**Post date:** [June 17, 2018, 12:27am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/271 "2018-06-17T00:27:05Z")

</div>

Hi ,

This plugin has been fantastic and is doing mostly everything I need.

The question I have for you, is it possible to detect when the audio from a dialog selection has ended? I’m not sure where the audio source to bind to is here. It would be nice to use for conditions for when PC choices come up.

---

<div class="post-metadata">

**Author:** ![CodeSpartan](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/codespartan/32/1194561_2.png) [@CodeSpartan](https://forums.unrealengine.com/u/CodeSpartan)\
**Post date:** [June 21, 2018, 8:30pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/272 "2018-06-21T20:30:46Z")

</div>

> [@dcaspi](#):
>
> Hello,
> 
> Is there a way to track the updates of the plugin? we are using it in our SVN and currently working on 4.18.  
> It will be great if I could know if there were a bug fixes or new features rather then just support of 4.20 for example…
> 
> thanks!

> [@JoeWintergreen](#):
>
> Hey , question: Over a year ago we bought this and made some modifications (so that you don’t have to go into C++ to set up conditions, etc). Just wondering if you’ve made any major changes of your own in that time that we might be missing out on.

Hi. Going to answer both questions here: somewhere during the 4.18, a major update to the dialogue plugin was released that considerably improved conditions/events usability by moving their logic into blueprints.

Then another update was released that allowed using nodes in conditions/events that require World (find actors of class, set timer by event, etc), bypassing the need to do this through PlayerController for example.

The 4.19 version may have some changes for the gamepad functionality in the umg widgets (or not… sorry, I need to start writing it down somewhere), and a minor fix for the engine compatibility.

The only way to see what changes occurred between versions for you guys is to set up a git repository, download the plugin for 4.18, 4.19, etc and put different versions into the repository, making a commit each time. I would’ve gladly added you to my private repository, but Epic still doesn’t allow sellers to see who bought their assets, unfortunately, so there’s no way to verify who’s who. Thus, doing it manually on your end through version control is the only way.

> [@Quantum\_Theory](#):
>
> I just noticed that events aren’t firing on PC answers. Is this intentional?

No, but I think I already fixed this bug in previous updates. Are you using the latest version of the plugin and the latest engine version? If not, what version of the engine are you on?

> [@Kenji453](#):
>
> Hi there. I just bought this project but for some reason, even when I enable show Plugin Folder in the editor, nothing show up so I cannot get access to the demo widget. Does anyone know what happen?

Yep, just checked and I’ve got the same thing. Try also checking the “engine content” checkbox as well, it fixes it for me. If it doesn’t help, you can still copy the widgets from the plugin’s folder into your project manually, then follow the documentation on how to make the plugin use \*them \*instead of the stock version.  
They’re in: Plugins\DialoguePlugin\Content\UI  
Just copy them to anywhere into your project’s /Content/ folder or its subfolders.

> [@Witdarkstar](#):
>
> Hi ,
> 
> This plugin has been fantastic and is doing mostly everything I need.
> 
> The question I have for you, is it possible to detect when the audio from a dialog selection has ended? I’m not sure where the audio source to bind to is here. It would be nice to use for conditions for when PC choices come up.

Sorry, don’t understand exactly how you want to use sounds in conjunction with conditions.

Please give me a step-by-step example 🙂

As for delaying the NPC dialogue lines from showing while your main character’s audio is playing, it’s something I’m going to add in the 4.20 version. Someone asked how to do it in the widget, I showed them, and since it was already implemented, I decided to add it to the plugin. If this is what you’re asking about, here’s a hint on how to do it:

https://i.gyazo./cb194ea3af69bf281085c2b60ed9bb56.png

There’s no PlayPlayerReply event in the 4.19 version yet, and it’s a bit more complicated than just adding the stuff from this screenshot, because you also need to be able to skip the audio and the delay if you hit “continue” before it plays out, but it’s a start if you want to try implementing it yourself. Otherwise, it’ll be out in 4.20.

---

<div class="post-metadata">

**Author:** ![Althaen](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Althaen](https://forums.unrealengine.com/u/Althaen)\
**Post date:** [June 24, 2018, 1:35pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/273 "2018-06-24T13:35:17Z")

</div>

Can you add a node that will close the dialogue?

---

<div class="post-metadata">

**Author:** ![Witdarkstar](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Witdarkstar](https://forums.unrealengine.com/u/Witdarkstar)\
**Post date:** [June 24, 2018, 6:22pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/274 "2018-06-24T18:22:19Z")

</div>

> [@](#):
>
> Sorry, don’t understand exactly how you want to use sounds in conjunction with conditions.
> 
> Please give me a step-by-step example 🙂
> 
> As for delaying the NPC dialogue lines from showing while your main character’s audio is playing, it’s something I’m going to add in the 4.20 version. Someone asked how to do it in the widget, I showed them, and since it was already implemented, I decided to add it to the plugin. If this is what you’re asking about, here’s a hint on how to do it:
> 
> https://i.gyazo./cb194ea3af69bf281085c2b60ed9bb56.png
> 
> There’s no PlayPlayerReply event in the 4.19 version yet, and it’s a bit more complicated than just adding the stuff from this screenshot, because you also need to be able to skip the audio and the delay if you hit “continue” before it plays out, but it’s a start if you want to try implementing it yourself. Otherwise, it’ll be out in 4.20.

That sounds right, but I think I mean opposite from what you said? I just want to make sure I’m not mixing it up. The example we are trying to do is the NPC is playing a dialog audio in their node, and we don’t want the player choices for the response to appear until the audio is finished playing.

Thanks for the screenshot, that is super helpful to helps us think about it until the update. It sounds like the update is doing what we are wanting to do and are looking forward to it.

Thanks for reply.

---

<div class="post-metadata">

**Author:** ![CodeSpartan](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/codespartan/32/1194561_2.png) [@CodeSpartan](https://forums.unrealengine.com/u/CodeSpartan)\
**Post date:** [June 26, 2018, 11:58pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/275 "2018-06-26T23:58:21Z")

</div>

> [@Althaen](#):
>
> Can you add a node that will close the dialogue?

Call “Remove From Parent” on the dialogue widget.

> [@Witdarkstar](#):
>
> we don’t want the player choices for the response to appear until the audio is finished playing.

I recorded a short vid to answer that question.

[https://youtube](https://youtube)./watch?v=2QTLCGLNFEw

---

<div class="post-metadata">

**Author:** ![Witdarkstar](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Witdarkstar](https://forums.unrealengine.com/u/Witdarkstar)\
**Post date:** [June 27, 2018, 11:47pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/276 "2018-06-27T23:47:42Z")

</div>

> [@](#):
>
> Call “Remove From Parent” on the dialogue widget.
> 
> I recorded a short vid to answer that question.
> 
> [https://youtube](https://youtube)./watch?v=2QTLCGLNFEw

I didn’t even think of checking for a float variable related to the audio duration. Thank you so much for the short video reply.

---

<div class="post-metadata">

**Author:** ![Modinaddr](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Modinaddr](https://forums.unrealengine.com/u/Modinaddr)\
**Post date:** [July 10, 2018, 9:12am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/277 "2018-07-10T09:12:11Z")

</div>

I want to fire custom event in player controller thru dialog option, but i don’t get even a print string out. I am new to blueprints so I guess it’s something silly… What iam doing wrong?

[Previous page](https://forums.unrealengine.com/t/dialogue-plugin/59871.md?page=12)

[Next page](https://forums.unrealengine.com/t/dialogue-plugin/59871.md?page=14)
