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.
MyCharacter.h/.cpp
ThirdPersonCharacter blueprint
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.
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.
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.