Custom CharacterMovementComponent and Delegate issue

I would like some info that might lead me to the best solution for my issue.


AVictoryPlayerCharacterBase::AVictoryPlayerCharacterBase(const FObjectInitializer& ObjectInitializer)
	: Super(ObjectInitializer.SetDefaultSubobjectClass<UVictoryCharMoveComp>(ACharacter::CharacterMovementComponentName))
{


I first used this approach to extend CharacterMovementComponent with further functionality on a child class of ACharacter. This worked fine for C++ but seems to be a bit lacking when interfacing with Blueprints. When adding Blueprintassignable delegates to my “AdvancedCharacterMovement” component, they do not show up in editor and are not readily apparent for use in Blueprints. Instead of being able to drag a red event node “OnStaminaDepleted” into the event graph, I have to bind Custom events to the delegate instead and I need a reference to “AdvancedCharacterMovement” to do this. There is no “OnStaminaDepleted” event node available because “AdvancedCharacterMovement” seems to be seen as just “CharacterMovementComponent” anywhere outside of the details panel. The Blueprintassignable delegates are not available in the Blueprint editor for my Character.

My second approach to this issue is to essentially copy paste re-create the ACharacter class, utilizing UAdvancedCharacterMovement instead. This resulted in my delegates showing up as expected in the Character BP editor. However, in order to get this to work properly, it seems I will need to re-create all of the global USTRUCTs and Delegates that exists in ACharacter. Including Character.h to gain access to these appears to create issues with receiving player input. Attempting to utilize the global structs/delegates directly from Character.h inside my AdvancedCharacter class results in BindActions no longer processing while BindAxis called functions work fine.

The EASIEST solution is to just work around this like most others and put all of this “Movement” functionality into the child Character. This clutters the Character though in my opinion, but is indeed easier to develop.

Any input on this?