extends Node var peer: ENetMultiplayerPeer func _ready() -> void: pass func start_server(address: String = "0.0.0.0", port: int = 8080) -> void: if peer: return push_warning("Server Starting... Address: ", address, " Port: ", port) peer = ENetMultiplayerPeer.new() peer.set_bind_ip(address) var state = peer.create_server(port) match state: OK: push_warning("Server Started: ", state) multiplayer.multiplayer_peer = peer multiplayer.peer_connected.connect(server_client_connected) multiplayer.peer_disconnected.connect(server_client_disconnected) get_parent()._server_host_started() ERR_ALREADY_IN_USE: peer.close() peer = null start_server(address, port) ERR_CANT_CREATE: push_warning("Couldn't create server...") func close_connection() -> void: if not peer: return push_warning("Server Closed...") multiplayer.peer_connected.disconnect(server_client_connected) multiplayer.peer_disconnected.disconnect(server_client_disconnected) peer.close() peer = null func server_client_connected(id: int) -> void: Globals.lobby_data.server_client_connected(id) func server_client_disconnected(id: int) -> void: Globals.lobby_data.server_client_disconnected(id)