From aae722c340af8ba363a6fa1345b73854ca398549 Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Wed, 7 Jan 2026 19:07:57 +0100 Subject: [PATCH 01/16] Add StarRupture link to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 14a98a8c..dbd8c1cd 100644 --- a/README.md +++ b/README.md @@ -264,6 +264,8 @@ Below is a categorized list of games with links to their respective server confi #### [Soldat 2](./soldat_2) +#### [StarRupture](./starrupture) + #### [Sunkenland](./sunkenland) ### [Voyager of Nera](./voyagers_of_nera) From 597cac769bb5d6f159b553e38c0c3c363741568c Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Wed, 7 Jan 2026 19:09:58 +0100 Subject: [PATCH 02/16] Created empty readme.md --- starrupture/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 starrupture/README.md diff --git a/starrupture/README.md b/starrupture/README.md new file mode 100644 index 00000000..e69de29b From 021a2950fffc1acf570774c5b97d018f0eec514a Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Wed, 7 Jan 2026 19:13:59 +0100 Subject: [PATCH 03/16] Added Egg for StarRupture game server --- starrupture/egg-star-rupture.json | 142 ++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 starrupture/egg-star-rupture.json diff --git a/starrupture/egg-star-rupture.json b/starrupture/egg-star-rupture.json new file mode 100644 index 00000000..f4e07ca4 --- /dev/null +++ b/starrupture/egg-star-rupture.json @@ -0,0 +1,142 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2026-01-07T19:10:46+01:00", + "name": "StarRupture", + "author": "brainshead@gmail.com", + "description": "StarRupture is a first-person open world base-building game with advanced combat and tons of exploration. Play alone or in a group on this sublime and ever-changing planet, extract and manage resources, create your complex industrial system and fight off hordes of alien monsters.", + "features": [], + "docker_images": { + "Wine Latest": "ghcr.io\/ptero-eggs\/yolks:wine_latest" + }, + "file_denylist": [], + "startup": "wine StarRuptureServerEOS.exe -MULTIHOME=0.0.0.0 -Port=${SERVER_PORT} -log & tail -f \/home\/container\/StarRupture\/Saved\/Logs\/StarRupture.log | grep -v -E \"LogCore: Warning|LogUObjectBase: Error\"", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"OnUpdateSessionComplete\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n#Custom Commands\r\n\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/ptero-eggs\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "[STEAM] Steam User", + "description": "This is a required setting and cannot be set to anonymous.", + "env_variable": "STEAM_USER", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "[STEAM] Steam Password", + "description": "Steam User Password", + "env_variable": "STEAM_PASS", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "[STEAM] Game ID", + "description": "The ID corresponding to the game to download and run using SRCDS", + "env_variable": "SRCDS_APPID", + "default_value": "3809400", + "user_viewable": false, + "user_editable": false, + "rules": "string", + "field_type": "text" + }, + { + "name": "[STEAM] Steam Auth", + "description": "Steam account auth code. Required if you have 2fa enabled", + "env_variable": "STEAM_AUTH", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string|max:5", + "field_type": "text" + }, + { + "name": "[STEAM] WINDOWS_INSTALL", + "description": "", + "env_variable": "WINDOWS_INSTALL", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:1", + "field_type": "text" + }, + { + "name": "[STEAM] Auto Update Server", + "description": "This is to auto-update the game server", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "[SYSTEM] Winetricks", + "description": "", + "env_variable": "WINETRICKS_RUN", + "default_value": "vcrun2022", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[SYSTEM] Wine Debug", + "description": "", + "env_variable": "WINEDEBUG", + "default_value": "err+warn", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[SYSTEM] WINEARCH", + "description": "", + "env_variable": "WINEARCH", + "default_value": "win64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[SYSTEM] WINEPREFIX", + "description": "Wine root directory for the container", + "env_variable": "WINEPREFIX", + "default_value": "\/home\/container\/.wine", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:100", + "field_type": "text" + }, + { + "name": "[SYSTEM] WINEDLLOVERRIDES", + "description": "", + "env_variable": "WINEDLLOVERRIDES", + "default_value": "mscoree,mshtml=", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + } + ] +} From aab11b9e26f82f4ca11e7d7458dacfcbd58d03d5 Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Wed, 7 Jan 2026 20:03:32 +0100 Subject: [PATCH 04/16] Create README.md for StarRupture game Added detailed README for StarRupture game including installation notes, server ports, and configuration options. --- starrupture/README.md | 105 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/starrupture/README.md b/starrupture/README.md index e69de29b..50a9d6f9 100644 --- a/starrupture/README.md +++ b/starrupture/README.md @@ -0,0 +1,105 @@ +# StarRupture + +StarRupture is a first-person open world base-building game with advanced combat and tons of exploration. Play alone or in a group on this sublime and ever-changing planet, extract and manage resources, create your complex industrial system and fight off hordes of alien monsters. + + ### Author & Contributers +| Name | Github Profile | +| ------------- |-------------| +| brainshead | https://github.com/brainshead | + +## Server Ports + +StarRupture requires up to 1 ports + +| Port | default | +|---------|---------------| +| Game | 7777 | + +This can be changed to any port. + +## Install Notes + +| Requirements | Memory| Storage | +|---------------------|-------|---------| +| Minimal | 2GB | 25 GB | +| Recommended | 4+ GB| 40GB+ | + + +## Settings +You have 3 ways to create/load worlds/saves +1. ### By using ingame Server management. + But some people have issues this way. + +2. ### Manually way (no Password protected) + Create `DSSettings.txt` in root `(/home/container/)` + Paste this inside + + ``` +{ + "SessionName": "MySaveGame", + "SaveGameInterval": "300", + "StartNewGame": "false", + "LoadSavedGame": "true", + "SaveGameName": "AutoSave0.sav" +} +``` +### Configuration Options + ### SessionName + Name of the save game session. + Can not exceed 20 characters. + + ### SaveGameInterval + Time between automatic saves (in seconds). + 300 = 5 minutes. +> [!WARNING] +> Only set this to true once when creating a new world! + ### StartNewGame + true → Forces creation of a new world. + false → Prevents new save creation. + ### LoadSavedGame +true → Loads an existing save +false → Skips loading saved data + + ### Creating a New Save (New World) + 1. Stop the server + 2. Set: + ``` + "StartNewGame": "true", + "LoadSavedGame": "false" + ``` + 4. Start the server and wait for it to finish loading + 5. Stop the server. + 6. Revert: + ``` + "StartNewGame": "false", + "LoadSavedGame": "true" + ``` + 7. Start the server and join it There is no need to use the in-game server manager tool! + ### Loading an Existing Save + 1. Stop the server. + 2. Ensure : + + ``` + "StartNewGame": "false", + "LoadSavedGame": "true", + "SaveGameName": "AutoSave0.sav" + ``` + 3. Upload your save game .sav and .met file to the server + 4. Rename these files to be AutoSave0.sav and AutoSave0.met + 5. Start the server and join it. There is no need to use the in-game server manager tool + + +3. ### Using A Join Password + If you wish to setup a Join Password you will have to do this before using DSSettings.txt. We are currently not aware of any method to configure a join password either via parameters or DSSettings.txt. + + 1. Start your server, ensuring no DSSettings.txt file exists + 2. Open the StarRupture game client + 3. Connect to your server using the in game Server Manager from the main menu + 4. The game will first ask you to configure an Admin Password, do this + 5. Click the Change Password button in the Server Manager dialog + 6. Enter the join password that players will use when connecting to your server. + 7. Click Back (or press ESC) Do not attempt to create a new game or load a game at this point + 8. Stop your server and contiune with the DSSettings.txt configuration above + + + From 5fa0b350f2ac49e02693a93f12404c55528b0928 Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Wed, 7 Jan 2026 20:15:06 +0100 Subject: [PATCH 05/16] Update README.md with formatting fixes and content --- starrupture/README.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/starrupture/README.md b/starrupture/README.md index 50a9d6f9..c740a94e 100644 --- a/starrupture/README.md +++ b/starrupture/README.md @@ -57,8 +57,8 @@ You have 3 ways to create/load worlds/saves true → Forces creation of a new world. false → Prevents new save creation. ### LoadSavedGame -true → Loads an existing save -false → Skips loading saved data + true → Loads an existing save + false → Skips loading saved data ### Creating a New Save (New World) 1. Stop the server @@ -84,12 +84,13 @@ false → Skips loading saved data "LoadSavedGame": "true", "SaveGameName": "AutoSave0.sav" ``` - 3. Upload your save game .sav and .met file to the server - 4. Rename these files to be AutoSave0.sav and AutoSave0.met - 5. Start the server and join it. There is no need to use the in-game server manager tool + 3. Upload your save game .sav and .met file to the server + Location of saves : `/home/container/StarRupture/Saved/SaveGames` + 5. Rename these files to be AutoSave0.sav and AutoSave0.met + 6. Start the server and join it. There is no need to use the in-game server manager tool -3. ### Using A Join Password + ### Using A Join Password If you wish to setup a Join Password you will have to do this before using DSSettings.txt. We are currently not aware of any method to configure a join password either via parameters or DSSettings.txt. 1. Start your server, ensuring no DSSettings.txt file exists @@ -103,3 +104,4 @@ false → Skips loading saved data + From f685cd3ea17b94cbbceba0fb722ed41b423a1a3e Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Wed, 7 Jan 2026 20:22:16 +0100 Subject: [PATCH 06/16] Revise README for StarRupture Updated README to reflect changes in server software status and added details about creating/loading worlds. --- starrupture/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/starrupture/README.md b/starrupture/README.md index c740a94e..cb97416a 100644 --- a/starrupture/README.md +++ b/starrupture/README.md @@ -2,6 +2,9 @@ StarRupture is a first-person open world base-building game with advanced combat and tons of exploration. Play alone or in a group on this sublime and ever-changing planet, extract and manage resources, create your complex industrial system and fight off hordes of alien monsters. +## Server software is still in experimental fase. +So expect some breaks in future! + ### Author & Contributers | Name | Github Profile | | ------------- |-------------| @@ -26,7 +29,7 @@ This can be changed to any port. ## Settings -You have 3 ways to create/load worlds/saves +You have 2 ways to create/load worlds/saves 1. ### By using ingame Server management. But some people have issues this way. @@ -105,3 +108,4 @@ You have 3 ways to create/load worlds/saves + From 5074604027cce44683828a907130dabd291a567b Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Wed, 7 Jan 2026 22:08:15 +0100 Subject: [PATCH 07/16] Fix startup command in egg-star-rupture.json Removed MULTIHOME --- starrupture/egg-star-rupture.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/starrupture/egg-star-rupture.json b/starrupture/egg-star-rupture.json index f4e07ca4..7f721e71 100644 --- a/starrupture/egg-star-rupture.json +++ b/starrupture/egg-star-rupture.json @@ -13,7 +13,7 @@ "Wine Latest": "ghcr.io\/ptero-eggs\/yolks:wine_latest" }, "file_denylist": [], - "startup": "wine StarRuptureServerEOS.exe -MULTIHOME=0.0.0.0 -Port=${SERVER_PORT} -log & tail -f \/home\/container\/StarRupture\/Saved\/Logs\/StarRupture.log | grep -v -E \"LogCore: Warning|LogUObjectBase: Error\"", + "startup": "wine StarRuptureServerEOS.exe -Port=${SERVER_PORT} -log & tail -f \/home\/container\/StarRupture\/Saved\/Logs\/StarRupture.log | grep -v -E \"LogCore: Warning|LogUObjectBase: Error\"", "config": { "files": "{}", "startup": "{\r\n \"done\": \"OnUpdateSessionComplete\"\r\n}", From 7e105f8bec162da418b9b2eec30a1057f87e16cd Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Thu, 8 Jan 2026 15:42:18 +0100 Subject: [PATCH 08/16] Changed Startcommand --- starrupture/egg-star-rupture.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/starrupture/egg-star-rupture.json b/starrupture/egg-star-rupture.json index 7f721e71..d1df32dc 100644 --- a/starrupture/egg-star-rupture.json +++ b/starrupture/egg-star-rupture.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2026-01-07T19:10:46+01:00", + "exported_at": "2026-01-08T15:36:50+01:00", "name": "StarRupture", "author": "brainshead@gmail.com", "description": "StarRupture is a first-person open world base-building game with advanced combat and tons of exploration. Play alone or in a group on this sublime and ever-changing planet, extract and manage resources, create your complex industrial system and fight off hordes of alien monsters.", @@ -13,7 +13,7 @@ "Wine Latest": "ghcr.io\/ptero-eggs\/yolks:wine_latest" }, "file_denylist": [], - "startup": "wine StarRuptureServerEOS.exe -Port=${SERVER_PORT} -log & tail -f \/home\/container\/StarRupture\/Saved\/Logs\/StarRupture.log | grep -v -E \"LogCore: Warning|LogUObjectBase: Error\"", + "startup": "cd \/home\/container\/StarRupture\/Binaries\/Win64; wine .\/StarRuptureServerEOS-Win64-Shipping.exe -Log -Port=${SERVER_PORT} & SR_PID=$!; tail -c0 -F \/home\/container\/StarRupture\/Saved\/Logs\/StarRupture.log --pid=$SR_PID | grep -v -E \"LogCore: Warning|LogUObjectBase: Error\"", "config": { "files": "{}", "startup": "{\r\n \"done\": \"OnUpdateSessionComplete\"\r\n}", @@ -102,7 +102,7 @@ "name": "[SYSTEM] Wine Debug", "description": "", "env_variable": "WINEDEBUG", - "default_value": "err+warn", + "default_value": "-all", "user_viewable": false, "user_editable": false, "rules": "required|string|max:20", @@ -139,4 +139,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From 8777a3c5cb5405e10f2e130513141d775c426430 Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Thu, 8 Jan 2026 16:08:10 +0100 Subject: [PATCH 09/16] Update README with new contributor and settings Added contributor SavageCore and updated server management instructions. --- starrupture/README.md | 96 +++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 49 deletions(-) diff --git a/starrupture/README.md b/starrupture/README.md index cb97416a..fd35d349 100644 --- a/starrupture/README.md +++ b/starrupture/README.md @@ -2,13 +2,14 @@ StarRupture is a first-person open world base-building game with advanced combat and tons of exploration. Play alone or in a group on this sublime and ever-changing planet, extract and manage resources, create your complex industrial system and fight off hordes of alien monsters. -## Server software is still in experimental fase. +## Server software is still in experimental fase. So expect some breaks in future! ### Author & Contributers | Name | Github Profile | | ------------- |-------------| | brainshead | https://github.com/brainshead | +| SavageCore | https://github.com/SavageCore | ## Server Ports @@ -22,21 +23,35 @@ This can be changed to any port. ## Install Notes -| Requirements | Memory| Storage | +| Requirements | Memory| Storage | |---------------------|-------|---------| | Minimal | 2GB | 25 GB | | Recommended | 4+ GB| 40GB+ | ## Settings -You have 2 ways to create/load worlds/saves -1. ### By using ingame Server management. - But some people have issues this way. - -2. ### Manually way (no Password protected) + ### Password protecting your server + > ⚠️ Anyone that knows your IP and port can join your server if no password is set! + If you wish to setup a password you will have to do this before using DSSettings.txt below. We are currently not aware of any method to configure a password either via parameters or DSSettings.txt. + + 1. Start your server, ensuring no DSSettings.txt file exists + 2. Open the StarRupture game client + 3. Connect to your server using the in game Server Manager from the main menu + 4. The game will first ask you to configure an Admin Password, do this + 5. Click the Change Password button in the Server Manager dialog + 6. Enter the join password that players will use when connecting to your server. + 7. Click Back (or press ESC) Do not attempt to create a new game or load a game at this point + 8. Stop your server and contiune with the DSSettings.txt configuration above + + ### Creating and Loading Save Games +1. ### By using in-game Server management. + On the main menu of the game, click on Manage Server and enter your ip and port to connect to your server. + From here you can create a new world or load an existing save. + +2. ### Manual way (no password protection) Create `DSSettings.txt` in root `(/home/container/)` Paste this inside - + ``` { "SessionName": "MySaveGame", @@ -46,66 +61,49 @@ You have 2 ways to create/load worlds/saves "SaveGameName": "AutoSave0.sav" } ``` -### Configuration Options - ### SessionName - Name of the save game session. +### Configuration Options + ### SessionName + Name of the save game session. Can not exceed 20 characters. ### SaveGameInterval - Time between automatic saves (in seconds). - 300 = 5 minutes. -> [!WARNING] -> Only set this to true once when creating a new world! + Time between automatic saves (in seconds). + 300 = 5 minutes. +> ⚠️ Only set this to true once when creating a new world! ### StartNewGame - true → Forces creation of a new world. - false → Prevents new save creation. + true → Forces creation of a new world. + + false → Prevents new save creation. ### LoadSavedGame - true → Loads an existing save - false → Skips loading saved data + true → Loads an existing save + + false → Skips loading saved data ### Creating a New Save (New World) - 1. Stop the server + 1. Stop the server 2. Set: ``` "StartNewGame": "true", "LoadSavedGame": "false" ``` - 4. Start the server and wait for it to finish loading - 5. Stop the server. + 4. Start the server and wait for it to finish loading + 5. Stop the server. 6. Revert: ``` "StartNewGame": "false", "LoadSavedGame": "true" ``` - 7. Start the server and join it There is no need to use the in-game server manager tool! - ### Loading an Existing Save - 1. Stop the server. + 7. Start the server and join it. + ### Loading an Existing Save + 1. Stop the server. 2. Ensure : - + ``` "StartNewGame": "false", "LoadSavedGame": "true", "SaveGameName": "AutoSave0.sav" - ``` - 3. Upload your save game .sav and .met file to the server - Location of saves : `/home/container/StarRupture/Saved/SaveGames` - 5. Rename these files to be AutoSave0.sav and AutoSave0.met - 6. Start the server and join it. There is no need to use the in-game server manager tool - - - ### Using A Join Password - If you wish to setup a Join Password you will have to do this before using DSSettings.txt. We are currently not aware of any method to configure a join password either via parameters or DSSettings.txt. - - 1. Start your server, ensuring no DSSettings.txt file exists - 2. Open the StarRupture game client - 3. Connect to your server using the in game Server Manager from the main menu - 4. The game will first ask you to configure an Admin Password, do this - 5. Click the Change Password button in the Server Manager dialog - 6. Enter the join password that players will use when connecting to your server. - 7. Click Back (or press ESC) Do not attempt to create a new game or load a game at this point - 8. Stop your server and contiune with the DSSettings.txt configuration above - - - - - + ``` + 3. Upload your save game .sav and .met file to the server + Location of saves : `/home/container/StarRupture/Saved/SaveGames` + 5. Rename these files to be AutoSave0.sav and AutoSave0.met + 6. Start the server and join it. From 1b139e739c129dcf58666ff16745f8e1ba718c21 Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Thu, 8 Jan 2026 20:23:08 +0100 Subject: [PATCH 10/16] Revise README.md for better readability Updated README.md to improve clarity and formatting. Added text Loading save when server starts. --- starrupture/README.md | 179 ++++++++++++++++++++++-------------------- 1 file changed, 96 insertions(+), 83 deletions(-) diff --git a/starrupture/README.md b/starrupture/README.md index fd35d349..d7e01707 100644 --- a/starrupture/README.md +++ b/starrupture/README.md @@ -1,58 +1,67 @@ # StarRupture -StarRupture is a first-person open world base-building game with advanced combat and tons of exploration. Play alone or in a group on this sublime and ever-changing planet, extract and manage resources, create your complex industrial system and fight off hordes of alien monsters. +StarRupture is a first-person open-world base-building game with advanced combat and tons of exploration. Play alone or in a group on this sublime and ever-changing planet, extract and manage resources, create your complex industrial system, and fight off hordes of alien monsters. -## Server software is still in experimental fase. -So expect some breaks in future! +> ⚠️ **Note:** Server software is still in an experimental phase. Expect some issues in future updates! +## Contributors - ### Author & Contributers -| Name | Github Profile | -| ------------- |-------------| -| brainshead | https://github.com/brainshead | -| SavageCore | https://github.com/SavageCore | +| Name | GitHub Profile | +|------------|-----------------------------------------| +| brainshead | https://github.com/brainshead | +| SavageCore | https://github.com/SavageCore | ## Server Ports -StarRupture requires up to 1 ports +StarRupture requires 1 port: -| Port | default | -|---------|---------------| -| Game | 7777 | +| Port | Default | +|------|---------| +| Game | 7777 | This can be changed to any port. -## Install Notes +## System Requirements -| Requirements | Memory| Storage | -|---------------------|-------|---------| -| Minimal | 2GB | 25 GB | -| Recommended | 4+ GB| 40GB+ | +| Type | Memory | Storage | +|-------------|--------|---------| +| Minimal | 2 GB | 25 GB | +| Recommended | 4+ GB | 40 GB+ | +--- -## Settings - ### Password protecting your server - > ⚠️ Anyone that knows your IP and port can join your server if no password is set! - If you wish to setup a password you will have to do this before using DSSettings.txt below. We are currently not aware of any method to configure a password either via parameters or DSSettings.txt. +## Configuration - 1. Start your server, ensuring no DSSettings.txt file exists - 2. Open the StarRupture game client - 3. Connect to your server using the in game Server Manager from the main menu - 4. The game will first ask you to configure an Admin Password, do this - 5. Click the Change Password button in the Server Manager dialog - 6. Enter the join password that players will use when connecting to your server. - 7. Click Back (or press ESC) Do not attempt to create a new game or load a game at this point - 8. Stop your server and contiune with the DSSettings.txt configuration above +### Password Protection - ### Creating and Loading Save Games -1. ### By using in-game Server management. - On the main menu of the game, click on Manage Server and enter your ip and port to connect to your server. - From here you can create a new world or load an existing save. +> ⚠️ **Warning:** Anyone who knows your IP and port can join your server if no password is set! +There is currently no way to configure a password via command-line parameters or `DSSettings.txt`. You must set the password through the game client: -2. ### Manual way (no password protection) - Create `DSSettings.txt` in root `(/home/container/)` - Paste this inside +1. Start your server (ensure no `DSSettings.txt` file exists). +2. Open the StarRupture game client. +3. From the main menu, open **Manage Server** and connect to your server. +4. When prompted, configure an **Admin Password**. +5. Click **Change Password** and enter the join password for players. +6. Press **Back** (or ESC). **Do not** create or load a game at this point. +7. Stop your server. +8. Continue with the `DSSettings.txt` configuration below. - ``` +--- + +## Save Game Management + +There are two ways to manage save games: + +### Option 1: In-Game Server Management + +1. From the main menu, click **Manage Server**. +2. Enter your server IP and port to connect. +3. From here, you can create a new world or load an existing save. + +### Option 2: Manual Configuration (No Password Protection.Loading save when server starts.) + +Create a `DSSettings.txt` file in the root directory (`/home/container/`) with the following content: + +```json { "SessionName": "MySaveGame", "SaveGameInterval": "300", @@ -61,49 +70,53 @@ This can be changed to any port. "SaveGameName": "AutoSave0.sav" } ``` -### Configuration Options - ### SessionName - Name of the save game session. - Can not exceed 20 characters. - - ### SaveGameInterval - Time between automatic saves (in seconds). - 300 = 5 minutes. -> ⚠️ Only set this to true once when creating a new world! - ### StartNewGame - true → Forces creation of a new world. - - false → Prevents new save creation. - ### LoadSavedGame - true → Loads an existing save - - false → Skips loading saved data - - ### Creating a New Save (New World) - 1. Stop the server - 2. Set: - ``` - "StartNewGame": "true", - "LoadSavedGame": "false" - ``` - 4. Start the server and wait for it to finish loading - 5. Stop the server. - 6. Revert: - ``` - "StartNewGame": "false", - "LoadSavedGame": "true" - ``` - 7. Start the server and join it. - ### Loading an Existing Save - 1. Stop the server. - 2. Ensure : - - ``` - "StartNewGame": "false", - "LoadSavedGame": "true", - "SaveGameName": "AutoSave0.sav" - ``` - 3. Upload your save game .sav and .met file to the server - Location of saves : `/home/container/StarRupture/Saved/SaveGames` - 5. Rename these files to be AutoSave0.sav and AutoSave0.met - 6. Start the server and join it. + +--- + +## Configuration Options + +| Option | Description | +|------------------|-----------------------------------------------------------------------------| +| `SessionName` | Name of the save game session. Maximum 20 characters. | +| `SaveGameInterval` | Time between automatic saves in seconds (e.g., `300` = 5 minutes). | +| `StartNewGame` | `true` to create a new world, `false` to prevent new save creation. | +| `LoadSavedGame` | `true` to load an existing save, `false` to skip loading saved data. | +| `SaveGameName` | Filename of the save to load (e.g., `AutoSave0.sav`). | + +--- + +## Creating a New World + +> ⚠️ **Important:** Only set `StartNewGame` to `true` once when creating a new world! +1. Stop the server. +2. Update `DSSettings.txt`: + ```json + "StartNewGame": "true", + "LoadSavedGame": "false" + ``` +3. Start the server and wait for it to finish loading. +4. Stop the server. +5. Revert `DSSettings.txt`: + ```json + "StartNewGame": "false", + "LoadSavedGame": "true" + ``` +6. Start the server and join. + +--- + +## Loading an Existing Save + +1. Stop the server. +2. Ensure `DSSettings.txt` contains: + ```json + "StartNewGame": "false", + "LoadSavedGame": "true", + "SaveGameName": "AutoSave0.sav" + ``` +3. Upload your `.sav` and `.met` files to: + ``` + /home/container/StarRupture/Saved/SaveGames + ``` +4. Rename the files to `AutoSave0.sav` and `AutoSave0.met`. +5. Start the server and join. From bd6cf36d9b468b83e3a576e9e923c874ff9fe9f9 Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Fri, 9 Jan 2026 17:17:31 +0100 Subject: [PATCH 11/16] Enhance README with password and save game details Updated README.md to include new password configuration options and save game management instructions. --- starrupture/README.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/starrupture/README.md b/starrupture/README.md index d7e01707..c0144b3a 100644 --- a/starrupture/README.md +++ b/starrupture/README.md @@ -34,8 +34,7 @@ This can be changed to any port. ### Password Protection > ⚠️ **Warning:** Anyone who knows your IP and port can join your server if no password is set! -There is currently no way to configure a password via command-line parameters or `DSSettings.txt`. You must set the password through the game client: - +### Option 1: In-Game Server Management 1. Start your server (ensure no `DSSettings.txt` file exists). 2. Open the StarRupture game client. 3. From the main menu, open **Manage Server** and connect to your server. @@ -45,6 +44,14 @@ There is currently no way to configure a password via command-line parameters or 7. Stop your server. 8. Continue with the `DSSettings.txt` configuration below. + +### Option 2: Manual way +1. Visit https://starrupture-utilities.com/passwords +2. Generate both an Admin password and a Player Password +3. Create `Password.json` in root of the container (`/home/container/`) and paste the contents of the site's password.json field into it +4. Create `PlayerPassword.json` in root of the container (`/home/container/`) and paste the contents of the site's playerpassword.json field into it +5. Start server or following Save Game Management below. + --- ## Save Game Management @@ -57,7 +64,7 @@ There are two ways to manage save games: 2. Enter your server IP and port to connect. 3. From here, you can create a new world or load an existing save. -### Option 2: Manual Configuration (No Password Protection.Loading save when server starts.) +### Option 2: Manual Configuration (Loading save when server starts.) Create a `DSSettings.txt` file in the root directory (`/home/container/`) with the following content: @@ -120,3 +127,4 @@ Create a `DSSettings.txt` file in the root directory (`/home/container/`) with t ``` 4. Rename the files to `AutoSave0.sav` and `AutoSave0.met`. 5. Start the server and join. + From 212638b4bab2ae27a29e0d724f62ead41474428a Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Fri, 9 Jan 2026 21:49:04 +0100 Subject: [PATCH 12/16] Revise README with updated requirements and config Updated system requirements and configuration options in README. --- starrupture/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/starrupture/README.md b/starrupture/README.md index c0144b3a..5efb2f0b 100644 --- a/starrupture/README.md +++ b/starrupture/README.md @@ -24,8 +24,8 @@ This can be changed to any port. | Type | Memory | Storage | |-------------|--------|---------| -| Minimal | 2 GB | 25 GB | -| Recommended | 4+ GB | 40 GB+ | +| Bare Minimal| 4 GB | 25 GB | +| Recommended | 12~16+ GB | 40 GB+ | --- @@ -128,3 +128,4 @@ Create a `DSSettings.txt` file in the root directory (`/home/container/`) with t 4. Rename the files to `AutoSave0.sav` and `AutoSave0.met`. 5. Start the server and join. + From ef835252440b3a4471584748371b829cd04a0efd Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Sat, 31 Jan 2026 16:32:41 +0100 Subject: [PATCH 13/16] added wine into name (because its wine based one) --- starrupture/{egg-star-rupture.json => egg-star-rupture-wine.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename starrupture/{egg-star-rupture.json => egg-star-rupture-wine.json} (100%) diff --git a/starrupture/egg-star-rupture.json b/starrupture/egg-star-rupture-wine.json similarity index 100% rename from starrupture/egg-star-rupture.json rename to starrupture/egg-star-rupture-wine.json From 225be83a47646823368b384aa1d739ccb2cffc5b Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Sat, 31 Jan 2026 16:33:41 +0100 Subject: [PATCH 14/16] Update StarRupture configuration and startup script --- starrupture/egg-star-rupture-wine.json | 102 +++++++++++++++++++++---- 1 file changed, 86 insertions(+), 16 deletions(-) diff --git a/starrupture/egg-star-rupture-wine.json b/starrupture/egg-star-rupture-wine.json index d1df32dc..e90c3d09 100644 --- a/starrupture/egg-star-rupture-wine.json +++ b/starrupture/egg-star-rupture-wine.json @@ -4,8 +4,8 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2026-01-08T15:36:50+01:00", - "name": "StarRupture", + "exported_at": "2026-01-31T16:28:24+01:00", + "name": "StarRupture Wine", "author": "brainshead@gmail.com", "description": "StarRupture is a first-person open world base-building game with advanced combat and tons of exploration. Play alone or in a group on this sublime and ever-changing planet, extract and manage resources, create your complex industrial system and fight off hordes of alien monsters.", "features": [], @@ -13,16 +13,16 @@ "Wine Latest": "ghcr.io\/ptero-eggs\/yolks:wine_latest" }, "file_denylist": [], - "startup": "cd \/home\/container\/StarRupture\/Binaries\/Win64; wine .\/StarRuptureServerEOS-Win64-Shipping.exe -Log -Port=${SERVER_PORT} & SR_PID=$!; tail -c0 -F \/home\/container\/StarRupture\/Saved\/Logs\/StarRupture.log --pid=$SR_PID | grep -v -E \"LogCore: Warning|LogUObjectBase: Error\"", + "startup": "wine \/home\/container\/StarRupture\/Binaries\/Win64\/StarRuptureServerEOS-Win64-Shipping.exe -Log -Port=${SERVER_PORT} -RCWebControlDisable -RCWebInterfaceDisable & SR_PID=$!; tail -c0 -F \/home\/container\/StarRupture\/Saved\/Logs\/StarRupture.log --pid=$SR_PID | grep -v -E \"LogCore: Warning|LogUObjectBase: Error\"", "config": { - "files": "{}", + "files": "{\r\n \"DSSettings.txt\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"SessionName\": \"{{server.build.env.SESSION_NAME}}\",\r\n \"SaveGameInterval\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"StartNewGame\": \"{{server.build.env.START_NEW}}\",\r\n \"LoadSavedGame\": \"{{server.build.env.LOAD_SAVE}}\",\r\n \"SaveGameName\": \"{{server.build.env.SAVEGAME_NAME}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"OnUpdateSessionComplete\"\r\n}", "logs": "{}", "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n#Custom Commands\r\n\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n#Custom Commands\r\n\r\n## create DSSettings.txt\r\nif [ ! -f \/mnt\/server\/DSSettings.txt ]; then\r\n echo \"Creating default DSSettings.txt\"\r\n cat << EOF > \/mnt\/server\/DSSettings.txt\r\n {\r\n \"SessionName\": \"StarRuptureServer\",\r\n \"SaveGameInterval\": \"300\",\r\n \"StartNewGame\": \"false\",\r\n \"LoadSavedGame\": \"true\",\r\n \"SaveGameName\": \"AutoSave0.sav\"\r\n }\r\nEOF\r\nfi\r\n\r\n## create .pteroignore to only back up necessary files\r\nif [ ! -f \/mnt\/server\/.pteroignore ]; then\r\n echo \"Creating default .pteroignore\"\r\n cat << EOF > \/mnt\/server\/.pteroignore\r\n *\r\n !Password.json\r\n !PlayerPassword.json\r\n !DSSettings.txt\r\n !StarRupture\/Saved\/SaveGames\/*\/AutoSave0.met\r\n !StarRupture\/Saved\/SaveGames\/*\/AutoSave0.sav\r\n !StarRupture\/Saved\/SaveGames\/SaveData.dat\r\nEOF\r\nfi\r\n\r\n## Generate password files if passwords are set\r\nif [[ -n \"${ADMIN_PASSWORD}\" ]] || [[ -n \"${PLAYER_PASSWORD}\" ]]; then\r\n # Only generate if at least one password file is missing\r\n if [[ ! -f \/mnt\/server\/Password.json ]] || [[ ! -f \/mnt\/server\/PlayerPassword.json ]]; then\r\n echo \"Generating password files...\"\r\n\r\n RESPONSE=$(curl -s --request POST \\\r\n --url https:\/\/starrupture-utilities.com\/passwords\/ \\\r\n --header 'Content-Type: multipart\/form-data' \\\r\n --form \"adminpassword=${ADMIN_PASSWORD}\" \\\r\n --form \"playerpassword=${PLAYER_PASSWORD}\")\r\n\r\n if [[ -n \"${RESPONSE}\" ]]; then\r\n # Extract and save admin password if set and file doesn't exist\r\n if [[ -n \"${ADMIN_PASSWORD}\" ]] && [[ ! -f \/mnt\/server\/Password.json ]]; then\r\n echo \"${RESPONSE}\" | jq '{password: .adminpassword}' > \/mnt\/server\/Password.json\r\n echo \"Password.json created successfully\"\r\n fi\r\n\r\n # Extract and save player password if set and file doesn't exist\r\n if [[ -n \"${PLAYER_PASSWORD}\" ]] && [[ ! -f \/mnt\/server\/PlayerPassword.json ]]; then\r\n echo \"${RESPONSE}\" | jq '{password: .playerpassword}' > \/mnt\/server\/PlayerPassword.json\r\n echo \"PlayerPassword.json created successfully\"\r\n fi\r\n else\r\n echo \"Warning: Failed to generate password files\"\r\n fi\r\n fi\r\nfi\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/ptero-eggs\/installers:debian", "entrypoint": "bash" } @@ -67,16 +67,6 @@ "user_editable": false, "rules": "nullable|string|max:5", "field_type": "text" - }, - { - "name": "[STEAM] WINDOWS_INSTALL", - "description": "", - "env_variable": "WINDOWS_INSTALL", - "default_value": "1", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|in:1", - "field_type": "text" }, { "name": "[STEAM] Auto Update Server", @@ -128,6 +118,16 @@ "rules": "required|string|max:100", "field_type": "text" }, + { + "name": "[STEAM] WINDOWS_INSTALL", + "description": "", + "env_variable": "WINDOWS_INSTALL", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:1", + "field_type": "text" + }, { "name": "[SYSTEM] WINEDLLOVERRIDES", "description": "", @@ -137,6 +137,76 @@ "user_editable": false, "rules": "required|string|max:20", "field_type": "text" + }, + { + "name": "[SERVER] Start new Savegame", + "description": "Setting this to `true` forces the creation of a new world. Be careful!", + "env_variable": "START_NEW", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[SERVER] Load saved Game", + "description": "true -> Loads an existing save; false -> Skips loading saved data", + "env_variable": "LOAD_SAVE", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[SERVER] Save Intervall", + "description": "Time between automatic saves (in seconds)\r\n\r\n300 = 5 minutes", + "env_variable": "SAVE_INTERVAL", + "default_value": "300", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "[SERVER] Savegame Name", + "description": "Filename of the save to load; Must exist in the server save directory under `\/StarRupture\/Saved\/SaveGames\/{SESSION_NAME}`", + "env_variable": "SAVEGAME_NAME", + "default_value": "AutoSave0.sav", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "[SERVER] Session Name", + "description": "Name of the save game sessionName of the save game session", + "env_variable": "SESSION_NAME", + "default_value": "StarRuptureServer", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "[SERVER] Admin Password", + "description": "The admin password used for \"Manage Server\" In-Game", + "env_variable": "ADMIN_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "string|nullable", + "field_type": "text" + }, + { + "name": "[SERVER] Player Password", + "description": "The password used to join the server", + "env_variable": "PLAYER_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "string|nullable", + "field_type": "text" } ] -} \ No newline at end of file +} From 0a7ed61fee859ee6e92ad474822412a2c455154d Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Sat, 31 Jan 2026 16:39:30 +0100 Subject: [PATCH 15/16] Revised README for clarity and additional (security) details Updated README with new configuration options and server management instructions. --- starrupture/README.md | 162 ++++++++++++++++++++++-------------------- 1 file changed, 84 insertions(+), 78 deletions(-) diff --git a/starrupture/README.md b/starrupture/README.md index 5efb2f0b..807f6303 100644 --- a/starrupture/README.md +++ b/starrupture/README.md @@ -24,108 +24,114 @@ This can be changed to any port. | Type | Memory | Storage | |-------------|--------|---------| -| Bare Minimal| 4 GB | 25 GB | +| Bare Minimal| 6 GB | 25 GB | | Recommended | 12~16+ GB | 40 GB+ | +## Configuration Files + +| File | Purpose | Path | +|---------------------|------------------------------|--------------------------------------------| +| DSSettings.txt | Server configuration for save management | /home/container/DSSettings.txt | +| Password.json | Admin password configuration | /home/container/Password.json | +| PlayerPassword.json | Server join password configuration | /home/container/PlayerPassword.json | +| .pteroignore | Files/folders to ignore during backups | /home/container/.pteroignore | + +Unofficial documentation: https://wiki.starrupture-utilities.com/en/dedicated-server/configuration + --- ## Configuration -### Password Protection +# Setup Methods -> ⚠️ **Warning:** Anyone who knows your IP and port can join your server if no password is set! -### Option 1: In-Game Server Management -1. Start your server (ensure no `DSSettings.txt` file exists). -2. Open the StarRupture game client. -3. From the main menu, open **Manage Server** and connect to your server. -4. When prompted, configure an **Admin Password**. -5. Click **Change Password** and enter the join password for players. -6. Press **Back** (or ESC). **Do not** create or load a game at this point. -7. Stop your server. -8. Continue with the `DSSettings.txt` configuration below. - - -### Option 2: Manual way -1. Visit https://starrupture-utilities.com/passwords -2. Generate both an Admin password and a Player Password -3. Create `Password.json` in root of the container (`/home/container/`) and paste the contents of the site's password.json field into it -4. Create `PlayerPassword.json` in root of the container (`/home/container/`) and paste the contents of the site's playerpassword.json field into it -5. Start server or following Save Game Management below. +There are two ways to configure your server: via the **Panel** (recommended) or **In-Game**. Choose one method and follow it consistently. --- -## Save Game Management +## Method 1: Panel Configuration (Recommended) -There are two ways to manage save games: +This method uses the Pterodactyl Panel and DSSettings.txt for all configuration. It is the recommended approach because settings persist across server restarts, and the in-game management system has known vulnerabilities, such as wiping saves and changing admin passwords. Read more: https://wiki.starrupture-utilities.com/en/dedicated-server/Vulnerability-Announcement -### Option 1: In-Game Server Management +> ⚠️ **Important:** Always stop the server before making configuration changes. -1. From the main menu, click **Manage Server**. -2. Enter your server IP and port to connect. -3. From here, you can create a new world or load an existing save. +### Password Setup -### Option 2: Manual Configuration (Loading save when server starts.) +> ⚠️ **Warning:** Anyone who knows your IP and port can join your server if no password is set! -Create a `DSSettings.txt` file in the root directory (`/home/container/`) with the following content: +#### Automatic Setup (Recommended) -```json -{ - "SessionName": "MySaveGame", - "SaveGameInterval": "300", - "StartNewGame": "false", - "LoadSavedGame": "true", - "SaveGameName": "AutoSave0.sav" -} -``` +If you set the `[SERVER] Admin Password` and `[SERVER] Player Password` variables in the **Startup** tab before installing the server, the password files will be created automatically during installation. ---- +#### Manual Setup -## Configuration Options +If you didn't set passwords during installation, you can create them manually: -| Option | Description | -|------------------|-----------------------------------------------------------------------------| -| `SessionName` | Name of the save game session. Maximum 20 characters. | -| `SaveGameInterval` | Time between automatic saves in seconds (e.g., `300` = 5 minutes). | -| `StartNewGame` | `true` to create a new world, `false` to prevent new save creation. | -| `LoadSavedGame` | `true` to load an existing save, `false` to skip loading saved data. | -| `SaveGameName` | Filename of the save to load (e.g., `AutoSave0.sav`). | +1. Visit https://starrupture-utilities.com/passwords +2. Generate both an Admin password and a Player password +3. Create `Password.json` in the root of the container (`/home/container/`) and paste the generated content +4. Create `PlayerPassword.json` in the root of the container (`/home/container/`) and paste the generated content +5. Start the server + +### Save Game Settings + +The egg manages `DSSettings.txt` automatically via the Panel's **Startup** tab. + +| Panel Option | DSSettings.txt Key | Description | +|----------------------------|--------------------|----------------------------------------------------------------| +| `[SERVER] Session Name` | `SessionName` | Name of the save game session (max 20 characters) | +| `[SERVER] Save Interval` | `SaveGameInterval` | Time between automatic saves in seconds (e.g., `300` = 5 mins) | +| `[SERVER] Start new Savegame` | `StartNewGame` | `true` to create a new world (use only once!) | +| `[SERVER] Load saved Game` | `LoadSavedGame` | `true` to load an existing save on startup | +| `[SERVER] Savegame Name` | `SaveGameName` | Filename of the save to load (e.g., `AutoSave0.sav`) | + +### Creating a New World + +> ⚠️ **Important:** Only enable `Start new Savegame` for initial world creation - disable it immediately after! + +1. Stop the server +2. Go to the **Startup** tab in the Panel +3. Set `[SERVER] Load saved Game` to `false` +4. Set `[SERVER] Start new Savegame` to `true` +5. Start the server and wait for it to finish loading + 1. Join using the server's WAN IP and port + 2. Press ESC to open the menu and then select Save. This will instruct the server to save the file to `StarRupture\Saved\SaveGames\SessionName` + 3. Disconnect from the server +6. Stop the server +7. Set `[SERVER] Load saved Game` to `true` +8. Set `[SERVER] Start new Savegame` to `false` +9. Start the server - your world will now load automatically on every startup + +### Loading an Existing Save + +1. Stop the server +2. Go to the **Startup** tab in the Panel +3. Set `[SERVER] Load saved Game` to `true` +4. Set `[SERVER] Start new Savegame` to `false` +5. Set `[SERVER] Savegame Name` to match your save file (e.g., `AutoSave0.sav`) +6. Set `[SERVER] Session Name` to match your session folder name (e.g., `StarRuptureServer`) +7. Start the server --- -## Creating a New World - -> ⚠️ **Important:** Only set `StartNewGame` to `true` once when creating a new world! -1. Stop the server. -2. Update `DSSettings.txt`: - ```json - "StartNewGame": "true", - "LoadSavedGame": "false" - ``` -3. Start the server and wait for it to finish loading. -4. Stop the server. -5. Revert `DSSettings.txt`: - ```json - "StartNewGame": "false", - "LoadSavedGame": "true" - ``` -6. Start the server and join. +## Method 2: In-Game Configuration ---- +This method uses the game's built-in **Manage Server** feature. Only use this method if you have issues with DSSettings.txt and are aware of the vulnerabilities mentioned above. + +> ⚠️ **Important:** For this method to work, `DSSettings.txt` must **not** exist. Shutdown the server and delete it if present. You'll be stuck on a loading spinner when trying to connect if it exists. You must also remove `-RCWebControlDisable` and `-RCWebInterfaceDisable` from the startup parameters in the **Startup** tab. + +### Password Setup -## Loading an Existing Save +1. Start your server +2. Open the StarRupture game client +3. From the main menu, select **Manage Server** and connect to your server +4. When prompted, configure an **Admin Password** +5. Click **Change Password** to set the player join password -1. Stop the server. -2. Ensure `DSSettings.txt` contains: - ```json - "StartNewGame": "false", - "LoadSavedGame": "true", - "SaveGameName": "AutoSave0.sav" - ``` -3. Upload your `.sav` and `.met` files to: - ``` - /home/container/StarRupture/Saved/SaveGames - ``` -4. Rename the files to `AutoSave0.sav` and `AutoSave0.met`. -5. Start the server and join. +### Save Game Management +1. Start your server +2. Open the StarRupture game client +3. From the main menu, select **Manage Server** and connect to your server +4. Use the in-game interface to create a new world or load an existing save +> ⚠️ **Note:** With this method, you will need to load your save via the in-game interface each time the server restarts. From dfba37614c036eb22e3aac82fa2009716db46814 Mon Sep 17 00:00:00 2001 From: brainshead <52798325+brainshead@users.noreply.github.com> Date: Mon, 9 Feb 2026 21:25:26 +0100 Subject: [PATCH 16/16] Update descriptions and names in JSON configuration --- starrupture/egg-star-rupture-wine.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/starrupture/egg-star-rupture-wine.json b/starrupture/egg-star-rupture-wine.json index e90c3d09..2027b3cc 100644 --- a/starrupture/egg-star-rupture-wine.json +++ b/starrupture/egg-star-rupture-wine.json @@ -30,7 +30,7 @@ "variables": [ { "name": "[STEAM] Steam User", - "description": "This is a required setting and cannot be set to anonymous.", + "description": "Steam User Account", "env_variable": "STEAM_USER", "default_value": "", "user_viewable": false, @@ -159,7 +159,7 @@ "field_type": "text" }, { - "name": "[SERVER] Save Intervall", + "name": "[SERVER] Save Interval", "description": "Time between automatic saves (in seconds)\r\n\r\n300 = 5 minutes", "env_variable": "SAVE_INTERVAL", "default_value": "300",