Animation on Dedicated Server - Socket Location

Background: During spell cast animation (at halfway point), a projectile is spawned at the character’s right hand socket. The spell is spawned on the server and replicated to clients. The animation is essentially the character moving his right hand forward and it’s handled by the animation blueprint.

Issue: On a dedicated server setup, the projectile is attaching at the hand’s idle position. Both client 1 and client 2 are able to see each other’s animations (variable replication is working fine). However, it appears the server is not performing the animation, hence the socket location is not where it should be. When I switch the dedicated server off, everything works as intended. Unfortunately, I require dedicated servers.

How can I force the server to run the animation? I know that I can calculate the relative position of the hand and use that as a variable for generating a spawn location, but that would be tedious for hundreds of animations and even more tedious to change if I re-scale characters. Therefore, I need the server to run the animation to get an accurate socket location.

1 Like

Hi there. I’m searching for a solution to the same question. Can anyone help answering this?

Sorry found it. It’s a parameter in Mesh component named “Visibility based anim tick option” under optimization.

7 Likes

Eyo,
You my man, is a saviour!

Spent 6 hours figuring out animation replication and this was it.

The posts above are not full. I would also notice that, as it is figured in another topic, this option must be set to “Always Tick Pose And Refresh Bones”.

I’m in 5.4.3 It’s set to Always Tick Pose And Refresh Bones. I’ve confirmed that on the Dedicated Server the Correct Skeletal Mesh is set by printing out it’s name from the Dedicated Server. I have also confirmed that the socket exists by printing out the value from the Dedicated Server returned from the ‘Does Socket Exist’ function…everything indicates that absolutely nothing is wrong…and yet the Socket Location returned is that of the Capsule location…which is what happens when a socket does not exist or was misspelled…It’s only not working on the Dedicated server though and I have it set to Always Tick Pose and Refresh Bones…so it makes absolutely no sense to me at all what so ever. If I had to take a guess I would say this is some kind of Engine Bug. Has anyone else experienced this in 5.4.3?