From c108ce39171015131d7bfe018a923aede8e138cc Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Oct 2021 15:42:36 -0700 Subject: [PATCH 01/17] Initial Upload README is currently a placeholder and will be updated with the following commit. --- .../steamcmd_servers/satisfactory/README.md | 99 +++++++++++++++++++ .../satisfactory/egg-satisfactory.json | 76 ++++++++++++++ 2 files changed, 175 insertions(+) create mode 100644 game_eggs/steamcmd_servers/satisfactory/README.md create mode 100644 game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json diff --git a/game_eggs/steamcmd_servers/satisfactory/README.md b/game_eggs/steamcmd_servers/satisfactory/README.md new file mode 100644 index 00000000..73aa486c --- /dev/null +++ b/game_eggs/steamcmd_servers/satisfactory/README.md @@ -0,0 +1,99 @@ +# Arma 3 +***Updating your Egg? Please see [How to Update Egg](#how-to-update-egg) to avoid any issues!*** +___ +### Authors / Contributors + + + + + + + + +
+ +
Red-Thirten +
+
+ 💻 + 🔨 +
+ +
Aussie Server Hosts +
+
+ 💻 + 💡 +
+ +
Daave +
+
+ 💻 + + 💤 +
+ + + +___ +### Game Description +From Bohemia Interactive's [Website](https://arma3.com/): +> Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC’s premier military game. Authentic, diverse, open - Arma 3 sends you to war. +___ +### Egg Capabilities +- Configurable to run 32 or 64-bit versions of the server +- Max Players is configurable and able to be host enforced (\*see [Recommended Egg Modifications](#recommended-egg-modifications)) +- Able to download server updates on startup +- Able to download, update, and load Steam Workshop mods on startup (\*see [Installation Requirements](#installation-requirements)) + - Accepts uploaded HTML modlist files exported from the Arma 3 Launcher to define mods to load on the server. + - Also accepts manually listed mods, CDLCs, and server-side only mods. + - Checks for mod updates against their Steam Workshop page's last update for quick and efficient update checks. + - Automatically moves mod `.bikey`'s to the `/keys/` directory. +- Configurable to download Creator DLCs +- Configurable to run Beta/Performance binaries of the server (if desired; advanced users only) +- Additional [Arma 3 startup parameters](https://community.bistudio.com/wiki/Arma_3_Startup_Parameters) can be added to fine-tune performance +- Configurable to run up to 5 Headless Clients in parallel with the main server (may require additional performance overhead) +- [WHMCS](https://www.whmcs.com/) compatible (\*see [Recommended Egg Modifications](#recommended-egg-modifications)) +___ +### Installation Requirements +- A valid, **real** Steam account, with **Steam Guard turned off**, is required to install the server (default "anonymous" login cannot be used). For security reasons it is [recommended by Valve](https://developer.valvesoftware.com/wiki/SteamCMD#With_a_Steam_account) that you create a new Steam account just for your dedicated servers. This account *does not* need to own Arma 3. +- For automatic Steam Workshop mod downloading to work, the Steam account *does* need to own Arma 3. However, this is optional functionality, and mods can be manually uploaded to the server if desired. Hosts may feel free to change the "Disable Mod Downloads/Updates" variable to `1` if they would not like to offer it's functionality to clients. +___ +### Server Ports +Default server ports are listed below, but the Main port can be any port. There are three more ports after the Main port are relative to the Main port (For example: The BattlEye port is always 4 ports higher than the main port). **All four ports are required for normal server behavior.** It is [recommended](https://community.bistudio.com/wiki/Arma_3:_Dedicated_Server#Port_Forwarding) that each server be 100 ports separate from each other. + +| Port | Default | +|---------|---------| +| **Arma 3 Game & VON (Main)** | 2302 | +| Steam Query (+1) | 2303 | +| Steam Port (+2) | 2304 | +| BattleEye (+4) | 2306 | + +#### Mods/Plugins may require ports to be added to the server. +___ +### CPU Usage Information +ARMA 3 is mainly CPU intensive. Contrary to popular belief, the server binary *can* run on multiple cores/threads. However, it's ability to manage asynchronous tasks and hyperthread is *very* limited, meaning additional cores/threads reach diminishing returns very quickly. In addition, it's ability to utilize all of the CPU allotted to it for AI processing seems to be limited as well. Therefore, a Headless Client ***and*** a properly written mission file are highly recommended if large amounts of AI units will be used. +___ +### Minimum RAM Requirement +This server requires about 2048 MB of RAM to run properly. If used, every Headless Client uses an additional 2048 MB of RAM as well. +___ +### Minimum Disk Requirement +This server requires just under 10 GB of disk space to safely run properly with no mods. However, mods can easily increase disk usage to 50 GB or more, depending on how many are downloaded. +___ +### Recommended Egg Modifications +The following are highly recommended variable modifications you can make to the egg after importing it to your panel. While viewing this egg, simply go to the "Variables" tab of the egg editor to make these changes. +#### Default Steam Username & Password +- To make deploying servers easy (**or if you are using WHMCS**), it is recommended to edit the default values of "Steam Username" and "Steam Password" to your Steam account dedicated for hosting. This will make all newly installed servers use these credentials. **DO NOT** make these fields visible to the end user so that they can use their own Steam accounts; the panel will save their Steam credentials in **plain text**, which is a BIG NO NO for security and privacy. +#### Restrict Max Players +- If you would like to restrict the maximum number of players that can join your client's server, you can change the permissions of the "Max Players" variable so that clients can only view this value (and not edit it). It's default value can also be changed, or the value can be changed on a server-by-server basis as desired. +___ +### How to Update Egg +If you already have an Arma 3 egg installed on your panel, there are a couple things to consider before updating to this egg: +- The Startup Command has changed, but Pterodactyl currently does not update this across all your existing servers. Servers will still boot with their old Startup Command, but the new HTML Modlist feature will not work, and depreciated variables for config files will be used. Servers will have to be manually updated to the new Startup Command via the Startup tab. +- Startup Variables have been completely rehauled. While most important existing variables have retained their Environment Variable names, a lot of their titles and order have been adjusted. Simply updating your existing egg with this egg may lead to Startup Variables being terribly out of order and cluttered. Therefore, the following steps are recommended to avoid this: + 1. Change the name of your existing Arma 3 egg to "Arma 3 (Old)". + 2. Install this updated egg as a new egg in your nest. + 3. Make any egg modifications you would like. (\*see [Recommended Egg Modifications](#recommended-egg-modifications)) + 4. Change all existing Arma 3 servers to the new egg via the Startup tab. + 5. Delete the old egg. diff --git a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json new file mode 100644 index 00000000..41b90d73 --- /dev/null +++ b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json @@ -0,0 +1,76 @@ +{ + "_comment": "Pterodactyl Satisfactory Egg ~ Kubi, matthewp, and Red-Thirten ~ 2021-10-26", + "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": ".\/FactoryServer.sh -GamePort={{SERVER_PORT}} -ServerQueryPort={{QUERY_PORT}} -BeaconPort={{BEACON_PORT}}", + "config": { + "files": "{}", + "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: ryan@kubiq.io (Kubi), matthew@pterodactyl.io (matthewp), & David Wolfe (Red-Thirten)\r\n## Date: 2021\/10\/26\r\n## License: MIT License\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\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\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 server using SteamCMD\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${APP_ID} 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", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "[REQUIRED] Server Query Port", + "description": "This is the port that you need to enter in the game when you first connect to a dedicated server.", + "env_variable": "QUERY_PORT", + "default_value": "15777", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|min:1024|max:65536" + }, + { + "name": "[REQUIRED] Beacon Port", + "description": "This port's internal opening on this server *must* match it's external opening on your network (ie. If you set this value to 3333, your externally open port, which is linked to this port, must also be 3333). This is also true for the master Game Port.", + "env_variable": "BEACON_PORT", + "default_value": "15000", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|min:1024|max: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": "[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" + } + ] +} \ No newline at end of file From bb10d01f1115d39e7f1300131fceb63a34215524 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Oct 2021 15:45:13 -0700 Subject: [PATCH 02/17] Add Satisfactory to steamcmd_servers README --- game_eggs/steamcmd_servers/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index c7098796..04694fa2 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -82,6 +82,9 @@ This is a collection of servers that use SteamCMD to install. * [Autowipe](rust/rust_autowipe) * [Staging](rust/rust_staging) +## Satisfactory +[Satisfactory](satisfactory) + ## SCP: Secret Laboratory * [SCP: Secret Laboratory](scpsl) * [dedicated](scpsl/dedicated) From a3036cc4fbcda3b3a1bb22bdd6b2d845b12ea98b Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Oct 2021 15:46:02 -0700 Subject: [PATCH 03/17] Add Satisfactory to game_eggs README --- game_eggs/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/game_eggs/README.md b/game_eggs/README.md index f70084ee..01b64fd0 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -124,6 +124,7 @@ * [Rust](steamcmd_servers/rust) * [Autowipe](steamcmd_servers/rust/rust_autowipe) * [Staging](steamcmd_servers/rust/rust_staging) +* [Satisfactory](steamcmd_servers/Satisfactory) * [SCP: Secret Laboratory](steamcmd_servers/scpsl) * [dedicated](steamcmd_servers/scpsl/dedicated) * [multiadmin](steamcmd_servers/scpsl/multiadmin) From 08b00b5e245685e79c658052a4ed7dd64be26f1e Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Oct 2021 15:46:50 -0700 Subject: [PATCH 04/17] Add Satisfactory to eggs README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 50e04b83..a7d1d00d 100644 --- a/README.md +++ b/README.md @@ -195,6 +195,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Rust](game_eggs/steamcmd_servers/rust) * [Autowipe](game_eggs/steamcmd_servers/rust/rust_autowipe) * [Staging](game_eggs/steamcmd_servers/rust/rust_staging) +* [Satisfactory](game_eggs/steamcmd_servers/satisfactory) * [SCP: Secret Laboratory](game_eggs/steamcmd_servers/scpsl) * [dedicated](game_eggs/steamcmd_servers/scpsl/dedicated) * [multiadmin](game_eggs/steamcmd_servers/scpsl/multiadmin) From a93931e9d4da28624d1ae706db4e242526f4c5b8 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Oct 2021 15:47:59 -0700 Subject: [PATCH 05/17] Fix Satisfactory link Accidentally had uppercase "S" in link. --- game_eggs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/README.md b/game_eggs/README.md index 01b64fd0..d059f869 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -124,7 +124,7 @@ * [Rust](steamcmd_servers/rust) * [Autowipe](steamcmd_servers/rust/rust_autowipe) * [Staging](steamcmd_servers/rust/rust_staging) -* [Satisfactory](steamcmd_servers/Satisfactory) +* [Satisfactory](steamcmd_servers/satisfactory) * [SCP: Secret Laboratory](steamcmd_servers/scpsl) * [dedicated](steamcmd_servers/scpsl/dedicated) * [multiadmin](steamcmd_servers/scpsl/multiadmin) From 3b00cdc5b68eb6ecea1b1be659c484c3e83c90e4 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Oct 2021 16:16:09 -0700 Subject: [PATCH 06/17] Update Satisfactory README Removed placeholder and filled in correct information. --- .../steamcmd_servers/satisfactory/README.md | 82 ++++++------------- 1 file changed, 27 insertions(+), 55 deletions(-) diff --git a/game_eggs/steamcmd_servers/satisfactory/README.md b/game_eggs/steamcmd_servers/satisfactory/README.md index 73aa486c..5f93ed2c 100644 --- a/game_eggs/steamcmd_servers/satisfactory/README.md +++ b/game_eggs/steamcmd_servers/satisfactory/README.md @@ -1,5 +1,5 @@ -# Arma 3 -***Updating your Egg? Please see [How to Update Egg](#how-to-update-egg) to avoid any issues!*** +# Satisfactory +***Server version currently marked as experimental by the Satisfactory developers! Egg loads fine, but your mileage may very in-game.*** ___ ### Authors / Contributors @@ -15,21 +15,20 @@ ___ 🔨 - -
Aussie Server Hosts +
+
Kubi

- 💻 - 💡 + 💻 + 💡 - -
Daave +
+
matthewpi

- 💻 - - 💤 + 💻 + 💡 @@ -38,62 +37,35 @@ ___ ___ ### Game Description -From Bohemia Interactive's [Website](https://arma3.com/): -> Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC’s premier military game. Authentic, diverse, open - Arma 3 sends you to war. +From Coffee Stain's [Website](https://www.satisfactorygame.com/): +> 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! ___ ### Egg Capabilities -- Configurable to run 32 or 64-bit versions of the server -- Max Players is configurable and able to be host enforced (\*see [Recommended Egg Modifications](#recommended-egg-modifications)) -- Able to download server updates on startup -- Able to download, update, and load Steam Workshop mods on startup (\*see [Installation Requirements](#installation-requirements)) - - Accepts uploaded HTML modlist files exported from the Arma 3 Launcher to define mods to load on the server. - - Also accepts manually listed mods, CDLCs, and server-side only mods. - - Checks for mod updates against their Steam Workshop page's last update for quick and efficient update checks. - - Automatically moves mod `.bikey`'s to the `/keys/` directory. -- Configurable to download Creator DLCs -- Configurable to run Beta/Performance binaries of the server (if desired; advanced users only) -- Additional [Arma 3 startup parameters](https://community.bistudio.com/wiki/Arma_3_Startup_Parameters) can be added to fine-tune performance -- Configurable to run up to 5 Headless Clients in parallel with the main server (may require additional performance overhead) -- [WHMCS](https://www.whmcs.com/) compatible (\*see [Recommended Egg Modifications](#recommended-egg-modifications)) +- Port configuration for Game, Query, and Beacon ports. +- Configurable to automatically check for server updates on start via SteamCMD. Forcing validation is also configurable. +- Misc. settings listed below can be configured by an admin client via the game's UI, and are currently **not** set via the Egg: + - Server Password + - Admin Password + - Auto-Save on Player Disconnect + - Pause When No Players Online + - ...and possibly more as the client's UI is developed further for more configuration options. ___ ### Installation Requirements -- A valid, **real** Steam account, with **Steam Guard turned off**, is required to install the server (default "anonymous" login cannot be used). For security reasons it is [recommended by Valve](https://developer.valvesoftware.com/wiki/SteamCMD#With_a_Steam_account) that you create a new Steam account just for your dedicated servers. This account *does not* need to own Arma 3. -- For automatic Steam Workshop mod downloading to work, the Steam account *does* need to own Arma 3. However, this is optional functionality, and mods can be manually uploaded to the server if desired. Hosts may feel free to change the "Disable Mod Downloads/Updates" variable to `1` if they would not like to offer it's functionality to clients. +- No major requirements, other than RAM and Disk space noted below. You *do not* need to own the base game to host this server. ___ ### Server Ports -Default server ports are listed below, but the Main port can be any port. There are three more ports after the Main port are relative to the Main port (For example: The BattlEye port is always 4 ports higher than the main port). **All four ports are required for normal server behavior.** It is [recommended](https://community.bistudio.com/wiki/Arma_3:_Dedicated_Server#Port_Forwarding) that each server be 100 ports separate from each other. +Default server ports are listed below, but all can be configured differently (at least according to the [wiki](https://satisfactory.fandom.com/wiki/Dedicated_servers); developers highly recommend using the default ports during the experimental release). **All three ports are required for normal server behavior.** | Port | Default | |---------|---------| -| **Arma 3 Game & VON (Main)** | 2302 | -| Steam Query (+1) | 2303 | -| Steam Port (+2) | 2304 | -| BattleEye (+4) | 2306 | +| **Game Port (Main Server Port in Pterodactyl)** | 7777 | +| Server Query Port | 15777 | +| Beacon Port | 15000 | -#### Mods/Plugins may require ports to be added to the server. -___ -### CPU Usage Information -ARMA 3 is mainly CPU intensive. Contrary to popular belief, the server binary *can* run on multiple cores/threads. However, it's ability to manage asynchronous tasks and hyperthread is *very* limited, meaning additional cores/threads reach diminishing returns very quickly. In addition, it's ability to utilize all of the CPU allotted to it for AI processing seems to be limited as well. Therefore, a Headless Client ***and*** a properly written mission file are highly recommended if large amounts of AI units will be used. ___ ### Minimum RAM Requirement -This server requires about 2048 MB of RAM to run properly. If used, every Headless Client uses an additional 2048 MB of RAM as well. +This server requires a minimum of 4096 MiB of RAM to boot, but the developers recommend 8192 MiB of RAM for 4 players. ___ ### Minimum Disk Requirement -This server requires just under 10 GB of disk space to safely run properly with no mods. However, mods can easily increase disk usage to 50 GB or more, depending on how many are downloaded. +This server requires just under 5 GB of disk space to safely run properly. However, save files could easily surpass this amount, so 7-10 GB is recommended. ___ -### Recommended Egg Modifications -The following are highly recommended variable modifications you can make to the egg after importing it to your panel. While viewing this egg, simply go to the "Variables" tab of the egg editor to make these changes. -#### Default Steam Username & Password -- To make deploying servers easy (**or if you are using WHMCS**), it is recommended to edit the default values of "Steam Username" and "Steam Password" to your Steam account dedicated for hosting. This will make all newly installed servers use these credentials. **DO NOT** make these fields visible to the end user so that they can use their own Steam accounts; the panel will save their Steam credentials in **plain text**, which is a BIG NO NO for security and privacy. -#### Restrict Max Players -- If you would like to restrict the maximum number of players that can join your client's server, you can change the permissions of the "Max Players" variable so that clients can only view this value (and not edit it). It's default value can also be changed, or the value can be changed on a server-by-server basis as desired. -___ -### How to Update Egg -If you already have an Arma 3 egg installed on your panel, there are a couple things to consider before updating to this egg: -- The Startup Command has changed, but Pterodactyl currently does not update this across all your existing servers. Servers will still boot with their old Startup Command, but the new HTML Modlist feature will not work, and depreciated variables for config files will be used. Servers will have to be manually updated to the new Startup Command via the Startup tab. -- Startup Variables have been completely rehauled. While most important existing variables have retained their Environment Variable names, a lot of their titles and order have been adjusted. Simply updating your existing egg with this egg may lead to Startup Variables being terribly out of order and cluttered. Therefore, the following steps are recommended to avoid this: - 1. Change the name of your existing Arma 3 egg to "Arma 3 (Old)". - 2. Install this updated egg as a new egg in your nest. - 3. Make any egg modifications you would like. (\*see [Recommended Egg Modifications](#recommended-egg-modifications)) - 4. Change all existing Arma 3 servers to the new egg via the Startup tab. - 5. Delete the old egg. From b661cd4b8d7f0b940e73885f1826530f59729b11 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Oct 2021 16:45:57 -0700 Subject: [PATCH 07/17] Add "Errors/Warnings" Section to README Added a section detailing some common errors and warnings that can safely be ignored. --- .../steamcmd_servers/satisfactory/README.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/game_eggs/steamcmd_servers/satisfactory/README.md b/game_eggs/steamcmd_servers/satisfactory/README.md index 5f93ed2c..1085002f 100644 --- a/game_eggs/steamcmd_servers/satisfactory/README.md +++ b/game_eggs/steamcmd_servers/satisfactory/README.md @@ -69,3 +69,24 @@ ___ ### Minimum Disk Requirement This server requires just under 5 GB of disk space to safely run properly. However, save files could easily surpass this amount, so 7-10 GB is recommended. ___ +### Errors/Warnings +The following errors or warnings you see in the console can safely be ignored: +```log +steamclient.so: cannot open shared object file: No such file or directory +[S_API] SteamAPI_Init(): Loaded '/home/container/.steam/sdk64/steamclient.so' OK. (First tried local 'steamclient.so') +LogSteamShared: Warning: Steam Dedicated Server API failed to initialize. +``` +The local file of 'steamclient.so' was attempted to be loaded, but could not because it is not present, causing the warning message. However, the backup `/home/container/.steam/sdk64/steamclient.so` is loaded successfully (this is the correct behavior according to the [Wiki](https://satisfactory.fandom.com/wiki/Dedicated_servers)). +```log +...Error: Couldn't find file for package... +``` +```log +...Error: Navmesh bounds are too large!... +``` +```log +...Warning: NiagaraSystem... +``` +```log +LogStreaming: Warning: Failed to read file '../../../FactoryGame/Saved/SaveGames/GameAnalytics.sav' error. +``` +These seem to be common error messages with the current experimental version of the game. From 468aeb3b72fdd5e8251d96c224fc130234187be3 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Oct 2021 19:05:06 -0700 Subject: [PATCH 08/17] Port Info Corrections and Small Changes for README - Fixed misinformation of required ports and made it clear that the default ports are currently required to be used for the server to work. - Fixed typos. - Updated the recommended RAM amount, based off an update to the developer's wiki made today. --- .../steamcmd_servers/satisfactory/README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/game_eggs/steamcmd_servers/satisfactory/README.md b/game_eggs/steamcmd_servers/satisfactory/README.md index 1085002f..01fd8246 100644 --- a/game_eggs/steamcmd_servers/satisfactory/README.md +++ b/game_eggs/steamcmd_servers/satisfactory/README.md @@ -1,5 +1,5 @@ # Satisfactory -***Server version currently marked as experimental by the Satisfactory developers! Egg loads fine, but your mileage may very in-game.*** +***Server version currently marked as experimental by the Satisfactory developers! Egg loads fine, but your mileage may vary in-game.*** ___ ### Authors / Contributors @@ -41,7 +41,7 @@ From Coffee Stain's [Website](https://www.satisfactorygame.com/): > 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! ___ ### Egg Capabilities -- Port configuration for Game, Query, and Beacon ports. +- Configuration of the Server Query port. - Configurable to automatically check for server updates on start via SteamCMD. Forcing validation is also configurable. - Misc. settings listed below can be configured by an admin client via the game's UI, and are currently **not** set via the Egg: - Server Password @@ -50,21 +50,21 @@ ___ - Pause When No Players Online - ...and possibly more as the client's UI is developed further for more configuration options. ___ -### Installation Requirements -- No major requirements, other than RAM and Disk space noted below. You *do not* need to own the base game to host this server. -___ ### Server Ports -Default server ports are listed below, but all can be configured differently (at least according to the [wiki](https://satisfactory.fandom.com/wiki/Dedicated_servers); developers highly recommend using the default ports during the experimental release). **All three ports are required for normal server behavior.** +Default server ports are listed below, and **only** the Server Query port can currently be changed. The current experimental version limits the default Game and Beacon ports from being changed, unless two instances of the server are ran on the **same system** (which cannot be done with Pterodactyl, since every server is ran on it's own containerized system). This is expected to change as the dedicated server is further developed. **All three ports are required to be open for normal server behavior!** -| Port | Default | +| Description | REQUIRED UDP Port | |---------|---------| | **Game Port (Main Server Port in Pterodactyl)** | 7777 | -| Server Query Port | 15777 | +| Server Query Port | 15777 *(Configurable)* | | Beacon Port | 15000 | +___ +### Installation Requirements +- No major requirements, other than RAM and Disk space noted below. You *do not* need to own the base game to host this server. ___ ### Minimum RAM Requirement -This server requires a minimum of 4096 MiB of RAM to boot, but the developers recommend 8192 MiB of RAM for 4 players. +This server requires a minimum of 4096 MiB of RAM to boot, but the developers recommend 6144 to 8192 MiB of RAM for 4 players. ___ ### Minimum Disk Requirement This server requires just under 5 GB of disk space to safely run properly. However, save files could easily surpass this amount, so 7-10 GB is recommended. From 8634ba7d8b3736d8ab7b6aaea3b481262b279668 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Oct 2021 19:24:14 -0700 Subject: [PATCH 09/17] Update egg's port variables - Removed them from view of the end user as they less relevant at the moment (because they cannot be changed from the defaults). - Reworded the Beacon port's description to be more correct and clear. - Temporarily restricted the Beacon port to 15000 because it currently cannot be changed. --- .../satisfactory/egg-satisfactory.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json index 41b90d73..d458ca82 100644 --- a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json +++ b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json @@ -32,18 +32,18 @@ "description": "This is the port that you need to enter in the game when you first connect to a dedicated server.", "env_variable": "QUERY_PORT", "default_value": "15777", - "user_viewable": true, + "user_viewable": false, "user_editable": false, "rules": "required|integer|min:1024|max:65536" }, { "name": "[REQUIRED] Beacon Port", - "description": "This port's internal opening on this server *must* match it's external opening on your network (ie. If you set this value to 3333, your externally open port, which is linked to this port, must also be 3333). This is also true for the master Game Port.", + "description": "This port's default value currently cannot be changed due to the server's experimental status. However, it is left here for posterity, as changing this value is expected to be possible after the developer further develops the dedicated server. This is also true for the main Game Port (must be 7777)!", "env_variable": "BEACON_PORT", "default_value": "15000", - "user_viewable": true, + "user_viewable": false, "user_editable": false, - "rules": "required|integer|min:1024|max:65536" + "rules": "required|integer|min:15000|max:15000" }, { "name": "Automatic Updates", @@ -73,4 +73,4 @@ "rules": "required|integer|min:1" } ] -} \ No newline at end of file +} From a066c373e52cfced7090dd226ff3029d709f47e2 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Oct 2021 19:32:11 -0700 Subject: [PATCH 10/17] Additional Port Clarification in the README - Mentioned only one server can be run on Ptero due to the port limitation. - Added mention that external ports must match internal ports (because the game client only looks for port 7777 at the moment) --- game_eggs/steamcmd_servers/satisfactory/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/satisfactory/README.md b/game_eggs/steamcmd_servers/satisfactory/README.md index 01fd8246..c73f5922 100644 --- a/game_eggs/steamcmd_servers/satisfactory/README.md +++ b/game_eggs/steamcmd_servers/satisfactory/README.md @@ -1,5 +1,6 @@ # Satisfactory ***Server version currently marked as experimental by the Satisfactory developers! Egg loads fine, but your mileage may vary in-game.*** +**Note: At this time, you can only run *one* Satisfactory server on your Pterodactyl panel. See [Server Ports](#server-ports) for more info.** ___ ### Authors / Contributors @@ -51,7 +52,7 @@ ___ - ...and possibly more as the client's UI is developed further for more configuration options. ___ ### Server Ports -Default server ports are listed below, and **only** the Server Query port can currently be changed. The current experimental version limits the default Game and Beacon ports from being changed, unless two instances of the server are ran on the **same system** (which cannot be done with Pterodactyl, since every server is ran on it's own containerized system). This is expected to change as the dedicated server is further developed. **All three ports are required to be open for normal server behavior!** +Default server ports are listed below, and **only** the Server Query port can currently be changed. The current experimental version limits the default Game and Beacon ports from being changed, unless two instances of the server are ran on the same system (which cannot be done with Pterodactyl, since every server is ran on it's own containerized system). This is expected to change as the dedicated server is further developed. Also, your internal ports **must match** your external ports on your network (ie. you can't have an external port of 7778 forwarded to your 7777 internal port; they must match). **All three ports are required to be open for normal server behavior!** | Description | REQUIRED UDP Port | |---------|---------| From e80ee5ac8eaa4b4a027bcbb3a70d61e2f7d36840 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Oct 2021 19:45:25 -0700 Subject: [PATCH 11/17] Small Fixes to README - Added correct anchor to wiki link on the SteamAPI library error - Added new line to top warning lines. --- game_eggs/steamcmd_servers/satisfactory/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/satisfactory/README.md b/game_eggs/steamcmd_servers/satisfactory/README.md index c73f5922..285533ca 100644 --- a/game_eggs/steamcmd_servers/satisfactory/README.md +++ b/game_eggs/steamcmd_servers/satisfactory/README.md @@ -1,5 +1,6 @@ # Satisfactory ***Server version currently marked as experimental by the Satisfactory developers! Egg loads fine, but your mileage may vary in-game.*** + **Note: At this time, you can only run *one* Satisfactory server on your Pterodactyl panel. See [Server Ports](#server-ports) for more info.** ___ ### Authors / Contributors @@ -77,7 +78,7 @@ steamclient.so: cannot open shared object file: No such file or directory [S_API] SteamAPI_Init(): Loaded '/home/container/.steam/sdk64/steamclient.so' OK. (First tried local 'steamclient.so') LogSteamShared: Warning: Steam Dedicated Server API failed to initialize. ``` -The local file of 'steamclient.so' was attempted to be loaded, but could not because it is not present, causing the warning message. However, the backup `/home/container/.steam/sdk64/steamclient.so` is loaded successfully (this is the correct behavior according to the [Wiki](https://satisfactory.fandom.com/wiki/Dedicated_servers)). +The local file of 'steamclient.so' was attempted to be loaded, but could not because it is not present, causing the warning message. However, the backup `/home/container/.steam/sdk64/steamclient.so` is loaded successfully (this is the correct behavior according to the [Wiki](https://satisfactory.fandom.com/wiki/Dedicated_servers#SteamAPI_library_error)). ```log ...Error: Couldn't find file for package... ``` From 58eadedb6984de6a4d90f3d859d82b912603373c Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Oct 2021 20:12:46 -0700 Subject: [PATCH 12/17] Add Save File Info to README - Added save file location information to the readme (since the location differs on Ptero compared to the wiki). - Additional formatting tweaks. --- game_eggs/steamcmd_servers/satisfactory/README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/satisfactory/README.md b/game_eggs/steamcmd_servers/satisfactory/README.md index 285533ca..5a202df4 100644 --- a/game_eggs/steamcmd_servers/satisfactory/README.md +++ b/game_eggs/steamcmd_servers/satisfactory/README.md @@ -63,7 +63,7 @@ Default server ports are listed below, and **only** the Server Query port can cu ___ ### Installation Requirements -- No major requirements, other than RAM and Disk space noted below. You *do not* need to own the base game to host this server. +No major requirements, other than RAM and Disk space noted below. You *do not* need to own the base game to host this server. ___ ### Minimum RAM Requirement This server requires a minimum of 4096 MiB of RAM to boot, but the developers recommend 6144 to 8192 MiB of RAM for 4 players. @@ -71,14 +71,23 @@ ___ ### Minimum Disk Requirement This server requires just under 5 GB of disk space to safely run properly. However, save files could easily surpass this amount, so 7-10 GB is recommended. ___ +### Save File Location +[According to the developer](https://www.youtube.com/watch?v=Nn-1s87JJxc), save files will be able to be download by clients via their game in the future. Until then, below is the save file location incase you would like to upload or download a save file (note that it is different from their wiki): + +`/home/container/.config/Epic/FactoryGame/Saved/SaveGames/server` + +Single-player save files can be uploaded here and are playable if desired. +___ ### Errors/Warnings The following errors or warnings you see in the console can safely be ignored: + ```log steamclient.so: cannot open shared object file: No such file or directory [S_API] SteamAPI_Init(): Loaded '/home/container/.steam/sdk64/steamclient.so' OK. (First tried local 'steamclient.so') LogSteamShared: Warning: Steam Dedicated Server API failed to initialize. ``` The local file of 'steamclient.so' was attempted to be loaded, but could not because it is not present, causing the warning message. However, the backup `/home/container/.steam/sdk64/steamclient.so` is loaded successfully (this is the correct behavior according to the [Wiki](https://satisfactory.fandom.com/wiki/Dedicated_servers#SteamAPI_library_error)). + ```log ...Error: Couldn't find file for package... ``` From dc403d418cba5376a7872eaee1737c7a04c4ec9d Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Oct 2021 21:47:27 -0700 Subject: [PATCH 13/17] Fix Install Script using Wrong App ID Variable Name Changed `APP_ID` to `SRCDS_APPID` in the install script to match the corresponding variable. --- game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json index d458ca82..b4222b1d 100644 --- a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json +++ b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json @@ -21,7 +21,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n## Authors: ryan@kubiq.io (Kubi), matthew@pterodactyl.io (matthewp), & David Wolfe (Red-Thirten)\r\n## Date: 2021\/10\/26\r\n## License: MIT License\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\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\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 server using SteamCMD\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${APP_ID} 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", + "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n## Authors: ryan@kubiq.io (Kubi), matthew@pterodactyl.io (matthewp), & David Wolfe (Red-Thirten)\r\n## Date: 2021\/10\/26\r\n## License: MIT License\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\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\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 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", "container": "debian:buster-slim", "entrypoint": "bash" } From 2085de58374b92d1c10de9567438f7aac3df5442 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Wed, 27 Oct 2021 02:12:07 -0700 Subject: [PATCH 14/17] Migrate Install Script to use Debian Yolk Image - Changed the Install Script Container to use Pterodactyl Debian Installer Yolk image. - Removed the apt update code that is already handled by the installer image. --- game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json index b4222b1d..7440ddd7 100644 --- a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json +++ b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json @@ -21,8 +21,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n## Authors: ryan@kubiq.io (Kubi), matthew@pterodactyl.io (matthewp), & David Wolfe (Red-Thirten)\r\n## Date: 2021\/10\/26\r\n## License: MIT License\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\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\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 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", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n## Authors: ryan@kubiq.io (Kubi), matthew@pterodactyl.io (matthewp), & David Wolfe (Red-Thirten)\r\n## Date: 2021\/10\/26\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\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 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", + "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } }, From 9057ce2aa23c9f2de1446f1fe2c2208dab96799e Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Wed, 27 Oct 2021 02:18:33 -0700 Subject: [PATCH 15/17] Small fixes to Save Location section in README Fixed typo --- game_eggs/steamcmd_servers/satisfactory/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/satisfactory/README.md b/game_eggs/steamcmd_servers/satisfactory/README.md index 5a202df4..b09070ef 100644 --- a/game_eggs/steamcmd_servers/satisfactory/README.md +++ b/game_eggs/steamcmd_servers/satisfactory/README.md @@ -72,7 +72,7 @@ ___ This server requires just under 5 GB of disk space to safely run properly. However, save files could easily surpass this amount, so 7-10 GB is recommended. ___ ### Save File Location -[According to the developer](https://www.youtube.com/watch?v=Nn-1s87JJxc), save files will be able to be download by clients via their game in the future. Until then, below is the save file location incase you would like to upload or download a save file (note that it is different from their wiki): +[According to the developer](https://www.youtube.com/watch?v=Nn-1s87JJxc), save files will be able to be uploaded and downloaded by clients via their game client in the future. Until then, below is the save file location incase you would like to upload or download a save file manually (note that it is different from their wiki): `/home/container/.config/Epic/FactoryGame/Saved/SaveGames/server` From 127bea6a4dd253f2238935d83ce52e4281b49adc Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Wed, 27 Oct 2021 16:11:17 -0700 Subject: [PATCH 16/17] Custom Ports Update + More Egg: - Changed the startup command to call the binary directly to avoid end-users changing the provided bash file to run whatever they'd like. - Changed the install script to check that the server successfully installed, and makes the server binary executable. Also added Software-Noob as a contributor. - Fixed the startup command to support custom ports. The SERVER_PORT variable is now tied to the Server Query Port (because that is what clients use to connect to the server). The GAME_PORT variable was added for the Game Port. Also changed the Game Port to use the correct flag. - Changed the Server Query Port variable to be the Game Port and provided a better description. - Updated the Beacon Port description to be more accurate. Also unlocked it's restriction to port 15000 because it can be changed now. README: - Updated any text mentioning restricted ports to text explaining their configuration. Also used clearer verbiage for the port table. - Added Software-Noob as a contributor. - Added info on "initializing"/"claiming" a server. - Added info on the command line. - Added "SDL" warning as a warning to safely ignore. --- .../steamcmd_servers/satisfactory/README.md | 39 +++++++++++++------ .../satisfactory/egg-satisfactory.json | 18 ++++----- 2 files changed, 37 insertions(+), 20 deletions(-) diff --git a/game_eggs/steamcmd_servers/satisfactory/README.md b/game_eggs/steamcmd_servers/satisfactory/README.md index b09070ef..31e0ae66 100644 --- a/game_eggs/steamcmd_servers/satisfactory/README.md +++ b/game_eggs/steamcmd_servers/satisfactory/README.md @@ -1,7 +1,5 @@ # Satisfactory ***Server version currently marked as experimental by the Satisfactory developers! Egg loads fine, but your mileage may vary in-game.*** - -**Note: At this time, you can only run *one* Satisfactory server on your Pterodactyl panel. See [Server Ports](#server-ports) for more info.** ___ ### Authors / Contributors @@ -32,6 +30,14 @@ ___ 💻 💡 + + +
Software-Noob +
+
+ 💻 + 💡 + @@ -43,7 +49,7 @@ From Coffee Stain's [Website](https://www.satisfactorygame.com/): > 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! ___ ### Egg Capabilities -- Configuration of the Server Query port. +- Configuration of the Server Query, Beacon, and Game ports. - Configurable to automatically check for server updates on start via SteamCMD. Forcing validation is also configurable. - Misc. settings listed below can be configured by an admin client via the game's UI, and are currently **not** set via the Egg: - Server Password @@ -53,17 +59,19 @@ ___ - ...and possibly more as the client's UI is developed further for more configuration options. ___ ### Server Ports -Default server ports are listed below, and **only** the Server Query port can currently be changed. The current experimental version limits the default Game and Beacon ports from being changed, unless two instances of the server are ran on the same system (which cannot be done with Pterodactyl, since every server is ran on it's own containerized system). This is expected to change as the dedicated server is further developed. Also, your internal ports **must match** your external ports on your network (ie. you can't have an external port of 7778 forwarded to your 7777 internal port; they must match). **All three ports are required to be open for normal server behavior!** +Default server ports are listed below, but all three ports can be changed freely. Note: The Primary/Default/"Game" Port for your server in Pterodactyl will be your Server Query port. It is recommended to distance ports of other running Satisfactory servers in Pterodactyl by increments of 100 (it is currently unknown what the minimum increment is, but an increment of +1 caused cross-server talk in testing). Also, your internal ports **must match** your external ports on your network (ie. you can't have an external port of 7778 forwarded to your 7777 internal port; they must match). **All three ports are required to be open for normal server behavior!** -| Description | REQUIRED UDP Port | +| Port | Default (UDP) | |---------|---------| -| **Game Port (Main Server Port in Pterodactyl)** | 7777 | -| Server Query Port | 15777 *(Configurable)* | -| Beacon Port | 15000 | +| **Server Query (Primary Port in Pterodactyl)** | 15777 | +| Beacon | 15000 | +| Game | 7777 | ___ -### Installation Requirements -No major requirements, other than RAM and Disk space noted below. You *do not* need to own the base game to host this server. +### Installation Requirements/Instructions +- No major requirements, other than RAM and Disk space noted below. +- You *do not* need to own the base game to host this server. +- However, to fully "initialize" your server, a client who owns the game must log into the server to "claim" it and create a new session. The generated session will not be written to disk until the first save occurs. ___ ### Minimum RAM Requirement This server requires a minimum of 4096 MiB of RAM to boot, but the developers recommend 6144 to 8192 MiB of RAM for 4 players. @@ -72,12 +80,15 @@ ___ This server requires just under 5 GB of disk space to safely run properly. However, save files could easily surpass this amount, so 7-10 GB is recommended. ___ ### Save File Location -[According to the developer](https://www.youtube.com/watch?v=Nn-1s87JJxc), save files will be able to be uploaded and downloaded by clients via their game client in the future. Until then, below is the save file location incase you would like to upload or download a save file manually (note that it is different from their wiki): +[According to the developer](https://www.youtube.com/watch?v=Nn-1s87JJxc), save files will be able to be uploaded and downloaded by clients via their game client in the future. Until then, below is the save file location in case you would like to upload or download a save file manually (note that it is different from their wiki): `/home/container/.config/Epic/FactoryGame/Saved/SaveGames/server` Single-player save files can be uploaded here and are playable if desired. ___ +### Console +Currently, it does not appear that commands sent through the console register with the server. The in-game client command line can be used instead (but valid commands are currently unknown at this time). +___ ### Errors/Warnings The following errors or warnings you see in the console can safely be ignored: @@ -88,6 +99,12 @@ LogSteamShared: Warning: Steam Dedicated Server API failed to initialize. ``` The local file of 'steamclient.so' was attempted to be loaded, but could not because it is not present, causing the warning message. However, the backup `/home/container/.steam/sdk64/steamclient.so` is loaded successfully (this is the correct behavior according to the [Wiki](https://satisfactory.fandom.com/wiki/Dedicated_servers#SteamAPI_library_error)). +```log +Warning: failed to init SDL thread priority manager: SDL not found +``` + +This is a common error with Steam related software on Linux, but can safely be ignored. + ```log ...Error: Couldn't find file for package... ``` diff --git a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json index 7440ddd7..4150fa86 100644 --- a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json +++ b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json @@ -12,7 +12,7 @@ "ghcr.io\/pterodactyl\/games:source" ], "file_denylist": [], - "startup": ".\/FactoryServer.sh -GamePort={{SERVER_PORT}} -ServerQueryPort={{QUERY_PORT}} -BeaconPort={{BEACON_PORT}}", + "startup": ".\/Engine\/Binaries\/Linux\/UE4Server-Linux-Shipping FactoryGame -ServerQueryPort={{SERVER_PORT}} -Port={{GAME_PORT}} -BeaconPort={{BEACON_PORT}}", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Engine Initialization\"\r\n}", @@ -21,29 +21,29 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n## Authors: ryan@kubiq.io (Kubi), matthew@pterodactyl.io (matthewp), & David Wolfe (Red-Thirten)\r\n## Date: 2021\/10\/26\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\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 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", + "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n## Authors: ryan@kubiq.io (Kubi), matthew@pterodactyl.io (matthewp), admin@softwarenoob.com (Software-Noob) & David Wolfe (Red-Thirten)\r\n## Date: 2021\/10\/27\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\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 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\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\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 you need to enter in the game when you first connect to a dedicated server.", - "env_variable": "QUERY_PORT", - "default_value": "15777", + "name": "[REQUIRED] Game Port", + "description": "This is the port that the game client uses to connect to the game world (not the lobby). 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 (Query) Port!", + "env_variable": "GAME_PORT", + "default_value": "7777", "user_viewable": false, "user_editable": false, "rules": "required|integer|min:1024|max:65536" }, { "name": "[REQUIRED] Beacon Port", - "description": "This port's default value currently cannot be changed due to the server's experimental status. However, it is left here for posterity, as changing this value is expected to be possible after the developer further develops the dedicated server. This is also true for the main Game Port (must be 7777)!", + "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": false, "user_editable": false, - "rules": "required|integer|min:15000|max:15000" + "rules": "required|integer|min:1024|max:65536" }, { "name": "Automatic Updates", @@ -73,4 +73,4 @@ "rules": "required|integer|min:1" } ] -} +} \ No newline at end of file From 40e73bb26b358cae42c71ba2de73c4171c051f48 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Thu, 28 Oct 2021 16:27:30 -0700 Subject: [PATCH 17/17] Add Max Players & Revert Port Change Egg: - Reverted the startup command so that the game port is the primary port and QUERY_PORT is the Server Query Port. I honestly think it will be confusing either way, so it's a wash for me; but ultimately, if Ptero calls the primary port the "Game Port" in Allocation Management, it should be Satisfactory's "game" port. - Added the capability to override the server's default max players of 4. This consists of a new variable, default config file creation during install (because the server doesn't auto-create it), and a Configuration Files replacement on boot to accommodate variable changes. - Reverted Game Port variable to Server Query Port variable. - Changed port rules to use the more intuitive `between` rule. README: - Added Zarklord as a contributor. - Added Max Players as an Egg Capability. - Rewrote the Server Ports section (again) to accommodate the egg change and be as clear as possible. - Added warning about stopping the server and saves. - Added note to Minimum RAM Requirement that large saves can also cause excessive RAM usage. - Updated Console Commands section with newly published Wiki information. - Updated `steamclient.so` Wiki reference link (which will probably break again soon because the Wiki is being changed almost every hour now). Co-Authored-By: Zarklord <1622280+Zarklord@users.noreply.github.com> --- .../steamcmd_servers/satisfactory/README.md | 31 ++++++++++++++----- .../satisfactory/egg-satisfactory.json | 29 +++++++++++------ 2 files changed, 42 insertions(+), 18 deletions(-) diff --git a/game_eggs/steamcmd_servers/satisfactory/README.md b/game_eggs/steamcmd_servers/satisfactory/README.md index 31e0ae66..e8c1782a 100644 --- a/game_eggs/steamcmd_servers/satisfactory/README.md +++ b/game_eggs/steamcmd_servers/satisfactory/README.md @@ -38,6 +38,14 @@ ___ 💻 💡 + + +
Zarklord +
+
+ 💻 + 💡 + @@ -51,6 +59,7 @@ ___ ### Egg Capabilities - Configuration of the Server Query, Beacon, and Game ports. - Configurable to automatically check for server updates on start via SteamCMD. Forcing validation is also configurable. +- *[Experimental]* Max player configuration. - Misc. settings listed below can be configured by an admin client via the game's UI, and are currently **not** set via the Egg: - Server Password - Admin Password @@ -59,35 +68,41 @@ ___ - ...and possibly more as the client's UI is developed further for more configuration options. ___ ### Server Ports -Default server ports are listed below, but all three ports can be changed freely. Note: The Primary/Default/"Game" Port for your server in Pterodactyl will be your Server Query port. It is recommended to distance ports of other running Satisfactory servers in Pterodactyl by increments of 100 (it is currently unknown what the minimum increment is, but an increment of +1 caused cross-server talk in testing). Also, your internal ports **must match** your external ports on your network (ie. you can't have an external port of 7778 forwarded to your 7777 internal port; they must match). **All three ports are required to be open for normal server behavior!** +- Default server ports are listed below, but all three ports can be changed freely. +- **Note:** The Primary/Default/Game Port for your server in Pterodactyl will be Satisfactory's `-Port=????` game port, even though clients will **connect with the Query port**. +- It is recommended to distance ports of other running Satisfactory servers in Pterodactyl by **increments of 100** (it is currently unknown what the minimum increment is, but an increment of +1 caused cross-server talk in testing). Also, your internal ports **must match** your external ports on your network (ie. you can't have an external port of 7778 forwarded to your 7777 internal port; they must match). +- ***All three ports are required to be open for normal server behavior!*** | Port | Default (UDP) | |---------|---------| -| **Server Query (Primary Port in Pterodactyl)** | 15777 | +| **Game (Primary Port in Pterodactyl)** | 7777 | | Beacon | 15000 | -| Game | 7777 | +| Server Query | 15777 | ___ ### Installation Requirements/Instructions - No major requirements, other than RAM and Disk space noted below. - You *do not* need to own the base game to host this server. - However, to fully "initialize" your server, a client who owns the game must log into the server to "claim" it and create a new session. The generated session will not be written to disk until the first save occurs. +- Currently, there is no way to save the session on server stop. Therefore, ensure the session is saved or the last player has disconnected (causing an auto-save) before stopping the server. ___ ### Minimum RAM Requirement -This server requires a minimum of 4096 MiB of RAM to boot, but the developers recommend 6144 to 8192 MiB of RAM for 4 players. +This server requires a minimum of 4096 MiB of RAM to boot, but the developers recommend 6144 to 8192 MiB of RAM for 4 players or large save files. ___ ### Minimum Disk Requirement This server requires just under 5 GB of disk space to safely run properly. However, save files could easily surpass this amount, so 7-10 GB is recommended. ___ ### Save File Location -[According to the developer](https://www.youtube.com/watch?v=Nn-1s87JJxc), save files will be able to be uploaded and downloaded by clients via their game client in the future. Until then, below is the save file location in case you would like to upload or download a save file manually (note that it is different from their wiki): +[According to the developer](https://www.youtube.com/watch?v=Nn-1s87JJxc), save files will be able to be uploaded and downloaded by clients via their game client in the future. Until then, below is the save file location in case you would like to upload or download a save file manually: `/home/container/.config/Epic/FactoryGame/Saved/SaveGames/server` Single-player save files can be uploaded here and are playable if desired. ___ -### Console -Currently, it does not appear that commands sent through the console register with the server. The in-game client command line can be used instead (but valid commands are currently unknown at this time). +### Console Commands +As of v5.0.4, 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#Commands) ___ ### Errors/Warnings The following errors or warnings you see in the console can safely be ignored: @@ -97,7 +112,7 @@ steamclient.so: cannot open shared object file: No such file or directory [S_API] SteamAPI_Init(): Loaded '/home/container/.steam/sdk64/steamclient.so' OK. (First tried local 'steamclient.so') LogSteamShared: Warning: Steam Dedicated Server API failed to initialize. ``` -The local file of 'steamclient.so' was attempted to be loaded, but could not because it is not present, causing the warning message. However, the backup `/home/container/.steam/sdk64/steamclient.so` is loaded successfully (this is the correct behavior according to the [Wiki](https://satisfactory.fandom.com/wiki/Dedicated_servers#SteamAPI_library_error)). +The local file of 'steamclient.so' was attempted to be loaded, but could not because it is not present, causing the warning message. However, the backup `/home/container/.steam/sdk64/steamclient.so` is loaded successfully (this is the correct behavior according to the [Wiki](https://satisfactory.fandom.com/wiki/Dedicated_servers#No_Such_File_or_Directory)). ```log Warning: failed to init SDL thread priority manager: SDL not found diff --git a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json index 4150fa86..0e4a7f55 100644 --- a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json +++ b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json @@ -1,5 +1,5 @@ { - "_comment": "Pterodactyl Satisfactory Egg ~ Kubi, matthewp, and Red-Thirten ~ 2021-10-26", + "_comment": "Pterodactyl Satisfactory Egg ~ Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord ~ 2021-10-28", "meta": { "version": "PTDL_v1", "update_url": null @@ -12,29 +12,29 @@ "ghcr.io\/pterodactyl\/games:source" ], "file_denylist": [], - "startup": ".\/Engine\/Binaries\/Linux\/UE4Server-Linux-Shipping FactoryGame -ServerQueryPort={{SERVER_PORT}} -Port={{GAME_PORT}} -BeaconPort={{BEACON_PORT}}", + "startup": ".\/Engine\/Binaries\/Linux\/UE4Server-Linux-Shipping FactoryGame -Port={{SERVER_PORT}} -ServerQueryPort={{QUERY_PORT}} -BeaconPort={{BEACON_PORT}}", "config": { - "files": "{}", + "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: ryan@kubiq.io (Kubi), matthew@pterodactyl.io (matthewp), admin@softwarenoob.com (Software-Noob) & David Wolfe (Red-Thirten)\r\n## Date: 2021\/10\/27\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\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 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\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\necho -e \"\\n\\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: 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] Game Port", - "description": "This is the port that the game client uses to connect to the game world (not the lobby). 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 (Query) Port!", - "env_variable": "GAME_PORT", - "default_value": "7777", + "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": false, "user_editable": false, - "rules": "required|integer|min:1024|max:65536" + "rules": "required|integer|between:1024,65536" }, { "name": "[REQUIRED] Beacon Port", @@ -43,7 +43,7 @@ "default_value": "15000", "user_viewable": false, "user_editable": false, - "rules": "required|integer|min:1024|max:65536" + "rules": "required|integer|between:1024,65536" }, { "name": "Automatic Updates", @@ -63,6 +63,15 @@ "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.",