AnimationTrack:Play always replicates. Whether done on the server or locally. I simply call AnimationTrack:Play()
to replicate it.
I’ve found the solution to my problem, though. Here’s my analysis:
If no Animate
script is in game game:GetService('StarterPlayer').StarterCharacterScripts
, the game will automatically assign an Animate
script, based on whether you use R15 or R6. Originally, I fetched the R15 Animate
script from an R15 play session, and wanted to use this on the R6 character. I changed some of the code so that I could re-assign certain animations in real-time, without having to do the old …
Animate.Disabled = true
for _ , track in pairs (Humanoid:GetPlayingAnimationTracks()) do
track:Stop()
track:Destroy()
end
Animate.Disabled = false
… trick. Though, for some reason, this didn’t work for the walk animation. It didn’t work as expected. Why this doesn’t work, I’ve yet to figure out. I’ve tried several times to get it to function, but with no luck.
Eventually I thought of whether the old R6 characters use an older, outdated Animate script, and sure enough, they do. So I ran an R6 test session, fetched the R6 Animate
script, tested its replication and this worked as expected. I tried to apply the same changes to this older, outdated script, and I got this to work fluently and perfectly as I wanted.
The bug is now fixed for me, but I still wonder why the different Animate scripts aren’t backwards compatible with other rig types. Specifically, why they work locally, but do not replicate properly. If anyone figures that out, or has information on it, feel free to post it here.