Correct Way To Override CharacterMovementComponent?

I need my character to have a dynamic value for UCharacterMovementComponent::JumpZVelocity, that changes in different contexts.

The issue that I’m running into is that the ACharacter::CharacterMovement is set to private. Were that not the case, I could modify ACharacter::CharacterMovement::JumpZVelocity directly. I could implement my own custom movement controller, putting the new logic there, but I wouldn’t be able to apply it to my character because, again, ACharacter::CharacterMovement is private.

I don’t want to just modify ACharacter::CharacterMovement to change it from private to protected, simply to suit my needs; I’m sure that the engine has it set to private for a reason. What is the accepted way to make this change? I’m not looking to work with blueprints. Thanks!

this is also my problem. althou somehow in 4.19 it can be override via blueprint, but i still can’t override it in C++