StaticMesh doesn't register hits if not a root component

Unreal Engine version: Version: 5.3.2-29314046+++UE5+Release-5.3
I have created two Bullet blueprints.

First one has following structure of Components:
image

It has simple Blueprint graph:

and following Collision settings on a Static Mesh component:

it works as expected:

  • fly and chases player
  • it register hits with geometry
  • damages the actor it hits
  • destroy itself after this

Everything is OK, but it doesn’t allow me to rotate the Static Mesh model, as it has only scale in Transform:

So I created a second blueprint, almost everything is the same, but with slight difference:
Root Component is not a Static Mesh Component, but a DefaultSceneRoot

image

Everything else is exactly the same.

The expected results are never achieved:

New BP doesn’t register hits with not moving objects.

  • It doesn’t register hits with statically located geometry on level (flight through it)
  • It pushes a player and never triggers a hit event if player is standing still player.

The only case it register hits is the Player is moving towards a bullet.

The only good thing is that a bullet now properly oriented as I rotated a static mesh as it has transformation now.

  • Can someone tell me what is the root cause of such unexpected behavior?
  • Why it never registers hits when anything but a static mesh is root component?
  • Why it only register hits with moving objects and not statics?

I’m pretty sure this is how it works.

I can’t find the article right now, but I saw somebody saying as much recently…

Here’s a couple of ( old ) self referring articles about it

And another

But I have this more recently also… :slight_smile:

1 Like

What I in the end to resolve the issue:

  • set root component to StaticMeshComponent with simple collision as simple sphere around my bullet mesh
  • set root Mesh to invisible
  • added another StaticMeshComponent attached to root component, with my Bullet mesh, and transformed it as I needed (I could rotate it!)

Seems to be working for me now. Still wasting some memory, but bullets are fast to disappear, so I don’t bother too much.

Solution with collision shpere as root didn’t worked for me - it STOP near wall, but never register a hit :frowning_with_open_mouth:

1 Like

I made a new version, from scratch.
Used SphereCollision as a root, and a StaticMesh on top of it, and it finally started working.
I don’t know why my old blueprints weren’t working this way, but now I’m happy.
Thank you.

P.S. I tried to use ProjectileMovementComponent.SetUpdatedComponent(StaticMeshComponent) but it didn’t worked for either, when it’s inside components hierarchy and is not a root component.

1 Like

I think it’s like someone mentioned in one of those threads, you can’t be checking a whole list of components every tick :slight_smile: