Merge pull request #948 from lilkingjr1/arma-patch
Arma 3 Server Eggs Repair & Improvement
This commit is contained in:
		| @@ -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) | ||||
| * [Arma 3 Headless Client](arma3_headless_client) | ||||
|   | ||||
| @@ -1,20 +1,31 @@ | ||||
| # 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.  | ||||
| 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. | ||||
|   | ||||
| @@ -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; | ||||
| //MinErrorToSendNear=0.02; | ||||
|   | ||||
| @@ -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[] = {"<UID>"}; | ||||
| // 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 {<MaxPing>, <MaxPacketLoss>, <MaxDesync>, <DisconnectTimeout>} will be logged (0) or kicked (1) | ||||
| kickClientsOnSlowNetwork[] = { 1, 1, 0, 1 }; | ||||
|  | ||||
| // Kick Duration (temp-ban) on Network Kick | ||||
| //  Options {<manual kick>, <connectivity kick>, <BattlEye kick>, <harmless kick>} -- 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 = {}; | ||||
|   | ||||
| @@ -1,108 +1,148 @@ | ||||
| { | ||||
|     "_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" | ||||
|     ], | ||||
|     "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" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -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.  | ||||
| Since this is basically a client, this Egg does not need a port. | ||||
| Therefore, the port assigned to this Egg goes unused. | ||||
|   | ||||
| @@ -1,14 +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": "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" | ||||
|     ], | ||||
|     "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 +21,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" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -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. | ||||
| @@ -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" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
| @@ -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; | ||||
| @@ -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[] = {"<UID>"}; | ||||
|  | ||||
| // 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; | ||||
		Reference in New Issue
	
	Block a user