Transferring variables between blueprints.

you implement the interface in any BP that will use the variable

to use it

make a function in the interface (mine is called action and it passes a string called Command for example)

in your game controller you would have a reference to the actor you want to call the interface function on (in my example i use a trace to get it), from there you use the interface function (message) to send the call to the receiver:

->

and in the receiving BP you handle it via the Event interface function:

im not good at explanations so it helped >_<

as for better ways depends on many things (are the objects spawned into play or are they always there from the start and etc)