Client set viability on server owned actor.


I have this situation: In a multiplayer game, when a player pick an item, another actor should set its billboard material visible only to the player holding that item.

Now, what I have done is: An actor spawned by the server, spawns the Pickable Item, then it searches for all actors that can grab this Pickable item, and for each one of them, sends an interface message with a reference for this Pickable item. Like the image Below.

Then, the actor who’s receiving that message, binds two events for that Pickable Item, one when its picked, and another one when its dropped. Like this.

When the player pick up the Pickable Item, the Pickable item fire one event, and when the player drop it, it fires another event, like this…

… That should set the visibility for an component inside the actors that can receive that pickable item. Like this.

My issue is, the component visibility is only set on the server, not on clients, If I set the bind events to multicast, then all clients and server will see the component. What I want, is only the client who picked the Pickable Item, can see this component.

I guess, everything I have done is working as it should, but I can’t figure out the logic to make the component visible to only the player holding the item. Any advice is very well welcome.

So, I figure that I might need to use the player controller or pawn to set that component visibility…Any advice ?

I solved the issue by having each player controller or character blueprint to toggle the actor visibility.