First off, make sure that the BindEventToOnClicked node is within the widget’s OnInitialized method. Because it should only bind once! 
Sure, if you set up those buttons as well with a similar “initialize properties” function, and pass in an object pointer, you can process that object pointer per button. It’s the same as how you were storing those texts and image pointer on the other widget. Either you store the class pointer on a button or on the menu containing the buttons. In detail:
There’s two ways to setting up those buttons.
- The widget containing all buttons listens to which button is clicked, then decides what to spawn.
- button widgets are turned into UserWidget, storing a property of type class pointer (what to spawn) and handle spawning logic on their own when pressed.
Usually it’s most common to just use generic buttons (they can be pressed, nothing more) and have the menu deal with what happens if they are clicked. (option 1 I gave). That avoids having to create tons of button variations.
The property type you want to use for storing “what to spawn” is a class pointer. This is the purple pin / node in blueprints. If you need to be memory efficient (mobile devices, potato PC etc.) you also want to work with soft pointers, unless you want to load everything in memory at once.
You can directly select the class you want there. for spawning actors, you could select Actor instead of Object. You can also select something more specific or cast to that later.
After you spawn the actor, you probably also want to store what’s spawned in an object instance pointer (the blue pin variant of what you did earlier). Then you can delete it in the future before spawning something else.
That’s a different topic. What you want is to spawn something at runtime when clicking on the UI. Blueprint construction script (as the literal name) is something else.
Oh right, missed that. I assumed you’d just spawn from within the widget directly. Barely makes a difference. You can have a “central manager” actor for spawning (if the widget isn’t one already), but then you’d create that just once right? you wouldn’t create multiple spawners because 1 is enough to act as a factory for further spawns.
What your image is showing currently is that for every click you create a new spawner (intended for spawning things). And that doesn’t yet spawn something on the screenshot.