SetActorTransform breaks collision for InstancedStaticMesh

Okay, so here goes reproduction of the problem:

I created new blueprint project with third person template and started assets. I created an actor called ISM (consisting only of default root and Instanced Static Mesh Component),Set mesh of the component to default cube, and in construction script I told it to create an instance at it’s root, in world space. (I use the same method for my original project, except any procedurality would go here)

Actor:

98668-ism+-+hierarchy.png

Defaults for ISMComponent

Construction Script:

So far so good. Now, in the Level’s Event graph if I spawn one ISM actor at given location, everything is good, If I spawn it and in the very next frame move it - collision is broken.

Just now I ran some additional tests. As before, no combination of sweeping/teleporting on SetActorLocation helped. I put a delay between spawn and moving to eliminate possible origin of the problem being execution within one frame. I added instance using local space, not world.

And then I found a fix.
It turns out that if after moving you call “UpdateInstanceTransform” with ANY settings, colision updates. Even feeding tha instance it’s own current transform back is enough.

I am not an expert in unreal, but for me it seems that when instances are moved externally, dragged with the actor, their colision hulls get left behind. Further evidenced by the fact that if you place the actor correctly (with updating of instance transform) and then move it elsewhere “the bad way”, you can still stand on it’s previous location, as if it was there. (Standing on it when it is taken away results in being pulled waist-deep into the ground, though)

I don’t know neither how hard / suboptimal would it be to tell ISMComponent to force update of transforms on all it’s instances when it’s moved, nor if it’s perhaps intended behaviour, because instanced static meshes were designed to create inexpensive static scenes rather than to be moved around. But in any case I am willing to help and provide you with any information needed. I hope I helped :slight_smile: