Currently, as of 2/7/24, if you set a ControllerManager’s ActiveController on the fly, the controller manager resets its velocity before using the new controller.
To reproduce:
Open the place file attached to this bug report
Run a playsolo session
Run up to full speed, then jump. Observe that your horizontal velocity is reset to 0
Setting the velocity directly may lead to unrealistic motion. Using a VectorForce constraint is preferred, or use BasePart:ApplyImpulse() if you want instantaneous change in velocity.