Is there a way to set or entirely cancel the velocity of a character controller?

I’m using the unity standard assets first person controller, and I’d like a void that removes all velocity from it. CharacterController.velocity is read only, and CharacterController.Move affects position, not velocity.

The character controller itself doesn’t have any velocity. That’s the main point of the character controller. It provides manual control over it’s movement. If you don’t call any Move or SimpleMove on that controller it would be still as a rock. It can’t receive any external forces (since it doesn’t have any velocity)

A barely use the stardard assets. However as far as i remember the actual control of the charactercontroller is done by a script called “CharacterMotor”. It has a sub class which actually introduces a velocity variable. It depends on the version of that script but usually you can set the velocity to 0 like this:

GetComponent<CharacterMotor>().movement.velocity = Vector3.zero;

Though keep in mind that the CharacterMotor script will apply an acceleration based on the input which is usually provided though another script called “FPSInputController”.