Am I missing something here? Is there a batter way to switch a characters animations so that it updates and replicates to all players? Can this be done all within a localscript or do should I run it from the server side?
By extracting the animation script and overriding it, but also rewriting the corresponding piece of code, by parenting it under StarterCharacterScripts should do the trick.
The animation script can be acquired by using the explorer during a test session. Copy the script and then you’ll have it added to your clipboard. Then you’ll paste it and edit it, simply.
The falling animation under character would only play once the state of the Humanoid is falling.
If you want to get back the original animation for the falling animation then cache it and replace it when you want to
You can initiate a Play Solo to retrieve the default animation script from the character, then parent it to StarterCharacterScripts. This script will be used and Roblox will not insert a default copy of it at runtime. I don’t recommend forking character scripts unless you’re rewriting code in it or making your own script, over changing a few values.
You also have the option of using the Humanoid Description System, for which you can overwrite animations without needing to fork any scripts. The way in which animations are fetched is a little strange and requires a bit more process, though it saves you code update trouble later.
And lastly, of course, you can set the AnimationIds of each animation in the script itself.