Widget Components Using Screen Space Do Not Render Client Widget Blueprints On The Server.

Summary

Server is unable to see the widgets of the clients in screen space. they simply never get created.

Please select what you are reporting on:

Creative

What Type of Bug are you experiencing?

Assets

Steps to Reproduce

Create a clean and empty 5.5.1 project.
Create an Game mode and Character
Create a widget blueprint with some content on the canvas for visibility
Add the widget component to the Character
Assign the Widget Class within the widget component to that specific widget blueprint class.
Under the “User Interface” Settings Select : “Screen” in order to render the widget on screen instead of World.
Start the game with 2 players. On the “Play As Listen Server” Mode to ensure that one of the players is the server and the other the client.
This will show that the client is able to see both widgets rendered in screen space but the server will only see their own and not the client version.
PS : (Yes i tried to replicate the widget component. it does not matter)

Expected Result

Server should be able to see the widgets of the clients in screen space (A healthbar above player heads for example)

Observed Result

Server is unable to see the widgets of the clients in screen space. they simply never get created.

Platform(s)

PC

There are already 2 of us here. It’s good to know that it’s a bug. I’ll be looking forward to any updates here o.o

I have the same issue and I track Steam Icon, Low Ammo, and Low Health on a screenspace widget. I changed it to worldspace and put in logic to always face camera, but this is not good because it gets hidden behind walls and gets too small by distance which doesn’t work well for my game.

There is another workaround, which is to use a blueprint actor to put the widget in as screenspace, and then attach that bp as a component to the character, however, I am trying figure out how to get all my logic get through this as it’s not a simple widget.

What would be nice is if this get’s patched and fixed so I don’t have to do all this temporary work.

I think I found workaround.
try call UWidgetComponent::SetOwnerPlayer with server’s Local Player.