1- Do you really have to do so much defensive programming with if otherActor, otherComp, etc… I fail to see how you could collide with something that is not an actor and/or that has no primitive component.
2- Don’t do too much blueprint to C++ refactoring, it will have the side effect of making you realize how short a complex blueprint graph can be in C++