Blueprint collision on non-root/nested component with SetUpdatedComponent()?

I still cant find any examples or resources explaining this and my attempts have all failed so far.

Whenever I try to put a collider on the blueprint, it only works as expected if I place it as the root component. As soon as I change that, it stops colliding and/or moving.

I read that SetUpdatedComponent() can be used for nested collision components.
I have tried using SetUpdatedComponent() by:

  • set to the nested collider on beginplay()
  • set to the nested collider and then the root component on beginplay()
  • set to the root component and then the nested collider on beginplay()
  • set to the root component on beginplay()
  • set to the nested collider on tick()
  • set to the nested collider and then the root component on tick()
  • set to the root component and then the nested collider on tick()
  • set to the root component on tick()

It’s been a couple days since I’ve tried these so I forget the exact outcome but none of them worked.
I think if I set the last updated component as the nested collider, nothing moves (maybe collision, don’t remember). If the last updated component is set as the root component, everything moves but no collision.

If I set the collider as the root component, it moves and collides.

What am I doing wrong and how do I make this work without the collider as the root???

Just do it with collider as root trust me it’s the easiest solution, there is rarely any reason for you to not have collider as root. As I played a lot with collision because I needed a multi-collision actor I found that the collision is really limited, if you want you can try to create a custom movement component for none root collision but I doubt you want to go into that scary c++ black hole. Maybe there is a solution but I suggest just to go and place the collider as root more simple trust me.

lol nice… were you able to get multi collision working?

Kinda in the end, I made a space game and used a floating movement component to control the ship. I hid the root collision and made it obsolete but still with the collision on or the collision wouldn’t have worked on the children components. Thankfully collision movement fixes and part of the collision still worked on children but the velocity stayed the same on hit so I handled it in on Actor Hit there it doesn’t matter with collision component gets hit. That’s why I don’t suggest for you to go into this farse the fixes for collision are complex and sometimes illogical.

Ps: Cool example if you add a collision box/sphere on your root collision as a child and be able to enable its collision (sometimes it just doesn’t work) you will be able to create a force field against things like physical projectiles, debris or rocks, pretty cool but really rarely useful.