UpdateInstanceTransform() works in PIE but not Packaged builds in 4.17

What should happen:
When you left click on a rock, it should despawn, then respawn after 5 seconds. This works in play in editor but not packaged builds.

In packaged builds, it removes ALL instances, then respawns that ONE instance which you deleted.

Build Type: Source (Vanilla)
Build version: 4.17

Detailed description of the issue:
Please see the attached project for reproduction. It’s very simple, only has three places where code is placed.

  1. MyCharacter.h/.cpp
  2. ThirdPersonCharacter blueprint
  3. Level blueprint

first, play in editor, hit a rock with left click, it should respawn after 5 seconds
then, right click => launch game on uproject, and launch server using the “Run Test Server” shortcut i made

The shortcut might have to be pointed towards your path/engine build location.

System Specs: Windows 10, GTX 1080, i5 CPU 3.4ghz

No errors, or crashes, simply different behavior in PIE vs Packaged builds.

Also, if you type “show collision” in the console ( ` ) it will also remove ALL instances, not just the one you deleted.

The same issue happens in single player as well.

Just tested in 4.15, this bug does not exist in 4.15, so it’s definitely a issue in 4.17 I haven’t tried 4.16 yet

Here is a video tutorial of how to create the issue: - YouTube

IT works in 4.16.3, but not in 4.17.1.

Added another, more detailed, yet simplified tutorial

Epic? Any answers?

Any answers?

Any answers?

Wait, 4.18 is actually out now? Oh ■■■■

This ain’t Discord BDoom, you won’t get a fast reply here, especially if you want some Epic mod. I heard the guy who made the changes is trying to fix ISMC, which you can see in other questions about ISMC for 4.17. Let’s see what he comes up with for the hotfix. Chances the mods here know if this bug is in relation with the other bugs are pretty slim (except the guy who is doing the fix, got some time left). You can also download v4.18 from source and see if it’s already fixed there. Other than that, chill down <3.

Just tested 4.18-staging this bug is still active in engine


A fix was made for 4.18.

Hey I just want to validate something with you. The behavior in PIE is the expected behavior that we should be having in standalone and packaged builds, right? Sorry for being a ■■■■.

In general term, it depend, but in this case, previously, PIE == Editor thus there is special handling for static meshes instancing. So the real flow is to check in standalone i.e -game or packaged build to know the true behavior. My change will change the current default behavior to be both the same and if user want full optimization they’ll have to turn it back on on their component which will result in the current behavior you see.

To give more context on this, normally if instances shouldn’t be changed, they are not cache CPU side, only on GPU post initialization, so all operations you do will ultimately cause what you experiences, guard were added with log to notify users of what is happening, and it wont change the data.

Hope it clarify things :slight_smile: