Honestly, I do believe you are missing some general concepts here. I don’t see in your screenshots any variable assignments. So what you possibly do is calling your interface methods on uninitialized (null) variables. In Unreal Engine this is perfectly fine and will not result in any error, it will simply not do anything.
This is how it normally looks like:
What I just learned is that you can assign default values to Widget variables, just like you did. So you can ommit the first 2 nodes from my example as the widget is already being created and properly assigned.
Since you also created a Widget in your BeginPlay, you should actually end up with 2 widget objects. One that is automaticcaly created and assigned to the BP_HUD2 variable (which you called the method on) and one that is not assigned to any variable but is added to the viewport. You can confirm that assumption by doing something visible in the BP_HUD2 InTestFunction. Like changing a text of a label or adjusting a background color. You shouldn’t be able to see any change now, as the changes happens to a widget which is not on the screen.
