I’m fairly certain the widget isn’t created when the “Bind Event” node executes since you said it’s a dialog… so I’ll leave a few possible solutions here in case your Hello node above doesn’t print anything after using a for each node. If I end up being wrong, we can revisit these.
-
If you have access to the Quest Manager Actor when you create the dialog, then just store a reference to the Quest Manager in the dialog widget. The widget can then just call the event directly on the Quest Manager. No need for dispatchers. This is the simplest solution.
-
If you don’t have access to the Quest Manager Actor when you create the dialog, you can do the following. Make sure you have a GameInstance Blueprint. If you don’t have one, create it and set it in your project settings. This solution only works for single player games BTW. Add a variable to store your Quest Manager reference. In your Quest Manager Actor’s Begin Play event, set itself in the GameInstance’s variable you just created. You can use “Get Game Instance” node and cast it to your BP GameInstance class to get the GameInstance. In your widget, you can just grab the Quest Manager from your game instance and call the event directly.
If this is multiplayer, you’re gonna have to either store your quest manager somewhere accessible by your widget or just do a “Get All Actors of Class” and find your quest manager that way. It’s not fast, but might be good enough for your purposes.