Update 2023, I’ve been using this method recently with a lot of success. A quick method to share variables around Unreal as a sort of global variable, is by using a Material Parameter Collection. Normally these are used for materials BUT because they can hold scalars and vectors you can just set and get them from any blueprint anywhere.
In order to pass a variable from 1 blueprint to another:
1. Make 2 blueprints of type Actor, Source and Target, place both in the level.
2. In Source, make a variable called Target_bp, set the type of variable type to Object type/Actor/ ‘Target’ – thats actually the name of your other blueprint. And make it instance editable so it can be set to an instance of this Blueprint in your level eventually.
3. In Target make a variable called Source_bp, set the type of variable type to Object type/Actor/ ‘Source’ – also named after the other blueprint. and make it instance editable.
4. In the level select the Source and under Default/Target_BP get the eyedropper and pick Target from the 3d window.
5. Then select Target under Default/Source_BP get the eyedropper and pick Source from the 3d window. (Basically setting each blueprint to reference the other one, i guess).
6. Then you can set variables in one Blueprint and pick them up in the other Blueprint. In my example in my Target Blueprint I have another variable, a public float called input, which gets printed to the screen for testing.
7. In my example, in my Source blueprint I wanted to be getting some changing numbers so I’m getting the VR motion controller Y position and using that to set the input variable in my Target – I did that by dragging a Target_bp from the list on the left,choosing Get Target_bp then dragging out a wire out and typing ‘set input target’ to see the variable in the All Possible actions List and dropping it in and wiring it.