Blueprint pawn class contains different components to c++ class. Why?

Hi,

I’ve created a Blueprint class, derived from Pawn, that has some functionality but now I’d like to convert that to a C++ class but I’m running into a few things that have me scratching my head.

When I create an instance of my Blueprint class, it initializes with a Scene Component (“DefaultSceneRoot”), and no other components (at least none that I can see through the Component list in the Blueprint editor).

When I create a class in C++, also derived from Pawn, it initializes without a Scene Component, but with an Input Component (“PawnInputComponent”), as visible via the Component list in the details panel.

Could anyone help me understand this difference in behaviour between blueprints and c++ when deriving from the same parent class? For context, the blueprint version of my pawn uses MotionControllerComponents for player input, so I’m a bit fuzzy as to the role of the PawnInputComponent as this doesn’t seem to be required in the blueprint version (or is hidden).

Thanks!