Animations NEVER update for Mobile and Tablet

When you overwrite an existing Animation it will never update for Mobile and Tablet.

It will be the same version from the one when the player first joined the game

image


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)


Unfortunately I can’t share the Animation with you because that’s not a feature that Roblox provides

It is easy enough to reproduce though,

  1. create an Animation
  2. go into a game with a PC and Mobile Device
  3. update the same Animation
  4. rejoin the game with a PC and Mobile Device
  5. observe the bug
12 Likes

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)

1 Like

You seem to be using a deprecated method to play animations, which may lead to broken replication of animations. This may help:

2 Likes

No, this is unrelated. Please read the thread

I’m sorry, but are you overwritting an animation and publishing it while a game server is already active? This is what you seem to imply.

No, that is not what I’m expecting to happen.

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.

I’m playing the Animation in a script as you can see in the screenshot.

And yes you join the game with both devices because on PC it works fine but not on Mobile and Tablet.

It seems like the problem is Mobile and Tablet devices will cache the Animation version from when they joined the game for the first time.

There aren’t any problems with my script this is an internal engine bug.

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.

Sorry to bump this topic after 2 years, but the issue is still occuring. Breaks my game completely!

1 Like