Animation events not firing, Length property always 0

Randomly, some servers will refuse to fire animation events, or update their .Length, despite them being loaded and being played.
This is something I thought that Roblox fixed long ago, because this isn’t a new issue:

(This is a thread from 2022 where I tried to get help since I did not have bug report access, at that time, I had to make a workaround for it, but today, with optimizations and faster developing I want to do in my game, I cannot maintain the fix I made (which is getting the keyframes of the animation and manually getting their times, to execute functions needed on each, it also has limits due to optimization)

This was also been reported before but without a good visual demonstration, I tried bumping it but got no attention from staff:

Even the Strongest Battlegrounds (200k+ players daily) developer faced this issue and was ignored

I hope to bring this up again, which may finally help to get this issue fixed.
Since this happens with random animations with random servers, we cannot replicate it, we can only wait for the issue to happen to get to the server and see that’s the bug that is hurting the server.
This issue is very important for my game because i’m starting to use GetMarkerReachedSignal and Stopped events more, and my game is a fighting game, with those events breaking it will hurt my community heavily.

Video demonstration:

External Media

(You can see the first 2 hits do not cast a hitbox, due to GetMarkerReachedSignal not firing), then I execute a script in console to check animation Length and Stopped events, which do not fire, despite the animation being played.

Expected behavior

I expect the animation track events to be fired properly, and the properties to update normally, as it does in healthy servers.

2 Likes

Issues like this have caused us to completely stop using animation markers as they’re consistently unreliable. This needs to be prioritized if Roblox wants people to use their in-house animation system and not have to deal with awful workarounds.

1 Like