How do I trigger changes to the UI without the UMG ticking?

Dispatchers are quite performant actually and do not create or require hard references. You must provide a reference to an instance ofc. You can do this:

And if any of those blueprints get destroyed, nothing happens. It fails very gracefully. That’s the best part!

When it comes to criss-crossing wire spaghetti extravaganza, you can do this:

You can even wrap it in a function. And it does not need to be a custom event, you can bind to a function that is nowhere in the graph…

And you can bind to an event in another actor altogether:

In this case, the actor and the widget do not know about one another. You could have a manager blueprint that spawns and binds everything and then destroys itself. The bindings will work fine. Zero references at this point. No casting. No ticking.


Avoid using the Level Blueprint for things that are unrelated to that one level. It’s awkward in most cases.