They are the same animation but different versions playing in the same game instance
PC: Dell G3 3500
Mobile: iPhone XR
Tablet: iPad Pro 2018
All devices are running the latest version of Roblox
This is the script
local Players = game:GetService('Players')
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
while not character.Parent do -- we do this because Roblox is stupid
wait()
end
character:WaitForChild("Humanoid"):LoadAnimation(script.Animation):Play()
end)
end)
this happened to me too, i have a game that has a downed system where if you reach below 20 health you enter a bleedout state and it plays an animation, recently i switched my games rig from r15 to r6 and i had to redo the animation and after i overwrited the animation with the r6 one, it would not play at all on mobile and console (probably because it was trying to play r15 animation on r6 rig)
This issue occurs in any new game instance with a mobile device when an animation is updated. When the same mobile device is used to enter the a new game instance the animation will not update to it’s latest version.
You can see very clearly in the videos I’ve provided that they are playing different versions of the same animation in the same game instance from each device perspective
Oh, I see. And by ‘any new game instance’ would lead me to believe that this issue also occurs with a fresh new baseplate. So you’re using a single animation object if I’m correct. Are you calling ‘LoadAnimation’ from a local script?
Edit: I see this is being done on the server. Usually one would play animations from the client while having the animation object loaded first on the server. I’m unsure if calling ‘LoadAnimation’ would affect its behavior if called from the server, as it’s usually done for NPCs.
Then again, I don’t see why it should be any different as calling it from the client apart from a possible delay when playing animations. I could be wrong but there could be something going on with the deprecated method of loading animations via the humanoid object.
Step 4 of the reproduction steps are to rejoin the game with both devices? So this is telling me that your studio may not be publishing any updates but at the same time animations are different for all of them? It’s contradicting.
Can you try this on a mobile device that has never played this game or loaded this animation previously?
Like meshes and textures, animation assets are independently loaded by each client and potentially cached for faster loading next time you join the game.
Can you try re-joining a third time to see if the cached asset is updated in the background after the second time?
There may be cache expiration policy differences between mobile and desktop. Not sure if there is, or if this is intentional. If you can verify if it is cache behavior or not we can better direct this to the correct team.
A device that hasn’t loaded the animation before will get the latest version, I did this with the iPad, I used it to join the game after the first test
I have done this more times than I can count because I was testing changes with the Animation that I have been working on, it will always play the first version it loaded.
I’m not entirely sure but it seems like it cleared the cache when I woke up, maybe if you restart the device too but that is untested. I did remove the Roblox app from the task manager on IOS but it didn’t
clear the cache.
this is very hazardous, and have caused a lot of confusion on my end. Things like these should be well documented. I wasted a lot of time trying to figure out if there is something wrong with my code or I didn’t upload the animation properly over several days until I found out about this.
So it’s caching messing this up, I think that having a method to manually clear it would be great or simply overwrite any cache when ‘LoadAnimation’ is called although I can see it being an issue if called too many times in a short amount of time and causing a huge amount of info to be sent to clients.