# 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:** 23

<div class="post-metadata">

**Author:** ![laethyn](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@laethyn](https://forums.unrealengine.com/u/laethyn)\
**Post date:** [December 16, 2019, 12:30pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/466 "2019-12-16T12:30:23Z")

</div>

> [@JR\_SilentGames](#):
>
> In case anyone else had this issue, it was \*\*resolved \*\*by rebuilding after downgrading VS2019 to 16.2 (issue occurs on 16.3).

Upgrading VS2019 to 16.4.1 also seems to fix the issue.

---

<div class="post-metadata">

**Author:** ![jwainwright](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@jwainwright](https://forums.unrealengine.com/u/jwainwright)\
**Post date:** [December 18, 2019, 12:52pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/467 "2019-12-18T12:52:33Z")

</div>

Is there any way to import Dialogue payloads?

Export seems to work without issue (pushes the data structure into COPY or T3D file, which is human-readable), but I can’t find a way to import that data back into a Dialogue object in-engine.

---

<div class="post-metadata">

**Author:** ![the\_tubby1](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@the\_tubby1](https://forums.unrealengine.com/u/the_tubby1)\
**Post date:** [December 28, 2019, 8:00pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/468 "2019-12-28T20:00:22Z")

</div>

Is there a way to check if a node has been visited?  
Lets say you only want an NPC to say something once, then say something else every time

---

<div class="post-metadata">

**Author:** ![daveSchoneveld](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/daveschoneveld/32/726691_2.png) [@daveSchoneveld](https://forums.unrealengine.com/u/daveSchoneveld)\
**Post date:** [January 1, 2020, 4:18pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/469 "2020-01-01T16:18:27Z")

</div>

> [@the\_tubby1](#):
>
> Is there a way to check if a node has been visited?  
> Lets say you only want an NPC to say something once, then say something else every time

Yes you have to make a system for managing that. But it will be condition branch. Here’s something I made quick, but it will depend on your needs.  
So whats happening is in a branch I set a condition. In that condition I set a position of an array, and check that value. I would set that value if I had already talked to the person. So default all values are 0 for everything I need to track. When I talk to someone I set that position in the array to 1. When I do what they asked, I set it to 2. Each of those are saved on the player character, and pulled up and checked against in the condition in the dialogue tree. Its basically setting up a simple quest system. You’d probably want to use a data table since this will be harder to manage, and prone to bugs in human error.

 ![gamestates.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/3X/0/a/0a91bcf7c38f61e12d3478e65616d849ec5875a7.jpeg)

---

<div class="post-metadata">

**Author:** ![daveSchoneveld](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/daveschoneveld/32/726691_2.png) [@daveSchoneveld](https://forums.unrealengine.com/u/daveSchoneveld)\
**Post date:** [January 1, 2020, 4:27pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/470 "2020-01-01T16:27:39Z")

</div>

Is there a way to get color or rich fonts in the dialogue plugin text?

What I want to is 1, Highlight key words. and 2. show extra information, in my case what language they are speaking.

Ex “You’ll find him in the **Barons Den** near the **south side docks** ” _(French)_

I first looked into using the vars but that’s not going to work unless its added to the code.

EDIT SOLVED! in 4.20 there is a Rich Text Block. Following this, I can now do exactly what I wanted, it does take a bit of set up to get to work but its pretty straight forward. Match the text box in all settings then replace it’s 2 reference in the graph.  
[https://www.unrealengine./en-US/t…ich-text-block](https://www.unrealengine./en-US/tech-blog/advanced-text-styling-with-rich-text-block)

EDIT2 I’m pretty excited about this. So awesome!

 ![result.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/3X/1/d/1dfbfcc63fb68834a28c5b55a1386d5c1c8f73b8.jpeg)  
 ![setup.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/3X/f/0/f09db2cbe44078c170fe1eda1abdf6147d96aba7.jpeg)

---

<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:** [January 7, 2020, 1:38am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/471 "2020-01-07T01:38:48Z")

</div>

> [@daveSchoneveld](#):
>
> Is there a way to get color or rich fonts in the dialogue plugin text?
> 
> What I want to is 1, Highlight key words. and 2. show extra information, in my case what language they are speaking.
> 
> Ex “You’ll find him in the **Barons Den** near the **south side docks** ” _(French)_
> 
> I first looked into using the vars but that’s not going to work unless its added to the code.
> 
> EDIT SOLVED! in 4.20 there is a Rich Text Block. Following this, I can now do exactly what I wanted, it does take a bit of set up to get to work but its pretty straight forward. Match the text box in all settings then replace it’s 2 reference in the graph.  
> [https://www.unrealengine./en-US/t…ich-text-block](https://www.unrealengine./en-US/tech-blog/advanced-text-styling-with-rich-text-block)
> 
> EDIT2 I’m pretty excited about this. So awesome!
> 
> ![result.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/3X/1/d/1dfbfcc63fb68834a28c5b55a1386d5c1c8f73b8.jpeg)  
> ![setup.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/3X/f/0/f09db2cbe44078c170fe1eda1abdf6147d96aba7.jpeg)

Great idea, I’ll try to add it in the next version out of the box for other users.

> [@jwainwright](#):
>
> Is there any way to import Dialogue payloads?
> 
> Export seems to work without issue (pushes the data structure into COPY or T3D file, which is human-readable), but I can’t find a way to import that data back into a Dialogue object in-engine.

Ctrl+v is supposed to “paste” whatever human-readable serialized nodes you have in your clipboard buffer. It creates all these nodes, and they’re supposed linked the same way, etc. I can’t imagine you haven’t tried it though?  
This was exactly the idea - that two writers can share this json-like text between themselves with a simple copy-paste through some instant messaging like Discord. I also wanted to serialize conditions/events, but never went that far.

---

<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:** [January 7, 2020, 2:00am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/472 "2020-01-07T02:00:24Z")

</div>

> [@Namesis](#):
>
> Hi,
> 
> I have few questions.
> 
> 1. Is there is a input box for NPC Name. I tried adding %npcname% but it wont take it. is there a way to show the NPC Name (on the run, say same Dialogue but different NPCs). This is where the “Calvin” name shows up. Not in the PC Answer or NPC Answer part.
> 
> 2. Is there a way to add a input text? meaning, if you have this “Guild NPC” that can create guilds, so in one of the PC\_Answers the player can write"DialogPluginGuild" (instead of choosing, since everyone wants their own guildname).. then hit continue to create it.

In short, for 1 you have to pull the name from your NPC actor in your Get\_npcname function. You may want to save a reference to the NPC you’re talking to in your character, for instance. Just follow the tutorial on %variable%-like strings [here](https://docs.google./document/d/1IhfoL1puvM0kUumB93PWShTvqyTIsq_qk6bbiK2cy3k/edit#heading=h.5ika6v4m4v0x).

And for 2 all you have to do is call a dialogue event that would display a widget on your screen with an input field. But it’s a bit more advanced, because you’d also want to tie it in with some other mechanics, like “you can only progress in the dialogue once you’ve typed something in”, which isn’t exactly complicated, but would require some blueprints experience.

---

<div class="post-metadata">

**Author:** ![jwainwright](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@jwainwright](https://forums.unrealengine.com/u/jwainwright)\
**Post date:** [January 7, 2020, 3:21pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/473 "2020-01-07T15:21:44Z")

</div>

> [@](#):
>
> Ctrl+v is supposed to “paste” whatever human-readable serialized nodes you have in your clipboard buffer. It creates all these nodes, and they’re supposed linked the same way, etc. I can’t imagine you haven’t tried it though?  
> This was exactly the idea - that two writers can share this json-like text between themselves with a simple copy-paste through some instant messaging like Discord. I also wanted to serialize conditions/events, but never went that far.

I did find that it pasted a JSON format when spit out into a text editor after I asked, which will work closely enough for what I want to do. I’m essentially looking at how feasible it’d be to convert a large articy:draft project to this dialogue plugin (through some home-brewed python).

With the JSON formatting I can get 80% of the way there (script converts articy exported dialogues/objects to dialogue plugin JSON) The rest will be manually importing/connecting/etc individual pieces and building, as you said, conditions and the like.

Events and conditions being serializable would be a big win.

I think my original ask was if there was a way to have a specific filetype imported to unreal as a dialogue (binary) object. So I could (in theory) manually build out the JSON for a conversation, stick it into a file (“file.dlg” or somesuch), and have Unreal be able to import/reimport/etc. It’d allow third party implementations of how to organize and build dialogue trees. If that makes sense?

---

<div class="post-metadata">

**Author:** ![metalmike6](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@metalmike6](https://forums.unrealengine.com/u/metalmike6)\
**Post date:** [January 9, 2020, 1:48am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/474 "2020-01-09T01:48:01Z")

</div>

> [@](#):
>
> In short, for 1 you have to pull the name from your NPC actor in your Get\_npcname function. You may want to save a reference to the NPC you’re talking to in your character, for instance. Just follow the tutorial on %variable%-like strings [here](https://docs.google./document/d/1IhfoL1puvM0kUumB93PWShTvqyTIsq_qk6bbiK2cy3k/edit#heading=h.5ika6v4m4v0x).
> 
> And for 2 all you have to do is call a dialogue event that would display a widget on your screen with an input field. But it’s a bit more advanced, because you’d also want to tie it in with some other mechanics, like “you can only progress in the dialogue once you’ve typed something in”, which isn’t exactly complicated, but would require some blueprints experience.

Hello, I have a quick one for you I’m hoping you can assist with… There was actually a PM sent I believe, regarding it but I have a feeling you may have missed it. In any case, if all of your great plugins and toolkits are of any indication I know you’re incredibly busy, but if you could find the time to PM me it would be greatly appreciated. Thank you!

---

<div class="post-metadata">

**Author:** ![DaveFace](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/daveface/32/597060_2.png) [@DaveFace](https://forums.unrealengine.com/u/DaveFace)\
**Post date:** [January 12, 2020, 2:49pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/475 "2020-01-12T14:49:27Z")

</div>

I’ve been trying to integrate this with some custom events / conditions, and have hit some kind of restriction that I don’t understand.

I’m using the EasyMultiSave plugin which has a ‘PersistantSave’ actor that I’m using to store a map of booleans (a rudimentary game flag system). But whenever I try to cast to it within a ‘Dialogue Conditions’ blueprint function, the cast fails.

 ![SharedScreenshot.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/3X/b/2/b2d794ccf6623b4b2bab6e3c825461dcdca2f428.jpeg)

The same cast in a regular function works fine. Is there something about the function in the Dialogue Conditions class that I’m missing, that prevents normal casts working?

---

<div class="post-metadata">

**Author:** ![kirall00000000](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@kirall00000000](https://forums.unrealengine.com/u/kirall00000000)\
**Post date:** [January 13, 2020, 10:27am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/476 "2020-01-13T10:27:13Z")

</div>

I’ve played with this plugin for a while, it’ great, I can customize almost what I want in UMG.

However, some behaviors are reall weird.

By default user have to click continue to move forward a NPC node, I know that there is a video teaching how to implement Soul style dialogue, it’s indeed doable.

But my point is that NPC node should flow automatically by default, PC node is something for choice/interaction.

Consider following scenario:

PlayerCharacterController choose A reply choice

PlayerCharacter: say something

NPC1: say something

PlayerCharacter: say something

NPC2: say something

PlayerCharacterController choose B reply choice

PlayerCharacter: say something

NPC1: say something

PlayerCharacter: say something

Currently I can use NPC node for both PlayerCharacter/NPC1/NPC2, but I have no info in each node for their names.

My suggestion is that, NPC node should be renamed to Character node not only for NPC, it should move forward automatically and have name property. PC node should be renamed to Interaction node, it’s just for choice and should not contain sound info.

---

<div class="post-metadata">

**Author:** ![CCMGinc](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@CCMGinc](https://forums.unrealengine.com/u/CCMGinc)\
**Post date:** [January 27, 2020, 9:46am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/477 "2020-01-27T09:46:27Z")

</div>

Can you please explain a basic setup for an FPS character controller? Just not seeing support for this anywhere.

---

<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:** [January 27, 2020, 11:30pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/478 "2020-01-27T23:30:17Z")

</div>

> [@DaveFace](#):
>
> I’ve been trying to integrate this with some custom events / conditions, and have hit some kind of restriction that I don’t understand.
> 
> I’m using the EasyMultiSave plugin which has a ‘PersistantSave’ actor that I’m using to store a map of booleans (a rudimentary game flag system). But whenever I try to cast to it within a ‘Dialogue Conditions’ blueprint function, the cast fails.
> 
> ![SharedScreenshot.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/3X/b/2/b2d794ccf6623b4b2bab6e3c825461dcdca2f428.jpeg)
> 
> The same cast in a regular function works fine. Is there something about the function in the Dialogue Conditions class that I’m missing, that prevents normal casts working?

In all likelihood, the node “get persistent object” returns a null for whatever reason. If this node works in other blueprints, simply create a function on your controller to provide it (considering player -\> cast to myWhateverController -\> controllerGetPersistentObj).  
To check if it returns a null or not, use “is valid” node.

---

<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:** [January 27, 2020, 11:31pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/479 "2020-01-27T23:31:48Z")

</div>

> [@metalmike6](#):
>
> Hello, I have a quick one for you I’m hoping you can assist with… There was actually a PM sent I believe, regarding it but I have a feeling you may have missed it. In any case, if all of your great plugins and toolkits are of any indication I know you’re incredibly busy, but if you could find the time to PM me it would be greatly appreciated. Thank you!

Sorry, I don’t have a PM from your account I’m afraid. Either contact me by email (go to any of my products on the marketplace, hit my name), or copy the question here. Email is better.

---

<div class="post-metadata">

**Author:** ![Sun1010](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/sun1010/32/599634_2.png) [@Sun1010](https://forums.unrealengine.com/u/Sun1010)\
**Post date:** [January 30, 2020, 12:05am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/480 "2020-01-30T00:05:09Z")

</div>

[https://www.youtube](https://www.youtube)./watch?v=wz8SEBusQtA  
Where is the example project for this tut? I download the example project for the condition tut from GITLAB and got the error when hit play: Couldn’t spawn player: Failed to spawn player controller. I’m newbee using 4.22!

---

<div class="post-metadata">

**Author:** ![Calhoun](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Calhoun](https://forums.unrealengine.com/u/Calhoun)\
**Post date:** [January 31, 2020, 6:04am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/481 "2020-01-31T06:04:26Z")

</div>

Hey guys, so one thing I don’t understand is how to access actors in the world through events and conditions without passing through the player controller. I tried to use for example “get all actors of class” (Yes I know it’s expensive) and though the node executes fine it has a none reference and ultimately can’t set or get variables from other actors.

---

<div class="post-metadata">

**Author:** ![LordZedd\_02](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@LordZedd\_02](https://forums.unrealengine.com/u/LordZedd_02)\
**Post date:** [January 31, 2020, 1:52pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/482 "2020-01-31T13:52:58Z")

</div>

Hello, first of all amazing product I love it. I would like to change a few things and I see that all of the necessary functions are there but I can’t figure it out. What Im trying to make is a dialog system similar to firewatch and what I mean by that is:

1. I want to scroll through the displayed node using mouse wheel. I was able to add keyboard arrows using “on key down” input but unfortunately it doesn’t work with mouse wheel up. Any idea how can I achieve that.

2. I would like to move camera freely without holding mouse wheel.

Thanks in advance.

---

<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:** [February 1, 2020, 6:19pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/483 "2020-02-01T18:19:24Z")

</div>

> [@Calhoun](#):
>
> Hey guys, so one thing I don’t understand is how to access actors in the world through events and conditions without passing through the player controller. I tried to use for example “get all actors of class” (Yes I know it’s expensive) and though the node executes fine it has a none reference and ultimately can’t set or get variables from other actors.

I could have a look at your project to try and figure out why “get all actors of class” doesn’t work for you. Send it to me by email, if you want me to have a look.

Otherwise, making a getter through player controller or game instance, or any other way you want is fine. There’s not a million classes, and not a million things that could happen. But if you DO have a lot of things that can happen in your level, then just make a class “SceneManager”, make one getter to it through PlayerController and there you go, you have access to the class that makes stuff happen like opening doors, playing in-engine cut-scenes etc. And all you need is just one getter on the player controller.

> [@Sunlolo](#):
>
> [https://youtube](https://youtube)./watch?v=wz8SEBusQtAWhere is the example project for this tut? I download the example project for the condition tut from GITLAB and got the error when hit play: Couldn’t spawn player: Failed to spawn player controller. I’m newbee using 4.22!

I just redownloaded it and checked, and it works without any errors. I think it could be helpful to watch a couple of Epic’s tutorials on how to start working in engine.

---

<div class="post-metadata">

**Author:** ![Sun1010](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/sun1010/32/599634_2.png) [@Sun1010](https://forums.unrealengine.com/u/Sun1010)\
**Post date:** [February 4, 2020, 2:45pm UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/484 "2020-02-04T14:45:53Z")

</div>

My bad, the example project work fine in 4.24, not work in 4.22. Thanks.

---

<div class="post-metadata">

**Author:** ![xermao](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@xermao](https://forums.unrealengine.com/u/xermao)\
**Post date:** [February 5, 2020, 8:35am UTC](https://forums.unrealengine.com/t/dialogue-plugin/59871/485 "2020-02-05T08:35:59Z")

</div>

How can I fix this?When I type a chinese word in dialogue,it can not print it correctly.

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

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