I’m using a script that utilises Motor6D’s property of CurrentAngle and DesiredAngle for animation, to replicate old Roblox animations. I had noticed that the CurrentAngle does not seem to work AT ALL on the server, only on the client.
The animator script is server side, and it edits the DesiredAngle, which is then supposed to change the CurrentAngle on the server, but doesn’t.
Take holding a tool, for example. This is what you see on the client:

VS, what you see on the server:

I made sure. MaxVelocity of the Motor6D is not zero, and the DesiredAngle is set correctly serverside
I’m 99% sure this is some Roblox bug, and I don’t know how to work around it. Since it only affects the server, and not the client(s) that view the character (despite the script being serverside). I need server to also replicate the animations, as the game has swords
you could make a script with an event that fires to all the clients to play the animation for all of them. would be a bit difficult to make though…
1 Like
This isn’t a bug, this is actually a feature of network ownership of welds.
Roblox does not allow property updates, tweens, and transformations of motor6d instances on client network-owned instances from the server.
Your client has network ownership of all the weld’s in its hierarchy so you can’t change welds from the server on your character like you can on a rig in workspace.
It is pretty hectic to control animations by the server on the client, usually they’re played on the client entirely and a track is sent over to the server for control. You only need to ping the client you’re animating with a remote event, their character’s animations or motor6d property changes will replicate to the server and everyone else will see them.
Your only option is to have the server use a remote event to tell the client you want to animate when to update its weld properties.