What does this _notification() error mean?

Godot Version

4.6

Question

What does this error mean?

E 0:00:12:555   player.gd:22 @ _notification(): Condition "!is_inside_tree()" is true. Returning: false
  <C++ Source>  scene/main/node.cpp:789 @ is_multiplayer_authority()
  <Stack Trace> player.gd:22 @ _notification()
                world.gd:36 @ add_player()

Code error opens on (In player script):

func _notification(what: int) -> void:
	if is_multiplayer_authority():
		if what == NOTIFICATION_WM_CLOSE_REQUEST:
			$"../".exit_game(name.to_int())

Code (In world script):


@onready var multiplayer_ui: Control = $UI/Multiplayer
const PLAYER = preload("uid://bq2qlrnwv6hm1")
var peer = NodeTunnelPeer.new()
var players: Array[Player] = []

func _ready():
	$UI.show()
	multiplayer.multiplayer_peer = peer
	peer.connect_to_relay("relay.nodetunnel.io", 9998)
	await peer.relay_connected
	%OnlineID.text = peer.online_id
	$MultiplayerSpawner.spawn_function = add_player

#Joining, hosting, and adding players
func _on_host_pressed():
	peer.host()
	await peer.hosting
	DisplayServer.clipboard_set(peer.online_id)
	
	multiplayer.peer_connected.connect(
		func(pid):
			print("Peer " + str(pid) + " joined")
			#add_player(pid)
			$MultiplayerSpawner.spawn(pid)
	)
	$MultiplayerSpawner.spawn(multiplayer.get_unique_id())
	#add_player(multiplayer.get_unique_id())
	multiplayer_ui.hide()
func _on_join_pressed():
	peer.join(%HostOnlineID.text)
	await peer.joined
	multiplayer_ui.hide()
func add_player(pid):
	var player = PLAYER.instantiate()
	player.name = str(pid)
	player.global_position = $Markers.get_child(players.size()).global_position
	players.append(player)
	#add_child(player)
	return player

#Leaving and deleting players
func exit_game(pid):
	multiplayer.peer_disconnected.connect(del_player)
	del_player(pid)
func del_player(pid):
	rpc("_del_player", pid)
@rpc("any_peer","call_local")
func _del_player(pid):
	get_node(str(pid)).queue_free()

It means is_multiplayer_authority is being called from someplace that hasn't been added to the scene tree yet via add_child().

1 Like