Dialogue Plugin

Basic functionality (displaying dialogues and playing voiceover) can be done in a pure blueprint project. To add events and conditions, you need to edit one C++ file, but only the most basic C++ knowledge is required, and if you have any problems with that, just feel free to ask.

Sure, I made a mini guide on how to do that in post #47.

Not planned at the moment.

Native UE4 localization is fully supported. I plan to add export/import if there’s a demand for it.

You can use your own nodes in condition logic. However, like I said before, adding new condition fields requires changing a C++ file.

So I managed to dive in and after a ton of modifications I got it working really well.

The problem I’m having right now is that Conditions aren’t working during NPC nodes. The conditions work properly with PC nodes, but when I have the NPC change conversation depending if the player has an item or if its a specific day, it defaults to the left most node no matter what. Is this a bug? I can confirm that the conditions I added work. Just not when used from NPC nodes.

EDIT: Nevermind, I just added a condition check for NPC responses and now everything works.

Any ideas on how to add a local bool so that once a PC Reply is selected, it won’t show up again?

Here’s how I’d do it:

Make an array of structs “VisitedDialogues” on GameInstance or on PlayerState. Could also put it on PlayerController. Whichever you prefer, just make sure it’s persistent between levels.

The struct “VisitedDialogues” itself should contain:

  1. A reference to a dialogue asset
  2. An array of ints. These will contain the node IDs that you’ve already clicked before.

Then, I assume you don’t want to hide any nodes that end the dialogue, even if you’ve clicked them before, right? Because that may result in inescapable dialogues :slight_smile:
Save your reply here, so you avoid saving the dialogue ending nodes in your history:

https://i.gyazo./f5d31ed72b73322f8b886877483c475f.png

Then insert a simple check in the “DisplayReplies” event (it spawns reply lines), so you don’t spawn the ones you’ve already clicked before. You can find it in DemoDialogueWidget -> Event Graph.

If you have troubles with these explanations or need a more thorough guide, don’t hesitate to ask.

Thanks so much Glabrezu! I don’t know if I was being daft and the crunch was getting to me, but that works perfectly well.

In addition to implementing it, I exposed some a bool to the PC Nodes that allow the developer choose whether the node will be stored into the gameinstance list.

Thanks so much! Also, I managed to avoid dead ends by turning nodes that don’t go into another node as instructions to close out the Dialogue System and return to game. This freed up the space so there won’t be needless wires going to the goodbye/end node. :wink:

It took getting use to this plugin throughout yesterday, but I have to say it turned out to be EXACTLY what I want.

Hello, I seem to be running into a problem but have no idea how to fix it. My conditions don’t work when applied to an NPC node but do work when applied to a PC node. Is there an extra step I’m missing that’s needed for them to work with NPC nodes?

Looks like a known bug that will be fixed in the next version.

Please try this hotfix at the bottom of post #53.

Hi

As a guy who recently bought your plugin i must say that the simple stuff is solid - everything works as intended and pretty easy to use. But is there any plan for the further development? In case it’s only bug fixing than i must say the price is questionable with no camera placement and sequencer support…

Hi,

You could easily add sequencer events, the second video tutorial demonstrates how to add matinee events, but adding sequencer would be very similar. And the reason we didn’t add camera behaviour is because it’s generally easy to implement on your own and each game needs a different implementation. The focus of this plugin is to provide a custom made, built-in node-based dialogue editor.

So i guess that’s a solid “no” on the further development? :slight_smile: It would be really cool if you’d consider adding at least a camera behavior. I’d say this way your plugin will cover the audience of lazy game designers as well ) I’m not talking about something complex like my colleagues did for Witcher 3, but it would be cool to have a possibility to tie a more or less full dialogue producing pipeline to one tool

We’ll consider it if we see there is a lot of demand for this. Thanks for the suggestion.

Any update on a 4.13-compatible build? Thinking of picking this up once I upgrade.

Thanks!

Just sent the 4.13 compatible version to the marketplace, should go live soon.

Changelog:

  • Bugfix: Conditions only worked in nodes that were preceded by a PC line.
  • New: Gamepad support for the first 4 dialogue lines. You can select them through face buttons.

The 4.13 just went live. Also, we’re happy to announce that the plugin is on sale for two weeks. :slight_smile:

Finally got around after buying this system months ago to dig in. Man I love it. Its so straight forward and if you know your way around blueprints with as stated minimal C++ (seriously, adding a bool or FName is IZI PIZI! hehe). But no seriously, I was looking at Dialogue plugins for a long time, and then when I seen this one pop up back then I was instantly sold.

Great plugin, really easy and well thought out. If anyone wants to implemented a typed text, I found a way to do it. Its not super elegant, but this works… I tried with foreloops and appending strings, to no avail. The branch checks to see if its a space key entered and changes and changes the delay like they are thinking of the next word. Possibly better if there is a question asked to have some delay in thinking.

Just plug the NPCtext directly varible into the NPCText, text.

a1fb952fb86f7417b4a244be0196d9a7aa426104.jpeg

Hey @

Will this work with your MMO Starter kit?

Just curious :slight_smile:

Sure. It’s game agnostic.

Thanks for the heads up :slight_smile:

Will be picking it up.

Would it be possibly to go through this with a little more depth? I can get the text to display once, but the player replies get reset when I restart the dialogue in the same play session, even though they are present in the array of VisitedDialogues…

Sure,

https://i.gyazo./32cac46a64faf831dd1b85c6f646fa5b.png

Then create this function:

https://i.gyazo./f37f9df7c298acf225f28fc81000ae94.png

And then:

https://i.gyazo./e7255dfcfe99a61ecf90496295f66b4c.png