I’m running into a strange issue with Animator objects on player characters.
My character already has the default Animator that Roblox creates. I create a second Animator locally under the same Humanoid (named CustomAnimator ) because I want to load and manage my own animation tracks separately.
However, as soon as the second Animator is created, the default walking/running animations stop replicating correctly to other clients. The local player still sees their animations, but other players see the character stop animating.
The second Animator is created from a LocalScript , not the server.
Example:
local humanoid = character:FindFirstChildOfClass("Humanoid")
local animator = Instance.new("Animator")
animator.Name = "CustomAnimator"
animator.Parent = humanoid
My questions are:
Is it supported to have multiple Animator instances under the same Humanoid ?
Can creating a second Animator interfere with the default Animate script or animation replication?
If I want to play my own animations independently, is the correct approach to reuse the existing Animator instead of creating a new one?
Has anyone else experienced this or knows why the default animations stop replicating to other clients?
Have you tried unparenting the original animator when inserting the custom one?
The only real fix I can think of for this one is to use server authority because you have to be playing animations on the server for them to replicate, so you have no problem playing them locally since logic is separate
roblox relies on only having one animator per humanoid for replication (legacy humanoid code stuff), so you need to destroy the old animator, create the new one, parent it, then re-load the animations for replication to work properly, or use the default-assigned animator and clear all of the old animations currently loaded on it. as a side note creating animators locally leads to very undefined behavior due to network ownership replication so be careful about doing that as that is one of the causes of the terrible replication
Actually now that i think of…
Have you tried creating AnimationController locally with animator and playing inside that?
This technically should keep working…
An AnimationController won’t solve your replication problem if you’re still creating it locally. If the Animator or Controller isn’t created on the server, other clients aren’t going to see those tracks regardless of how you structure the hierarchy.
That doesn’t change anything. If you create an AnimationController locally, it still won’t replicate to other clients because the server has no knowledge of its existence.
It’s not ragebait, you just haven’t clarified that your goal is to avoid replication. I was addressing why the animations stop replicating for others, which is what you originally asked about.