From cc4c5937451b4b6d5f0f3ae4875b4025c32dde71 Mon Sep 17 00:00:00 2001 From: Simon Ward Date: Tue, 27 Jan 2026 20:16:53 +1300 Subject: [PATCH] multiplayer: added option for upnp --- main.tscn | 9 +++++++-- server.gd | 13 +++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/main.tscn b/main.tscn index 80bec17..8500076 100644 --- a/main.tscn +++ b/main.tscn @@ -113,7 +113,12 @@ text = "Menu " horizontal_alignment = 1 -[node name="ServerButton2" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"] +[node name="DisableUPNPButton" type="CheckButton" parent="UI/Menu/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Disable UPNP +" + +[node name="ServerButton" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"] layout_mode = 2 text = "Host " @@ -131,5 +136,5 @@ text = "Enter Address" _spawnable_scenes = PackedStringArray("uid://cfceg80unq0pe") spawn_path = NodePath("..") -[connection signal="pressed" from="UI/Menu/MarginContainer/VBoxContainer/ServerButton2" to="." method="_on_server_button_pressed"] +[connection signal="pressed" from="UI/Menu/MarginContainer/VBoxContainer/ServerButton" to="." method="_on_server_button_pressed"] [connection signal="pressed" from="UI/Menu/MarginContainer/VBoxContainer/ClientButton" to="." method="_on_client_button_pressed"] diff --git a/server.gd b/server.gd index 14cfe2e..4dfcefb 100644 --- a/server.gd +++ b/server.gd @@ -2,6 +2,7 @@ extends Node3D @onready var menu = $UI/Menu @onready var address_entry = $UI/Menu/MarginContainer/VBoxContainer/LineEdit +@onready var disable_upnp = $UI/Menu/MarginContainer/VBoxContainer/DisableUPNPButton const port = 9999 const player_scene = preload("res://player/player.tscn") @@ -12,15 +13,19 @@ func _on_server_button_pressed() -> void: peer.create_server(port) multiplayer.multiplayer_peer = peer multiplayer.peer_connected.connect(add_player) - multiplayer.peer_disconnected.connect(remove_player) + multiplayer.peer_disconnected.connect(remove_player) add_player(multiplayer.get_unique_id()) - - upnp_setup() + + if not disable_upnp.button_pressed: + upnp_setup() func _on_client_button_pressed() -> void: + var address = "localhost" + if not disable_upnp.button_pressed: + address = address_entry.text menu.hide() - peer.create_client(address_entry.text, port) + peer.create_client(address.text, port) multiplayer.multiplayer_peer = peer func add_player(peer_id):