[Bug] Destructible Actors Spawned, Scaled, And Destroyed Blink & Dont Follow Gravity

Dear Friends at Epic,

I am trying to spawn Destructible Actors at run time and destroy them.

the only way I can reliably do damage to them is by moving around a ARadialForceActor and running its Impulse() and having it set to do damage to destructibles. (very clumsy but GameplayStatics::ApplyRadialDamage() even with environmental damage type is not working for me)

#Placed-In-World Destructibles Work Correctly

When I place Destructible Actors in the world pre-runtime, when they are destroyed they act correctly. The Destructible Actor is auto created while dragging the Destructible asset into the world. The pieces fall to the ground normally and obey world gravity

#Spawned Destructibles = Whirlwind
But when I spawn Destructible Actors at runtime, and destroy them, the pieces fly around in a whirlwind and are not following gravity at all.

They seem to rotate around the origin of the destructible before it was destroyed, as if they are stuck in component space or something.

#What is the Difference?

Why do Destructible Actors placed in level follow gravity, but the ones I am spawning do not?

#Spawning
I have spawned using blueprint Spawn Actor as well as via C++ code.

#Pic

#Thanks!

Thanks for taking the time to check this out!

Rama

#Repro

  • have an apex destructible mesh asset

  • make a ARadialForce actor that has a destructible damage amount set

  • place the apex in the world pre-PIE, and in level blueprint, activate the radial force on level start or key press

  • observe how the Apex destructible follows gravity properly

then

  • make in level blueprint a key press to spawn an instance of a blueprinted version of the Apex (expose advanced properties to set the blueprint’s destructible asset

  • spawn this blueprint during game time and then activate the radial force actor

  • observer the whirlwind :slight_smile:

Rama

Anyone tried the repro yet?

shouldn’t be too complicated :slight_smile:

Rama

Hi Rama,

Thank you for your report and patience. I have been attempting to reproduce this issue in Beta 6, but I am unable to get the same results.

I started with a new Blueprint Project and made a blank map. I create a Blueprint with a destructible component, give it a delay and apply radius damage. I set up the Level Blueprint to spawn the Blueprint with the destructible component at origin when I press ‘E’. I hit play and press ‘E’, but the mesh just explodes everywhere after the delay.

I also manually placed the Blueprint in the level to see the difference as well. In my test, the destruction of the spawned Blueprint was more spread out than the placed Blueprint.

I asked another support staff about testing this and he had similar results.

Does this occur under those same conditions for you?

#Scaling

When I removed the scaling I was doing on the APEX after spawning it, two behaviors disappeared

  • the asset was blinking constantly, this is a bug that should be fixed

  • the whirl wind went away, normal apex destruction!

#Repro

After you spawn the apex via the level blueprint, please scale it up 10 times, at least, in all dimensions

For me this leads to incessant blinking of the asset, blinking in and out of existence visually, only at certain camera angles

This also results in the apex pieces often not showing up, or doing the whirlwind thing

#Summary

The bug is linked to the scaling of the apex after spawning it

(set scale 3D)

#Thanks!

Thanks Alexander!

Rama

Hi Rama,

I was able to reproduce this issue in Rocket Beta 6 and our main branch as well. I have entered a report about the issue into our database and included all of the details you have provided. Let us know if you encounter any other unexpected behavior and we will be happy to further assist you.

Cheers!

Alexander

ahhh okay, thanks Alexander!

#:heart:

Rama

To stop the blinking, try this:

SET_CONSOLE_VARIABLE("r.HZBOcclusion", false);
SET_CONSOLE_VARIABLE("r.AllowOcclusionQueries", false);