Am i just crazy or is something wrong with the physics for vehicleBody3D, Ive been tinkering with settings all week and cannot get it working quite right. Could someone point me in the right direction ?

extends VehicleBody3D

var max_rpm = 50
var max_torque = 20
var steer_angle = deg_to_rad(30)
var steer_speed = 3


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _physics_process(delta):
	#steering = lerp(steering, Input.get_axis("right", "left") * .6, 5 * delta)
	var steer_input = -Input.get_action_strength("right")+Input.get_action_strength("left")
	steering = lerp_angle(steering,steer_input*steer_angle,steer_speed*delta)
	var acceleration = Input.get_axis("back", "forward") * 10
	var rpm = $back_left_wheel.get_rpm()
	$back_left_wheel.engine_force = acceleration * max_torque * (1 - rpm / max_rpm)
	rpm = $back_right_wheel.get_rpm()
	$back_right_wheel.engine_force = acceleration * max_torque * (1 - rpm / max_rpm)
extends VehicleBody3D
@export var max_rpm = 500.0
@export var max_torque = 100.0
@export var brake_power = 3.0
@export var FLwheel = Node
@export var FRwheel = Node
@export var BLwheel = Node
@export var BRwheel = Node
var wantedsteering = 0.0
var accel = 0.0
var wantedbrake = 0.0
var braking = false
func _physics_process(delta):
	if Input.is_action_pressed("jump"):
		braking = true
		wantedbrake = brake_power
		
	else :
		braking = false
		wantedbrake = 0.0
	if !braking:
		if Input.is_action_pressed("forward") :
			accel = lerpf(accel,1, 5 * delta)
		elif Input.is_action_pressed("backward"):
			accel = lerpf(accel,-.5, 5 * delta)
		else:
			accel = 0.0
	else: 
		accel = 0.0
	
	if Input.is_action_pressed("right"):
		wantedsteering = lerpf(wantedsteering,-1, 2 * delta)
	elif Input.is_action_pressed("left"):
		wantedsteering = lerpf(wantedsteering,1, 2 * delta)
	else:
		wantedsteering = lerpf(wantedsteering,0.0, 2 * delta)
	
	
	
	
	FLwheel.steering = wantedsteering 
	FRwheel.steering = wantedsteering 
	BLwheel.steering = -wantedsteering/4
	BRwheel.steering = -wantedsteering/4
	
	
	
	var rpmFL = FLwheel.get_rpm()
	FLwheel.engine_force = accel * max_torque * (1.0 - abs(rpmFL) / max_rpm)
	var rpmFR = FRwheel.get_rpm()
	FRwheel.engine_force = accel * max_torque * (1.0 - abs(rpmFR) / max_rpm)
	var rpmBL = BLwheel.get_rpm()
	BLwheel.engine_force = accel * max_torque * (1.0 - abs(rpmBL) / max_rpm)
	var rpmBR = BRwheel.get_rpm()
	BRwheel.engine_force = accel * max_torque * (1.0 - abs(rpmBR) / max_rpm)
	
	
	FLwheel.brake = wantedbrake
	FRwheel.brake = wantedbrake
	BLwheel.brake = wantedbrake / 4
	BRwheel.brake = wantedbrake / 4

but it is for 4 wheel drive

I used the Vehicle Node aswell, and after trying to solve the issue for a long time I figured the problem was that My mesh instance wasn't positioned at (0,0,0). That solved the issue for me. Also check if your wheel's radius matches your wheel's mesh's Radius.

    From first glance it looks like it bounces off, which can be due to numerous variables, generally in VehicleWheel

    It looks like your code is from the same place I got it. In that video he shows how to set up the wheel properties

    Bilal Thanks, it had something to do with the mesh still really jank but ive gotten it to work better