fix(satisfactory): SteamCMD download link & PTDL_v2 Upgrade (#1727)
This commit is contained in:
		| @@ -152,7 +152,7 @@ ___ | |||||||
|  |  | ||||||
| ### Console Commands | ### Console Commands | ||||||
|  |  | ||||||
| As of v0.5.1.10, the console tab in the client server manager is the only way to execute commands. Entering commands via Pterodactyl do nothing. | The console tab in the client server manager is the only way to execute commands. Entering commands via Pterodactyl do nothing. | ||||||
|  |  | ||||||
| [List of known commands can be found via the Wiki.](https://satisfactory.fandom.com/wiki/Dedicated_servers#Console_commands) | [List of known commands can be found via the Wiki.](https://satisfactory.fandom.com/wiki/Dedicated_servers#Console_commands) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| { | { | ||||||
|     "_comment": "Pterodactyl Satisfactory Egg ~ Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord ~ 2022-02-07", |     "_comment": "Pterodactyl Satisfactory Egg ~ Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord ~ 2022-06-27", | ||||||
|     "meta": { |     "meta": { | ||||||
|         "version": "PTDL_v1", |         "version": "PTDL_v2", | ||||||
|         "update_url": null |         "update_url": null | ||||||
|     }, |     }, | ||||||
|     "name": "Satisfactory", |     "name": "Satisfactory", | ||||||
| @@ -10,9 +10,9 @@ | |||||||
|     "features": [ |     "features": [ | ||||||
|         "steam_disk_space" |         "steam_disk_space" | ||||||
|     ], |     ], | ||||||
|     "images": [ |     "docker_images": { | ||||||
|         "ghcr.io\/parkervcp\/games:source" |         "ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source" | ||||||
|     ], |     }, | ||||||
|     "file_denylist": [], |     "file_denylist": [], | ||||||
|     "startup": ".\/Engine\/Binaries\/Linux\/UE4Server-Linux-Shipping FactoryGame ?listen -Port={{SERVER_PORT}} -ServerQueryPort={{QUERY_PORT}} -BeaconPort={{BEACON_PORT}} -multihome=0.0.0.0 $(if {{DISABLE_SEASONAL}}; then echo \"-DisableSeasonalEvents\"; fi)", |     "startup": ".\/Engine\/Binaries\/Linux\/UE4Server-Linux-Shipping FactoryGame ?listen -Port={{SERVER_PORT}} -ServerQueryPort={{QUERY_PORT}} -BeaconPort={{BEACON_PORT}} -multihome=0.0.0.0 $(if {{DISABLE_SEASONAL}}; then echo \"-DisableSeasonalEvents\"; fi)", | ||||||
|     "config": { |     "config": { | ||||||
| @@ -23,7 +23,7 @@ | |||||||
|     }, |     }, | ||||||
|     "scripts": { |     "scripts": { | ||||||
|         "installation": { |         "installation": { | ||||||
|             "script": "#!\/bin\/bash\r\n\r\n# File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n# Authors: Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord\r\n# Date: 2021\/11\/29\r\n# License: MIT License\r\n\r\n## Download and install SteamCMD\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steamcmd\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\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n# Install game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login anonymous +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) validate +exit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Satisfactory setup\r\n# Check for successful installation and make the core binary executable.\r\ncd \/mnt\/server\/Engine\/Binaries\/Linux\r\nif [[ ! -f UE4Server-Linux-Shipping ]]; then\r\n    echo -e \"\\n\\nSteamCMD failed to install the Satisfactory Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nelse\r\n    chmod +x UE4Server-Linux-Shipping\r\nfi\r\n\r\n# Make Config directory and default .ini files (since they are not initially present before first server start)\r\nmkdir -p \/mnt\/server\/FactoryGame\/Saved\/Config\/LinuxServer\/ && cd \"$_\"\r\n# Currently, this will delete & re-create certain .ini files during a re-install if they are already present.\r\n# While undesirable, this is required due to a current Pterodactyl ini config parser limitation.\r\n# When the patch to this limitation hits the production branch, this will be updated.\r\nrm -f Engine.ini Game.ini GameUserSettings.ini\r\n\r\necho -e '\\nCreating default \"Engine.ini\" configuration file...'\r\ncat > Engine.ini << EOF\r\n[\/Script\/FactoryGame.FGSaveSession]\r\nmNumRotatingAutosaves=${NUM_AUTOSAVES}\r\n\r\n[CrashReportClient]\r\nbImplicitSend=${UPLOAD_CRASH_REPORT}\r\n\r\n[\/Script\/OnlineSubsystemUtils.IpNetDriver]\r\nInitialConnectTimeout=${INIT_CONNECT_TIMEOUT}\r\nConnectionTimeout=${CONNECT_TIMEOUT}\r\nEOF\r\n\r\necho -e 'Creating default \"Game.ini\" configuration file...'\r\ncat > Game.ini << EOF\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${MAX_PLAYERS}\r\nEOF\r\n\r\necho -e 'Creating default \"GameUserSettings.ini\" configuration file...'\r\ncat > GameUserSettings.ini << EOF\r\n[\/Script\/FactoryGame.FGGameUserSettings]\r\nmIntValues=((\"FG.NetworkQuality\", ${NETWORK_QUALITY}))\r\nmFloatValues=((\"FG.AutosaveInterval\", ${AUTOSAVE_INTERVAL}))\r\nEOF\r\n\r\necho -e \"\\nSatisfactory Dedicated Server successfully installed!\\n\"", |             "script": "#!\/bin\/bash\r\n\r\n# File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n# Authors: Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord\r\n# Date: 2022\/06\/27\r\n# License: MIT License\r\n\r\n## Download and install SteamCMD\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steamcmd\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\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n# Install game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login anonymous +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) validate +exit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Satisfactory setup\r\n# Check for successful installation and make the core binary executable.\r\ncd \/mnt\/server\/Engine\/Binaries\/Linux\r\nif [[ ! -f UE4Server-Linux-Shipping ]]; then\r\n    echo -e \"\\n\\nSteamCMD failed to install the Satisfactory Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nelse\r\n    chmod +x UE4Server-Linux-Shipping\r\nfi\r\n\r\n# Make Config directory and default .ini files (since they are not initially present before first server start)\r\nmkdir -p \/mnt\/server\/FactoryGame\/Saved\/Config\/LinuxServer\/ && cd \"$_\"\r\n# Currently, this will delete & re-create certain .ini files during a re-install if they are already present.\r\n# While undesirable, this is required due to a current Pterodactyl ini config parser limitation.\r\n# When the patch to this limitation hits the production branch, this will be updated.\r\nrm -f Engine.ini Game.ini GameUserSettings.ini\r\n\r\necho -e '\\nCreating default \"Engine.ini\" configuration file...'\r\ncat > Engine.ini << EOF\r\n[\/Script\/FactoryGame.FGSaveSession]\r\nmNumRotatingAutosaves=${NUM_AUTOSAVES}\r\n\r\n[CrashReportClient]\r\nbImplicitSend=${UPLOAD_CRASH_REPORT}\r\n\r\n[\/Script\/OnlineSubsystemUtils.IpNetDriver]\r\nInitialConnectTimeout=${INIT_CONNECT_TIMEOUT}\r\nConnectionTimeout=${CONNECT_TIMEOUT}\r\nEOF\r\n\r\necho -e 'Creating default \"Game.ini\" configuration file...'\r\ncat > Game.ini << EOF\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${MAX_PLAYERS}\r\nEOF\r\n\r\necho -e 'Creating default \"GameUserSettings.ini\" configuration file...'\r\ncat > GameUserSettings.ini << EOF\r\n[\/Script\/FactoryGame.FGGameUserSettings]\r\nmIntValues=((\"FG.NetworkQuality\", ${NETWORK_QUALITY}))\r\nmFloatValues=((\"FG.AutosaveInterval\", ${AUTOSAVE_INTERVAL}))\r\nEOF\r\n\r\necho -e \"\\nSatisfactory Dedicated Server successfully installed!\\n\"", | ||||||
|             "container": "ghcr.io\/pterodactyl\/installers:debian", |             "container": "ghcr.io\/pterodactyl\/installers:debian", | ||||||
|             "entrypoint": "\/bin\/bash" |             "entrypoint": "\/bin\/bash" | ||||||
|         } |         } | ||||||
| @@ -36,7 +36,8 @@ | |||||||
|             "default_value": "15777", |             "default_value": "15777", | ||||||
|             "user_viewable": true, |             "user_viewable": true, | ||||||
|             "user_editable": false, |             "user_editable": false, | ||||||
|             "rules": "required|integer|between:1024,65536" |             "rules": "required|integer|between:1024,65536", | ||||||
|  |             "field_type": "text" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "[REQUIRED] Beacon Port", |             "name": "[REQUIRED] Beacon Port", | ||||||
| @@ -45,7 +46,8 @@ | |||||||
|             "default_value": "15000", |             "default_value": "15000", | ||||||
|             "user_viewable": true, |             "user_viewable": true, | ||||||
|             "user_editable": false, |             "user_editable": false, | ||||||
|             "rules": "required|integer|between:1024,65536" |             "rules": "required|integer|between:1024,65536", | ||||||
|  |             "field_type": "text" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "Automatic Updates", |             "name": "Automatic Updates", | ||||||
| @@ -54,7 +56,8 @@ | |||||||
|             "default_value": "1", |             "default_value": "1", | ||||||
|             "user_viewable": true, |             "user_viewable": true, | ||||||
|             "user_editable": true, |             "user_editable": true, | ||||||
|             "rules": "boolean" |             "rules": "boolean", | ||||||
|  |             "field_type": "text" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "[Repair] Validate Server Files", |             "name": "[Repair] Validate Server Files", | ||||||
| @@ -63,7 +66,8 @@ | |||||||
|             "default_value": "", |             "default_value": "", | ||||||
|             "user_viewable": true, |             "user_viewable": true, | ||||||
|             "user_editable": true, |             "user_editable": true, | ||||||
|             "rules": "string|nullable" |             "rules": "string|nullable", | ||||||
|  |             "field_type": "text" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "Autosave Interval", |             "name": "Autosave Interval", | ||||||
| @@ -72,7 +76,8 @@ | |||||||
|             "default_value": "300", |             "default_value": "300", | ||||||
|             "user_viewable": true, |             "user_viewable": true, | ||||||
|             "user_editable": true, |             "user_editable": true, | ||||||
|             "rules": "required|numeric|min:1" |             "rules": "required|numeric|min:1", | ||||||
|  |             "field_type": "text" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "Number of Rotating Autosaves", |             "name": "Number of Rotating Autosaves", | ||||||
| @@ -81,7 +86,8 @@ | |||||||
|             "default_value": "3", |             "default_value": "3", | ||||||
|             "user_viewable": true, |             "user_viewable": true, | ||||||
|             "user_editable": true, |             "user_editable": true, | ||||||
|             "rules": "required|integer|min:0" |             "rules": "required|integer|min:0", | ||||||
|  |             "field_type": "text" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "Upload Crash Reports", |             "name": "Upload Crash Reports", | ||||||
| @@ -90,7 +96,8 @@ | |||||||
|             "default_value": "true", |             "default_value": "true", | ||||||
|             "user_viewable": true, |             "user_viewable": true, | ||||||
|             "user_editable": true, |             "user_editable": true, | ||||||
|             "rules": "required|string|in:true,false" |             "rules": "required|string|in:true,false", | ||||||
|  |             "field_type": "text" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "Disable Seasonal Events", |             "name": "Disable Seasonal Events", | ||||||
| @@ -99,7 +106,8 @@ | |||||||
|             "default_value": "false", |             "default_value": "false", | ||||||
|             "user_viewable": true, |             "user_viewable": true, | ||||||
|             "user_editable": true, |             "user_editable": true, | ||||||
|             "rules": "required|string|in:true,false" |             "rules": "required|string|in:true,false", | ||||||
|  |             "field_type": "text" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "[Experimental] Max Players", |             "name": "[Experimental] Max Players", | ||||||
| @@ -108,7 +116,8 @@ | |||||||
|             "default_value": "4", |             "default_value": "4", | ||||||
|             "user_viewable": true, |             "user_viewable": true, | ||||||
|             "user_editable": true, |             "user_editable": true, | ||||||
|             "rules": "required|integer|min:1" |             "rules": "required|integer|min:1", | ||||||
|  |             "field_type": "text" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "[Advanced] Client Initial Connection Timeout", |             "name": "[Advanced] Client Initial Connection Timeout", | ||||||
| @@ -117,7 +126,8 @@ | |||||||
|             "default_value": "30", |             "default_value": "30", | ||||||
|             "user_viewable": true, |             "user_viewable": true, | ||||||
|             "user_editable": true, |             "user_editable": true, | ||||||
|             "rules": "required|numeric|min:1" |             "rules": "required|numeric|min:1", | ||||||
|  |             "field_type": "text" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "[Advanced] Client Established Connection Timeout", |             "name": "[Advanced] Client Established Connection Timeout", | ||||||
| @@ -126,7 +136,8 @@ | |||||||
|             "default_value": "20", |             "default_value": "20", | ||||||
|             "user_viewable": true, |             "user_viewable": true, | ||||||
|             "user_editable": true, |             "user_editable": true, | ||||||
|             "rules": "required|numeric|min:1" |             "rules": "required|numeric|min:1", | ||||||
|  |             "field_type": "text" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "[Advanced] Network Quality", |             "name": "[Advanced] Network Quality", | ||||||
| @@ -135,7 +146,8 @@ | |||||||
|             "default_value": "3", |             "default_value": "3", | ||||||
|             "user_viewable": true, |             "user_viewable": true, | ||||||
|             "user_editable": true, |             "user_editable": true, | ||||||
|             "rules": "required|integer|between:0,3" |             "rules": "required|integer|between:0,3", | ||||||
|  |             "field_type": "text" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "[Advanced] Branch Name", |             "name": "[Advanced] Branch Name", | ||||||
| @@ -144,7 +156,8 @@ | |||||||
|             "default_value": "", |             "default_value": "", | ||||||
|             "user_viewable": true, |             "user_viewable": true, | ||||||
|             "user_editable": true, |             "user_editable": true, | ||||||
|             "rules": "string|nullable|in:public,experimental" |             "rules": "string|nullable|in:public,experimental", | ||||||
|  |             "field_type": "text" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "[Advanced] Satisfactory Dedicated Server App ID", |             "name": "[Advanced] Satisfactory Dedicated Server App ID", | ||||||
| @@ -153,7 +166,8 @@ | |||||||
|             "default_value": "1690800", |             "default_value": "1690800", | ||||||
|             "user_viewable": false, |             "user_viewable": false, | ||||||
|             "user_editable": false, |             "user_editable": false, | ||||||
|             "rules": "required|integer|min:1" |             "rules": "required|integer|min:1", | ||||||
|  |             "field_type": "text" | ||||||
|         } |         } | ||||||
|     ] |     ] | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user