I have recently come across a possible bug which I have been able to replicate in a blank project.
First a create a custom collision channel “CollisionX” and set it to block all by default.
I then make a class which extends actor, called ProjectileY. I create a static mesh component and assign the custom collision channel and also create a projectile component.
When I spawn ProjectileY and it collides with something it prints a string on hit - it works.
I then make a new class called “ProjectileBase” which extends Actor, add an int variable to it. Then reparent ProjectileY from actor to ProjectileBase.
Actually I am hitting the same problem. Wanted a more general projectile class to add variables to and now my old projectile(now re-parented) will no longer collide.
Figured out what this issue was. When you are reparenting the new ‘actor’ will have a default scene root. this screws up your collisions. I took my collision component on my original projectile and made that inherited so it could replace the default scene root. This fixed everything
Haha wow this was a long time ago. My project still has the same issue, basically projectile components will only allow the ROOT collision to return valid hit information. Make sure that you have a collision as root component. I use a sphere collision and then edit its parameters for different projectiles.