# How do I change the LocalPlayers Y Velocity?

So lets say the Player Character is falling and has a Y velocity of 95, How can I change that to something like 50 on a LocalScript?

You could use `math.min` to cap the velocity for the Y axis - `math.min` is a part of the math library that returns the minimum number. For example

``````local VelocityX, VelocityY, VelocityZ = Velocity.X, Velocity.Y, Velocity.Z;
VelocityY = math.min(VelocityY, 50); -- Returns "VelocityY" if it's <= 50, otherwise return 50
``````

I hope this helped.
EDIT
You can overwrite the Velocity of the playerâ€™s `HumanoidRootPart` to a new Vector3 with the variables.

``````RootPart.Velocity = Vector3.new(VelocityX, VelocityY, VelocityZ);
``````
3 Likes

I already know that but I want to CHANGE the players Y velocity, not detect it.

it should be something like this:

``Velocity = Vector3.new(0,5,0)--middle number is always Y.``

Then changes the humanoidRootParts velocity

I decided to make another reply to expand upon a bit more. When the player falls, itâ€™s velocity on the y axis will be a negative number - since thatâ€™s the case, weâ€™ll actually need to use `math.max` to be able to cap it. `math.max` is also a part of the math library the returns the maximum number.

``````local VelocityY = math.max(RootPart.Velocity.Y, -50);
``````

Since we now have a variable that has the velocity capped, we can overwrite the HumanoidRootPartâ€™s velocity to a new vector3 with the variables.

``````-- Assuming VelocityX and VelocityZ were declared previously
RootPart.Velocity = Vector3.new(VelocityX, VelocityY, VelocityZ);
``````

I hope this helped.

2 Likes