https://imgur.com/a/68E79Jx (this is what i want)

https://imgur.com/a/uJttkIA (this is how it happens)

``````extends KinematicBody
``````

var speed = 20.0

var velocity = Vector3(0,0,0)
const SPEED = 5
const ROTATION = 3
const GRAVITY = 10
const JUMP = 500
var roketHiziUP = 10

pass

func physicsprocess(delta):

``````if Input.is_action_pressed("ui_up"):
velocity.y += GRAVITY * delta
velocity = move_and_slide(velocity, Vector3.UP)
elif Input.is_action_pressed("ui_right"):

elif Input.is_action_pressed("ui_left"):

elif Input.is_action_pressed("ui_down"):
pass

else:
move_and_slide(Vector3(0,-roketHiziUP,0))
``````
in Engine

I'm not very good with 3D but, but I think you want to have velocity going forward which is `Vector3(0,0,-1)` or `Vector3.FORWARD`. The way your code is, right now, it looks like you're only using the y-axis (up/down) for both gravity and direction of movement. So, redefining your velocity variable at the beginning and maybe the moveandslide vector at the end should make it better.

The gravity is pushing down and the -roketHiziUP pushing up... surprised it moves at all... So, maybe using the Vector3 constants would make it more clear:

https://docs.godotengine.org/en/3.5/classes/class_vector3.html?highlight=vector3%20forward#constants

● FORWARD = Vector3( 0, 0, -1 )
Forward unit vector. Represents the local direction of forward, and the global direction of north.