From 841ce19740bafcb98c1939aafd4bf34f394dd5f8 Mon Sep 17 00:00:00 2001 From: Shawn Date: Thu, 2 Jul 2026 22:00:22 -0400 Subject: [PATCH] Fix Windows export: include examples/shared/ dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The export_presets.cfg excluded examples/shared/** from both Windows Desktop and Linux Server presets. The multiplayer-fps.tscn main scene depends on files in this directory (network-popup.tscn, async.gd, simple-time-display.gd) — without them the exported binary crashes on startup with 'Can't load dependency' errors. - Remove examples/shared/** from Windows Desktop exclude_filter - Remove examples/shared/** from Linux Server exclude_filter --- export_presets.cfg | 4 ++-- scripts/game_events_stub.gd.uid | 1 + scripts/headless_server.gd.uid | 1 + scripts/netfox_headless_bootstrap.gd.uid | 1 + scripts/rcon/rcon_command_handler.gd.uid | 1 + scripts/rcon/rcon_server.gd.uid | 1 + tactical-shooter.service | 17 +++++++++++++++++ 7 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 scripts/game_events_stub.gd.uid create mode 100644 scripts/headless_server.gd.uid create mode 100644 scripts/netfox_headless_bootstrap.gd.uid create mode 100644 scripts/rcon/rcon_command_handler.gd.uid create mode 100644 scripts/rcon/rcon_server.gd.uid create mode 100644 tactical-shooter.service diff --git a/export_presets.cfg b/export_presets.cfg index 1b0bb13..39d4133 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -7,7 +7,7 @@ dedicated_server=false custom_features="" export_filter="all_resources" include_filter="" -exclude_filter="examples/forest-brawl/**, examples/input-gathering/**, examples/input-prediction/**, examples/multiplayer-netfox/**, examples/multiplayer-simple/**, examples/multiplayer-state-machine/**, examples/property-configuration/**, examples/rollback-debugger/**, examples/rollback-fps/**, examples/rollback-npc/**, examples/shared/**, examples/single-player/**, examples/snippets/**, examples/state-synchronizer-npc/**, examples/visibility-filtering/**, addons/vest/**, docs/**, test/**, sh/**, script_templates/**, *.off, .claude/**, CLAUDE.md" +exclude_filter="examples/forest-brawl/**, examples/input-gathering/**, examples/input-prediction/**, examples/multiplayer-netfox/**, examples/multiplayer-simple/**, examples/multiplayer-state-machine/**, examples/property-configuration/**, examples/rollback-debugger/**, examples/rollback-fps/**, examples/rollback-npc/**, examples/single-player/**, examples/snippets/**, examples/state-synchronizer-npc/**, examples/visibility-filtering/**, addons/vest/**, docs/**, test/**, sh/**, script_templates/**, *.off, .claude/**, CLAUDE.md" export_path="build/tactical-shooter-windows-x86_64/tactical-shooter.exe" patches=PackedStringArray() patch_delta_encoding=false @@ -58,7 +58,7 @@ dedicated_server=true custom_features="" export_filter="all_resources" include_filter="" -exclude_filter="examples/forest-brawl/**, examples/input-gathering/**, examples/input-prediction/**, examples/multiplayer-netfox/**, examples/multiplayer-simple/**, examples/multiplayer-state-machine/**, examples/property-configuration/**, examples/rollback-debugger/**, examples/rollback-fps/**, examples/rollback-npc/**, examples/shared/**, examples/single-player/**, examples/snippets/**, examples/state-synchronizer-npc/**, examples/visibility-filtering/**, addons/vest/**, docs/**, test/**, sh/**, script_templates/**, *.off, .claude/**, CLAUDE.md, config/**" +exclude_filter="examples/forest-brawl/**, examples/input-gathering/**, examples/input-prediction/**, examples/multiplayer-netfox/**, examples/multiplayer-simple/**, examples/multiplayer-state-machine/**, examples/property-configuration/**, examples/rollback-debugger/**, examples/rollback-fps/**, examples/rollback-npc/**, examples/single-player/**, examples/snippets/**, examples/state-synchronizer-npc/**, examples/visibility-filtering/**, addons/vest/**, docs/**, test/**, sh/**, script_templates/**, *.off, .claude/**, CLAUDE.md, config/**" export_path="build/tactical-shooter-server.x86_64" patches=PackedStringArray() patch_delta_encoding=false diff --git a/scripts/game_events_stub.gd.uid b/scripts/game_events_stub.gd.uid new file mode 100644 index 0000000..e6c00dc --- /dev/null +++ b/scripts/game_events_stub.gd.uid @@ -0,0 +1 @@ +uid://dmew3cpr71xc1 diff --git a/scripts/headless_server.gd.uid b/scripts/headless_server.gd.uid new file mode 100644 index 0000000..86aafe0 --- /dev/null +++ b/scripts/headless_server.gd.uid @@ -0,0 +1 @@ +uid://dxhkenw2ov65t diff --git a/scripts/netfox_headless_bootstrap.gd.uid b/scripts/netfox_headless_bootstrap.gd.uid new file mode 100644 index 0000000..51db491 --- /dev/null +++ b/scripts/netfox_headless_bootstrap.gd.uid @@ -0,0 +1 @@ +uid://b2ttxyhjv7ggd diff --git a/scripts/rcon/rcon_command_handler.gd.uid b/scripts/rcon/rcon_command_handler.gd.uid new file mode 100644 index 0000000..0b5d3c5 --- /dev/null +++ b/scripts/rcon/rcon_command_handler.gd.uid @@ -0,0 +1 @@ +uid://c0st7f6n73xu7 diff --git a/scripts/rcon/rcon_server.gd.uid b/scripts/rcon/rcon_server.gd.uid new file mode 100644 index 0000000..1ea1094 --- /dev/null +++ b/scripts/rcon/rcon_server.gd.uid @@ -0,0 +1 @@ +uid://chlu6oku4nsxk diff --git a/tactical-shooter.service b/tactical-shooter.service new file mode 100644 index 0000000..6d9e8fd --- /dev/null +++ b/tactical-shooter.service @@ -0,0 +1,17 @@ +[Unit] +Description=Tactical Shooter — dedicated game server +After=network.target + +[Service] +Type=simple +WorkingDirectory=/home/oplabs/tactical-shooter +ExecStart=/home/oplabs/.local/bin/godot --headless --scene res://scenes/headless_server.tscn -- --port 34197 --rcon-password changeme +Restart=on-failure +RestartSec=5 +StandardOutput=journal +StandardError=journal +Environment=SERVER_PORT=34197 +Environment=RCON_PORT=28960 + +[Install] +WantedBy=multi-user.target