Godot Version
4.2.2
Question
Hey! So I have a really odd bug which I don’t fully understand, I get this error message whenever a client tries to join the host after the host stops hosting and then re-hosts, this does not happen if the client leaves first
Error message:
Cannot call method ‘get_unique_id’ on null value
the error’s location:
var id := multiplayer.get_unique_id()
the scripts for leaving the game:
func _on_quit_pressed():
var host = multiplayer.get_unique_id()
var Mission = Global.current_mission
if Global.is_multiplayer == true:
var id := multiplayer.get_unique_id()
player.queue_free()
if multiplayer.is_server():
disconnect_all(host)
multiplayer.multiplayer_peer.disconnect_peer(host)
else:
disconnect_player.rpc(id)
get_tree().change_scene_to_file("res://Scenes/Menu.tscn")
get_tree().get_root().get_node(Mission).queue_free()
elif Global.is_multiplayer == false:
get_tree().change_scene_to_file("res://Scenes/Menu.tscn")
@rpc("call_local", "any_peer")
func disconnect_player(peer_id : int):
for i in GlobalMissionManager.Players:
if GlobalMissionManager.Players[i].id == peer_id:
GlobalMissionManager.Players.erase(peer_id)
await get_tree().create_timer(0.1).timeout
multiplayer.multiplayer_peer.disconnect_peer(peer_id)
@rpc("call_local", "any_peer")
func disconnect_all(host):
for i in GlobalMissionManager.Players:
if i != host:
multiplayer.multiplayer_peer.disconnect_peer(i)
GlobalMissionManager.Players.erase(i)
it’s likely something wrong in the disconnect_all function but I honestly cannot tell