Godot Version
4.7.2
Question
I got one level - within there is two crates, one lever.
Lever acts as emitter to send signal to crate to remove itself on pull.
Level Scene_Tree
Signal from Lever in connected to Exploding Crate but it removes only one of the Crates.
relevant logic from lever code
func _input(event: InputEvent) -> void:
if Input.is_action_just_pressed("player_1_interact") and player_1_is_in_range:
if toggled:
animation_player.play("toggle-off")
toggled = false
else:
animation_player.play("toggle-on")
toggled = true
emit_signal('lever_pulled')
print("signal emitted")
This emits multiple times, so it’s working.
Crate got this small code, and this is where it only receive signal once.
extends Node3D
var crate := self
func _on_lever_lever_pulled() -> void:
print('signal came')
crate.queue_free()



