[HELP] Trigger event from c++ plugin to BP User Widget

I have a plugin which performs a download in the background and I would like to send progress updates to the UI. And I have been struggling for days to find a way to trigger / broadcast / send an event from C++ to a user widget that I put together in the editor (it’s all BP). Also, because this is for a plugin, I don’t want to have specific widget code in my plugin. Ideally, I just want…

plugin.cpp
void OnDownloadFinished() { sendDownloadFinished(); }

And then in some arbitrary UI’s Graph Editor right click and search for node “On Download Finished”.

What is the proper UE4 way of doing this?

Things I have tried:

DECLARE_EVENT: doesn’t show up in the graph editor

Interfaces: seem to require a pointer to the widget from my plugin code to trigger, which I don’t know how to get, especially since the end user of my plugin might not even have a widget that listens to my event. And my BlueprintImplementableEvents still don’t show up in the graph editor anyway.

Very frustrating :frowning:

I am not sure about plugin-to-widget communication, but I have a suggestion, from a Widget Component you can use the function Get User Widget Object and cast it to the Widget Class that you specified to access public variables, functions, and events defined in the widget class.