Selecting specific (duplicate) blueprint at runtime

I really hope someone can help with this, I’m trying to build a game for my wife for Christmas. I’m not an expert with blueprints so please explain your answers as best you can, I’ll try to be as specific as possible about the issue.

What do I want to happen?

  • At runtime I want to be able to touch/click specific objects and a widget will open, it will give options for changing the static mesh based on the current static mesh. As the mesh changes the widget changes, giving new options depending on each static mesh.

What do I have?

  • At the moment, I have been able to make a blueprint actor with my rules set up that create and remove specific widgets based on the current static mesh and have functions that change the visibility state of each static mesh so I can have my various static mesh combinations.

I intend to duplicate the blueprint actor around the level so that each one contains all the necessary code

What do I need help with?
I have struggled to find a way to select a specific blueprint actor at runtime, only the last one that was placed seems to be affected. As you can see in the images I had to create a widget at the beginning with a ‘block menu’ button to trigger the effect I want when selecting one of the blueprint actors and bring up the menu (all of my code works, it’s just that I can’t select which blueprint actor I want to alter at runtime)

I have tried using a character with LineTraceByChannel but still, only the last placed blueprint actor will be affected.

Is it possible to touch/click a specific blueprint actor at runtime (considering they are all duplicates of the same blueprint actor), am I overlooking something or do I need to totally rethink how I am doing this?

I appreciate all and any help with this!

You line trace code is correct, but you need to have the corresponding interface event in the BP.

You seem to have a bind in there, which is not what you need. You need the ‘Interact’ event.

If I make a blueprint interface called Interaction, containing the function call 'interact. Then in my blueprint actor, I need:

When I call that event on an actor, as you have correctly done, I can receive the call with:

Yes! Ugh, I’ve tried so many things I guess they all jumbled up and I overlooked that - perfect thanks!