Animation plays on client correctly but incorrectly on server

Here I’m trying to make a local animation play on server (ARMS NOT HEAD)


As you can see in the video the animation plays correctly on the client but not for the other clients, the parts in the animation both have network ownership of the client animating them and I tried with Humanoid and with AnimationController both gave same results
The arms are descendants of the player character

I think the Animation plays but only the position of parts, while the rotation doesn’t, because the breathing can be seen on other clients, and I’m not sure why is it only doing position and no rotation

Are you using actual animations or CFrames?

Animations, you can see they are animations in the left part of the video

I see nothing on the left screen that would hint towards normal animations.

It’s still an animation even if there was no hint

Dude, there is nothing that defines that it is a legit animation and not some CFrame magic.

It could be an actual animation problem. Have you tried remaking the same animation then applying it? Or it could be corrupted code.

Yes I recreated the animation before and applied it, and I don’t know what’s wrong about the code because the animation is playing perfectly on client but playing bad on server

I’m extremely confused on what your trying to achieve… could you clarify?

I’m trying to get the animation to play correctly on both the server and the client, but as you can see it’s only playing correctly on client

Oh okay, what I’m picking up is the head animation isn’t proceeding. Are you using …Humanoid:LoadAnimation(Animation):Play() …?

Not head, look at the left side of the video, the arms are connected from the front, while on the right side you can see the arms are just far from each other

Oh I see, well my question still stands. Did you use Humanoid:LoadAnimation(Animation):Play() ? If not can I see some code that could potentially be the problem?

I’m using AnimationController, but I was loading the animation in a variable then playing it in another line

local LoadedAnimation = AnimationController:LoadAnimation(Animation)
LoadedAnimation:Play()

I tried with Humanoid but didnt work

Where is this AnimationController located? and is this with a “server” Script or LocalScript? Do you have an Animator and if so, Where is your Animator?

The animator just creates itself everytime I use the animation editor and it never impacted the animation playback for me, there is a server script inside the Arms’ model that sets it’s network owner to the client that uses the character with that arms model (every character spawns with it), the local script spawns inside the character and controls the animation playback, also I think the problem I’m having is just that the animation isn’t replicating correctly on the server, all I’m asking for is how do I play the animation from the client side but let the server side see it? and also set the arms rig CFrame from the client side, I’m using a custom arms rig not the arms already in the character

Check where the animator is created.
https://developer.roblox.com/en-us/api-reference/class/AnimationController

According to the article the animator can only be in the Humanoid or Inside the AnimationController.

1 Like

When I load the animator from the server side, How do I play it from client? Do I use LoadAnimation on animator or animationController

Thanks that actually worked! After waiting for the Animator to be loaded from server and loading the animation from there the animation now replicates correctly :smiley: