Dialogue Plugin

Ohh yes! Its working! :grinning_face_with_smiling_eyes:

Thank you so much!

Hey, I have a camera in the player blueprint that I want to activate whenever the dialogue choices appear. I put the activation code in the DialogueWidget blueprint right after the DisplayReplies custom event. This however activates the camera immediately after the dialogue starts so it’s showing the players face all the time even when the NPC is talking. Did I put the code in the wrong place?

I also tried doing this via dialogue events. I have a dialogue of NPC line > empty NPC line node > player replies. The NPC line has an event that activates the NPC camera which works by itself but if I put the player camera event into the empty node, again the player camera takes over right at the beginning of dialogue. Any suggestions as to how to make this work?

Since player replies appear immediately as soon as we reach them, instead of waiting for the NPC to finish speaking his voice-line, the camera would point at the player immediately, too. So it’s doing exactly what you described that you wanted in your first sentence. I’m guessing you don’t want the camera to shift to the player until the player has finished speaking his voiced line, and not until the player replies appear?

You tell me how you’d like for it to work and I’ll write the instructions.
1.
Would you prefer delaying the appearance of PC lines until after the NPC has finished speaking his voiced line? (and if he has no voiced line, we can assume a 2-3 seconds delay instead). And if this works for you, I suppose you’ll also need a way to hit “continue” prematurely to make the PC lines appear sooner?
- - or - -
2. Would you prefer for the PC lines to appear as they are appearing now, but you’d like for the camera function to fire after the NPC has finished speaking his voiced line (and if he has no voiced line, we can assume a 2-3 second delay instead?)
- - or - -
3. Some other way I hadn’t thought of?

Hey, I think I managed to solve the camera issue so no need for instructions with that right now.

I had another question though which perhaps you could assist with. In case it’s relevant, a while ago you made the KOTOR setup video which is how I’m set up right now. I would like the player to be able to skip the dialogue line if they want to. So would it be possible to skip the line by pressing space bar for example? Also currently if I have multiple NPC lines in a row I have to press the continue button in between to progress to the next line. Could it be possible that the line would change automatically without the need to press the button (also in that case the button would not appear)?

I don’t remember how the KOTOR setup is, exactly. Do you have a “next”/“continue” button on screen when you want the skip to occur? If yes, then it’s just a matter of calling whatever method the “next” button is bound to on “space down” in the dialogue widget. Here:
https://i.gyazo./bb513ca2d0bd84ed9f6a67d4c5d20e3a.png

If the line isn’t voiced, you want it to just go to the next one after a couple of seconds? Yes, like with the previous question above, you can call whatever the “continue” or “next” button is bound to. If you need assistance with that, could you send me your project by email? It’s better than repeating the kotor setup from scratch.

Yes, I can email you a sample project which has the KOTOR setup.

Hi everyone! Just came back to ask for help with another issue I am having. Is there a blueprint node for skipping over a dialogue node?
I need it so at the end of each dialogue sequence I can loop back around and go to the next possible dialogue sequence should it not be ticked off due to being said before and have the correct item in inventory.

You can use GameInstance to store visited lines using a Dialogue Event, and have a Dialogue Condition that checks if the line has been visited.

Let me know if you need help implementing that.

Help implementing would be welcome, thank you!

The idea I am thinking of here is kind of like turning the dialogue graph into a for each loop, using the blank to loop around.

I’ve figured out how to use a game instance to list the dialogue lines using one of your videos as a base, thanks!

I do have a follow-up question. I want to make a dialogue event that changes the level, but the level is changed as soon as dialogue is started. Is it possible to structure an event so it only activates at the end of dialogue?

You can fire a delegate at the end of every dialogue, but most of the time it would be empty. Search the documentation for “OnDialogueExit” to find out where to call it.
And you can use a dialogue event to assign a level changing event to the delegate. Just make sure the first thing the event does is clear its own delegate.
I hope it wasn’t too convoluted.

Thanks. I’ll try that soon, but I’m afraid I’ve run into another issue with the emotion system. The dialogue timer does not reset when pressed, meaning the dialogue can be cut off prematurely directly after an emotional answer has been made.

Is there a way to ensure the skipTextQueue timer is refreshed when the emotional option is used? Or if it is not that variable, any way to ensure the audio plays entirely?

Update: I tried using a buffer node to see if that would force it to reset, but that doesn’t work.

Edit: Another issue I’m coming across is attenuation. I want some dialogue as a voice-over, but most need to be coming from the player or NPC to take advantage of the levels sound setup. Is it possible to add something like that?

How to save and load in a conversation?
Can I use hotkeys in the dialog editor?

You could do something like this:
https://i.gyazo./73aff1b10bddff719f9ad771bf229c5b.png

I don’t have skipTextQueue in my widget. Is this something you added yourself or maybe I did? I don’t have it.
Yeah, the audio can be made to play in its entirety, but if you have a modified widget, I’ll probably need it.

There are some hotkeys, such as Ctrl+W to duplicate, Del to delete, Ctrl+C and Ctrl+V to copy/paste, Ctrl+Z and Ctrl+Y to undo/redo.

Good idea on adding the save/load instructions to the documentation. I’d add them right now, but I’m going to need to expose a function to blueprints. So I’ll add it in 4.27 or I can give them to you now, but you’ll need to recompile the plugin with some additional code.

So about the engine bug that affects dialogue plugin’s RichText capabilities. I reported it back in February. They initially set the target-fix to 4.27, which was a shame, because it meant the plugin wouldn’t have rich text for an entire engine version. Then they set it to 5.0. Now it’s set to 5.1

5.1 is crazy, because it would mean the plugin wouldn’t have a functional rich text for maybe two years.

I’m just going to go ahead and cut out the Retainer Widget from the plugin’s UMG right now and update the 4.26 version. It means the RichText would work again, but the selected answer wouldn’t be dimmed. It’s a minor visual loss.

I’ve updated the plugin, so download today’s version and check out documentation 7.11 Save/Load in-conversation

Thanks. I’ll give the attenuation a try. Aside from the modification for the emotion system you sent over in the video. The only change we made was the skip text mod which changes the dialogue only when the audio file has ended.

I’ve not tried pasting entire blueprints before, hopefully, this works.
https://blueprintue./blueprint/m-niyb-i/

Here’s a video of the error in question:
https://drive.google./file/d/15AxguK1J0LB-hYNZftKRHML-OKe3xQYU/view?usp=sharing

Update
Solved myself, didn’t realize you had to compare the variable you created in the blueprint to a variable from somewhere else. So create the variable you want, such as ‘HasEnoughGold’ bool and then compare it to the player characters gold and send that to the return node.

Great plugin, just a question about conditions not working.

I’ve created the condition blueprint (using the video tutorial), which returns a bool. Regardless of what it’s set to on the return node, the result is always is false.

If you delete the ‘Parent: Condition Met’ node like in the tutorial, it doesn’t work at all and won’t display anything in the dialogue node tree from that point on. If you have the ‘Parent: Condition Met’ node, it works and displays any dialogue that would show with a condition of false. If I disconnect the connection from the result bool of the ‘Parent: Condition Met Node’ and set the return value from the overridden function to true, it still results as a false condition in the dialogue tree.

Both of these return false to the dialogue tree condition:

Just hoping to get some help or insight into what might be happening?

Oh, no, bad idea. Please send me the two widgets by email as files and tell me what their paths in the project were.

Sent the DialogueWidget and DialogueReply widget to you via email.