This Egg may boot properly, but it appears that the Linux version of Arma's Headless Client will not actually connect properly to the main server unless it is on the local host of the main server (connecting via 127.0.0.1). Therefore, this issue, along with HC functionality being added to the main Arma 3 Egg, I propose that this egg be retired.
- Fixed startup command to properly escape quotation characters so that they are actually included in the startup command after it is parsed by the image.
- Changed the "Arma 3 Dedicated Server App ID" variable to be an integer instead of numeric to prevent decimal numbers.
- Changed the "Server Binary" variable to only allow commonly accepted server binaries. This helps prevent the end user from running an arbitrary script or binary on the container, increasing security.
- Added "-noLogs" as a recommended value for the "Extra Startup Parameters" variable to prevent console spam (and potential Pterodactyl rate limiting) out of the box.
- Changed the variable name "MODS" to "MODIFICATIONS". This fixes an odd bug where, if the variable name is specifically "MODS", it will intermittently not be read as an environment variable. No, I have no idea why this works. Yes, it makes no sense, but it works.
- Moved the "Extra Flags for SteamCMD" variable down in the list, and marked it as an advanced setting.
- Made it clear that the Mod Auto-Downloader option may not be able to download particularly large mods, due to a limitation of SteamCMD's +workshop_download_item function.
- Integrated Arma 3's Headless Client (HC) functionality into the egg, so that it can run HCs in parallel with the main server, within the same container (the image handles all this under the hood). Allows the user to specify how many HCs they want to run (up to 5), and what password to connect with (if the server is password locked).
- Generally cleaned it up and made it more clear what a Headless Client does.
- Added Installation Requirements
- Cleaned up, and removed spelling errors in, the Additional Settings section.
- Updated to latest Pterodactyl egg format
- Made startup command a little more robust, and added a server binary variable to allow for the choice of 32-bit, 64-bit, and profiling binaries to be run within the same egg (as opposed to a bunch of separate eggs).
- Install script was adjusted slightly: No longer does missing username check, because "anonymous" user cannot be used to download Arma 3. Also adds 64-bit libraries. Lastly, allows for extra steam flags to be passed to allow beta builds to be downloaded.
-- Variables --
- Changed game ID to be numeric only. Also hidden from end-user for cleanliness.
- Added more verbose descriptions for Steam username and password fields to make it more clear what is required, and what is visible to the end-user.
- Added server binary field to allow flexibility.
- Removed Steam Auth Code field because it isn't really practical.
- Cleaned up Connect IP, Connect Password, Mods, and ServerMods fields.
- Added server update and mods download/update fields.
- Added "Set Mods to Lowercase" field incase the user manually uploads a mod, which likely has uppercase files/folders. The Linux Arma 3 server does not like to load any files/folders with uppercase characters.
- Added Installation Requirements.
- Added CPU usage information.
- Added more info and removed spelling errors from Additional Settings.
- Corrected default server ports list.
- Cleaned up informational comments.
- Reorganized the list of settings to be more readable and grouped related settings. More advanced (less touched) settings were moved to the bottom of the file.
- Changed some default values to better ones.
- Added some missing, yet common, settings.
- Cleaned up informational comments at the top of file.
- Left "suggested" values, but commented most of them out to allow a fresh install to have developer default values. Advanced users can uncomment settings after installation if they so choose to.
- Removed defunct or non-relevant values.
- Updated to latest Pterodactyl egg format
- Made startup command a little more robust, and added a server binary variable to allow for the choice of 32-bit, 64-bit, and profiling binaries to be run within the same egg (as opposed to a bunch of separate eggs).
- Adjusted startup complete message to more accurately represent when the server is started. It also is not dependent on if the user uses the -noLogs extra startup flag (which the previous complete message did).
- Install script was adjusted slightly: No longer does missing username check, because "anonymous" user cannot be used to download Arma 3. Also sets correct permissions for the .cfg files downloaded. Adds 64-bit libraries. Lastly, allows for extra steam flags to be passed to allow beta builds to be downloaded.
-- Variables --
- Changed game ID to be numeric only. Also hidden from end-user for cleanliness.
- Added more verbose descriptions for Steam username and password fields to make it more clear what is required, and what is visible to the end-user.
- Added server binary field to allow flexibility.
- Removed Steam Auth Code field because it isn't really practical.
- Cleaned up Mods, ServerMods, server.cfg, and basic.cfg fields.
- Added server update and mods download/update fields.
- Added "Set Mods to Lowercase" field incase the user manually uploads a mod, which likely has uppercase files/folders. The Linux Arma 3 server does not like to load any files/folders with uppercase characters.
pause_when_empty should by default be true, it is the default and intended behavior for 99% of servers, along with that, most players(myself included), expect that default configs will match the standard default of the game, and this caught me off guard to see the game was still running.
Geyser is actually cross platform, not just bedrock.
Also, dragonproxy is entirely abandoned in favour of geyser so removed all instances of dragonproxy and just left a msg saying use geyser in the top level readme.