I'm having trouble setting up a local multiplayer game.

Godot Version

version 4.4.1

The problem is that when I create a server, the host window switches to the game screen, but nothing happens for the player joining the server—there is no transition to the actual gameplay. I don’t understand it.

#to join
extends Button

var peer = ENetMultiplayerPeer.new()

func _on_pressed() -> void:
	var port_text = $"../porttype".text.strip_edges()
	if not port_text.is_valid_int():
		return
		
	var error = peer.create_client("localhost", port_text.to_int())
	if error != OK:
		return
		
	multiplayer.multiplayer_peer = peer
	get_tree().change_scene_to_file("res://scenes/game.tscn")
# host server
extends Button

var peer = ENetMultiplayerPeer.new()

func _on_pressed() -> void:
	var port_text = $"../porttype".text.strip_edges()
	if not port_text.is_valid_int():
		return
		
	var error = peer.create_server(port_text.to_int(), 2)
	if error != OK:
		return
		
	multiplayer.multiplayer_peer = peer
	get_tree().change_scene_to_file("res://scenes/game.tscn")

Maybe you got an error at either of these two checks; your if ...: return ignores errors instead of handling them, maybe you should use an assert instead or at least print out the error code you receive.

var port_text = $"../porttype".text.strip_edges()
assert(port_text.is_valid_int(), "Invalid address")

var error = peer.create_server(port_text.to_int(), 2)
assert(error == OK, "Failed to create server %s" % error_string(error))

thank you