My character should go as its rotated

extends KinematicBody

export var speed = 14
export var sensitivity = 0.01
export var fall_acceleration = 75

var velocity = Vector3.ZERO

func _physics_process(delta):
	var direction = Vector3.ZERO

	if Input.is_action_pressed("move_right"):
		direction.x += 1
	if Input.is_action_pressed("move_left"):
		direction.x -= 1
	if Input.is_action_pressed("move_back"):
		direction.z += 1
	if Input.is_action_pressed("move_forward"):
		direction.z -= 1
	
	if direction != Vector3.ZERO:
		direction = direction.normalized()

	velocity.x = direction.x * speed
	velocity.z = direction.z * speed
	velocity.y -= fall_acceleration * delta
	velocity = move_and_slide(velocity, Vector3.UP)

func _unhandled_input(event):
	if event is InputEventMouseMotion:
		rotate_object_local(Vector3.UP, event.relative.x * -sensitivity)

You will want to get the directions the object is pointing to from the global_transform.basis. For example, global_transform.basis.x.normalized is the right of the object, while global_transform.basis.z.normalized is the front (assuming your object faces towards the blue, z-axis, arrow).

I can try to write some quick code to show what I mean later if it would help.

That would be the way to do, is what twistedtwigleg said. But something I used was placing an empty node on the forward placement, and then used it for telling me the forward vector.

So with a node placed on local vector (0,0,1) , then getting a reference to the node, using get_node("forwardNode")
Then using the algo,
forward=forwardNode.global_transform.position-self.global_transform.position
gives me the forward direction to use.

    Here in the editor, you would add the empty node on your forward by spacing of 1. The node would be a child of the node your trying to get the forward direction from.