The Animator can be created like any other instance meaning server sided animation is possible, as suggested by: Deprecating LoadAnimation on Humanoid and AnimationController
Recommended Alternative
Use Animator
directly instead. Cut out the middle man!
You should always create the Animator on the server. This can be done with Instance.new("Animator")
, or by just adding them as children of your Humanoid or AnimationController at edit time in Studio.
All replication of animations is handled through the Animator
instance. If the server doesn’t know about the Animator that you are using on the client, animations will not replicate.
Client-side animation scripts should use WaitForChild("Animator")
to get a reference to the server created Animator. The default Animate script has not been updated to follow this yet, but we’ll update it as soon as we can!
So surely you could do something like this:
local Animator = Instance.new("Animator")
Animator.Parent = player.Character:WaitForChild("Humanoid")
local Animation = script:WaitForChild("Animation")
local AnimationTrack = player.Character.Humanoid:WaitForChild("Animator"):LoadAnimation(Animation)