Floating UI without MultiCasting on Event Tick

I have a networked game with 2 teams and dozens of characters. Every player has a floating health bar that displays percent health, mana, and level.

I have a custom BP Player Controller that all characters use, as well as a custom Character BP that that is a parent to all my characters. The Character BP Parent class is where I store the Floating Health Widget UI. The Parent class is never created, only the child Character that holds all of the Abilities and what not.

I currently have it working as intended, but it requires me in the child Characters BP on Event Tick to multi cast the orientation of the UI and rotate it to match the player viewing. As well as change the color to be green or red for ally or enemy.

I would rather not have 10 characters draining bandwidth every tick just to orient the UI and update a color which could easily be done once. (It’s really just the orientation I need help with).

I need the UI element to stay as World if possible (not Screen).

Here is an image of my current multicast.

Oh also, I’ve already fixed the UI updating the correct health, mana, and level; that part of the blueprint is irrelevant.


Thank you so much, to anyone who can throw an idea or help :slight_smile:

Okay after a few hours I finally got it working, Just had to change the Widget to be a Widget Component so that it would properly replicate. Then I just had to split my Event Tick up into 3 different parts, Server + Local Client, Server only, and Other Clients. The Other clients get updated on the UI, while the server updates the Replicated Values for the other clients to see. Then the Server + Local Client could handle my Animation Blueprint nonsense.

I’ll post a picture in case anyone googles this or something in the future. My tags and title are so vague I doubt anyone will see it, but you never know.