Truly Dynamic 3D Widgets

Hello. I was wondering how to truly create 3D widget in the world that are dynamic and easy to edit in the Editor.
Let’s get for example a simple Widget with a simple text inside.
We can use this Widget inside any Actor using the Widget Component. and set the widget text from that actor.
That way we can have many instances of this Actor in the world each one with a custom text.

BUT
Inside the Actor, to change the widget text, we need to get the component and Cast to the proper Object.
We can only do that using some event like Event Begin Play.

We cannot change the text in the Construction Script. In the Construction Script we cannot reference the Widget > Get User Widget Object to cast to the proper object.

That means we’ll have alld Actors in the world with a default text and we’ll only see the new custom text when the game plays.
It can be hard and annoying because we layout 3D widgets in the scene using the contents as position and size reference.

Is there any way to setup a dynamic 3D widget system that can be edited in the scene BEFORE the game begins?

You can do it like so:


https://forums.unrealengine.com/core/image/gif;base64

Ensure the text variable is Instance Editable. If you drag the actor in the scene, the text will reset - so you will need to hit that Update button again. The text is stored in a variable anyway.

Or, you can simply:

I knew about call in editor option.
But didnt think about this solution. Clean, elegant and simple. Thank you!

Really, really wish that text image of this was visible now so I can actually review the solution

How do you need it to work? What’s the scenario?

I’d love to see the solution. I’m having exactly this problem.

OP is right, i think it is impossible to reference umg widget from constructor of actor.

Howewer I have workaround for that default text while placing pickups/actors with widgets etc.
Use Render Text Instead of widgets.
For editor make render text visible, and umg widget invisible. And for game reverse.