UE 5.4 Facing a bug relating to ISM on Android platforms and Android platform preview

Hello,

I discovered a possible bug in UE 5.4 relating to ISM. After all the exciting developments, I jumped back into 5.4 and, just for fun, tried to recreate a legacy tutorial with a bit more optimization, creating a sort of endless runner game.

Here’s the tutorial I followed: Endless Runner: Overview & Player Control | 01 | v4.7 Tutorial Series | Unreal Engine

Basically, I have made an “ISM Manager” which spawns instances of the “floors” instead of directly adding static meshes to improve performance.

I have two methods in my ISM Manager class: Add Instance and Remove Instance.

  • Add Instance: Adds an ISM instance at the world transform of the “FloorTile Class” to spawn a floor.
  • Remove Instance: Removes the 0th index of the ISM instance when the EndTrigger in my FloorTile Class is overlapped.

Now, here’s the bug: In the SM6 preview, the game functions absolutely fine. However, when I switch to the Android Preview or run the game on an Android device, the Remove Instance function behaves erratically and starts removing ISM instances haphazardly.

Please see the video for a clearer understanding. It is 480p due to file size restrictions, but the issue is clear. This project was created completely new in UE 5.4 using the Third Person template.

Thank you for your assistance.

Is no one else facing this kind of issue?

Can anyone confirm if they face the same kind of issue?

Basically, I believe the issue is with ISM adding instances for a static mesh when running Android preview or running on android device.

I can confirm that it still happens on 5.4.2 for me.

1 Like

I am having the same issue. As you said, it happens only when previewing with Android (I am using Vulkan) in 5.4.4, but it doesn´t happen in 5.3.2

I made some tests and it behaves really weird. If you set it to RemoveInstance with index 0, it removes the last one you added, but if you put any other index (i.e. 4), it will leave the first 4 instances and then start removing from the end (the last one you added). However, it is even more weird that if you set a counter so you delete index 0, 1, 2, etc, it will delete BOTH the first and the last index you added… It´s really weird!

Have you tried with Hierarchical Instanced Static Meshes? It´s the next thing i would try…

@VictorLerp apologies for tagging you here but I see you respond to some bug reports so I wonder if you could send some help here as it seems a bit abandoned? Thanks in advance!