From e7a6d147c5fb3491e3d09a55484d10359b9cfe2b Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Thu, 31 Dec 2020 10:45:06 +0100 Subject: [PATCH 01/22] Add notice for internal Lavalink Server Port --- bots/discord/redbot/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bots/discord/redbot/README.md b/bots/discord/redbot/README.md index 165b391e..6dfd2521 100644 --- a/bots/discord/redbot/README.md +++ b/bots/discord/redbot/README.md @@ -5,6 +5,8 @@ A multifunction Discord bot ### Server Ports No port are required to run Red. +if you want to use the internal Lavalink Server, you need to allocate port 2333 as primary + ### Additional Requirements When using the Audio Cog the bot will attempt to save files to /tmp resulting in a disk space error. To resolve this error you must increase the size of `tmpfs` using custom container policy. From 54c6dd33968f321c9a0450d362f82055f82f0b2d Mon Sep 17 00:00:00 2001 From: tmunsch Date: Mon, 11 Jan 2021 15:32:15 -0500 Subject: [PATCH 02/22] added Update feature Added startup type update to update minio version Color coded console output to make things more readable --- storage/minio/minio.sh | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/storage/minio/minio.sh b/storage/minio/minio.sh index 48b5818e..777e5abb 100644 --- a/storage/minio/minio.sh +++ b/storage/minio/minio.sh @@ -1,39 +1,51 @@ #!/bin/bash ################################## -echo Starting up.... -echo "Startup Type: $STARTUP_TYPE" +echo "$(tput setaf 2)Starting up...." +echo "Startup Type: $(tput setaf 2)$STARTUP_TYPE" if [ -f "keys/key.txt" ]; then -echo "Key file detected..." +echo "$(tput setaf 2)Key file detected..." export MINIO_ACCESS_KEY=`cat keys/key.txt` else echo minioadmin > keys/key.txt -echo "No key file detected...Preparing First Time Boot" +echo "$(tput setaf 3)No key file detected...Preparing First Time Boot" fi if [ -f "keys/secret.txt" ]; then -echo "Secret file detected..." +echo "$(tput setaf 2)Secret file detected..." export MINIO_SECRET_KEY=`cat keys/secret.txt` else echo minioadmin > keys/secret.txt echo "No secret file detected...Preparing First Time Boot" fi if [ -f "keys/oldsecret.txt" ]; then -echo "Old secret file detected..." +echo "$(tput setaf 1)Old secret file detected..." export MINIO_SECRET_KEY_OLD=`cat keys/oldsecret.txt` fi if [ -f "keys/oldkey.txt" ]; then -echo "Old key file detected..." +echo "$(tput setaf 1)Old key file detected..." export MINIO_ACCESS_KEY_OLD=`cat keys/oldkey.txt` fi if [ -f "keys/justrotated.txt" ]; then -echo "Previous key rotation detected...." -echo "Clearing the Lanes...." +echo "$(tput setaf 3)Previous key rotation detected...." +echo "$(tput setaf 3)Clearing the Lanes...." unset MINIO_ACCESS_KEY_OLD unset MINIO_SECRET_KEY_OLD +echo "$(tput setaf 2)Lanes Cleared!" STARTUP_TYPE=normal rm keys/justrotated.txt rm keys/oldsecret.txt rm keys/oldkey.txt fi + +########################################## +if [ -z "$STARTUP_TYPE" ] || [ "$STARTUP_TYPE" == "update" ]; then +echo "$(tput setaf 3)Performing update...." +echo "$(tput setaf 1)Removing old minio version" +rm minio +echo "$(tput setaf 3)Downloading new minio version" +wget https://dl.min.io/server/minio/release/linux-amd64/minio +chmod +x minio +echo "$(tput setaf 2)Update Complete" +fi ########################################## if [ -z "$STARTUP_TYPE" ] || [ "$STARTUP_TYPE" == "rotate" ]; then touch keys/justrotated.txt @@ -45,12 +57,13 @@ export MINIO_ACCESS_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | h echo $MINIO_ACCESS_KEY > keys/key.txt export MINIO_SECRET_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) echo $MINIO_SECRET_KEY > keys/secret.txt -echo Your New Access Key is: $MINIO_ACCESS_KEY -echo Your New Secret Key is: $MINIO_SECRET_KEY -echo Your Old Access Key is: $MINIO_ACCESS_KEY_OLD -echo Your Old Access Key is: $MINIO_SECRET_KEY_OLD -echo Booting... +echo "Your New Access Key is: $(tput setaf 2)$MINIO_ACCESS_KEY" +echo "Your New Secret Key is: $(tput setaf 2)$MINIO_SECRET_KEY" +echo "Your Old Access Key is: $(tput setaf 3)$MINIO_ACCESS_KEY_OLD" +echo "Your Old Access Key is: $(tput setaf 3)$MINIO_SECRET_KEY_OLD" +echo "$(tput setaf 2)Booting..." ./minio server data --address 0.0.0.0:$SERVER_PORT else +echo "$(tput setaf 2)Booting..." ./minio server data --address 0.0.0.0:$SERVER_PORT fi From 035d2b7b00761fd5955a5c5202bc40bcc7aeffef Mon Sep 17 00:00:00 2001 From: tmunsch Date: Mon, 11 Jan 2021 15:34:30 -0500 Subject: [PATCH 03/22] added update startup feature added update startup feature --- storage/minio/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/storage/minio/README.md b/storage/minio/README.md index da88976a..73fcc597 100644 --- a/storage/minio/README.md +++ b/storage/minio/README.md @@ -3,6 +3,8 @@ ## Features Auto generate keys on server creation bypassing default minio keys +## Update +Auto update minio to latest version using "update" startup feature Automatic Key rotation using "rotate" startup feature From 155b522f6f882e5c32c38a19a82e25d6e1e746a6 Mon Sep 17 00:00:00 2001 From: tmunsch Date: Mon, 11 Jan 2021 15:35:55 -0500 Subject: [PATCH 04/22] added update startup variable added update startup variable --- storage/minio/egg-minio-s3.json | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/storage/minio/egg-minio-s3.json b/storage/minio/egg-minio-s3.json index 9c48eb32..a491acea 100644 --- a/storage/minio/egg-minio-s3.json +++ b/storage/minio/egg-minio-s3.json @@ -1,14 +1,17 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1" + "version": "PTDL_v1", + "update_url": null }, - "exported_at": "2020-12-14T05:29:26+02:00", + "exported_at": "2021-01-11T15:35:14-05:00", "name": "Minio S3", "author": "accounts@bofanodes.io", "description": "MinIO is a cloud storage server compatible with Amazon S3, released under Apache License v2. As an object store, MinIO can store unstructured data such as photos, videos, log files, backups and container images. The maximum size of an object is 5TB.", "features": null, - "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu", + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:ubuntu" + ], "startup": ".\/minio.sh", "config": { "files": "{}", @@ -31,7 +34,7 @@ "default_value": "normal", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:normal,rotate" + "rules": "required|string|in:normal,rotate,update" } ] -} \ No newline at end of file +} From cad0a655c861b6ea7fbb752cb8e11d1679edc1f4 Mon Sep 17 00:00:00 2001 From: tmunsch Date: Mon, 11 Jan 2021 15:36:55 -0500 Subject: [PATCH 05/22] fixed description for startup variable --- storage/minio/egg-minio-s3.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/minio/egg-minio-s3.json b/storage/minio/egg-minio-s3.json index a491acea..9ef0e0cf 100644 --- a/storage/minio/egg-minio-s3.json +++ b/storage/minio/egg-minio-s3.json @@ -29,7 +29,7 @@ "variables": [ { "name": "Startup Type", - "description": "normal or rotate", + "description": "normal,rotate,update", "env_variable": "STARTUP_TYPE", "default_value": "normal", "user_viewable": true, From 969195b4d6d2d28a25ab9e98c6c1f18713d3d51e Mon Sep 17 00:00:00 2001 From: TuEye Date: Fri, 15 Jan 2021 17:02:43 +0100 Subject: [PATCH 06/22] * Added Factorio with integrated factorio-mod-updater to automatically update your mods when reinstalling * Added explanation to Factorio README.md * Added no entry to Main README.md --- README.md | 4 +- factorio/README.md | 3 +- .../egg-factorio-modupdate.json | 121 ++++++++++++++++++ 3 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 factorio/factorio-modupdate/egg-factorio-modupdate.json diff --git a/README.md b/README.md index 595f80b4..0fa14875 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,9 @@ If you are reading this it looks like you are looking to add an egg to your serv [ET Legacy](/enemy_territory/etlegacy) -[Factorio](/factorio/factorio) +[Factorio](/factorio) +* [Vanilla](/factorio/factorio) +* [ModUpdate](/factorio/factorio-modupdate) [Grand Theft Auto](/gta) * GTA V diff --git a/factorio/README.md b/factorio/README.md index 34228fe6..360437cc 100644 --- a/factorio/README.md +++ b/factorio/README.md @@ -1,7 +1,8 @@ # Factorio #### The Factorio Server -The server supports mods +The server supports mods. +The factorio-modupdate eggs uses the factorio-mod-updater (https://github.com/pdemonaco/factorio-mod-updater) to update your mods when ReInstalling the Server. #### from the developers diff --git a/factorio/factorio-modupdate/egg-factorio-modupdate.json b/factorio/factorio-modupdate/egg-factorio-modupdate.json new file mode 100644 index 00000000..ea6f7d1a --- /dev/null +++ b/factorio/factorio-modupdate/egg-factorio-modupdate.json @@ -0,0 +1,121 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2021-01-15T16:32:57+01:00", + "name": "Factorio-ModUpdate", + "author": "tueye@tuworld.de", + "description": "The vanilla Factorio server. With automatic Mod Updates after ReInstall.\r\n\r\nhttps:\/\/www.factorio.com\/", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:base_debian" + ], + "startup": ".\/bin\/x64\/factorio --port {{SERVER_PORT}} --server-settings data\/server-settings.json --start-server {{SAVE_NAME}}.zip", + "config": { + "files": "{\r\n \"data\/server-settings.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"description\": \"{{server.build.env.SERVER_DESC}}\",\r\n \"max_players\": \"{{server.build.env.MAX_SLOTS}}\",\r\n \"username\": \"{{server.build.env.SERVER_USERNAME}}\",\r\n \"token\": \"{{server.build.env.SERVER_TOKEN}}\",\r\n \"autosave_interval\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"autosave_slots\": \"{{server.build.env.SAVE_SLOTS}}\",\r\n \"afk_autokick_interval\": \"{{server.build.env.AFK_KICK}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Hosting game at\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"factorio-current.log\"\r\n}", + "stop": "\/quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Factorio Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update \r\napt install -y curl tar xz-utils python3 python3-requests jq\r\n\r\nlatest_ModUpdate=$(curl --silent \"https:\/\/api.github.com\/repos\/pdemonaco\/factorio-mod-updater\/tags\" | jq -r '.[0].name')\r\n\r\nVERSION_JSON=$(curl -sSL https:\/\/factorio.com\/api\/latest-releases)\r\n\r\nlatest_stable=$(echo $VERSION_JSON | jq -r '.stable.headless')\r\nlatest_experimental=$(echo $VERSION_JSON | jq -r '.experimental.headless')\r\n\r\nif [ -z \"${FACTORIO_VERSION}\" ] || [ \"${FACTORIO_VERSION}\" == \"latest\" ]; then\r\n DL_VERSION=$latest_stable\r\nelif [ \"${FACTORIO_VERSION}\" == \"experimental\" ]; then\r\n DL_VERSION=$latest_experimental\r\nelse\r\n DL_VERSION=${FACTORIO_VERSION}\r\nfi\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho -e \"\\n running 'curl -sL https:\/\/www.factorio.com\/get-download\/${DL_VERSION}\/headless\/linux64 -o factorio-${DL_VERSION}' \\n\"\r\n\r\ncurl -sL https:\/\/www.factorio.com\/get-download\/${DL_VERSION}\/headless\/linux64 -o factorio-${DL_VERSION}\r\n\r\ntar -xf factorio-${DL_VERSION} --strip-components=1 -C \/mnt\/server\r\n\r\nrm factorio-${DL_VERSION}\r\n\r\nif [ -e data\/map-gen-settings.json ]; then\r\n echo \"map-gen exists\"\r\nelse\r\n echo \"copying map-gen default settings\"\r\n mv data\/map-gen-settings.example.json data\/map-gen-settings.json\r\nfi\r\n\r\nif [ -e data\/server-settings.json ]; then\r\n echo \"server settings exists\"\r\nelse\r\n echo \"copying server default settings\"\r\n mv data\/server-settings.example.json data\/server-settings.json\r\nfi\r\n\r\nif [ -e map-settings.json ]; then\r\n echo \"map settings exists\"\r\nelse\r\n echo \"copying map default settings\"\r\n mv data\/map-settings.example.json data\/map-settings.json\r\nfi\r\n\r\nif [ -e ${SAVE_NAME}.zip ]; then\r\n echo \"save file exists\"\r\nelse\r\n .\/bin\/x64\/factorio --create ${SAVE_NAME}\r\n chmod o+w ${SAVE_NAME}.zip\r\nfi\r\n\r\n# Download Mod Updater\r\necho -e \"\\n running 'curl -sL https:\/\/github.com\/pdemonaco\/factorio-mod-updater\/archive\/${latest_ModUpdate}.tar.gz -o factorio-MU-${latest_ModUpdate}' \\n\"\r\n\r\ncurl -sL https:\/\/github.com\/pdemonaco\/factorio-mod-updater\/archive\/${latest_ModUpdate}.tar.gz -o factorio-MU-${latest_ModUpdate}\r\n\r\ntar -xf factorio-MU-${latest_ModUpdate} -C \/mnt\/server\r\n\r\nrm factorio-MU-${latest_ModUpdate}\r\n\r\n# Run Mod Updater\r\n.\/factorio-mod-updater-${latest_ModUpdate}\/mod_updater.py -s \/mnt\/server\/data\/server-settings.json -m \/mnt\/server\/mods --fact-path \/mnt\/server\/bin\/x64\/factorio --update", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Factorio Version", + "description": "Which version of Factorio to install and use.", + "env_variable": "FACTORIO_VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|between:3,12" + }, + { + "name": "Maximum Slots", + "description": "Total number of slots to allow on the server.", + "env_variable": "MAX_SLOTS", + "default_value": "20", + "user_viewable": true, + "user_editable": false, + "rules": "required|numeric|digits_between:1,3" + }, + { + "name": "Save Name", + "description": "The save name for the server.", + "env_variable": "SAVE_NAME", + "default_value": "gamesave", + "user_viewable": true, + "user_editable": true, + "rules": "alpha_dash|between:1,100" + }, + { + "name": "Server Token", + "description": "Your factorio.com token, it is required for your server to be visible in the public server list.", + "env_variable": "SERVER_TOKEN", + "default_value": "undefined", + "user_viewable": true, + "user_editable": true, + "rules": "alpha_num|max:100" + }, + { + "name": "Server Name", + "description": "Name of the game as it will appear in the game listing", + "env_variable": "SERVER_NAME", + "default_value": "Factorio Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:100" + }, + { + "name": "Server Description", + "description": "Description of the game that will appear in the listing.", + "env_variable": "SERVER_DESC", + "default_value": "Description", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:200" + }, + { + "name": "Server Username", + "description": "Username used for the server", + "env_variable": "SERVER_USERNAME", + "default_value": "unnamed", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:40" + }, + { + "name": "Auto Save Interval", + "description": "Time between auto saves specified in minutes", + "env_variable": "SAVE_INTERVAL", + "default_value": "10", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|digits_between:1,3" + }, + { + "name": "Auto Save Slots", + "description": "The number of auto saves to keep.", + "env_variable": "SAVE_SLOTS", + "default_value": "5", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|digits_between:1,3" + }, + { + "name": "AFK Kick", + "description": "Time specified in minutes to kick AFK players.\r\n0 is off", + "env_variable": "AFK_KICK", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|digits_between:1,3" + } + ] +} \ No newline at end of file From f47e893a6dde531697c51c9c117f475741b381ce Mon Sep 17 00:00:00 2001 From: TuEye Date: Fri, 15 Jan 2021 17:14:34 +0100 Subject: [PATCH 07/22] * Fixed Typo --- factorio/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/factorio/README.md b/factorio/README.md index 360437cc..714d66d2 100644 --- a/factorio/README.md +++ b/factorio/README.md @@ -2,7 +2,7 @@ #### The Factorio Server The server supports mods. -The factorio-modupdate eggs uses the factorio-mod-updater (https://github.com/pdemonaco/factorio-mod-updater) to update your mods when ReInstalling the Server. +The factorio-modupdate egg uses the factorio-mod-updater (https://github.com/pdemonaco/factorio-mod-updater) to update your mods when ReInstalling the Server. #### from the developers From 887b9e48534a12acb44d6cb486a4699fa4656c84 Mon Sep 17 00:00:00 2001 From: Ian Date: Thu, 21 Jan 2021 11:43:29 +0100 Subject: [PATCH 08/22] phantombot.tv switched to github.io Changing Link in .json --- bots/twitch/phantombot/egg-phantom-bot.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bots/twitch/phantombot/egg-phantom-bot.json b/bots/twitch/phantombot/egg-phantom-bot.json index a5e44ee3..e10dc43e 100644 --- a/bots/twitch/phantombot/egg-phantom-bot.json +++ b/bots/twitch/phantombot/egg-phantom-bot.json @@ -62,7 +62,7 @@ }, { "name": "Your OAuth Token", - "description": "Please note, this OAuth token needs to be generated while you're logged in into your caster account.\r\nIf you're not logged in as the caster, please go to https:\/\/twitch.tv\/ and login as the caster.\r\nGet the your OAuth token here: https:\/\/phantombot.tv\/oauth\/", + "description": "Please note, this OAuth token needs to be generated while you're logged in into your caster account.\r\nIf you're not logged in as the caster, please go to https:\/\/twitch.tv\/ and login as the caster.\r\nGet the your OAuth token here: https:\/\/phantombot.github.io\/PhantomBot\/oauth\/", "env_variable": "USER_OAUTH_TOKEN", "default_value": "", "user_viewable": true, @@ -115,4 +115,4 @@ "rules": "max:64" } ] -} \ No newline at end of file +} From fec2e7e9cdedfc90c58923fccb92ede56a5c0176 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Fri, 22 Jan 2021 16:40:07 +0100 Subject: [PATCH 09/22] Update Image for CryoFall to Dotnet5 --- cryofall/cryofall/egg-cryo-fall.json | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/cryofall/cryofall/egg-cryo-fall.json b/cryofall/cryofall/egg-cryo-fall.json index 4f17f02e..8a912438 100644 --- a/cryofall/cryofall/egg-cryo-fall.json +++ b/cryofall/cryofall/egg-cryo-fall.json @@ -1,13 +1,18 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1" + "version": "PTDL_v1", + "update_url": null }, - "exported_at": "2020-10-17T02:36:40+00:00", + "exported_at": "2021-01-22T16:39:06+01:00", "name": "CryoFall", "author": "contact@zennodes.dk", "description": "NOTE: For now you have to change SettingsServer.xml under CryoFall_Server_v(Version)_NetCore\/Data\/SettingsServer.xml\r\n\r\nCryoFall is a sci-fi multiplayer colony simulation survival game set on a forgotten planet in a distant future.\r\n\r\nJoin the vast world of CryoFall together with other survivors to rebuild your civilization from scratch. Start with primitive technology and simple tools and use them to progress towards modern industrial might and even beyond, eventually reaching space-age technology only seen in science fiction.\r\n\r\nCryoFall can be played either as a relaxed PvE experience with no competition or as a brutal and unforgiving PvP. Make your choice and join one of many available servers with different game modes or host your own and invite your friends to join you!\r\n\r\nBuild your house or a large base together with other players. Dig wells and create farms to sustain basic needs. Build vehicles to explore the world faster. Establish basics of science, all the way from medicine and chemistry to fuel creation and even lithium extraction to create electronic devices. Cook food or prepare drinks to sell them from vending machines in your store.\r\n\r\nBuild factories to produce on an industrial scale: Weapons and defense systems, bionic implants to augment yourself, even large war machines and artillery guns to use against the biggest of opponents", - "image": "quay.io\/parkervcp\/pterodactyl-images:debian_dotnet", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:debian_dotnet-5" + ], + "file_denylist": "", "startup": "dotnet Binaries\/Server\/CryoFall_Server.dll loadOrNew", "config": { "files": "{}", From acae68e998641a8deccbe747d4941ae592127cc5 Mon Sep 17 00:00:00 2001 From: Alex <11708877+acl1704@users.noreply.github.com> Date: Sun, 24 Jan 2021 10:09:42 -0800 Subject: [PATCH 10/22] still broken due to unusable api and jenkins url --- minecraft/java/magma/egg-magma.json | 50 +++++++++++++++-------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/minecraft/java/magma/egg-magma.json b/minecraft/java/magma/egg-magma.json index c77aebdf..9b087283 100644 --- a/minecraft/java/magma/egg-magma.json +++ b/minecraft/java/magma/egg-magma.json @@ -1,17 +1,19 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1" + "version": "PTDL_v1", + "update_url": null }, - "exported_at": "2020-03-28T14:53:55-04:00", + "exported_at": "2021-01-24T10:08:35-08:00", "name": "Magma", "author": "support@pterodactyl.io", "description": "Magma is most powerful Forge server providing you with Forge mods and Bukkit Plugins using Spigot and Paper for Performance Optimization and Stability.", - "image": "quay.io\/pterodactyl\/core:java", + "features": null, "images": [ "quay.io\/pterodactyl\/core:java", "quay.io\/pterodactyl\/core:java-11" ], + "file_denylist": "", "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", "config": { "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", @@ -21,9 +23,9 @@ }, "scripts": { "installation": { - "script": "## this is a simple script to use the github API for release versions.\r\n## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way)\r\n## this supports using oauth\/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)\r\n## if you are getting hit with GitHub API limit issues then you need to have the user and token set.\r\n\r\napk add --no-cache curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n## get latest download link\r\necho -e \"Set to download the ${BUILD} build\"\r\nif [ \"${BUILD}\" == \"dev\" ]; then\r\n echo -e \"dev tag is ${tag}\"\r\nfi\r\n\r\ncase ${BUILD} in\r\n\r\n \"recommended\" | \"stable\" | \"latest\")\r\n DOWNLOAD_URL=\"https:\/\/api.magmafoundation.org\/api\/resources\/magma\/${VANILLA_VERSION}\/stable\/latest\/download\"\r\n ;;\r\n\r\n \"dev\")\r\n DOWNLOAD_URL=\"https:\/\/api.magmafoundation.org\/api\/resources\/magma\/${VANILLA_VERSION}\/dev\/${TAG}\/download\"\r\n ;;\r\n\r\n *)\r\n DOWNLOAD_URL=\"https:\/\/api.magmafoundation.org\/api\/resources\/magma\/${VANILLA_VERSION}\/stable\/latest\/download\"\r\n ;;\r\nesac\r\n\r\necho -e \"Download URL is ${DOWNLOAD_URL}\"\r\n\r\n## validate download link\r\nif [ ! -z \"${DOWNLOAD_URL}\" ] ; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\n# Adding '.jar' if it isn't part of the file name\r\nif [[ ${SERVER_JARFILE} == *\\.jar ]]; then\r\n echo -e \"adding.jar to server file name\"\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\n## mv old server files\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n echo -e \"moving old server.jar\"\r\n mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\n## download files\r\necho -e \"running: curl -sSL -o ${SERVER_JARFILE} ${DOWNLOAD_LINK}\"\r\ncurl -sSL -o ${SERVER_JARFILE} ${DOWNLOAD_LINK}\r\n\r\necho -e \"Install Complete\"", - "container": "alpine:3.10", - "entrypoint": "ash" + "script": "apt update\r\napt install -y curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n## get latest download link\r\necho -e \"Set to download the ${BUILD} build\"\r\nif [ \"${BUILD}\" == \"dev\" ]; then\r\n echo -e \"dev tag is ${tag}\"\r\nfi\r\n\r\nif [ \"${VANILLA_VERSION}\" == \"1.12\" ]; then\r\n if [ ! -z ${BUILD_NUMBER} ]; then\r\n DOWNLOAD_LINK=https:\/\/ci.hexeption.dev\/job\/Magma%20Foundation\/job\/Magma\/job\/master\/${BUILD_NUMBER}\/artifact\/\r\n else\r\n DOWNLOAD_LINK=https:\/\/ci.hexeption.dev\/job\/Magma%20Foundation\/job\/Magma\/job\/master\/lastSuccessfulBuild\/artifact\/\r\n fi\r\nfi\r\n\r\nif [ \"${VANILLA_VERSION}\" == \"1.15\" ]; then\r\n if [ ! -z ${BUILD_NUMBER} ]; then\r\n DOWNLOAD_LINK=https:\/\/ci.hexeption.dev\/job\/Magma%20Foundation\/job\/Magma-1.15.x\/job\/1.15.x\/${BUILD_NUMBER}\/artifact\/\r\n else\r\n DOWNLOAD_LINK=https:\/\/ci.hexeption.dev\/job\/Magma%20Foundation\/job\/Magma-1.15.x\/job\/1.15.x\/lastSuccessfulBuild\/artifact\/\r\n fi\r\nfi\r\n\r\necho -e \"Download URL is ${DOWNLOAD_LINK}\"\r\n\r\n## validate download link\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ] ; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_LINK}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_LINK}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\n## mv old server files\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n echo -e \"moving old server.jar\"\r\n mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\n## download files\r\necho -e \"running: curl -sSL -o ${SERVER_JARFILE} ${DOWNLOAD_LINK}\"\r\ncurl -s -o ${SERVER_JARFILE} -sSL ${DOWNLOAD_LINK}\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/server.jar ]; then\r\n echo \"!!! Error downloading build version ${BUILD_VERSION} !!!\"\r\n exit\r\nfi\r\n\r\necho -e \"Install Complete\"", + "container": "debian:buster-slim", + "entrypoint": "bash" } }, "variables": [ @@ -32,36 +34,36 @@ "description": "The name of the server jarfile to run the server with.", "env_variable": "SERVER_JARFILE", "default_value": "server.jar", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": false, + "user_editable": false, "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" }, { "name": "Server Version", - "description": "The version of Minecraft Vanilla to install.\r\n\r\nOnly version currently supported is 1.12.2 as that is all there are builds for.", + "description": "The version of Minecraft to install.\r\n\r\nOnly versions supported are 1.12 and 1.15.", "env_variable": "VANILLA_VERSION", - "default_value": "1.12.2", - "user_viewable": 1, - "user_editable": 1, + "default_value": "1.12", + "user_viewable": true, + "user_editable": true, "rules": "required|string|between:3,15" }, { - "name": "Magma Build", - "description": "What version of magma to download.\r\n\r\nrecommended, stable, latest = current stable\r\ndev = latest dev build", - "env_variable": "BUILD", + "name": "Magma Version", + "description": "The Magma version to download.\r\n\r\nValid types: latest", + "env_variable": "VERSION", "default_value": "latest", - "user_viewable": 1, - "user_editable": 1, + "user_viewable": true, + "user_editable": true, "rules": "required|string|max:20" }, { - "name": "Magma Dev Tag", - "description": "The dev tagged version to download. default is latest.", - "env_variable": "TAG", - "default_value": "latest", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:20" + "name": "Build Number", + "description": "Optional. Specify build number. Overrides Version.", + "env_variable": "BUILD_NUMBER", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20" } ] } \ No newline at end of file From c6efd310d4da6f83dfe9275de6391810a3e9e9b6 Mon Sep 17 00:00:00 2001 From: Alex <11708877+acl1704@users.noreply.github.com> Date: Mon, 25 Jan 2021 03:08:43 -0800 Subject: [PATCH 11/22] fix download link --- minecraft/java/magma/egg-magma.json | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/minecraft/java/magma/egg-magma.json b/minecraft/java/magma/egg-magma.json index 9b087283..597260f6 100644 --- a/minecraft/java/magma/egg-magma.json +++ b/minecraft/java/magma/egg-magma.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-01-24T10:08:35-08:00", + "exported_at": "2021-01-25T03:08:06-08:00", "name": "Magma", "author": "support@pterodactyl.io", "description": "Magma is most powerful Forge server providing you with Forge mods and Bukkit Plugins using Spigot and Paper for Performance Optimization and Stability.", @@ -23,7 +23,7 @@ }, "scripts": { "installation": { - "script": "apt update\r\napt install -y curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n## get latest download link\r\necho -e \"Set to download the ${BUILD} build\"\r\nif [ \"${BUILD}\" == \"dev\" ]; then\r\n echo -e \"dev tag is ${tag}\"\r\nfi\r\n\r\nif [ \"${VANILLA_VERSION}\" == \"1.12\" ]; then\r\n if [ ! -z ${BUILD_NUMBER} ]; then\r\n DOWNLOAD_LINK=https:\/\/ci.hexeption.dev\/job\/Magma%20Foundation\/job\/Magma\/job\/master\/${BUILD_NUMBER}\/artifact\/\r\n else\r\n DOWNLOAD_LINK=https:\/\/ci.hexeption.dev\/job\/Magma%20Foundation\/job\/Magma\/job\/master\/lastSuccessfulBuild\/artifact\/\r\n fi\r\nfi\r\n\r\nif [ \"${VANILLA_VERSION}\" == \"1.15\" ]; then\r\n if [ ! -z ${BUILD_NUMBER} ]; then\r\n DOWNLOAD_LINK=https:\/\/ci.hexeption.dev\/job\/Magma%20Foundation\/job\/Magma-1.15.x\/job\/1.15.x\/${BUILD_NUMBER}\/artifact\/\r\n else\r\n DOWNLOAD_LINK=https:\/\/ci.hexeption.dev\/job\/Magma%20Foundation\/job\/Magma-1.15.x\/job\/1.15.x\/lastSuccessfulBuild\/artifact\/\r\n fi\r\nfi\r\n\r\necho -e \"Download URL is ${DOWNLOAD_LINK}\"\r\n\r\n## validate download link\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ] ; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_LINK}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_LINK}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\n## mv old server files\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n echo -e \"moving old server.jar\"\r\n mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\n## download files\r\necho -e \"running: curl -sSL -o ${SERVER_JARFILE} ${DOWNLOAD_LINK}\"\r\ncurl -s -o ${SERVER_JARFILE} -sSL ${DOWNLOAD_LINK}\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/server.jar ]; then\r\n echo \"!!! Error downloading build version ${BUILD_VERSION} !!!\"\r\n exit\r\nfi\r\n\r\necho -e \"Install Complete\"", + "script": "apt update\r\napt install -y curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\nif [ ! -z ${MC_VERSION} ]; then\r\n DOWNLOAD_LINK=https:\/\/api.magmafoundation.org\/api\/resources\/magma\/${MC_VERSION}\/dev\/latest\/download\r\nelse\r\n DOWNLOAD_LINK=https:\/\/api.magmafoundation.org\/api\/resources\/magma\/1.12.2\/dev\/latest\/download\r\nfi\r\n\r\necho -e \"Download URL is ${DOWNLOAD_LINK}\"\r\n\r\n## validate download link\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ] ; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_LINK}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_LINK}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\n## mv old server files\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n echo -e \"moving old server.jar\"\r\n mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\n## download files\r\necho -e \"running: curl -sSL -o ${SERVER_JARFILE} ${DOWNLOAD_LINK}\"\r\ncurl -s -o ${SERVER_JARFILE} -sSL ${DOWNLOAD_LINK}\r\n\r\necho -e \"Install Complete\"", "container": "debian:buster-slim", "entrypoint": "bash" } @@ -39,27 +39,9 @@ "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" }, { - "name": "Server Version", - "description": "The version of Minecraft to install.\r\n\r\nOnly versions supported are 1.12 and 1.15.", - "env_variable": "VANILLA_VERSION", - "default_value": "1.12", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|between:3,15" - }, - { - "name": "Magma Version", - "description": "The Magma version to download.\r\n\r\nValid types: latest", - "env_variable": "VERSION", - "default_value": "latest", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|max:20" - }, - { - "name": "Build Number", - "description": "Optional. Specify build number. Overrides Version.", - "env_variable": "BUILD_NUMBER", + "name": "Minecraft Version", + "description": "Optional.\r\n\r\nSpecify vanilla version other than default 1.12.2.", + "env_variable": "MC_VERSION", "default_value": "", "user_viewable": true, "user_editable": true, From d2599218772e797dd61b702ff92bc78ab0dc7582 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Jan 2021 13:59:45 -0800 Subject: [PATCH 12/22] Update README.md - Removed unneeded 64-bit egg reference. --- steamcmd_servers/arma/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/steamcmd_servers/arma/README.md b/steamcmd_servers/arma/README.md index 15e5389c..affb973f 100644 --- a/steamcmd_servers/arma/README.md +++ b/steamcmd_servers/arma/README.md @@ -4,5 +4,4 @@ ARMA is a series of first-person tactical military shooters, originally released ## Arma 3 * [Arma 3](arma3) -* [Arma 3 64 Bit](arma3_x64) -* [Arma 3 Headless Client](arma3_headless_client) \ No newline at end of file +* [Arma 3 Headless Client](arma3_headless_client) From 5c2f1019d58a6640cd7c24a60d1ddcfcc0cc77c9 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Jan 2021 14:02:53 -0800 Subject: [PATCH 13/22] Delete steamcmd_servers/arma/arma3_x64 directory - 64-bit directory no longer needed; 64-bit functionality integrated into base arma egg/image. --- steamcmd_servers/arma/arma3_x64/README.md | 20 --- .../arma/arma3_x64/egg-arma3-64-bit.json | 109 ------------ .../arma/arma3_x64/egg-arma3-config/basic.cfg | 83 --------- .../arma3_x64/egg-arma3-config/server.cfg | 158 ------------------ 4 files changed, 370 deletions(-) delete mode 100644 steamcmd_servers/arma/arma3_x64/README.md delete mode 100644 steamcmd_servers/arma/arma3_x64/egg-arma3-64-bit.json delete mode 100644 steamcmd_servers/arma/arma3_x64/egg-arma3-config/basic.cfg delete mode 100644 steamcmd_servers/arma/arma3_x64/egg-arma3-config/server.cfg diff --git a/steamcmd_servers/arma/arma3_x64/README.md b/steamcmd_servers/arma/arma3_x64/README.md deleted file mode 100644 index 15eb3296..00000000 --- a/steamcmd_servers/arma/arma3_x64/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Arma 3 -### From their [Site](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. - -### Minimum RAM warning -This server requires about 2048m to run properly. ARMA 3 is more CPU intensive though. - -### Additional settings -Additional server flags can be found [here](https://community.bistudio.com/wiki/Arma_3_Startup_Parameters). -This can help is you see the server using to many cores/threads on the server. - -### Server Ports -Ports required to run the server in a table format. - -| Port | default | -|---------|---------| -| Game | 2302-2306 | -| BattleEye | 2344-2345 | - -#### Mods/Plugins may require ports to be added to the server. diff --git a/steamcmd_servers/arma/arma3_x64/egg-arma3-64-bit.json b/steamcmd_servers/arma/arma3_x64/egg-arma3-64-bit.json deleted file mode 100644 index a31e703d..00000000 --- a/steamcmd_servers/arma/arma3_x64/egg-arma3-64-bit.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2020-11-18T10:58:51-05:00", - "name": "Arma 3 (64-bit)", - "author": "brycea@terrahost.cloud", - "description": "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.", - "features": null, - "image": "quay.io\/terrahost\/pterodactyl-images:game_arma3_x64", - "startup": ".\/arma3server_x64 -ip=0.0.0.0 -port={{SERVER_PORT}} -profiles=.\/profiles -bepath=.\/battleye -cfg={{BASIC}} -config={{CONFIG}} {{CUSTOM}} -mod={{MODS}} -serverMod={{SERVERMODS}}", - "config": { - "files": "{}", - "startup": "{\r\n \"done\": \"Connected to Steam servers\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": true,\r\n \"location\": \"latest.log\"\r\n}", - "stop": "^C" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/bash\r\n## install required packages to install arma\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates\r\n## 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\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\n## needs to be used for steamcmd to operate correctly\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n## install arma\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n# 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\nchmod +x \/mnt\/server\/arma3server_x64\r\n# doesn't actually work with current 64 bit wrapper\r\nchmod +x \/mnt\/server\/arma3server", - "container": "ubuntu:20.04", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "Game AppID", - "description": "", - "env_variable": "SRCDS_APPID", - "default_value": "233780", - "user_viewable": true, - "user_editable": false, - "rules": "required|numeric" - }, - { - "name": "Steam Username", - "description": "Used for installation", - "env_variable": "STEAM_USER", - "default_value": "anonymous", - "user_viewable": true, - "user_editable": false, - "rules": "required|string" - }, - { - "name": "Steam Password", - "description": "", - "env_variable": "STEAM_PASS", - "default_value": "!xNfMpAN*Lr3iMsJ", - "user_viewable": true, - "user_editable": false, - "rules": "nullable|string" - }, - { - "name": "Server Configuration File", - "description": "https:\/\/community.bistudio.com\/wiki\/server.cfg", - "env_variable": "CONFIG", - "default_value": "server.cfg", - "user_viewable": true, - "user_editable": true, - "rules": "string|nullable" - }, - { - "name": "Basic Network Config", - "description": "Network Configuration", - "env_variable": "BASIC", - "default_value": "basic.cfg", - "user_viewable": true, - "user_editable": true, - "rules": "string|nullable" - }, - { - "name": "Check for Updates", - "description": "Check for updates on server start.\r\n1 True | 0 False", - "env_variable": "UPDATE", - "default_value": "0", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|numeric" - }, - { - "name": "Mods", - "description": "Client mods with the -mods startup option", - "env_variable": "MODS", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string" - }, - { - "name": "Server Mods", - "description": "Server-sided mods with the -serverMods startup option.", - "env_variable": "SERVERMODS", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string" - }, - { - "name": "Extra Flags for SteamCMD", - "description": "Typically used for grabbing beta builds.\r\nExample: -beta profiling -betapassword CautionSpecialProfilingAndTestingBranchArma3", - "env_variable": "EXTRA_FLAGS", - "default_value": "", - "user_viewable": true, - "user_editable": false, - "rules": "nullable|string" - } - ] -} \ No newline at end of file diff --git a/steamcmd_servers/arma/arma3_x64/egg-arma3-config/basic.cfg b/steamcmd_servers/arma/arma3_x64/egg-arma3-config/basic.cfg deleted file mode 100644 index 7b5a1c99..00000000 --- a/steamcmd_servers/arma/arma3_x64/egg-arma3-config/basic.cfg +++ /dev/null @@ -1,83 +0,0 @@ -// **************************************************************************** -// * -// Arma 3 - basic.cfg * -// Version 060116 * -// * -// **************************************************************************** - -// Defines network tuning parameters -// -// This file is to be passed to the -cfg parameter on the command line for the server -// See http://community.bistudio.com/wiki/basic.cfg -// The following settings are the suggested settings - -// BANDWIDTH SETTINGS - -// Bandwidth the server is guaranteed to have (in bps) -// General guideline is NumberOfPlayers * 256kb -// Default: 131072 -MinBandwidth=5120000; -// Bandwidth the server can never go above (in bps) -// For a single server, use full network speed; decrease when running multiple servers -MaxBandwidth=10240000; - -// PACKET SETTINGS - -// Maximum number of packets per frame. -// Increasing the value potentially decreases lag, but increases desync -// Default: 128 -MaxMsgSend=2048; -// Maximum payload of guaranteed packet (in b) -// Small messages are packed to larger packets -// Guaranteed packets are used for non-repetitive events, like shooting -// Lower value means more packets are sent, so less events will get combined -// Default: 512 -MaxSizeGuaranteed=512; -// Maximum payload of non-guaranteed packet (in b) -// Increasing this value may improve bandwidth requirement, but may also increase lag -// Largest factor in desync -// Guidance is half of MaxSizeGuaranteed -// Default: 256 -MaxSizeNonguaranteed=256; -// Maximal size of a packet sent over the network -// Only necessary if ISP forces lower packet size and there are connectivity issues -// Default: 1400 -// class sockets{maxPacketSize=1400}; - -// SMOOTHNESS SETTINGS - -// Minimal error required to send network updates for far units -// Smaller values will make for smoother movement at long ranges, but will increase network traffic -// Default: 0.003 -MinErrorToSend=0.01; -// Minimal error required to send network updates for near units -// Using larger value can reduce traffic sent for near units -// Also controls client to server traffic -// Default: 0.01 -MinErrorToSendNear=0.02; - -// GEOLOCATION SETTINGS - -// Server latitude -serverLatitude=52; -serverLatitudeAuto=52; - -// Server Longitude -serverLongitude=0; -serverLongitudeAuto=0; -// MISC -// View Distance (not sure if this actually works) -viewDistance=10000; - -// Maximum size (in b) for custom face or sound files -// Default: 0 -MaxCustomFileSize=65536; -// Server language -language="English"; -steamLanguage="English"; -// Adapter -adapter=-1; -// Windowed mode -Windowed=0; - -3D_Performance=1.000000; \ No newline at end of file diff --git a/steamcmd_servers/arma/arma3_x64/egg-arma3-config/server.cfg b/steamcmd_servers/arma/arma3_x64/egg-arma3-config/server.cfg deleted file mode 100644 index 2615bf70..00000000 --- a/steamcmd_servers/arma/arma3_x64/egg-arma3-config/server.cfg +++ /dev/null @@ -1,158 +0,0 @@ -// **************************************************************************** -// * -// Arma 3 - server.cfg * -// Version 060117 * -// * -// **************************************************************************** - -// ArmA 3 Server Config File -// -// More info about parameters: -// https://community.bistudio.com/wiki/server.cfg - - -// GENERAL SETTINGS - -// Hostname for server. -hostname = "Arma 3 Server"; - -// Server password - for private servers. -//password = "arma3pass"; - -// Admin Password -//passwordAdmin = "ADMINPASSWORD"; - -// Auto-admin -admins[] = {""}; - -// Server Slots -maxPlayers = 32; - -// Logfile -logFile = "arma3server.log"; - -// Minimum Required Client Build -//requiredBuild = 95691 - -class Missions -{ - class Mission1 - { - template = ; - difficulty = "Regular"; - class Params {}; - }; - class Mission2 - { - template = ; - difficulty = "Regular"; - class Params {}; - }; - class Mission3 - { - template = ; - difficulty = "Regular"; - class Params {}; - }; - class Mission4 - { - template = ; - difficulty = "Regular"; - class Params {}; - }; -}; - -// Message of the Day (MOTD) -motd[] = { - "Welcome to My Arma 3 Server", - "TS3 Server: teamspeak.somewhere.com", - "Web: www.example.com" -}; - -// MOTD Interval (Seconds) -motdInterval = 30; - - -// VOTING - -// Server Mission Start -// minimum number of clients before server starts mission -voteMissionPlayers = 1; - -// Accepted Vote Threshold -// 0.33 = 33% clients. -voteThreshold = 0.33; - -// INGAME SETTINGS - -// Disable Voice over Net (VoN) -// 0 = voice enabled. -// 1 = voice disabled. -disableVoN = 0; - -// VoN Codec Quality -// 0-10 = 8kHz (narrowband). -// 11-20 = 16kHz (wideband). -// 21-30 = 32kHz (ultrawideband). -vonCodecQuality = 3; - -// Persistent Battlefield -// 0 = disable. -// 1 = enable. -persistent = 1; - -// Time Stamp Format -// none, short, full -timeStampFormat = "short"; - -// Server Statistics -// Set this to 0 to opt-out! More info: https://community.bistudio.com/wiki/Arma_3_Analytics -statisticsEnabled = 1; - -// SERVER SECURITY/ANTI HACK - -// Verify Signitures for Client Addons -// 0 = off. -// 1 = weak protection (depricated). -// 2 = full protection. -verifySignatures = 2; - -// Secure Player ID -// 1 = Server warning message. -// 2 = Kick client. -requiredSecureId = 2; - -// Kick Duplicate Player IDs -kickDuplicate = 1; - -// BattlEye Anti-Cheat -// 0 = disable -// 1 = enable -BattlEye = 1; - -// Allowed File Extentions -allowedLoadFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; -allowedPreprocessFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; -allowedHTMLLoadExtensions[] = {"htm","html","xml","txt"}; - -// SCRIPTING ISSUES -onUserConnected = ""; -onUserDisconnected = ""; -doubleIdDetected = ""; - -// SIGNATURE VERIFICATION -// kick = kick (_this select 0) -// ban = ban (_this select 0) -onUnsignedData = "kick (_this select 0)"; -onHackedData = "kick (_this select 0)"; -onDifferentData = ""; - -// HEADLESS CLIENT SUPPORT -// specify ip-adresses of allowed headless clients -headlessClients[] = {"127.0.0.1", "172.18.0.1"}; -localClient[] = {"127.0.0.1", "172.18.0.1"}; - -// BattlEye Anti-Cheat License -// 0 = decline -// 1 = accept -battleyeLicense = 1; From 21b3e30d5306cfbe3ff34ecb189090aa3577933f Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Jan 2021 14:22:00 -0800 Subject: [PATCH 14/22] Update egg-arma3.json - 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. --- steamcmd_servers/arma/arma3/egg-arma3.json | 183 +++++++++++++-------- 1 file changed, 112 insertions(+), 71 deletions(-) diff --git a/steamcmd_servers/arma/arma3/egg-arma3.json b/steamcmd_servers/arma/arma3/egg-arma3.json index 66496d91..b46d65e5 100644 --- a/steamcmd_servers/arma/arma3/egg-arma3.json +++ b/steamcmd_servers/arma/arma3/egg-arma3.json @@ -1,108 +1,149 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1" + "version": "PTDL_v1", + "update_url": null }, - "exported_at": "2019-12-26T15:50:38-05:00", + "exported_at": "2021-01-26T21:50:23+00:00", "name": "Arma 3", - "author": "daave@aaathats3as.com", + "author": "rehlmgaming@gmail.com", "description": "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.", - "image": "quay.io\/parkervcp\/pterodactyl-images:game_arma3", - "startup": ".\/arma3server -ip=0.0.0.0 -port={{SERVER_PORT}} -cfg={{BASIC}} -config={{CONFIG}} {{CUSTOM}} -mod=\"{{MODS}}\" -serverMod=\"{{SERVERMODS}}\"", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:game_arma3" + ], + "file_denylist": "", + "startup": ".\/{{SERVER_BINARY}} -ip=0.0.0.0 -port={{SERVER_PORT}} -profiles=.\/serverprofile -bepath=.\/battleye -cfg=\"{{BASIC}}\" -config=\"{{CONFIG}}\" {{STARTUP_PARAMS}} -mod=\"{{MODS}}\" -serverMod=\"{{SERVERMODS}}\"", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"Connected to Steam servers\",\r\n \"userInteraction\": []\r\n}", + "startup": "{\r\n \"done\": \"Host identity created.\",\r\n \"userInteraction\": []\r\n}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"latest.log\"\r\n}", "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## ARMA III specific setup\r\ncd \/mnt\/server\/\r\n\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\n[[ -f basic.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/basic.cfg\r\n[[ -f server.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/server.cfg", + "script": "#!\/bin\/bash\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\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} +force_install_dir \/mnt\/server +app_update ${STEAMCMD_APPID} ${STEAMCMD_EXTRA_FLAGS} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## ARMA III specific setup\r\ncd \/mnt\/server\/\r\n\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\n[[ -f basic.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/basic.cfg\r\n[[ -f server.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/server.cfg\r\nchmod 755 basic.cfg server.cfg", "container": "debian:buster-slim", "entrypoint": "bash" } }, "variables": [ { - "name": "Game App ID", - "description": "Steam CMD App ID.", - "env_variable": "SRCDS_APPID", + "name": "Arma 3 Dedicated Server App ID", + "description": "Used for installation and updates.", + "env_variable": "STEAMCMD_APPID", "default_value": "233780", - "user_viewable": 1, - "user_editable": 0, - "rules": "required|alpha_dash|between:1,100" + "user_viewable": false, + "user_editable": false, + "rules": "required|numeric" }, { - "name": "Config", - "description": "Server config", - "env_variable": "CONFIG", - "default_value": "server.cfg", - "user_viewable": 1, - "user_editable": 1, - "rules": "string|nullable" - }, - { - "name": "Custom Command Line Option.", - "description": "Put -autoinit or related things in here :)", - "env_variable": "CUSTOM", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "string|nullable" - }, - { - "name": "SERVERMODS", - "description": "This is where you put the files that go along with the -serverMods startup option.", - "env_variable": "SERVERMODS", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "string|nullable" - }, - { - "name": "Mods", - "description": "This is where you put mods that go along with the -mods startup option", - "env_variable": "MODS", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "string|nullable" - }, - { - "name": "Steam User", - "description": "A Steam username with Arma3 on the account.", + "name": "Steam Username", + "description": "Used for installation and updates. Account does not need to own Arma 3, but must be a valid Steam account (anonymous login cannot be used). For security reasons it is recommended that you create a new Steam account just for your dedicated servers. *This info is not visible to the server owner.*", "env_variable": "STEAM_USER", - "default_value": "anonymous", - "user_viewable": 0, - "user_editable": 0, + "default_value": "your_steam_username", + "user_viewable": false, + "user_editable": false, "rules": "required|string" }, { "name": "Steam Password", - "description": "Steam User Password", + "description": "Used for installation and updates. Steam Guard must be TURNED OFF for install to complete successfully. *This info is not visible to the server owner.*", "env_variable": "STEAM_PASS", - "default_value": "", - "user_viewable": 0, - "user_editable": 0, - "rules": "nullable|string" + "default_value": "your_steam_password", + "user_viewable": false, + "user_editable": false, + "rules": "required|string" }, { - "name": "Basic", - "description": "Basic network config", - "env_variable": "BASIC", - "default_value": "basic.cfg", - "user_viewable": 1, - "user_editable": 1, + "name": "Server Binary", + "description": "Server binary to call on server start. (32-bit: arma3server | 64-bit: arma3server_x64)", + "env_variable": "SERVER_BINARY", + "default_value": "arma3server_x64", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "Extra Startup Parameters", + "description": "See https:\/\/community.bistudio.com\/wiki\/Arma_3_Startup_Parameters for more info.", + "env_variable": "STARTUP_PARAMS", + "default_value": "", + "user_viewable": true, + "user_editable": true, "rules": "string|nullable" }, { - "name": "Steam Auth Code", - "description": "Steam Auth Code only when you're using Steam Auth", - "env_variable": "STEAM_AUTH", + "name": "Server Configuration File", + "description": "See https:\/\/community.bistudio.com\/wiki\/server.cfg for more info.", + "env_variable": "CONFIG", + "default_value": "server.cfg", + "user_viewable": true, + "user_editable": true, + "rules": "string|nullable" + }, + { + "name": "Basic Network Configuration", + "description": "See https:\/\/community.bistudio.com\/wiki\/basic.cfg for more info.", + "env_variable": "BASIC", + "default_value": "basic.cfg", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "Mods", + "description": "Mod folders to be used with the -mods startup option. NO capital letters, spaces, or folders starting with a number! Each folder must be followed with a semicolon (ex. @123456789;@987654321;etc;)", + "env_variable": "MODS", "default_value": "", - "user_viewable": 0, - "user_editable": 0, + "user_viewable": true, + "user_editable": true, "rules": "nullable|string" + }, + { + "name": "Server Mods", + "description": "Server-side only mod folders to be used with the -serverMods startup option. NO capital letters, spaces, or folders starting with a number! Each folder must be followed with a semicolon (ex. @123456789;@987654321;etc;)", + "env_variable": "SERVERMODS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "Extra Flags for SteamCMD", + "description": "Only used when checking for server updates, and typically used for grabbing beta builds.\r\nExample: -beta profiling -betapassword CautionSpecialProfilingAndTestingBranchArma3", + "env_variable": "STEAMCMD_EXTRA_FLAGS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "Check for Server Updates", + "description": "Check for server updates on server start.\r\n1 True | 0 False", + "env_variable": "UPDATE_SERVER", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "boolean" + }, + { + "name": "Steam Workshop Mods to Download\/Update", + "description": "[*Only works if the host owns Arma 3] Comma separated list of Steam Workshop mod IDs to download\/update on server start. (ex. 450814997,463939057) Each mod will be downloaded to the root directory with the folder format: @ModIdNumber", + "env_variable": "UPDATE_WORKSHOP", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "string|nullable" + }, + { + "name": "Set Mods to Lowercase", + "description": "On server start, goes through all the mod folders listed in \"Mods\" & \"Server Mods\", and makes sure every folder and file is lowercase (to prevent errors). This is particularly useful to run ONCE after copying a mod from a Windows machine to the server, or if mods seem to not be loading.", + "env_variable": "MODS_LOWERCASE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "boolean" } ] -} \ No newline at end of file +} From 9a94845c4bf9e109340f147a3311b719cd038e8d Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Jan 2021 14:28:42 -0800 Subject: [PATCH 15/22] Update basic.cfg - 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. --- .../arma/arma3/egg-arma3-config/basic.cfg | 52 +++++-------------- 1 file changed, 14 insertions(+), 38 deletions(-) diff --git a/steamcmd_servers/arma/arma3/egg-arma3-config/basic.cfg b/steamcmd_servers/arma/arma3/egg-arma3-config/basic.cfg index 7b5a1c99..aa2c8aa4 100644 --- a/steamcmd_servers/arma/arma3/egg-arma3-config/basic.cfg +++ b/steamcmd_servers/arma/arma3/egg-arma3-config/basic.cfg @@ -1,32 +1,34 @@ // **************************************************************************** // * -// Arma 3 - basic.cfg * -// Version 060116 * +// ArmA 3 Basic Network Config File - basic.cfg * +// * +// More info about parameters: * +// https://community.bistudio.com/wiki/basic.cfg * // * // **************************************************************************** -// Defines network tuning parameters +// Defines network tuning parameters. // -// This file is to be passed to the -cfg parameter on the command line for the server -// See http://community.bistudio.com/wiki/basic.cfg -// The following settings are the suggested settings +// This file is to be passed to the -cfg parameter on the command line for the server. +// The following settings are the suggested settings. +// Some settings are disabled (commented out) by default. Remove the // behind a setting to activate it. // BANDWIDTH SETTINGS // Bandwidth the server is guaranteed to have (in bps) // General guideline is NumberOfPlayers * 256kb // Default: 131072 -MinBandwidth=5120000; +//MinBandwidth=5120000; // Bandwidth the server can never go above (in bps) // For a single server, use full network speed; decrease when running multiple servers -MaxBandwidth=10240000; +//MaxBandwidth=10240000; // PACKET SETTINGS // Maximum number of packets per frame. // Increasing the value potentially decreases lag, but increases desync // Default: 128 -MaxMsgSend=2048; +//MaxMsgSend=2048; // Maximum payload of guaranteed packet (in b) // Small messages are packed to larger packets // Guaranteed packets are used for non-repetitive events, like shooting @@ -42,42 +44,16 @@ MaxSizeNonguaranteed=256; // Maximal size of a packet sent over the network // Only necessary if ISP forces lower packet size and there are connectivity issues // Default: 1400 -// class sockets{maxPacketSize=1400}; +//class sockets{maxPacketSize=1400}; // SMOOTHNESS SETTINGS // Minimal error required to send network updates for far units // Smaller values will make for smoother movement at long ranges, but will increase network traffic // Default: 0.003 -MinErrorToSend=0.01; +//MinErrorToSend=0.01; // Minimal error required to send network updates for near units // Using larger value can reduce traffic sent for near units // Also controls client to server traffic // Default: 0.01 -MinErrorToSendNear=0.02; - -// GEOLOCATION SETTINGS - -// Server latitude -serverLatitude=52; -serverLatitudeAuto=52; - -// Server Longitude -serverLongitude=0; -serverLongitudeAuto=0; -// MISC -// View Distance (not sure if this actually works) -viewDistance=10000; - -// Maximum size (in b) for custom face or sound files -// Default: 0 -MaxCustomFileSize=65536; -// Server language -language="English"; -steamLanguage="English"; -// Adapter -adapter=-1; -// Windowed mode -Windowed=0; - -3D_Performance=1.000000; \ No newline at end of file +//MinErrorToSendNear=0.02; From dc0c5658243a616e4e02d07cc4ce5c2b3b334538 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Jan 2021 14:32:33 -0800 Subject: [PATCH 16/22] Update server.cfg - 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. --- .../arma/arma3/egg-arma3-config/server.cfg | 214 +++++++++--------- 1 file changed, 111 insertions(+), 103 deletions(-) diff --git a/steamcmd_servers/arma/arma3/egg-arma3-config/server.cfg b/steamcmd_servers/arma/arma3/egg-arma3-config/server.cfg index 2615bf70..20c439a2 100644 --- a/steamcmd_servers/arma/arma3/egg-arma3-config/server.cfg +++ b/steamcmd_servers/arma/arma3/egg-arma3-config/server.cfg @@ -1,17 +1,16 @@ // **************************************************************************** // * -// Arma 3 - server.cfg * -// Version 060117 * +// ArmA 3 Server Config File - server.cfg * +// * +// More info about parameters: * +// https://community.bistudio.com/wiki/server.cfg * // * // **************************************************************************** -// ArmA 3 Server Config File -// -// More info about parameters: -// https://community.bistudio.com/wiki/server.cfg +// Some settings are not listed here; see link above for extensive list. +// Some settings are disabled (commented out). Remove the // to enable them. - -// GENERAL SETTINGS +// === GLOBAL SETTINGS === // Hostname for server. hostname = "Arma 3 Server"; @@ -22,45 +21,16 @@ hostname = "Arma 3 Server"; // Admin Password //passwordAdmin = "ADMINPASSWORD"; -// Auto-admin -admins[] = {""}; +// Whitelisted Admins - Clients that do not need a password to login. +//admins[] = { "UID OR steamID64", "0123456789", "9876543210" }; -// Server Slots -maxPlayers = 32; +// Server Command Password - for scripting and certain mods. +//serverCommandPassword = "COMMANDPASSWORD"; -// Logfile -logFile = "arma3server.log"; - -// Minimum Required Client Build -//requiredBuild = 95691 - -class Missions -{ - class Mission1 - { - template = ; - difficulty = "Regular"; - class Params {}; - }; - class Mission2 - { - template = ; - difficulty = "Regular"; - class Params {}; - }; - class Mission3 - { - template = ; - difficulty = "Regular"; - class Params {}; - }; - class Mission4 - { - template = ; - difficulty = "Regular"; - class Params {}; - }; -}; +// Log File +logFile = "server_console.log"; +// RPT File Timestamp Format - none | short | full +timeStampFormat = "short"; // Message of the Day (MOTD) motd[] = { @@ -68,91 +38,129 @@ motd[] = { "TS3 Server: teamspeak.somewhere.com", "Web: www.example.com" }; +// MOTD Interval - Seconds between each message. +motdInterval = 5; -// MOTD Interval (Seconds) -motdInterval = 30; +// Missions Cycle +class Missions +{ + class Mission1 + { + template = MP_ZGM_m11.Altis; + difficulty = "Regular"; + class Params {}; + }; + class Mission2 + { + template = MP_ZGM_m12.Stratis; + difficulty = "Recruit"; + class Params {}; + }; +}; +// Whitelisted Missions - Only these missions can be selected on the mission select screen. +//missionWhitelist[] = { "MP_ZGM_m11.Altis", "MP_ZGM_m12.Stratis" }; -// VOTING +// === JOINING RULES === -// Server Mission Start -// minimum number of clients before server starts mission -voteMissionPlayers = 1; +// Server Slots +maxPlayers = 32; -// Accepted Vote Threshold -// 0.33 = 33% clients. -voteThreshold = 0.33; +// Enable BattlEye +BattlEye = 1; -// INGAME SETTINGS +// Addon Signature Verification - Verifies .pbos against .bisign files - 0 = Disabled | 2 = Enabled (v2) +verifySignatures = 2; -// Disable Voice over Net (VoN) -// 0 = voice enabled. -// 1 = voice disabled. +// Kick Duplicate Player IDs - 0 = No | 1 = Yes +kickDuplicate = 1; +// Allow File Patching - 0 = No Clients | 1 = Headless Clients only | 2 = All Clients +allowedFilePatching = 0; +// Minimum Required Client Version +//requiredBuild = 999999999; +// LAN Mode +loopback = 0; +// UPNP Router Mode +upnp = 0; + +// Headless Client IP Whitelists +headlessClients[] = { "127.0.0.1" }; +localClient[] = { "127.0.0.1" }; + + +// === INGAME SETTINGS === + +// Advanced Flight Model Enforcement - 0 = Up to player | 1 = Advanced model enforced | 2 = Simple model enforced +forceRotorLibSimulation = 0; + +// Disable In-Game Voice Chat (Voice over Network) disableVoN = 0; - +// VoN Codec - 0 = older SPEEX codec | 1 = newer IETF standard OPUS codec +vonCodec = 1; // VoN Codec Quality // 0-10 = 8kHz (narrowband). // 11-20 = 16kHz (wideband). // 21-30 = 32kHz (ultrawideband). -vonCodecQuality = 3; +vonCodecQuality = 10; -// Persistent Battlefield -// 0 = disable. -// 1 = enable. -persistent = 1; +// Persistent Mission - Keeps mission running when all players disconnect. +persistent = 0; -// Time Stamp Format -// none, short, full -timeStampFormat = "short"; +// Allow Drawing in Map +drawingInMap = 1; -// Server Statistics -// Set this to 0 to opt-out! More info: https://community.bistudio.com/wiki/Arma_3_Analytics -statisticsEnabled = 1; +// Enforce Difficulty - Use "Custom" for ServerProfile-defined custom difficulty +forcedDifficulty = "regular"; -// SERVER SECURITY/ANTI HACK -// Verify Signitures for Client Addons -// 0 = off. -// 1 = weak protection (depricated). -// 2 = full protection. -verifySignatures = 2; +// === VOTING === -// Secure Player ID -// 1 = Server warning message. -// 2 = Kick client. -requiredSecureId = 2; +// Allowed Vote Commands - Un-comment this to prevent voted commands (like vote-kick) +//allowedVoteCmds[] = {}; -// Kick Duplicate Player IDs -kickDuplicate = 1; +// Start mission-voting when X number of players connect. +voteMissionPlayers = 1; -// BattlEye Anti-Cheat -// 0 = disable -// 1 = enable -BattlEye = 1; +// Vote Threshold - Percentage of votes needed to confirm a vote. +voteThreshold = 0.33; -// Allowed File Extentions -allowedLoadFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; -allowedPreprocessFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; -allowedHTMLLoadExtensions[] = {"htm","html","xml","txt"}; -// SCRIPTING ISSUES +// === CLIENT NETWORK HEALTH === + +// Seconds to wait before disconnecting a user which temporarily lost connection. +disconnectTimeout = 90; +// Max Desync Value +maxdesync = 150; +// Max Ping (ms) +maxping = 200; +// Max Packet Loss +maxpacketloss = 50; + +// Action to Take on Slow Network (defined above) +// Defines if {, , , } will be logged (0) or kicked (1) +kickClientsOnSlowNetwork[] = { 1, 1, 0, 1 }; + +// Kick Duration (temp-ban) on Network Kick +// Options {, , , } -- Timeout {>0 seconds; -1 until missionEnd; -2 until serverRestart} +kickTimeout[] = { {0, -1},{1, 1},{2, 5},{3, 1} }; + + +// === SERVER SIDE SCRIPTING === +// See https://community.bistudio.com/wiki/ArmA:_Server_Side_Scripting + onUserConnected = ""; onUserDisconnected = ""; doubleIdDetected = ""; -// SIGNATURE VERIFICATION -// kick = kick (_this select 0) -// ban = ban (_this select 0) onUnsignedData = "kick (_this select 0)"; onHackedData = "kick (_this select 0)"; onDifferentData = ""; -// HEADLESS CLIENT SUPPORT -// specify ip-adresses of allowed headless clients -headlessClients[] = {"127.0.0.1", "172.18.0.1"}; -localClient[] = {"127.0.0.1", "172.18.0.1"}; - -// BattlEye Anti-Cheat License -// 0 = decline -// 1 = accept -battleyeLicense = 1; +// Only allow files with these extensions to be loaded via loadFile command +allowedLoadFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; +// Only allow files with these extensions to be loaded via preprocessFile/preprocessFileLineNumber commands +allowedPreprocessFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; +// Only allow files with these extensions to be loaded via HTMLLoad command +allowedHTMLLoadExtensions[] = {"htm","html","xml","txt"}; +// Leave commented to let missions/campaigns/addons decide what URIs are supported. Un-comment to define server-level restrictions for URIs +//allowedHTMLLoadURIs = {}; From 163550486f7276a92ac60147533d25d263183228 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Jan 2021 15:11:36 -0800 Subject: [PATCH 17/22] Update README.md - Added Installation Requirements. - Added CPU usage information. - Added more info and removed spelling errors from Additional Settings. - Corrected default server ports list. --- steamcmd_servers/arma/arma3/README.md | 29 ++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/steamcmd_servers/arma/arma3/README.md b/steamcmd_servers/arma/arma3/README.md index 15eb3296..b31c554e 100644 --- a/steamcmd_servers/arma/arma3/README.md +++ b/steamcmd_servers/arma/arma3/README.md @@ -1,20 +1,31 @@ # Arma 3 ### From their [Site](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. +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. -### Minimum RAM warning -This server requires about 2048m to run properly. ARMA 3 is more CPU intensive though. +### 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 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. This is, of course, optional functionality, and mods can be manually uploaded to the server if desired. -### Additional settings +### Minimum RAM Warning +This server requires about 2048 MB to run properly. + +### 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 alloted to it for AI processing seems to be limited as well. Therefore, a [headless client](https://community.bistudio.com/wiki/Arma_3_Headless_Client) ***and*** a properly written mission file are highly recommended if large amounts of AI units will be used. An Arma 3 Headless Client Egg can be found [here](arma3_headless_client). + +### Additional Settings Additional server flags can be found [here](https://community.bistudio.com/wiki/Arma_3_Startup_Parameters). -This can help is you see the server using to many cores/threads on the server. +These can help you fine tune how the server will behave during runtime. + +*Note: The `-maxMem=` flag is currently known to cause an unknown segmentaion fault crash on startup. Other hardware related flags may cause similar behavior.* ### Server Ports -Ports required to run the server in a table format. +Default server ports. It is [recommended](https://community.bistudio.com/wiki/Arma_3:_Dedicated_Server#Port_Forwarding) that each server be 100 ports seperate from each other. -| Port | default | +| Port | Default | |---------|---------| -| Game | 2302-2306 | -| BattleEye | 2344-2345 | +| Arma 3 Game & VON | 2302 | +| Steam Query (+1) | 2303 | +| Steam Port (+2) | 2304 | +| BattleEye (+4) | 2306 | #### Mods/Plugins may require ports to be added to the server. From 2c792b5959c7a02b3d377645b94114d9b196a142 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Jan 2021 15:14:22 -0800 Subject: [PATCH 18/22] Update README.md Added clarity that server supports both 32 and 64-bit binaries. --- steamcmd_servers/arma/arma3/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steamcmd_servers/arma/arma3/README.md b/steamcmd_servers/arma/arma3/README.md index b31c554e..13487aee 100644 --- a/steamcmd_servers/arma/arma3/README.md +++ b/steamcmd_servers/arma/arma3/README.md @@ -1,4 +1,4 @@ -# Arma 3 +# Arma 3 (32 or 64-bit) ### From their [Site](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 65645401e5ab239cb4d3742ed2724bce16ab8d61 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Jan 2021 15:45:59 -0800 Subject: [PATCH 19/22] Update egg-arma3-headless-client.json - 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. --- .../egg-arma3-headless-client.json | 176 +++++++++++------- 1 file changed, 113 insertions(+), 63 deletions(-) diff --git a/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json b/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json index 775b722a..e75297b2 100644 --- a/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json +++ b/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json @@ -1,14 +1,19 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1" + "version": "PTDL_v1", + "update_url": null }, - "exported_at": "2019-12-26T15:50:34-05:00", + "exported_at": "2021-01-26T21:54:10+00:00", "name": "Arma 3 Headless Client", - "author": "brainp4in@blueberry-hood-clan.de", + "author": "rehlmgaming@gmail.com", "description": "Headless Clients are used to offload AI calculations from the Arma 3 Server.", - "image": "quay.io\/parkervcp\/pterodactyl-images:game_arma3", - "startup": ".\/arma3server -client -connect={{SERVERIP}} -port={{SERVERPORT}} {{CUSTOM}} -mod=\"{{MODS}}\"", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:game_arma3" + ], + "file_denylist": "", + "startup": ".\/{{SERVER_BINARY}} -client -connect={{CONNECT_IP}} -port={{CONNECT_PORT}} -password=\"{{CONNECT_PASSWORD}}\" -profiles=.\/serverprofile -bepath=.\/battleye {{STARTUP_PARAMS}} -mod=\"{{MODS}}\"", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Client connected\",\r\n \"userInteraction\": []\r\n}", @@ -17,83 +22,128 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## ARMA III specific setup\r\ncd \/mnt\/server\/\r\n\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\n[[ -f basic.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/basic.cfg\r\n[[ -f server.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/server.cfg", - "container": "ubuntu:18.04", + "script": "#!\/bin\/bash\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\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} +force_install_dir \/mnt\/server +app_update ${STEAMCMD_APPID} ${STEAMCMD_EXTRA_FLAGS} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## ARMA III specific setup\r\ncd \/mnt\/server\/\r\n\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"", + "container": "debian:buster-slim", "entrypoint": "bash" } }, "variables": [ { - "name": "Game App ID", - "description": "Steam CMD App ID.", - "env_variable": "SRCDS_APPID", + "name": "Arma 3 Dedicated Server App ID", + "description": "Used for installation and updates.", + "env_variable": "STEAMCMD_APPID", "default_value": "233780", - "user_viewable": 1, - "user_editable": 0, - "rules": "required|alpha_dash|between:1,100" + "user_viewable": false, + "user_editable": false, + "rules": "required|numeric" }, { - "name": "Server IP", - "description": "IP address of the Arma 3 server that should be supported by the Headless Client.", - "env_variable": "SERVERIP", - "default_value": "127.0.0.1", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:30" - }, - { - "name": "Server Port", - "description": "Port of the Arma 3 server that should be supported by the Headless Client.", - "env_variable": "SERVERPORT", - "default_value": "2302", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:5" - }, - { - "name": "Custom Command Line Option.", - "description": "Put -autoinit or related things in here :)", - "env_variable": "CUSTOM", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "string|nullable" - }, - { - "name": "Mods", - "description": "This is where you put mods that go along with the -mods startup option", - "env_variable": "MODS", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "string|nullable" - }, - { - "name": "Steam User", - "description": "A Steam username with Arma3 on the account.", + "name": "Steam Username", + "description": "Used for installation and updates. Account does not need to own Arma 3, but must be a valid Steam account (anonymous login cannot be used). For security reasons it is recommended that you create a new Steam account just for your dedicated servers. *This info is not visible to the server owner.*", "env_variable": "STEAM_USER", - "default_value": "anonymous", - "user_viewable": 0, - "user_editable": 0, + "default_value": "your_steam_username", + "user_viewable": false, + "user_editable": false, "rules": "required|string" }, { "name": "Steam Password", - "description": "Steam User Password", + "description": "Used for installation and updates. Steam Guard must be TURNED OFF for install to complete successfully. *This info is not visible to the server owner.*", "env_variable": "STEAM_PASS", + "default_value": "your_steam_password", + "user_viewable": false, + "user_editable": false, + "rules": "required|string" + }, + { + "name": "Server Binary", + "description": "Server binary to call on server start. (32-bit: arma3server | 64-bit: arma3server_x64)", + "env_variable": "SERVER_BINARY", + "default_value": "arma3server_x64", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "Connect IP", + "description": "IP address of the server to connect to.", + "env_variable": "CONNECT_IP", + "default_value": "127.0.0.1", + "user_viewable": true, + "user_editable": true, + "rules": "required|ip" + }, + { + "name": "Connect Port", + "description": "Open port of the server to connect to.", + "env_variable": "CONNECT_PORT", + "default_value": "2302", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric" + }, + { + "name": "Connect Password", + "description": "If the server you are connecting to has a password, enter it here.", + "env_variable": "CONNECT_PASSWORD", "default_value": "", - "user_viewable": 0, - "user_editable": 0, + "user_viewable": true, + "user_editable": true, "rules": "nullable|string" }, { - "name": "Steam Auth Code", - "description": "Steam Auth Code only when you're using Steam Auth", - "env_variable": "STEAM_AUTH", + "name": "Mods", + "description": "Mod folders to be used with the -mods startup option. NO capital letters, spaces, or folders starting with a number! Each folder must be followed with a semicolon (ex. @123456789;@987654321;etc;)", + "env_variable": "MODS", "default_value": "", - "user_viewable": 0, - "user_editable": 0, + "user_viewable": true, + "user_editable": true, "rules": "nullable|string" + }, + { + "name": "Extra Startup Parameters", + "description": "See https:\/\/community.bistudio.com\/wiki\/Arma_3_Startup_Parameters for more info.", + "env_variable": "STARTUP_PARAMS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "Extra Flags for SteamCMD", + "description": "Only used when checking for server updates, and typically used for grabbing beta builds.\r\nExample: -beta profiling -betapassword CautionSpecialProfilingAndTestingBranchArma3", + "env_variable": "STEAMCMD_EXTRA_FLAGS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "Check for Server Updates", + "description": "Check for server updates on server start.\r\n1 True | 0 False", + "env_variable": "UPDATE_SERVER", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "boolean" + }, + { + "name": "Steam Workshop Mods to Download\/Update", + "description": "[*Only works if the host owns Arma 3] Comma separated list of Steam Workshop mod IDs to download\\\/update on server start. (ex. 450814997,463939057) Each mod will be downloaded to the root directory with the folder format: @ModIdNumber", + "env_variable": "UPDATE_WORKSHOP", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "Set Mods to Lowercase", + "description": "On server start, goes through all the mod folders listed in \"Mods\" & \"Server Mods\", and makes sure every folder and file is lowercase (to prevent errors). This is particularly useful to run ONCE after copying a mod from a Windows machine to the server, or if mods seem to not be loading.", + "env_variable": "MODS_LOWERCASE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "boolean" } ] -} \ No newline at end of file +} From 03f2d20a96cb62313e9e24442548cb84c7862808 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Jan 2021 16:03:38 -0800 Subject: [PATCH 20/22] Update README.md - 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. --- .../arma/arma3_headless_client/README.md | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/steamcmd_servers/arma/arma3_headless_client/README.md b/steamcmd_servers/arma/arma3_headless_client/README.md index c674f030..a77ff1af 100644 --- a/steamcmd_servers/arma/arma3_headless_client/README.md +++ b/steamcmd_servers/arma/arma3_headless_client/README.md @@ -1,21 +1,27 @@ # Arma 3 Headless Client ### From their [Site](https://community.bistudio.com/wiki/Arma_3_Headless_Client) What is a Headless Client (HC) used for? -* Headless Client is used to offload AI calculations from the server -* Headless Client is integrated into game client and dedicated server executable (WIndows and Linux, use -client parameter) -* The server doesn't allow arbitrary connections from headless clients if you do not define the headless clients IPs in the server.cfg, +* Headless Client is used to offload AI calculations from the server [to improve the main server's performance]. +* Headless Client is integrated into dedicated server executable, and uses the `-client` parameter to activate. +* The server doesn't allow arbitrary connections from headless clients if you do not define the headless clients' IPs in the `server.cfg`. ### But why? -If you host an Arma 3 Server with lots of AI in it, the Server FPS will drop fast. -Since the server files are only 32 Bit you will need some kind of magical assistant to prevent slow AI. +If you host an Arma 3 Server with lots of AI in it, the Server FPS will drop fast. The headless client helps alleviate the AI's stress on the server. -### Minimum RAM warning -This server requires about 2048m to run properly. ARMA 3 is more CPU intensive though. +### Installation Requirements +- A valid, real Steam account, with Steam Guard turned off, is required to install the client (default "anonymous" login cannot be used). For security reasons it is recommended that you create a new Steam account just for your dedicated servers. This account *does not* need to own Arma 3. +- The Arma 3 server this client is connecting to **must** be running a properly written mission file that accepts and utilizes headless clients. If you want to know how to implement, take a look at the Wiki [here](https://community.bistudio.com/wiki/Arma_3_Headless_Client#Spawning_the_AI) or at a guide in the A3 Forums [here](https://forums.bohemia.net/forums/topic/178434-arma3-headless-client-guide/). +- For automatic Steam Workshop mod downloading to work, the Steam account *does* need to own Arma 3. This is, of course, optional functionality, and mods can be manually uploaded to the client if desired. -### Additional settings -Additional server flags can be found [here](https://community.bistudio.com/wiki/Arma_3_Startup_Parameters). -This can help is you see the server using to many cores/threads on the server. -If you want to know how to implement, take a look at the Wiki [here](https://community.bistudio.com/wiki/Arma_3_Headless_Client#Spawning_the_AI) or at a guide in the A3 Forums [here](https://forums.bohemia.net/forums/topic/178434-arma3-headless-client-guide/). +### Minimum RAM Warning +This client requires about 2048 MB to run properly. + +### Additional Settings +Additional client flags can be found [here](https://community.bistudio.com/wiki/Arma_3_Startup_Parameters). +These can help you fine tune how the client will behave during runtime. + +*Note: The `-maxMem=` flag is currently known to cause an unknown segmentaion fault crash on startup. Other hardware related flags may cause similar behavior.* ### Server Ports -Since this is basically a client, this Egg does not need a port. \ No newline at end of file +Since this is basically a client, this Egg does not need a port. +Therefore, the port assigned to this Egg goes unused. From 12ee708965f6e558eff308f5f07c4efa62e4554b Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Jan 2021 20:51:55 -0800 Subject: [PATCH 21/22] Update egg-arma3.json Removed currently unsupported `file_denylist` variable for now. --- steamcmd_servers/arma/arma3/egg-arma3.json | 1 - 1 file changed, 1 deletion(-) diff --git a/steamcmd_servers/arma/arma3/egg-arma3.json b/steamcmd_servers/arma/arma3/egg-arma3.json index b46d65e5..308acb5f 100644 --- a/steamcmd_servers/arma/arma3/egg-arma3.json +++ b/steamcmd_servers/arma/arma3/egg-arma3.json @@ -12,7 +12,6 @@ "images": [ "quay.io\/parkervcp\/pterodactyl-images:game_arma3" ], - "file_denylist": "", "startup": ".\/{{SERVER_BINARY}} -ip=0.0.0.0 -port={{SERVER_PORT}} -profiles=.\/serverprofile -bepath=.\/battleye -cfg=\"{{BASIC}}\" -config=\"{{CONFIG}}\" {{STARTUP_PARAMS}} -mod=\"{{MODS}}\" -serverMod=\"{{SERVERMODS}}\"", "config": { "files": "{}", From 868bc1e8eaa1102a04b67d27f7cc8f3e447e2849 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 26 Jan 2021 20:52:15 -0800 Subject: [PATCH 22/22] Update egg-arma3-headless-client.json Removed currently unsupported `file_denylist` variable for now. --- .../arma/arma3_headless_client/egg-arma3-headless-client.json | 1 - 1 file changed, 1 deletion(-) diff --git a/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json b/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json index e75297b2..60f20365 100644 --- a/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json +++ b/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json @@ -12,7 +12,6 @@ "images": [ "quay.io\/parkervcp\/pterodactyl-images:game_arma3" ], - "file_denylist": "", "startup": ".\/{{SERVER_BINARY}} -client -connect={{CONNECT_IP}} -port={{CONNECT_PORT}} -password=\"{{CONNECT_PASSWORD}}\" -profiles=.\/serverprofile -bepath=.\/battleye {{STARTUP_PARAMS}} -mod=\"{{MODS}}\"", "config": { "files": "{}",