ProjectileMovementComponent destroys actors upon resting?

This has something to do with gravity or the physics coming to a rest. I was making a grenade and when it touches the ground it just gets deleted after a short delay (roughly 1 second). I move it higher up into the air and as long as it explodes before touching the ground or very shortly after it explodes properly. Otherwise it’s deleted before it makes it to the ground and the delay doesn’t have enough time to finish.

To be clear. Begin Play > Delay 2 seconds > Emitter > Sound > Destroy self It gets interrupted during the delay and just poofs. No emitter or anything. Even when I remove all of my code and even start from a blank slate with a new actor this happens. I remove the projectile movement component and the problem is solved.

So I went and I grabbed a laser projectile I’d made. It’s just a static mesh (sphere) with a projectile movement component. I checked them side by side to see why that one didn’t have the problem. I disabled gravity on my grenade in the projectile movement options and BAM. Problem solved. Except uh. No gravity now. So awks.

UE 4.10 latest update (4?)

Question: Is the grenade achieving Kill Zone altitude? (In other words, is there something in the blueprint that would keep the grenade moving in the negative Z axis?)

If it poofs before the Emitter has a chance to activate, either the Delay needs to be longer or it is auto-destroyed by running out of Lifetime (not the channel).

I am sure you have tried this same grenade without the Destroy? Just to see what happens to it.

Solved here: ProjectileMovement destroying my actors! (Gravity?) - World Creation - Unreal Engine Forums

The answer was… different. And yes, I tried those things (:

I have faced this problem some time ago. After trying all the available actions, I could find out a solution for it. Please check the defaultsceneroot component of the actor. If it is not set, assign something like a mesh component as a root. Then, the projectile movement component will not destroy the actor.