Animation Replication Inconsistently Breaks

Inconsistently, animation replication breaks. Other clients no longer see certain players’ animations until something triggers it to “fix” itself.

Example of the bug in action and it getting “fixed”

Details

  • What it actually does
    • When the bug is triggered (see points below on infromation relating to triggers) all new animations on the client will no longer replicate to the other clients. Once the bug has been triggered on a client there is a way to “fix” the state (refer below). The odd behavior of this bug comes from the fact that once you fix yourself you can’t get it again. I’ve never been able to recreate the bug after I know I had it and fixed it (as verified by another user)
  • How to “fix” the bug
    • To “fix” the bug you have to stop every single animation on the client that has played during the peroid of their animations not being replicated. I refer to this as “cycling” your animations. Essentially stopping every one that has played/is playing during the bug and then new animations will start replicating (I’ve attached a video showing an example of getting your animations “cycled”. In the video I am walking around with the bug, the only animation playing on my humnaoid being a walking one, as soon as I stand still walk and stand still again I’ve “cycled” my animations by ensuring all that were previously running are stopped)
  • How to reproduce the bug
    • I’ve never been able to narrow it down to a 100% guarnteed method for reproducing the bug, however in the repro place I’ve attached to this form contains what I believe is most likely the cause. To produce the bug with the greatest chance enter the place and enable shiftlock, then frequently use double tapped and help wasd inputs while left and right clicking. This seems to be the easiest way to trigger the bug. This bug is not visible to the client who recieves it, only other players will see it should it ever happen. Also to note, not every player will in fact see this.
  • If you are interested I’ve linked an old forum that shows all the potential fixes and feedback I’ve recieved on the bug

Repro Details

  • Link: Animation Replication Repro - Roblox
  • Repro Code Breakdown (The repro place explains some basic controls)
    • Combat
      • Simply detects your current states and decides whether or not to request an animation to be played based off the request action and followed state checks
    • Core Movement
      • The various modules in Core Movement (except for jumping, dashing, and walk speed) merely handle altering a handful of state values MovementType MovementDirection and IdleType
    • Animation Player
      • This is where every unique player action is handled, things like the punches, and dashes. Each animation in this specific repro place is stored in ReplicatedStorage and is loaded as follows
      local Movement_Anim_Folder = Anim_Folder:WaitForChild("Movement")
      Dash1 = Movement_Anim_Folder:WaitForChild("DashForward")
      Dash1 = Humanoid:LoadAnimation(Dash1)
      
    • Animate(Custom)
      • This is an altered version of the default animation script designed around multi directional movement. The creation of this script is where the bug first originated from. However the bug’s behavior seems to be completely separate from this system as the bug can only ever occur once
5 Likes

It sounds like you are loading/playing a number of different animations in a short period of time, in which case this may be the issue you’re experiencing:

1 Like

I had believed the same thing initially when I saw his response on that post, but this can be triggered with as few as two animations, you can only ever have one movement animation for the walking cycle playing, added to a dash, and maybe some form of combat and you’re only hitting around 4-5 animations at a given time max. Unless when animations stop there’s some sort of cross delay, but even so that wouldn’t explain the fact that when this triggers once, and gets fixed, it doesn’t repeat even if the exact same chain of animations that led to it breaking are repeated.

1 Like

Ah, the limit kicks in when 10 (or more) animations that aren’t currently playing are played within 10 seconds. Then it will wait the 10 seconds before allowing another animation to be started. By stopping animations, it actually could be making this issue worse as each successive request to restart an animation would add to the count of new requested animations.

For your example place, you have a number of different animations for the directional strafing and if a player circles and triggers all eight directions and then repeated within 10 seconds, this limit will be hit and additional request for animations to be played will be ignored.

1 Like

How do you reckon that plays into the one time trigger, as this issue can never be triggered again after a player gets it, and then “fixes” themselves. I’ve tried four hours at a time and have not once been able to trigger the issue twice after a confirmed break, and fix.

–Edit
Also realized I might of interpreted what you said there wrong (sorry if I did), but I think the cause is in fact related to some sort of frequency, but I haven’t been able to nail down that whole never triggers again.

Ok, the more specific trigger for the issue I was describing is when 10 (or more) animations that haven’t been loaded before on this specific Animator object before. So for the case that you’re mentioned, it may be triggered the first time, but unless you load new animation assets, it won’t occur again with that same humanoid.

So is there anything I can do to keep this system still implemented? If the trigger is hitting that animation limit I can’t really see how I could avoid hitting with the given nature of a multi directional animation system like I had in the example place.

1 Like