Can you post your crash logs here so we can have a look? Does this occur on a blank project with no additional content. Further, does this occur when you use a “Get Player Controller” in the “Owning Player” slot? Thank you!
I just checked and re-tested. this is fully reproducible. BUT I missed out one very critical part , it only crash on multiplayer if you put more than 1 client. (hence the LOCAL Player crash message _
Follow these steps, if you’re unable to reproduce this , i’ve attached this as well.
Create empty widget
Create player controller setup as above.
Launch game with more than 1 client.
GetPlayerController does not work as it is already a player controller blueprint. link text
I was able to reproduce this on my end and have entered in a bug report, TTP#345578 to be assessed by our development staff. Thank you and have a great day!
In your first image, leaving the reference blank (without a pin) will assign the default controller. (This is normally player index 0) however, referencing self is pulling a NULL value, because no value is assigned to self. In order to use a reference, use “Get Player Controller” with a default value of 0 for the player index. This is identical to leaving the reference blank - as you did in the first image.
I should add that although this is in the player controller blueprint, self will report null because the index isn’t generated yet. If there was a “get player controller” and the index was “Self” then it would work. But alas, there is not.
I have found a way around this. For some reason it doesn’t find a controller immediately when pressing play. If you have a game mode tell the controller to create its HUD on PostLogin with a slight delay ~0.1 seconds it works just fine.
I had this issue (or very similar) and I think that this is because you have a bad setup, on a replicated game you cant call this on that way, why? because if you call the “create widget” event on every actor of the replication world (because one actor is beign “duplicated” on all clients) you cant access its controller, cause the controller its a non replicated entity.
You have to call the event ONLY on the server (just place a “has authority” node before the event call) and then make your custom event to be replicated “on owning client only”
Also you have to make sure that this is beign called after the begin play event, if not you can get a null from the get controller
Resuming, its true that is a bug because it crashes the editor, but if you do it as intended it will work without problems over the network
EDITED: I forgot to mention that the reason because it works if you dont assign any “owning player” pin is because by default the create widget node creates it on all player controllers in the world, so it wont try to access to a non existing controller