AnimationTrack.Looped Does Not Replicate

Animation replication is different from all other replication IIRC. When you play an animation from the server multiple times, you actually get separate tracks each with their own animation object on the client.

As above, it’s not always as straight forward as you think, and it’s pointless to argue about engine internals since nobody knows. Focus on impact the issue has on you if you want it resolved more quickly.

4 Likes

This bug prevents me from stopping Roblox emote animations from looping when disabling the Looped property on the server.

2022 :thinking: Just encountered this bug. Can we get an update on the ticket progress @CodeWriter ?

3 Likes

We are working on improvements to the animation replication system that should resolve this issue. Unfortunately, those improvements are taking longer than expected as we don’t want to break any existing functionality. We are continuing to work on this, though and we hope to release it as soon as it is working well.

22 Likes

What sort of timeframe are we looking at? It’s still causing some significant problems and the workarounds at not pretty.

At the very least, a way to get loaded animations in an Animator without using AnimationPlayed would be much appriciated.

2 Likes

Not sure if this helps.

The first video. I had the priority of the animation set to “Idle” (for the idle crawl animation)
https://gyazo.com/562fb0cd01366fe4b20b0fbe10e302e2.mp4

The second video. I had the priority of the animation set to “Core”.
https://gyazo.com/653783cb11065971c85cf8a6a9b070d8.mp4

Core priority animations seem to replicate properly.
For anyone else if the animation doesn’t have to be a higher priority this seems to be the solutuion


Animator_Bug.rbxl (34.6 KB)
Still an on-going issue causing replication issues for other clients.

4 Likes

I think Animations should be just handled clientside, why would the server (which no one plays on the server) handle animations? Who will see the server animations apart from only thing doing is sending the information to all clients which you can also do using OnClientEvent’s and FireAllClients() call in case you want it to replicate/sync with other clients, but i think just having the server fire a remote to all clients to update the animations for these is the best solution

But go ahead, flag this post because this forum is literally 1984

3 Likes

It’s 2023 and Roblox still hasn’t fixed this bug. The only solution to this is by using RemoteEvents, firing all clients and changing the loop but, the problem is that the server gets none of that code and it will remain dead. You sadly cannot send the loaded animation back to the server but better than nothing I suppose :confused:

2 Likes

New year, new me, but the same old bug I see.

6 Likes

That’s great because it’s also an issue via client side as well. Animations set to not loop via client do not replicate the behavior to the server. But a way around this issue would be to wait for the animation to complete then stop it. I guess Ill try that.

1 Like

The solution would just be this.
anim.Looped=false
spawn(function()
local anim=anim
anim.Stopped:wait()
anim:Stop()
end)
I’d only use spawn function if you want to carry on with the code you have around it without making it wait for the animation to complete.

This looped property may not replicate but if you unloop the animation and wait for it to stop then stop the animation this does replicate across server client boundaries.

Here’s what I’m doing now:

animationTrack:Play()
task.wait(animationTrack.Length - 0.5)
animationTrack:Stop(0.5)

In this way, it’s necessary to stop it a little early (at least 0.1s or so) and fade it out smoothly. Otherwise, the next loop of the animation will play and get interrupted once the client receives the :Stop signal.

This is still an issue. Should at least be documented.

3 Likes

Roblox, I beg. This issue wasted an hour of development time, as I could not figure out why for the life of me some of my user-submitted emotes looped properly and some didn’t, and I didn’t get proper events. Please fix this, it’s been known for nearly 5 years now.

2 Likes

The solution is simply this. If you have an animations engine simply patch them with a spawn function variant. Or even something like this local function AnimBoundary(anim)
–this method replicates across server client boundaries
local anim=anim
local animhandle
animhandle=spawn(function()
anim.Looped=false
anim.Stopped:wait()
anim:Stop()
animhandle:Disconnect()
end)
end

1 Like

I’ve already worked around it. The feature request is about requesting Roblox to fix the underlying issue, not requesting band-aid “solutions”.

1 Like

Roblox when will this ever be fixed, I am still encountering this on my game.

(http://cdn.redon.tech/u/GW5WZc.gif)

“Yes, this is a known problem and we currently have a ticket tracking it,” they said.
“Hopefully we will get to it soon,” they said.

5 years ago
Will this ever be fixed?

I doubt it. I’m showing an animation that isnt supposed to be looped to friends and it’s an inconvenience to have to change it in animation editor.

Bumping this post; it’s kind of lame how they still haven’t fixed this.

1 Like