Why does Character Movement override Add Force?

Thank you for the help. I had been wondering if I was barking up the wrong tree with the AddForce thing, But when I discovered that it worked on non-physics enabled Characters (through the CharacterMovementComponent) I thought that maybe it would work.

My problem is that the feature that I am adding will allow the player to remain in it (and thereby affected by it) indefinitely. So I am updating every tick. Now maybe I am over-thinking this, but if I add the Velocity every tick, that will accumulate and get vary high very fast. (I have tried this and was almost instantly launched into hyperspace). So I would have to meter the Velocity in order to prevent it from getting out of control.

I could do this by Capping the Max Total Velocity Magnitude at MaxSwimSpeed + CurrentFlowSpeed. But that would Only cap it in one direction (I tried this one too and immediately lost almost all control of the character in the Current). I am looking for a way to allow the player to swim against the current, even if doing so only slows forward movement a little.

So, the only other solution that I can think of is to add it to the PendingInputVector just before the total movement is calculated. Which means that I would have to override the Movement Component - fair enough. But, since the CharacterMovementComponent member will soon become Private, I can’t replace it in a child class (can I?). And I don’t want to run the risk of one movement class mucking up the calculations of another one within the same character class. So does that mean that I have to make my player class a sibling class in order to get the effect that I am looking for? Surely that is not the case.

As I already said, I am probably over-thinking this. So, please just tell me how much of a dimwit I am and that I just need to do Foo to the Bar. Because otherwise I will probably tear out all of my hair trying to figure this out!

Thanks