As you know, when you have an Animator inside of a Humanoid or AnimationController that is owned by a player, the animations automatically replicate to the server.
I am aware that creating an Animator instance from the client will not replicate its animations to the server, so you can have the ability to create client-sided animations only.
What I Tried
However, what I am looking for is the ability to do both. For me, the solution seemed to have two Animator instances under the Humanoid: one that replicates to the server, and one created on the client that only does client animations.
The Problem
Unfortunately, it seems that Roblox prevents you from having two separate animators under the same Humanoid instance. This was incredibly disappointing to learn, because it would have been a perfect solution for me.
I hope that someone has a solution. If so, please let me know.
That would require me to basically rewrite the character Animate script and program it to FireServer for every possible animation and function (including running, jumping, idle, etc), and not to mention the speed adjustments and more. I want to preserve the current auto-replication functionality but also have the ability to play animations that don’t replicate.
Unfortunately I just ended up ditching that idea and just locally cloned the player models for my use case when needed. The only solution to my initial problem was to constantly CFrame a locally created player model to a “Controller” part that acted as the actual player characters every frame, but the performance impacts seemed a little high so I opted not to do this.