I eventually found a solution for this (as seen below).
My solution for this was to have two different blueprints, one widget blueprint and one actor blueprint.
The widget blueprint is just a “Canvas Panel” and a “Text Box”, where the “Canvas Panel” has a width of 250 and a height of 100 (this is just up to how you want it).
The actor blueprint is the blueprint that will display the widget blueprint as a 3D Widget in the game world.
So this is basically the only thing I did:
On “even begin play” I cast to “Widget_LevelText” (which is my widget blueprint), with a reference of that widget blueprint connected to “Get user widget object” and then connected to “Object” on the cast node. I then get the text box from the widget blueprint, set a new text for it with “SetText (Text)” node, which has an editable text variable attached to it.
So now I can basically just copy paste the actor blueprint wherever I want in the game world, and rename each one to have their own specific text attached to it.
And that’s how I did it!
If you know of a more cost-effective way to do it (not sure how cost-effective this is), then please do send me a message!