How to create an HUD in a multiplayer game?

Do not hook the HUD up to the Pawn; hook the HUD up to the player controller. Make the HUD be a Widget Blueprint GUI.
A good place to find the player controller from your GUI blueprint would be in Event Begin Play.
Because widgets are always running on machines that have local player controllers, there is always a player controller owner for a widget, and you can get this controller, and cast it to the class of your specific player controller blueprint. Do that, and assign the result to some variable in the GUI blueprint.
Then, the GUI can read whatever it needs out of that variable, for example using data binding. Alternatively, the GUI can “install itself” into the player controller by setting a variable on the player controller, that the player controller will then use to send values to the GUI when they change. Either approach works.

You will need to add the GUI you create to the player viewport manually. See this page as an example:

https://dq8iqaixvew1d.cloudfront.net…art/index.html

The core “HUD” class is basically obsolete – EventDrawHUD is not how to build an on-screen GUI.

2 Likes