Hey!
It has to be an actor blueprint, I’ll call it BP_button. Add a sphere collision to it and a button static mesh. Set the sphere collisions collision to ignore everything else, but block visibility channel.
Create an enum called ButtonActions, add the things you would want to do with the button and add it as an variable to the BP_button. Make it public so that you can edit it in level viewport.
In your character blueprint on tick, line trace forward, cast to BP_button from the hit result actor and if the cast was successful, promote it to a variable. If failed, set that variable to none.
In level blueprint, add a button event, such as left mouse button. When it’s pressed, you cast to character blueprint, check if BP_button variable IsValid and if is, get its ButtonActions enum, add a switch on enum and there, done!
now you can easily drag multiple copies of BP_button in the level, set their action type and create scripts in level blueprint for the different actions.
Cheers!