# How to set max velocity.y of the player?

Attention Topic was automatically imported from the old Question2Answer platform.

I have some important elements in my game which could be used to gain massive velocity and essentialy break the game. So I want to set the max number for velocity.y. Also the game is in 3D so can’t use clamp.

I don’t understand why 3d stops you from using clamp

``````velocity.y=clamp(velocity.y, 0, max_speed)
``````

Or better

``````velocity.y=min(max_speed, velocity.y)
``````

Andrea | 2021-08-25 21:26

Clamp can only be used in 2D.

99week | 2021-08-30 16:56

clamp is a core script function, it takes a float value and return the value if inside the range, or min/max if outside the range.
3D, 2D, control nodes, resources, makes no difference

@GDScript — Godot Engine (stable) documentation in English

it’s like saying that `sin(x)` only works in 2D

you are probably confusing with the method Vector2(x,y).clamped(10), which returns a vector2 whose length is clamped.
in that case, you can easily workaround with the below formula (which is true both in 2D and 3D)

``````vec.clamped(value)=vec.normalized*min(vec.length(), value)
``````

Andrea | 2021-08-30 17:27

``````if velocity.y > 500: