eggs/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json
Red-Thirten a6963bbb41
0.5.0.6 Boot Crash Hotfix & Explicit Game Port Declaration
- Adds the newly discovered `-multihome` flag to fix 0.5.0.6 update's IPv6 related issue, where the IP binds to IPv6 by default, causing a crash on boot. Server will now bind to IPv4 by default. As this is a hotfix, IPv6's possible support will be investigated at a later date.
- Adds the newly discovered `?listen` flag to the `-Port` flag to explicitly declare the port. This will prevent the server from possibly auto-incrementing the port if, for whatever reason, it thinks there's another Satisfactory server present in the same container.
2021-11-03 16:14:44 -07:00

86 lines
6.2 KiB
JSON

{
"_comment": "Pterodactyl Satisfactory Egg ~ Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord ~ 2021-10-28",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"name": "Satisfactory",
"author": "rehlmgaming@gmail.com",
"description": "Satisfactory is a first-person open-world factory building game with a dash of exploration and combat. Play alone or with friends, explore an alien planet, create multi-story factories, and enter conveyor belt heaven!",
"features": null,
"images": [
"ghcr.io\/pterodactyl\/games:source"
],
"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",
"config": {
"files": "{\r\n \"FactoryGame\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Engine Initialization\"\r\n}",
"logs": "{}",
"stop": "^CC"
},
"scripts": {
"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\/10\/28\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 +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} 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 Game.ini file (since it is not created automatically by the server)\r\nmkdir -p \/mnt\/server\/FactoryGame\/Saved\/Config\/LinuxServer\/ && cd \"$_\"\r\nif [ ! -f Game.ini ]; then\r\n echo -e \"\\nGame.ini config file missing. Creating default.\"\r\n cat > Game.ini << EOF\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${MAX_PLAYERS}\r\nEOF\r\nfi\r\n\r\necho -e \"\\n\\nSatisfactory Dedicated Server successfully installed!\\n\"",
"container": "ghcr.io\/pterodactyl\/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "[REQUIRED] Server Query Port",
"description": "This is the port that your clients will type in and use to connect to the lobby (not the game world). Ensure this port matches your externally forwarded port, and is distanced from other running Satisfactory servers in Pterodactyl (increments of 100 are recommended). This is also true for the Primary\/Game Port!",
"env_variable": "QUERY_PORT",
"default_value": "15777",
"user_viewable": true,
"user_editable": false,
"rules": "required|integer|between:1024,65536"
},
{
"name": "[REQUIRED] Beacon Port",
"description": "This port provides a lightweight way for clients to contact a server and interact with it without committing to a normal game connection (likely used for client administration). Ensure this port matches your externally forwarded port, and is distanced from other running Satisfactory servers in Pterodactyl (increments of 100 are recommended).",
"env_variable": "BEACON_PORT",
"default_value": "15000",
"user_viewable": true,
"user_editable": false,
"rules": "required|integer|between:1024,65536"
},
{
"name": "Automatic Updates",
"description": "Quickly checks for any server updates on startup, and updates if necessary. (1 Enable | 0 Disable)",
"env_variable": "AUTO_UPDATE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "boolean"
},
{
"name": "[Repair] Validate Server Files",
"description": "Leave empty (no value) for OFF or type \"true\" or \"1\" for ON. Validates all server files when Automatic Updates is enabled. Note: This will significantly increase server startup times, so it is recommended to only enable this when needed.",
"env_variable": "VALIDATE",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "string|nullable"
},
{
"name": "[Experimental] Max Players",
"description": "The server and client are currently not optimized to support more than 4 players. However, you can override this value here at your own risk of poor performance.",
"env_variable": "MAX_PLAYERS",
"default_value": "4",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|min:1"
},
{
"name": "[Advanced] Satisfactory Dedicated Server App ID",
"description": "Steam App ID used for installation and updates. Rarely needs to be changed.",
"env_variable": "SRCDS_APPID",
"default_value": "1690800",
"user_viewable": false,
"user_editable": false,
"rules": "required|integer|min:1"
}
]
}