Projectile collision not working until Root removed from Components

Hello!

I just tried to add a simple sphere collision+sphere object+projectile movement projectile in the Top Down project template.

  1. Create New Blueprint Class based on Actor
  2. Add Sphere collision component. Set Collision Preset to “Ignore Only Pawn”.
  3. Add Sphere object component. Set Collision Presets to “No Collision”.
  4. Add Projectile Movement. Set Initial Speed, Max Speed, Checked “Should Bounce” attribute.
  5. Wire Event Hit in Event Graph to just a Print String “Hit!” (I need it to add an explosion on hit, so this is just to make sure this event gets generated).
  6. Spawn projectile when shooting.
    (I actually try to replicate the settings from the FPS Template).

Projectile is spawned and all but it just goes through every mesh like a ghost.
I had the “Default Root” component in my projectile. As soon as I made the Collision component root, it all started to work (bounces, hit event triggered, hurray!).

Now I spent an hour figuring it out (I know, I’m slow) only cause I remember there was something “fishy” with which component is root.
Can someone please explain why in this case it didn’t work as is (i.e. with this “Default Root” component I got when creating a new BP class)? In which case would I keep that “Default Root” in a BP?
Any references to some Unreal documentation would be great too!

Thanks!

You are actually wiring a hit event from the sphere collision right? just making sure

I had the same problem with my projectile blueprints, everyone who is having this problem, be sure your root component isn’t a Default Scene Root, otherwise your hit detection won’t work properly, For me, they’d only fire when I hit other actors, but not on static meshes.

year 2019. november. Its still dont working correct! I spent a day with this bug!

I don’t fully understand this either. But after testing I can definitely say that when the Root of the projectile blueprint itself is not what is “handling” the collision, it doesn’t work. (examples below using projectile movement component with default settings except initial speed set to 200 for testing)

Example A)“Not Causing collisions_”
Default Scene Root
-Sphere Mesh

Example B)“Causing Collisions (no settings changed)
Sphere Mesh

The issue lies with unreal engine not handling “nested collisions” in this case and also with projectile component not moving a scene component. I’m not sure of this but I imagine the scene component is not going anywhere when the example A above is fired, even if the projectile mesh is moving.

On another thread a user named RevOverDrive mentions this…(thanks Rev)
"Projectile movement will not move a scene component. Anything bound to the scene component will not move either. Thus your collision doesn’t move.

Proper projectile hierarchy should be:
Collision (parent component, aka root)
Projectile Movement Component

If you want any visual element (emitter, mesh etc) parent said component to the collision.
e.g.
Collision (parent component, aka root)
→ Static mesh component
→ Particle System
→ Audio Component
Projectile Movement Component"
end quote

Hope this helps someone! Cheers