2 Blueprint Communication and their Defaults

gave you the Solution how to solve. I just want to add some Clarification why you can´t simply set the Refference in the BP defaults.

Its simply because your BP is a Template for a actuall instance you will Spawn at some Point in some Level. Thats also the reasson why you can´t assign anything in the defaults. Your BP does not know in what Level it will End up so you can´t just take Information out of some Level because that would result in a crash if you spawn it in another Level.

But once you place your Object inside a Level it knows where it got Spawned and what is around it. Then you can choose freely what you want to refference from the level since its all know at that Point.

If you Spawn via Script its the same thing. You don´t know in what Level you Spawn. So you have to keep track of your Spawned Objects and pass them to others Objects when needed.

Good Luck and have Fun =)