Area3D stopped working?

Godot Version

Godot 4.3

Question

Hello, I have a problem where my car never wants to interact with neither areas nor bodies, can someone help?

extends Node3D
class_name Player
@onready var Ball = $Ball;
@onready var Car = $Car;
#@onready var rightWheel = $"Car/Model/wheel-front-right";
#@onready var leftWheel = $"Car/Model/wheel-front-left";
@onready var carBody =  $"Car/Model/body";

var acceleration = 120.0;
var steering = 12.0;
var turn_speed = 10;
var body_tilt = 1.0;
 
var speed_input = 0;
var rotate_input = 0;

var Drifting = false
var driftDir = 0
var minimumDrift = false
var Boost = 1
var driftBoost = 3.5

@onready var boostTimer = $BoostTimer;
@onready var driftTimer = $DriftTimer;
@onready var Anim = $AnimationPlayer;

var can_stop = true

func _physics_process(delta):
	Car.transform.origin = Ball.transform.origin;
	Ball.apply_central_force(-Car.global_transform.basis.z * speed_input * Boost);

func _process(delta):
	if can_stop:
		speed_input = (Input.get_action_strength("accelerate") - Input.get_action_strength("brake")) * acceleration
	else:
		speed_input = acceleration
	rotate_input = deg_to_rad(steering) * (Input.get_action_strength("left") - Input.get_action_strength("right"))
	var speed_m_s = Ball.linear_velocity.length()
	
	var speed_km_h = speed_m_s * 3.6
	#print("Speed: ", speed_km_h, " km/h")
	Global.km_h = speed_km_h;
	
	
	if Input.is_action_just_pressed("drift") and not Drifting == true and speed_input > 0:
		StartDrift();
	
	if Drifting:
		var DriftAmount = 0;
		DriftAmount += Input.get_action_strength("left") - Input.get_action_strength("right")
		DriftAmount *= deg_to_rad(steering*.55)
		rotate_input = driftDir + DriftAmount
	
	if Drifting and (Input.is_action_just_released("drift")):
		StopDrift()
	
	if Ball.linear_velocity.length() > 0:
		RotateCar(delta);

func RotateCar(delta):
	var new_basis = Car.global_transform.basis.rotated(Car.global_transform.basis.y, -rotate_input)
	Car.global_transform.basis = Car.global_transform.basis.slerp(new_basis, turn_speed * delta).orthonormalized()
	Car.global_transform = Car.global_transform.orthonormalized()
	var t = 0;
	if Drifting:
		t = rotate_input * (body_tilt * 1.5)
	if not Drifting:
		t = rotate_input * body_tilt
	carBody.rotation.z = lerp_angle(carBody.rotation.z, t, delta * 10)

func StartDrift():
	Drifting = true;
	Anim.play("hop");
	minimumDrift = false;
	driftDir = rotate_input;
	driftTimer.start();

func StopDrift():
	if minimumDrift:
		Boost = driftBoost;
		boostTimer.start();
		can_stop = false
		Anim.play("zoomout");
	Drifting = false;
	minimumDrift = false
	
func BoostFunc(speed: int):
	Boost = speed;
	print("Ohio")
	boostTimer.start();
	can_stop = false
	Anim.play("zoomout");

func _on_drift_timer_timeout() -> void:
	if Drifting:
		minimumDrift = true

func _on_boost_timer_timeout() -> void:
	Boost = 1.0
	Anim.play("zoomin");
	can_stop = true

**func _on_area_3d_area_entered(area: Area3D) -> void:**
**	BoostFunc(4);**



Check that your signals are properly connected.

Your Player’s Area3D never moves, the ball moves independently because it’s a RigidBody, then the script is copying the Ball position onto the Car. The Area3D is never moved.

thanks!