Widget Appearance Different Based On Who's Viewing

Hello all,

I have replicated nametags that properly display traits about the player for all other players to see. However, I am now implementing a more advanced social system with clans and friends lists. Now I want the circle on the player’s nametag to be a different color (seperate image) based on who’s viewing it. If a friend runs into you, they should see a green circle. A clan member should see a blue circle, and random players should be grey. I have attached an image for reference.

My idea would be to somehow cast to all players in range and set the image on each individual client to the correct color, but that seems cumbersome and clanky. Is there an easier way to accomplish this short of constantly running through an array of players in range, casting to them and setting it locally?

How do you display the widget? Is it a slate object or some other GUI widget?
You should be able to know who the owner of the avatar is (and hence the clan/friendship of that avatar) as well as who are the owner of the viewer camera or GUI (and hence the clan/friendship of the viewer.)
Then bind a function from avatar data to circle color to the color property of the circle.
You may need to create some slot in the GUI where the current player object puts itself in, so that the GUI knows which player is current viewing.

I display the widget as a widget component on the character. The widget blueprint used is just like any other regular widget BP. My trouble is how can one client get access to another clients widget easily? I will need to cast to all other clients in the vicinity and set the image in each one?