class_name ServerNetworking 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) 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: 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: assert(false, "This method needs to be overridden...") func server_client_disconnected(_id: int) -> void: assert(false, "This method needs to be overridden...")