Why does converting Pawn Sensing Component from Actor Component to Scene Component break it's functionality?

Hello all,

I have a game specific situation I am trying to solve. I would like to have an enemy AI that effectively has 8, 45 degree angle wide eyes. The concept behind it is that the player would be able to shoot at these eyes individually, causing each hit eye to be removed from the enemy BP and thus making that angle a blind spot.

My plan to do this is to create 8 separate points on the enemy that would use sockets on it’s mesh (currently using the SK_Mannekin for testing purposes) and then register each of the relevant components to this socket in C++ using it’s constructor (see code below). At present, each socket has a UCameraComponent, UBoxComponent and my custom Scene Component variant of the UPawnSensingComponent engine class. I believe I can remove the UCameraComponents as PawnSensing would make them obsolete for use but in context, that’s neither here nor there

The sockets work fine and all 3 component types are attaching correctly. However, the functionality of the PawnSensing has not come over from the ActorComponent version. My SceneComponent version is the engine provided version brought over wholesale but with the standard code generated when deriving a class off of SceneComponent. All includes in the .cpp and .h are added, as well as forward declares and delegate macros.

The engine provided Actor Component working when added through the BP editor

My Scene Component version attached but not working when added through C++ constructor. Events and all values present in the engine version are accessible and callable

The only warning I get through the output log in the editor is that there is no skeletal mesh relevant to the sockets. As they are all attaching properly both at BP compile and at runtime in the game, I assume this to be a race condition inside unreal rather than the implementation itself as the creation of the subobject and it’s attachment is mirrored by other classes in my code base and those have no problems working correctly with sockets

I assume there is some lower level difference between the actor and scene components though, given that scene component is a child class of actor component, I would have thought this conversion would be a simple process. Clearly I am missing or misunderstanding something but I am unsure what that something is and any information, similar questions or tutorials would be greatly appreciated.

I am also open to hearing any better/simpler solutions for this implementation

Thanks