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()