Can't kill the player

Godot Version

Godot 4.2.2


Hello. I am trying to make a game in 2D where the player dies when it touches a spesific object. The problem is that i can get it working on one level, but if i try it on another level there is a error that pops up.


extends AnimatableBody2D

@onready var player = $"../player"

# Called when the node enters the scene tree for the first time.
func _ready():
	pass # Replace with function body.

# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
	rotation += 25

func _on_saw_death_part_body_entered(body):
	if ( == "player"):

This is the error that pops up:

E 0:00:16:0695 @ _ready(): Node not found: "../player" (relative to "/root/Node2D/enemies/AnimatableBody2D5").
  <C++ Error>    Method/function failed. Returning: nullptr
  <C++ Source>   scene/main/node.cpp:1651 @ get_node()
  <Stack Trace> @ _ready()

Probably because your tree ordering doesn’t match with the path you’re using. But why you’re using this @onready var player = $"../player"? Your _on_saw_death_part_body_entered(body) already give you the node that touches the area, you could just call body.DIE()

1 Like