Oops, my bad, I forgot that the boomerang wasn’t being added as a child of the player. Instead of getting the player in the boomerang node, you should set the player_p
variable in the player script after you set the position:
func shoot():
var bomerang = BOMERANG_scene.instantiate()
bomerang.position = position
bomerang.player_p = self
get_parent().add_child(bomerang)
print("boom")
bomerang.bomerang_direction = (position -get_global_mouse_position()).normalized()
Then in the boomerang script:
var player_p : Node2D