Dialogue Plugin

One example of doing it: in the event itself, hide the entire “DialogueWidget”, launch the sequence, delay 5 secs, show the widget back.

Submitted the 4.23 version. As always, it should go live in a couple of days.

  • Fixed a bug where VarStrings wouldn’t get replaced in player spoken lines.
  • Fixed a bug where the widget would consume all input: OnKeyDown would return “handled” for all keys, instead of just the ones that we want to use.
  • For C++ users: changed RecieveEventTriggered from BlueprintImplementableEvent to BlueprintNativeEvent.

Hello, first let me say thanks for making this plugin, I look forward to using it throughout many of my projects. I have a few questions bare in mind and I hope I can word them correctly.

So when the widget is first created it appears on screen with reply options and shows the mouse cursor. If i click on the screen the mouse is consumed and does not appear leaving me unable to use it. My solution to this has been to show the mouse cursor myself upon creating the widget, so I guess that is a solution I have found. The big issue I am having is that the reply buttons and the continue button do not have focus upon the widget being created meaning that the d-pad on a game pad do nothing. To fix this I set focus on the widget and this led to an issue in which holding down the button which selects on the game pad would fire not just only the current reply but automatically fire any responses or even the continue button the moment they were on screen.

So it seems that setting focus on the widget so i can use a game pad will focus the buttons so i can select them but it is also keeping focus and if I hold the select button down it will fire any buttons that appear. I hope i have described my issue well enough that you can assist me in finding a way to fix this.

I don’t have it, and I don’t see how it could happen, because the code is “OnKeyDown”, meaning it only triggers once when you press the button down. It can’t keep triggering, unless you have a faulty gamepad, or you did something weird to your code.

Maybe there’s a bug in the stock widget? I did modify it for 4.23, so there’s always a possibility. I can look at your project if you send it to me by mail. My email is on the marketplace (my seller’s page).

Hi, the plugin is very helpful for our project and the node-based editor is an incredible time-saver.

One quick question; I want to show the next dialogue text only on mouse click event (not using the timer). It might also used to skip the currently shown dialogue node. I’ve looked at all 29 pages of the forum thread and did not find a similar question/solution. Does the plugin allow such thing? If not, how can I add this feature? Thanks

Apologies on the late follow up. I was finishing up a project with a dead line. I have sent you a sample recreation of the problem I mentioned when using a controller when clicking. It happens when you HOLD down the button that simulates click. It just seems to fire through an entire dialogue node sequence without pause until it’s done. I do hope it’s something simple to fix and as you mentioned may have missed when making a subtle change for 4.23 compatibility. Thanks again for creating this awesome plugin.

I had a look, and it’s got nothing to do with the controller, it’s just how unreal’s i/o framework treats “OnKeyDown” - it keeps sending OnKeyDown events as long as the user keeps the button pressed down.

So the workaround is simple: Dialogue Plugin: "Select Reply" key spam fix - YouTube

I’ll introduce this fix in the next version, meanwhile you can fix it by following the video instructions. Thanks for the bug report.

Hello @, i really like this plugin its making creating dialogues way easier than data-tables, but i have few remarks about UI (of editor)

This will make it even better:

  • mouse-over on connections (this should highlight connected nodes)
  • key-binds from BehaviorTree (ctrl+click, alt+click - default ue4 keybinds) to move connection and break it

There is also one bug:

  • variables from events and conditions that are not instance editable are visible in dialogue editor

One question:

  • in my project i have to display icons next to dialogue options, so far only way i can think of implementing this is having something similar to your [impression], it will mean that i have to check (lets say if string starts) with some phrase and remove this part afterwards.
    do you know about any better option to do it?

example:

  • one of dialogue options is quest related
  • one of dialogue options shows shop/skills/etc.

edit: my question was answered already:
https://forums.unrealengine./unreal-engine/marketplace/78002-dialogue-plugin/page28#post1642426


this product is great anyway, thank you for your hard work

Thanks! I’m glad I managed to find a bug for you and that it was an easy fix! I’ll be utilizing this in my next game, go devs!

Hey I have a few questions. First of all I cannot manage to use in text VarStrings and I can’t find anything in the documentation about it. Also is it possible to have the whole conversation visible with a scroll box, similar to Emily is Away or Messenger apps. Thanks in Advance

Hello - I have a really strange bug inside the Dialogue files, the little arrows that are supposed to appear on the connector lines are enormous!

Have you seen this before and have any suggestions for a solution? It doesn’t affect functionality but it’s pretty annoying!

In case anyone else had this issue, it was **resolved **by rebuilding after downgrading VS2019 to 16.2 (issue occurs on 16.3).

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.

Hi…I just posted this question in the Marketplace but maybe you guys can help as well. I’m having a Cast Failed issue and I’m not sure what I’m doing wrong. I’m using a Box Trigger with an NPC to initiate the dialog. Using Print Strings, I can see that the Box Trigger is working and the Cast is Failing. I’m casting from the AI and the object to is Get Player Character. What am I missing?

Thanks.

And I have a second question as the one above I figured out (my dumb fault for “casting” the wrong item). So what I want is a pretty long dialog between my 1st person character and a 3rd person NPC. I setup the dialog tree and that looks good. I have a few (I think very solvable) problems:

  1. The text is not being removed when I answer/ask the NPC something. The letters super impose themselves over what was there before.
  2. I’m confused on some of the items in the dialog widget. When I try to edit some of it I get compile errors. For example, I’m still not 100% sure what the “Character” button is supposed to be (the one on the right hand side of the Widget).
  3. I kind of solved an issue I’m having with the Show Mouse Cursor command. I think I fixed it by turning it on/off during the Box Trigger on/off overlap, but it seems clugy. Not sure if there is another way that this is done.

Anyway, thanks UE Community.

Has anyone tried using this with a first-person game?

Hi there,

I am trying to get access to dialogue events in blueprint. When I break the DialogueNode, I do not see Events or Conditions. How can I see them in Blueprints? To try and expose to BP, I modified Dialogue.h from:


UPROPERTY(Instanced, EditDefaultsOnly, Category = "Dialogue Node")
TArray<UDialogueEvents*> Events;

to:


UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Dialogue Node")
TArray<UDialogueEvents*> Events;

to no avail.

Anybody have any suggestions?

To anyone having trouble compiling this with 4.24 now that TScopedPointer is fully deprecated:

Change DialogueViewportWidget.h line 218 to


TUniquePtr<FDialogueZoomLevelsContainer> ZoomLevels;

and DialogueViewportWidget.cpp line 128 to


ZoomLevels = TUniquePtr<FDialogueZoomLevelsContainer>(new FDialogueFixedZoomLevelsContainer());

Adding “BlueprintReadWrite” worked for me.

Have you copied the plugin into your project, removed the plugin from engine (in Epic Launcher), changed the lines in your project’s version of the plugin, then recompiled the project? Because you may have done everything right, but your project is using the engine’s plugin, not your project’s version of the plugin.

Hey thanks a ton , your suggestion worked like a charm. Appreciate the support. Cheers!