Please explain exactly what you mean by filling variables because like I’ve said I’m very new at this and have no clue what you’re talking about with that and can’t find anything about it.
Because it does not exist before the game started and especially in the level blueprint you can’t directly access it because there can be like 100 huds in one level if you develop a multilayer game (which btw is the reason why developing inside of the level blueprint is so bad practise. It has to be done for each level and does not have a direct connection to all generated content). You can get a player, his controller and from there the hud.
Because the code can’t know beforehand which hud you will use there.
It is (and should) be possible to always use any hud.
To do pass it on you cast it to the type you need (via the "cast to " node) which will give you two exec outputs. Success and unsuccessful and a pin of the type you casted to (which is none of it fails).
… You should really take the time to learn coding or search for a developer if you want to create a game. Not only with unreal but with any engine. Because if you try to develop a game like this it will be developed pretty much in the answerhub alone.