Server can't see animation but client can

Hi, I hope I can get some help with my question. I’ve seen similar questions here, but most of them don’t seem to have received an answer.

I’m currently learning about Replication and Multiplayer using Blueprints. I’m facing an issue with replicating animations on the client side. When a player picks up an item, it correctly attaches to their hand, and other players can see this. While the pick-up animation works for the player themselves, the server cannot see the client’s animation, but the client can see the server’s animations.

I’ve tried different methods of replication, but I still can’t get it to work. I’ve been searching YouTube and other forums about replication and RPCs, and I’ve tried to apply those solutions in my Blueprint, but nothing has worked so far.

I’m not sure what I’m doing wrong.

I’ve attached screenshots related to my issue:

Screenshot 2 shows the inside of my RepNotify function. This is when I tried using RepNotify for the animation, but the result is shown in Screenshot 1.
Screenshot 4 is when I attempted to simply set the variables to replicate.
Screenshot 5 shows the inside of my Get Inventory Item function.

I’ve also set all variables to replicate and actors as replicate.

An answer would be very helpful.





Replication only flows from Server → Client. The Server must make the authoritative action, then it gets replicated down to clients.

Property changes (setting variables), calling events (multicast), Spawning “replicated” actors Happens on the Server, Not Clients.

If your running listen server Client 0/Host is the Server.


  • Looting client/Host plays animation → Calls RPC to Server to “Pickup” item.
  • Server Spawns a replicated Actor of the item → Attaches replicated actor → calls multicast for Sims.
  • MC Pickup → Branch (get actor role == Simulated Proxy)[true] → Pick up animation.

Hi, thank you for responding!

What I understood about replication before was quite similar. The server would replicate down to the clients, and I also understood that the client could tell something to the server, which the server would then pass down to all.

I tried copying what was in the screenshot you submitted. I made my pickup system as a function, which is the “Get Inventory Item.” I’m not sure if that affects the code, though.

My problem is that my animations are in a Blend Space and not an Anim Montage. You used an Anim Montage to trigger the animations, but I used an Enum, “E State,” to represent different states of my animation. The item has an “E State” in it, and when it’s picked up, the assigned animation for that “E State” will play on my character.

Is there a way to do something similar, but using a Blend Space?

Client Input → Set local EState → Call Server
Srv → Get inventory Item → Set EState → MC Sim (estate value)
MC Sim → Branch (Is Sim)[true → Set EState

That’s the most straight forward

More efficient and correct way would be for the EState to be repNotify and server just set that. No need for Multicast.

1 Like

(post deleted by author)

I gather that what you’re trying to do is play an animation for potentially all clients to see when Client X does an action.

What I do when client X does an action is to call a Server RPC which then Multicast that action to all clients.

something along these lines:

ServerRPC_PickupItemAnimation_Implementation()
{
   Multicast_PickupItemAnimation()
}

... 

Multicast_PickupItemAnimation()
{
    AnimInstance->PlayAnim(...)
}

Same logic applies to blueprints. Server does not have to know about animations.
You also don’t have to pass around a reference from client to server about who does what, it knows from which specific actor instance the RPC was called.

Hope this helps.