diff --git a/README.md b/README.md index 2ee2b061..cb0ba194 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,10 @@ If you are reading this it looks like you are looking to add an egg to your serv * [BeamMP Server](game_eggs/beamng/beammp) * [KissMP](game_eggs/beamng/kissmp) +[Call of Duty 4X](game_eggs/cod/cod4x) + +[Cryofall](game_eggs/cryofall/cryofall) + [ClassiCube](game_eggs/classicube) * [MCGalaxy](game_eggs/classicube/mcgalaxy) @@ -133,6 +137,11 @@ If you are reading this it looks like you are looking to add an egg to your serv [ET Legacy](game_eggs/enemy_territory/etlegacy) +[Eugen games](game_eggs/eugen) +* [Steel Division 2](game_eggs/eugen/steel-division-2) +* [Wargame: Red Dragon](game_eggs/eugen/wargame-red-dragon) +* [Wargame: Red Dragon - patched](game_eggs/eugen/wargame-red-dragon-patched) +* [FTL: Tachyon](game_eggs/ftl/tachyon) [Factorio](game_eggs/factorio) diff --git a/game_eggs/eugen/steel-division-2/README.md b/game_eggs/eugen/steel-division-2/README.md new file mode 100644 index 00000000..46da3f54 --- /dev/null +++ b/game_eggs/eugen/steel-division-2/README.md @@ -0,0 +1,24 @@ +# Steel Division 2 + +#### Steel Division 2 dedicated server + + +#### from the developers + +Steel Division 2 is thrilling in single-player mode with its new dynamic campaign system, and also offers an extensive multiplayer mode where up to 20 players can compete against each other simultaneously. + +#### Obtaining access key + +Any person willing to run a dedicated server must request access by contacting us at eugsupport@eugen.fr. Please provide the email you used to create your EugNet account. We will send you back a login and apikey pair to use. + +Note that if you already own a dedicated key from one of Eugen other games, you don't have to contact the support. You can use your dedicated key with the associated login. + +Besides, you must know that a pair login/apikey will allow you to start maximum 5 servers. + +### Server Ports +Steel Division 2 requires two ports higher than 1024, one main port and one RCon. + +| Port | default | +|---------|---------| +| Game | >1024 | +| RCon | >1024 | \ No newline at end of file diff --git a/game_eggs/eugen/steel-division-2/egg-steel-division2.json b/game_eggs/eugen/steel-division-2/egg-steel-division2.json new file mode 100644 index 00000000..8ab063f7 --- /dev/null +++ b/game_eggs/eugen/steel-division-2/egg-steel-division2.json @@ -0,0 +1,95 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2021-08-17T11:25:43-05:00", + "name": "Steel Division 2", + "author": "f.falk@pm.me", + "description": "Steel Division 2 is thrilling in single-player mode with its new dynamic campaign system, and also offers an extensive multiplayer mode where up to 20 players can compete against each other simultaneously.", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:base_debian" + ], + "file_denylist": [], + "startup": ".\/steeldiv2-server -ip {{SERVER_IP}} -listenport {{SERVER_PORT}} -port {{SERVER_PORT}} -ipmms {{SRV_MMS_IP}} -portmms {{SRV_MMS_PORT}} -rcon_password {{SRV_RCON}} -rcon_port {{SRV_RCON_PORT}} -chat_log_file chat.txt", + "config": { + "files": "{\r\n \"login.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"login\": \"login=\\\"{{server.build.env.SRV_LOGIN}}\\\"\",\r\n \"dedicated_key\": \"dedicated_key=\\\"{{server.build.env.SRV_APIKEY}}\\\"\"\r\n }\r\n },\r\n \"variables.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName=\\\"{{server.build.env.SRV_NAME}}\\\"\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Connection to match making server validated\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# TS3 Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napk add wget bash jq curl openssl\r\n\r\n# Download server files, only available in docker unfortunately\r\n# Docker-in-docker requires special setup to work, so this is a bit of a workaround\r\n# https:\/\/stackoverflow.com\/questions\/37905763\/how-do-i-download-docker-images-without-using-the-pull-command\r\nwget https:\/\/raw.githubusercontent.com\/moby\/moby\/master\/contrib\/download-frozen-image-v2.sh\r\nchmod +x download-frozen-image-v2.sh\r\nmkdir 'img'\r\n.\/download-frozen-image-v2.sh 'img' eugensystems\/steeldivision2:latest\r\nmkdir 'img-files'\r\nfind -type f -name layer.tar -exec tar -zxf {} --directory 'img-files' \\;\r\ncp 'img-files\/server\/steeldiv2-server' \/mnt\/server\r\n\r\n# Generate pkey\/cert\r\nopenssl genrsa -out \/mnt\/server\/pkey 2048\r\nopenssl req -new -batch -key \/mnt\/server\/pkey -out \/mnt\/server\/cert.req\r\nopenssl x509 -req -days 365 -in \/mnt\/server\/cert.req -signkey \/mnt\/server\/pkey -out \/mnt\/server\/cert\r\n\r\n# Generate config files\r\n# Comments copied from https:\/\/eugensystems.com\/downloads\/wargame3_server.tar.bz2\r\ncat < \/mnt\/server\/params_for_ai.json\r\n{\r\n \"0\": [\r\n {\r\n \"name\": \"Deck name in the lobby\",\r\n \"deckContent\": \"JSGssa0xrjGvEa4BrkGuUa3xrGKtAq2RrWGvQq6CrnGr4a7hrSGu0a6RrzGtUa3RrmKt4azhrJGsIaxRrKGsAavxrUE=\",\r\n \"iaLevel\": 1\r\n }\r\n ],\r\n \"1\": [\r\n {\r\n \"name\": \"Deck name in the lobby\",\r\n \"deckContent\": \"Gx6Bgbehg4GDsYFxgsGD8YJBghGA4YSRhKG8YYMhgMGDAoNyhCGE0YRSg5GBoYJhgTGCsYKhgxGFMoKShVI=\",\r\n \"iaLevel\": 2\r\n }\r\n ]\r\n}\r\nEOF\r\ncat < \/mnt\/server\/install.txt\r\nSteelDiv2 Dedicated Server is provided \"AS IS\" WITHOUT WARRANTY OF ANY KIND,\r\nEITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\r\nOF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\r\n\r\nTo install dedicated server, please follow these steps :\r\n- Edit login.ini file and insert your login and the dedicated key that eugen must have provided\r\n- Edit variables.ini and configure the games options\r\n- Launch steeldiv2-server with command line : .\/steeldiv2-server +port XXXX +ip_mms 178.32.126.73 +port_mms 10002 +ip YY.YY.YY.YY\r\nwhere your must replace XXXX by a valid port > 10000 and YY.YY.YY.YY by the IP of your server.\r\n\r\nEnjoy !\r\n\r\n\r\nOptional steps :\r\n- You can use rcon protocol to kick\/ban people, change server properties at runtime.\r\nYou can active rcon by specify the option +rcon_password and +rcon_port when you start your server.\r\nYou should then be able to connect using rcon client. Available commands are :\r\ndisplay_all_clients -> Display the list of connected clients with their Id\r\nkick CLIENT_ID -> Kick the client with Id CLIENT_ID\r\nkick CLIENT_PSEUDO -> Kick the client with pseudo CLIENT_PSEUDO (CLIENT_PSEUDO can be a part of his real pseudo)\r\nban CLIENT_ID DELAY_IN_HOUR -> Ban the player with Id CLIENT_ID for DELAY_IN_HOUR hours\r\nban CLIENT_PSEUDO DELAY_IN_HOUR -> Ban the player with pseudo CLIENT_PSEUDO for DELAY_IN_HOUR hours (CLIENT_PSEUDO can be a part of his real pseudo)\r\nunban CLIENT_ID -> Unban the player with Id CLIENT_ID\r\nsetsvar VARIABLE_NAME VARIABLE_VALUE -> Allow you to change one of the settings of the server (have a look at variables.ini)\r\n\r\n- You can have a look at the admins.ini file to add some admins to your server\r\nEOF\r\n\r\ncat < \/mnt\/server\/banned_clients.ini\r\n; This file contains the list of the banned user\r\n; Its lines should be like :\r\n; 120487=1373993738\r\n; where 120487 is the client Id of the banned player and 1373993738 is the end date of the ban stored using Unix time (http:\/\/en.wikipedia.org\/wiki\/Unix_time)\r\n; If the end date is 0, it means that the player is banned forever\r\nEOF\r\n\r\ncat < \/mnt\/server\/admins.ini\r\n; This file contains the list of the admins\r\n;\r\n; Its lines should be like :\r\n; 120487=\"abcdefghijklmnopqrstuvwxyz\"\r\n; where 120487 is the client Id of the admin player and abcdefghijklmnopqrstuvwxyz is the rights granted to this players\r\n;\r\n; Granted rights can be :\r\n; s -> Can change serveur variable \r\n; p -> Can change player variable\r\n; k -> Can kick clients\r\n; b -> Can ban clients \r\n; u -> Can unban clients\r\n;\r\n; Admins can execute these commands ingame if they are connected on the server.\r\n;\r\n; Available commands are :\r\n; kick CLIENT_ID -> Kick the client with Id CLIENT_ID\r\n; kick CLIENT_PSEUDO -> Kick the client with pseudo CLIENT_PSEUDO (CLIENT_PSEUDO can be a part of his real pseudo)\r\n; ban CLIENT_ID DELAY_IN_HOUR -> Ban the player with Id CLIENT_ID for DELAY_IN_HOUR hours\r\n; ban CLIENT_PSEUDO DELAY_IN_HOUR -> Ban the player with pseudo CLIENT_PSEUDO for DELAY_IN_HOUR hours (CLIENT_PSEUDO can be a part of his real pseudo)\r\n; unban CLIENT_ID -> Unban the player with Id CLIENT_ID\r\n; setsvar VARIABLE_NAME VARIABLE_VALUE -> Allow you to change one of the settings of the server (have a look at variables.ini)\r\n;\r\n; To execute a command, admin must enter in the lobby chat : \"\/COMMAND\"\r\n; For example, to kick player with pseudo toto, he must enter \/kick toto\r\n;\r\nEOF\r\n\r\ncat < \/mnt\/server\/login.ini\r\n; This file contains the parameters needed to register your server in the servers list\r\n; You need to have a valid eugnet account and a dedicated key. \r\n; If you have no dedicated key, ask a key at : eugsupport@eugen.fr (please provide your login in the mail).\r\n;\r\n\r\nlogin=\"INSERT_YOUR_LOGIN\"\r\ndedicated_key=\"INSERT_YOUR_KEY_HERE\"\r\nEOF\r\n\r\ncat < \/mnt\/server\/variables.ini\r\n; This file contains the parameters of the room\r\n; Allowed key \/ values are :\r\n;\r\n; NbMaxPlayer : Specify how many players can play during a game\r\n; Allowed values : NbMaxPlayer <= 20, default value is 20\r\n;\r\n; ServerName : Specify the name of the server\r\n; Allowed values : Text, default value is \"Default Server Name\"\r\n;\r\n; GameType : Specify the mode opposition mode.\r\n; Allowed values : 0 (ALLIES vs AXIS), 1 (ALLIES vs ALLIES), 2 (AXIS vs AXIS), default value is 0\r\n;\r\n; InitMoney : Specify the amount of money which will be shared between players\r\n; Allowed values : All, default value is 750\r\n;\r\n; TimeLimit : Specify the time of the fight in seconds\r\n; Allowed values : All, 0 means unlimited, default value is 1200\r\n;\r\n; ScoreLimit : Specify the score to reach to win\r\n; Allowed values : All, default value is 4000\r\n;\r\n; VictoryCond : Specify the victory condition\r\n; Allowed values : 1 (Destruction), 2 (Siege), 3 (Economy), 4 (Conquest), default value is 1\r\n;\r\n; NbMinPlayer: Specify the number of players needed to start the countdown\r\n; Allowed values : NbMinPlayer < 20 and NbMinPlayer < NbMaxPlayer, default value is 10\r\n;\r\n; WarmupCountdown : Specify the time in seconds before launch the game when NbMinPlayers is reached\r\n; Allowed values : WarmupCountdown > 10, default value is 120\r\n;\r\n; LoadingTimeMax : Specify the time max in seconds between the end of the countdown and the beginning of the deployment\r\n; Allowed values : LoadingTimeMax > 60, default value is 120\r\n;\r\n; DeploiementTimeMax : Specify the time in seconds before deployment end\r\n; Allowed values : DeploiementTimeMax > 10, default value is 120\r\n;\r\n; DebriefingTimeMax : Specify the time max in seconds of the debriefing, players have DebriefingTimeMax seconds to click on the \"Next Game\" button if they want to stay on the server\r\n; Allowed values : All values, default value is 30\r\n;\r\n; DeltaMaxTeamSize : Specify the delta max of players between the 2 teams\r\n; Allowed values : All values, default value is 10\r\n;\r\n; MaxTeamSize : Specify the size max of the teams\r\n; Allowed values : All values, default value is 10\r\n;\r\n; IncomeRate : Specify the income rate\r\n; Allowed values : 0 (None), 1 (Very low), 2 (Low), 3 (Normal), 4 (High), 5 (VeryHigh), default value is 3\r\n;\r\n; PhaseADuration : Duration of the first gameplay phase.\r\n; Allowed values : Any\r\n;\r\n; PhaseBDuration : Duration of the second gameplay phase.\r\n; Allowed values : Any\r\n;\r\n; DivisionTagFilter : Force players to restrict themselves to some deck types. If unspecified, it allows them any deck.\r\n; Allowed values : , East, West\r\n;\r\n; AllowObservers : Allow observer type players to join and watch the game\r\n; Allowed values : 0 (Don't allow), 1 (Allow), 2 (Low), 3 (Normal), default value is 1\r\n;\r\n; ObserverDelay : Observers see a delayed version of the game to minimise cheating\r\n; Allowed values : any, default value is 120\r\n;\r\n; CoopVsAI : Mode where all players are on one side and computer players fill in the other team\r\n; Allowed values : 0 (Disabled), 1 (Players are forced in the first team), 2 (Players are forced in the second team), default value is 0\r\n;\r\n; AutoFillAI: Allows the server to spawn computer player to fill in any missing player slot when the game launches. \r\n; This isn't compatible with CoopVsAI mode.\r\n; Allowed values : 0 (Disabled), 1 (Enabled)\r\n;\r\n; DeltaTimeCheckAutoFillAI: Delay between each computer player joining the server to fill in the missing slots.\r\n; Allowed values : any, default value is 60\r\n;\r\n;\r\n; ### Map Selection ###\r\n;\r\n; Each map is available in multiple variants, of size or game setting rules. Not all settings are possible though. Refer to the map list table for more details on that.\r\n; \r\n; For example, let's say we want to use the Bobr map. We can see in the table that the map base id is _2x2_Urban_River_Bobr_LD_1v1. Also, \r\n; the map is more meant for 1v1 so it's rather small. And it can only do Conquest, Breakthrough and Close Quarter modes.\r\n; \r\n; We'll pick the Breakthrough mode. This means we need to add the suffix _BKT to the map base id. With that, we now have all the information we need to configure the server. \r\n; We'll just use that configuration block in variables.ini:\r\n; Map = _2x2_Urban_River_Bobr_LD_1v1_BKT\r\n; VictoryCond = 5\r\n; CombatRule = 2\r\n;\r\n; +----------------------------+----------------+--------------+------------+\r\n; | Mode | Map id suffix | VictoryCond | CombatRule |\r\n; +----------------------------+----------------+--------------+------------+\r\n; | Conquest | | 2 | 2 |\r\n; | Breakthrough | BKT | 5 | 2 |\r\n; | Close Quarter | CQC | 3 | 2 |\r\n; | Destruction | DEST | 2 | 1 |\r\n; | Destruction Close Quarter | DEST_CQC | 3 | 1 |\r\n; +----------------------------+----------------+--------------+------------+\r\n;\r\n; Conquest doesn't have a suffix at all so the id to use is just the value you can find in the map table bellow. For Bobr it would just be _2x2_Urban_River_Bobr_LD_1v1 then.\r\n;\r\n; Map : Specify the Id of the map\r\n; Allowed values (uses Map Base Id):\r\n; +-----------------------+---------------------------------------+-----------+---------------+----------------+--------------+---------------------------+\r\n; | Name | Map Base Id | Conquest | Breakthrough | Close Quarter | Destruction | Destruction Close Quarter |\r\n; +-----------------------+---------------------------------------+-----------+---------------+----------------+--------------+---------------------------+\r\n; | Orsha, north | _2x1_Proto_levelBuild_Orsha_N_LD_1v1 | \u2714 | \u2714 | \u2714 | \u2714 | \u2714 |\r\n; | Tsel | _2x2_Foret_Tsel_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Sianno | _2x2_Lacs_Sianno_LD_1v1 | \u2714 | \u2714 | \u2714 | \u2714 | \u2714 |\r\n; | Lenina | _2x2_Lenina_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Ostrowno | _2x2_Ostrowno_LD_1v1 | \u2714 | \u2714 | \u2714 | \u2714 | \u2714 |\r\n; | Orsha, east | _2x2_Plateau_Central_Orsha_E_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Krupa | _2x2_River_Swamp_Krupa_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Shchedrin | _2x2_Shchedrin_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Slutsk, east | _2x2_Slutsk_E_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Slutsk | _2x2_Slutsk_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Slutsk, west | _2x2_Slutsk_W_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Bobr | _2x2_Urban_River_Bobr_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Haroshaje | _2x2_Ville_Centrale_Haroshaje_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Novka | _3x2_Astrouna_Novka_LD_2v2 | \u2714 | \u2714 | \u2714 | | |\r\n; | Beshankovichy | _3x2_Beshankovichy_LD_2v2 | \u2714 | \u2714 | \u2714 | | |\r\n; | Smolyany | _3x2_Bridges_Smolyany_LD_3v3 | \u2714 | \u2714 | \u2714 | | |\r\n; | Vitebsk, east | _3x2_East_Vitebsk_LD_2v2 | \u2714 | \u2714 | \u2714 | \u2714 | \u2714 |\r\n; | Autobahn zur H\u00e4lle | _3x2_Highway_LD | \u2714 | \u2714 | \u2714 | | |\r\n; | Ilomantsi | _3x2_Ilomantsi_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Ilomantsi | _3x2_Ilomantsi_LD_2v2 | \u2714 | \u2714 | \u2714 | | |\r\n; | Losnica | _3x2_Island_Losnica_LD_2v2 | \u2714 | \u2714 | \u2714 | | |\r\n; | Lenina | _3x2_Lenina_LD_2v2 | \u2714 | \u2714 | \u2714 | | |\r\n; | Lenina | _3x2_Lenina_LD_3v3 | \u2714 | \u2714 | \u2714 | | |\r\n; | Lipen | _3x2_Lipen_LD_3v3 | \u2714 | \u2714 | \u2714 | | |\r\n; | Lyakhavichy | _3x2_Lyakhavichy_LD_3v3 | \u2714 | \u2714 | \u2714 | \u2714 | \u2714 |\r\n; | Naratch lake | _3x2_Marecages_Naratch_lake_LD_3v3 | \u2714 | \u2714 | \u2714 | | |\r\n; | Mogilev #10vs10 | _3x2_Mogilev_LD_10v10 | \u2714 | | | | |\r\n; | Mogilev | _3x2_Mogilev_LD_3v3 | \u2714 | \u2714 | \u2714 | | |\r\n; | Ostrowno | _3x2_Ostrowno_LD_2v2 | \u2714 | \u2714 | \u2714 | | |\r\n; | Ostrowno | _3x2_Ostrowno_LD_3v3 | \u2714 | \u2714 | \u2714 | | |\r\n; | Pleshchenitsy, south | _3x2_Rivers_Pleshchenitsy_S_LD_3v3 | \u2714 | \u2714 | \u2714 | | |\r\n; | Shchedrin | _3x2_Shchedrin_LD_2v2 | \u2714 | \u2714 | \u2714 | \u2714 | \u2714 |\r\n; | Shchedrin | _3x2_Shchedrin_LD_3v3 | \u2714 | \u2714 | \u2714 | | |\r\n; | Siedlce | _3x2_Siedlce_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Siedlce | _3x2_Siedlce_LD_2v2 | \u2714 | \u2714 | \u2714 | | |\r\n; | Slutsk | _3x2_Slutsk_LD_2v2 | \u2714 | \u2714 | \u2714 | | |\r\n; | Slutsk | _3x2_Slutsk_LD_3v3 | \u2714 | \u2714 | \u2714 | | |\r\n; | Tali Ihantala | _3x2_Tali_Ihantala_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Tali Ihantala | _3x2_Tali_Ihantala_LD_2v2 | \u2714 | \u2714 | \u2714 | | |\r\n; | Tali Ihantala | _3x2_Tali_Ihantala_LD_3v3 | \u2714 | \u2714 | \u2714 | | |\r\n; | Krupki #10vs10 | _3x2_Urban_roads_Krupki_LD_10v10 | \u2714 | | | | |\r\n; | Krupki | _3x2_Urban_roads_Krupki_LD_3v3 | \u2714 | \u2714 | \u2714 | | |\r\n; | Veselovo | _3x2_Veselovo_LD_2v2 | \u2714 | \u2714 | \u2714 | | |\r\n; | Bobrujsk, west | _3x2_West_Bobrujsk_LD_2v2 | \u2714 | \u2714 | \u2714 | \u2714 | \u2714 |\r\n; | Brest, west | _3x2_West_Brest_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Brest, west | _3x2_West_Brest_LD_2v2 | \u2714 | \u2714 | \u2714 | | |\r\n; | Brest, west | _3x2_West_Brest_LD_3v3 | \u2714 | \u2714 | \u2714 | \u2714 | \u2714 |\r\n; | Zbuczyn | _3x2_Zbuczyn_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Zbuczyn | _3x2_Zbuczyn_LD_2v2 | \u2714 | \u2714 | \u2714 | | |\r\n; | Lenina | _4x2_Lenina_LD_4v4 | \u2714 | \u2714 | \u2714 | | |\r\n; | Ostrowno | _4x2_Ostrowno_LD_4v4 | \u2714 | \u2714 | \u2714 | | |\r\n; | Shchedrin | _4x2_Shchedrin_LD_4v4 | \u2714 | \u2714 | \u2714 | | |\r\n; | Slutsk DEST #10vs10 | _4x2_Slutsk_LD_10v10 | | | | \u2714 | \u2714 |\r\n; | Slutsk | _4x2_Slutsk_LD_4v4 | \u2714 | \u2714 | \u2714 | \u2714 | \u2714 |\r\n; | Gora Kalwaria | _4x2_Vistula_Gora_Kalwaria_LD_1v1 | \u2714 | \u2714 | \u2714 | | |\r\n; | Gora Kalwaria | _4x2_Vistula_Gora_Kalwaria_LD_4v4 | \u2714 | \u2714 | \u2714 | \u2714 | \u2714 |\r\n; | Tannenberg | _4x2_tannenberg_10vs10 | \u2714 | | | | |\r\n; +-----------------------+---------------------------------------+-----------+---------------+----------------+--------------+---------------------------+\r\n;\r\n; MapRotationType : Specify the deck date constraint\r\n; Since VictoryCond and CombatRule is set outside of the map list, you cannot have a server that cycles between different game modes as a technical limitation.\r\n; Allowed values : 0 (None), 1 (Simple rotation), 2 (Random)\r\n;\r\n; InverseSpawnPoints : Swaps starting points between the two teams\r\n; Allowed values : 0 (Default), 1 (Swapped)\r\n;\r\n\r\nServerName = \"Default Server Name\"\r\nNbMaxPlayer = 20\r\nGameType = 0\r\nMap = _2x2_Urban_River_Bobr_LD_1v1_BKT\r\nVictoryCond = 5\r\nCombatRule = 2\r\nInitMoney = 10000\r\nScoreLimit = 20000\r\nNbMinPlayer = 18\r\nDebriefingTimeMax = 180\r\nDeploiementTimeMax = 120\r\nWarmupCountdown = 15\r\nTimeLimit = 3600\r\nDeltaMaxTeamSize = 10\r\nMaxTeamSize = 10\r\nEOF", + "container": "alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Server Name", + "description": "The server name shown in matchmaking", + "env_variable": "SRV_NAME", + "default_value": "Steel Division 2 Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "Login", + "description": "Username provided to Eugen when requesting an API key", + "env_variable": "SRV_LOGIN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "API Key", + "description": "API Key provided by Eugen. Send an email to \"eugsupport@eugen.fr\" containing your EugNet login, E-Mail used to register, and Steel Division 2 CD key to receive one.", + "env_variable": "SRV_APIKEY", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "RCon Password", + "description": "Password used to connect to server RCon", + "env_variable": "SRV_RCON", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "RCon port", + "description": "Port used to connect to server RCon", + "env_variable": "SRV_RCON_PORT", + "default_value": "", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|min:1" + }, + { + "name": "Matchmaking server IP address", + "description": "IP Address to Eugen Matchmaking server", + "env_variable": "SRV_MMS_IP", + "default_value": "178.32.126.73", + "user_viewable": true, + "user_editable": false, + "rules": "required|ip" + }, + { + "name": "Matchmaking server port", + "description": "Port used to connect to Eugen Matchmaking server", + "env_variable": "SRV_MMS_PORT", + "default_value": "10002", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|min:1" + } + ] +} \ No newline at end of file diff --git a/game_eggs/eugen/wargame-red-dragon-patched/README.md b/game_eggs/eugen/wargame-red-dragon-patched/README.md new file mode 100644 index 00000000..2f36cc66 --- /dev/null +++ b/game_eggs/eugen/wargame-red-dragon-patched/README.md @@ -0,0 +1,24 @@ +# Wargame: Red Dragon - patched + +#### Wargame: Red Dragon patched dedicated server + + +#### from the developers + +Wargame: Red Dragon is thrilling in single-player mode with its new dynamic campaign system, and also offers an extensive multiplayer mode where up to 20 players can compete against each other simultaneously. + +##### Patch + +One of the problems for the Wargame community is that there are some missing features for servers -- vote to kick, vote to rotate map, broadcast server rules, see stats about average strength of both teams compared, etc. The applied patch adds this functionality. + +#### Obtaining access key + +Any person willing to run a dedicated server, please contact us at this eugsupport@eugen.fr. Send us an email requestion access to the dedicated servers request for access. Please include your EugNet login in the email. Only send us your login. We don't need your password or your Steam login. + +### Server Ports +Wargame: Red Dragon requires two ports higher than 1024, one main port and one RCon. + +| Port | default | +|---------|---------| +| Game | >1024 | +| RCon | >1024 | \ No newline at end of file diff --git a/game_eggs/eugen/wargame-red-dragon-patched/egg-wargame--red-dragon--patched.json b/game_eggs/eugen/wargame-red-dragon-patched/egg-wargame--red-dragon--patched.json new file mode 100644 index 00000000..c3d52527 --- /dev/null +++ b/game_eggs/eugen/wargame-red-dragon-patched/egg-wargame--red-dragon--patched.json @@ -0,0 +1,95 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2021-08-17T10:00:02-05:00", + "name": "Wargame: Red Dragon - Patched", + "author": "f.falk@pm.me", + "description": "Wargame: Red Dragon is thrilling in single-player mode with its new dynamic campaign system, and also offers an extensive multiplayer mode where up to 20 players can compete against each other simultaneously.\r\n\r\nThis version is patched using https:\/\/github.com\/wargame-mods\/wargame-server\/", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:base_debian" + ], + "file_denylist": [], + "startup": ".\/wargame3-server +ip {{SERVER_IP}} +port {{SERVER_PORT}} +ip_mms {{SRV_MMS_IP}} +port_mms {{SRV_MMS_PORT}} +rcon_password {{SRV_RCON}} +rcon_port {{SRV_RCON_PORT}} +chat_log_file chat.txt > \/dev\/null & python3 control.py --rcon_port {{SRV_RCON_PORT}} --rcon_password {{SRV_RCON}}", + "config": { + "files": "{\r\n \"login.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"login\": \"login=\\\"{{server.build.env.SRV_LOGIN}}\\\"\",\r\n \"dedicated_key\": \"dedicated_key=\\\"{{server.build.env.SRV_APIKEY}}\\\"\"\r\n }\r\n },\r\n \"variables.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName=\\\"{{server.build.env.SRV_NAME}}\\\"\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Server control started\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# TS3 Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napk add wget bash jq curl openssl unzip python3\r\n\r\n# Download server files, only available in docker unfortunately\r\n# Docker-in-docker requires special setup to work, so this is a bit of a workaround\r\n# https:\/\/stackoverflow.com\/questions\/37905763\/how-do-i-download-docker-images-without-using-the-pull-command\r\nwget https:\/\/raw.githubusercontent.com\/moby\/moby\/master\/contrib\/download-frozen-image-v2.sh\r\nchmod +x download-frozen-image-v2.sh\r\nmkdir 'img'\r\n.\/download-frozen-image-v2.sh 'img' eugensystems\/wargame3:latest\r\nmkdir 'img-files'\r\nfind -type f -name layer.tar -exec tar -zxf {} --directory 'img-files' \\;\r\ncp 'img-files\/server\/wargame3-server' \/mnt\/server\r\n\r\n# Generate pkey\/cert\r\nopenssl genrsa -out \/mnt\/server\/pkey 2048\r\nopenssl req -new -batch -key \/mnt\/server\/pkey -out \/mnt\/server\/cert.req\r\nopenssl x509 -req -days 365 -in \/mnt\/server\/cert.req -signkey \/mnt\/server\/pkey -out \/mnt\/server\/cert\r\n\r\n# Set up wargame patch\r\nwget https:\/\/github.com\/wargame-mods\/wargame-server\/archive\/refs\/heads\/master.zip\r\nunzip -j master.zip\r\npython3 patch.py \/mnt\/server\/wargame3-server\r\nmv \/mnt\/server\/wargame3-server.patched \/mnt\/server\/wargame3-server\r\ncp control.py \/mnt\/server\/control.py\r\ntouch \/mnt\/server\/chat.txt\r\ntouch \/mnt\/server\/badwords.txt\r\n\r\n# Generate config files\r\n# Comments copied from https:\/\/eugensystems.com\/downloads\/wargame3_server.tar.bz2\r\ncat < \/mnt\/server\/install.txt\r\nWargame2 Dedicated Server is provided \"AS IS\" WITHOUT WARRANTY OF ANY KIND,\r\nEITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\r\nOF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\r\n\r\nTo install dedicated server, please follow these steps :\r\n- Edit login.ini file and insert your login and the dedicated key that eugen must have provided\r\n- Edit variables.ini and configure the games options\r\n- Launch wargame3-server with command line : .\/wargame3-server +port XXXX +ip_mms 178.32.126.73 +port_mms 10002 +ip YY.YY.YY.YY\r\nwhere your must replace XXXX by a valid port > 10000 and YY.YY.YY.YY by the IP of your server.\r\n\r\nEnjoy !\r\n\r\n\r\nOptional steps :\r\n- You can use rcon protocol to kick\/ban people, change server properties at runtime.\r\nYou can active rcon by specify the option +rcon_password and +rcon_port when you start your server.\r\nYou should then be able to connect using rcon client. Available commands are :\r\ndisplay_all_clients -> Display the list of connected clients with their Id\r\nkick CLIENT_ID -> Kick the client with Id CLIENT_ID\r\nkick CLIENT_PSEUDO -> Kick the client with pseudo CLIENT_PSEUDO (CLIENT_PSEUDO can be a part of his real pseudo)\r\nban CLIENT_ID DELAY_IN_HOUR -> Ban the player with Id CLIENT_ID for DELAY_IN_HOUR hours\r\nban CLIENT_PSEUDO DELAY_IN_HOUR -> Ban the player with pseudo CLIENT_PSEUDO for DELAY_IN_HOUR hours (CLIENT_PSEUDO can be a part of his real pseudo)\r\nunban CLIENT_ID -> Unban the player with Id CLIENT_ID\r\nsetsvar VARIABLE_NAME VARIABLE_VALUE -> Allow you to change one of the settings of the server (have a look at variables.ini)\r\n\r\n- You can have a look at the admins.ini file to add some admins to your server\r\nEOF\r\n\r\ncat < \/mnt\/server\/banned_clients.ini\r\n; This file contains the list of the banned user\r\n; Its lines should be like :\r\n; 120487=1373993738\r\n; where 120487 is the client Id of the banned player and 1373993738 is the end date of the ban stored using Unix time (http:\/\/en.wikipedia.org\/wiki\/Unix_time)\r\n; If the end date is 0, it means that the player is banned forever\r\nEOF\r\n\r\ncat < \/mnt\/server\/admins.ini\r\n; This file contains the list of the admins\r\n;\r\n; Its lines should be like :\r\n; 120487=\"abcdefghijklmnopqrstuvwxyz\"\r\n; where 120487 is the client Id of the admin player and abcdefghijklmnopqrstuvwxyz is the rights granted to this players\r\n;\r\n; Granted rights can be :\r\n; s -> Can change serveur variable \r\n; p -> Can change player variable\r\n; k -> Can kick clients\r\n; b -> Can ban clients \r\n; u -> Can unban clients\r\n;\r\n; Admins can execute these commands ingame if they are connected on the server.\r\n;\r\n; Available commands are :\r\n; kick CLIENT_ID -> Kick the client with Id CLIENT_ID\r\n; kick CLIENT_PSEUDO -> Kick the client with pseudo CLIENT_PSEUDO (CLIENT_PSEUDO can be a part of his real pseudo)\r\n; ban CLIENT_ID DELAY_IN_HOUR -> Ban the player with Id CLIENT_ID for DELAY_IN_HOUR hours\r\n; ban CLIENT_PSEUDO DELAY_IN_HOUR -> Ban the player with pseudo CLIENT_PSEUDO for DELAY_IN_HOUR hours (CLIENT_PSEUDO can be a part of his real pseudo)\r\n; unban CLIENT_ID -> Unban the player with Id CLIENT_ID\r\n; setsvar VARIABLE_NAME VARIABLE_VALUE -> Allow you to change one of the settings of the server (have a look at variables.ini)\r\n;\r\n; To execute a command, admin must enter in the lobby chat : \"\/COMMAND\"\r\n; For example, to kick player with pseudo toto, he must enter \/kick toto\r\n;\r\nEOF\r\n\r\ncat < \/mnt\/server\/login.ini\r\n; This file contains the parameters needed to register your server in the servers list\r\n; You need to have a valid eugnet account and a dedicated key. \r\n; If you have no dedicated key, ask a key at : eugsupport@eugen.fr (please provide your login in the mail).\r\n;\r\n\r\nlogin=\"INSERT_YOUR_LOGIN\"\r\ndedicated_key=\"INSERT_YOUR_KEY_HERE\"\r\nEOF\r\n\r\ncat < \/mnt\/server\/variables.ini\r\n; This file contains the parameters of the room\r\n; Allowed key \/ values are :\r\n;\r\n; NbMaxPlayer : Specify how many players can play during a game\r\n; Allowed values : NbMaxPlayer <= 20, default value is 20\r\n;\r\n; ServerName : Specify the name of the server\r\n; Allowed values : Text, default value is \"Default Server Name\"\r\n;\r\n; GameType : Specify the mode opposition mode.\r\n; Allowed values : 0 (NATO vs PACT), 1 (NATO vs NATO), 2 (PACT vs PACT), default value is 0\r\n;\r\n; InitMoney : Specify the amount of money which will be shared between players\r\n; Allowed values : All, default value is 4000\r\n;\r\n; TimeLimit : Specify the time of the fight in seconds\r\n; Allowed values : All, 0 means unlimited, default value is 1200\r\n;\r\n; ScoreLimit : Specify the score to reach to win\r\n; Allowed values : All, default value is 4000\r\n;\r\n; VictoryCond : Specify the victory condition\r\n; Allowed values : 1 (Destruction), 2 (Siege), 3 (Economy), 4 (Conquest), default value is 1\r\n;\r\n; NbMinPlayer: Specify the number of players needed to start the countdown\r\n; Allowed values : NbMinPlayer < 20 and NbMinPlayer < NbMaxPlayer, default value is 10\r\n;\r\n; WarmupCountdown : Specify the time in seconds before launch the game when NbMinPlayers is reached\r\n; Allowed values : WarmupCountdown > 10, default value is 120\r\n;\r\n; LoadingTimeMax : Specify the time max in seconds between the end of the countdown and the beginning of the deployment\r\n; Allowed values : LoadingTimeMax > 60, default value is 120\r\n;\r\n; DeploiementTimeMax : Specify the time in seconds before deployment end\r\n; Allowed values : DeploiementTimeMax > 10, default value is 120\r\n;\r\n; DebriefingTimeMax : Specify the time max in seconds of the debriefing, players have DebriefingTimeMax seconds to click on the \"Next Game\" button if they want to stay on the server\r\n; Allowed values : All values, default value is 30\r\n;\r\n; DeltaMaxTeamSize : Specify the delta max of players between the 2 teams\r\n; Allowed values : All values, default value is 10\r\n;\r\n; MaxTeamSize : Specify the size max of the teams\r\n; Allowed values : All values, default value is 10\r\n;\r\n; IncomeRate : Specify the income rate\r\n; Allowed values : 0 (None), 1 (Very low), 2 (Low), 3 (Normal), 4 (High), 5 (VeryHigh), default value is 3\r\n;\r\n; NationConstraint : Specify the deck nation constraint\r\n; Allowed values : -1 (None), 0 (Any), 1 (Nation), 2 (Coalition), default value is -1\r\n;\r\n; ThematicConstraint : Specify the deck thematic constraint\r\n; Allowed values : -1 (None), -2 (Any), 0 (Motorized), 1 (Armored), 2 (Support), 3 (Marine), 4 (Mechanized), 5 (Airborne), 6 (Naval), default value is -1\r\n;\r\n; DateConstraint : Specify the deck date constraint\r\n; Allowed values : -1 (None), 0 (1981 to 1985), 1 (1980 and less), default value is -1\r\n;\r\n; Map : Specify the Id of the map\r\n; Allowed values (Format \"Id : Name visible in lobby\") :\r\n; Destruction_2x2_port_Wonsan_Terrestre : 1vs1 Wonsan harbour (Destruction, Economy)\r\n; Destruction_2x2_port_Wonsan : 1vs1 Wonsan harbour (Land\/Sea) (Destruction, Economy)\r\n; Destruction_2x3_Hwaseong : 1vs1 Nuclear winter is coming (Destruction, Economy)\r\n; Destruction_2x3_Esashi : 1vs1 Tropic Thunder (Destruction, Economy)\r\n; Destruction_2x3_Boseong : 1vs1 Apocalypse Imminent (Destruction, Economy)\r\n; Destruction_2x3_Tohoku : 2vs2 Paddy Field (Destruction, Economy)\r\n; Destruction_2x3_Anbyon : 2vs2 Hop and Glory (Destruction, Economy)\r\n; Destruction_2x3_Montagne_2 : 3vs3 Cliff Hanger (Destruction, Economy)\r\n; Destruction_3x2_Boryeong_Terrestre : 2vs2 Gunboat diplomacy (Destruction, Economy)\r\n; Destruction_3x2_Haenam : 3vs3 Back to Inchon (Destruction, Economy)\r\n; Destruction_3x3_Marine_2 : 4vs4 Smoke in the water (Land\/Sea) (Destruction, Economy)\r\n; Destruction_3x3_Marine_3 : 3vs3 Another D-Day in paradise (Land\/Sea) (Destruction, Economy)\r\n; Destruction_3x2_Boryeong : 3vs3 Gunboat diplomacy (Land\/Sea) (Destruction, Economy)\r\n; Destruction_3x2_Taean : 3vs3 Bloody Ridge (Destruction, Economy)\r\n; Destruction_3x2_Taebuko : 2vs2 Jungle LAW (Destruction, Economy)\r\n; Destruction_3x2_Sangju : 2vs2 Tough Jungle (Destruction, Economy)\r\n; Destruction_3x2_Montagne_3 : 2vs2 Chosin Reservoir (Destruction, Economy)\r\n; Destruction_3x3_Muju : 1vs1 Plunjing Valley (Destruction, Economy)\r\n; Destruction_3x3_Pyeongtaek : 3vs3 38th Parallel (Destruction, Economy)\r\n; Destruction_3x3_Marine_3_Terrestre : 2vs2 Another D-Day in paradise (Destruction, Economy)\r\n; Destruction_3x3_Montagne_1 : 4vs4 Cold War Z (Destruction, Economy)\r\n; Destruction_3x3_Montagne_4 : 3vs3 A Maze in Japan (Destruction, Economy)\r\n; Destruction_3x3_Chongju : 4vs4 Korea Rocks (Destruction, Economy)\r\n; Destruction_3x3_Gangjin : 4vs4 Floods (Destruction, Economy)\r\n; Destruction_4x4_Marine_6 : 1vs1 Out of the blue (Destruction, Economy)\r\n; Destruction_4x4_Marine_7 : 1vs1 Standoff in Barents (Destruction, Economy)\r\n; Destruction_4x4_Marine_9 : 2vs2 Bulldogs and Vampires (Destruction, Economy)\r\n; Destruction_4x4_Marine_10 : 2vs2 Alea Jacta West (Destruction, Economy)\r\n; Destruction_4x4_Marine_4 : 3vs3 Atoll Inbound (Destruction, Economy)\r\n; Destruction_4x4_Marine_5 : 3vs3 Waterworld (Destruction, Economy)\r\n; Destruction_5x3_Marine_1_small_Terrestre : 1vs1 Strait to the point (small) (Destruction, Economy)\r\n; Destruction_5x3_Marine_1_small : 2vs2 Strait to the point (small) (Land\/Sea) (Destruction, Economy)\r\n; Destruction_5x3_Marine_1_Terrestre : 3vs3 Strait to the point (Destruction, Economy)\r\n; Destruction_5x3_Marine_1 : 4vs4 Strait to the point (Land\/Sea) (Destruction, Economy)\r\n; Destruction_5x3_Asgard_10v10 : 10vs10 Asgard (Destruction, Economy)\r\n; Destruction_5x3_Gjoll_10v10 : 10vs10 Gjoll (Destruction, Economy)\r\n; Destruction_4x4_Russian_Roulette : 10vs10 Russian Roulette (Destruction, Economy)\r\n; Conquete_2x2_port_Wonsan_Terrestre : 1vs1 Wonsan harbour (Conquest)\r\n; Conquete_2x2_port_Wonsan : 1vs1 Wonsan harbour (Land\/Sea) (Conquest)\r\n; Conquete_2x3_Hwaseong : 1vs1 Nuclear winter is coming (Conquest)\r\n; Conquete_2x3_Boseong : 1vs1 Apocalypse Imminent (Conquest)\r\n; Conquete_2x3_Esashi : 1vs1 Tropic Thunder (Conquest)\r\n; Conquete_2x3_Tohoku : 2vs2 Paddy Field (Conquest)\r\n; Conquete_2x3_Anbyon : 2vs2 Hop and Glory (Conquest)\r\n; Conquete_2x3_Montagne_2 : 3vs3 Cliff Hanger (Conquest)\r\n; Conquete_3x2_Boryeong_Terrestre : 2vs2 Gunboat diplomacy (Conquest)\r\n; Conquete_3x2_Montagne_3 : 2vs2 Chosin Reservoir (Conquest)\r\n; Conquete_3x2_Sangju : 2vs2 Tough Jungle (Conquest)\r\n; Conquete_3x2_Taebuko : 2vs2 Jungle LAW (Conquest)\r\n; Conquete_3x2_Boryeong : 3vs3 Gunboat diplomacy (Land\/Sea) (Conquest)\r\n; Conquete_3x2_Taean : 3vs3 Bloody Ridge (Conquest)\r\n; Conquete_3x2_Haenam : 3vs3 Back to Inchon (Conquest)\r\n; Conquete_3x3_Marine_2 : 4vs4 Smoke in the water (Land\/Sea) (Conquest)\r\n; Conquete_3x3_Marine_3 : 3vs3 Another D-Day in paradise (Land\/Sea) (Conquest)\r\n; Conquete_3x3_Muju : 1vs1 Plunjing Valley (Conquest)\r\n; Conquete_3x3_Pyeongtaek : 3vs3 38th Parallel (Conquest)\r\n; Conquete_3x3_Marine_3_Terrestre : 2vs2 Another D-Day in paradise (Conquest)\r\n; Conquete_3x3_Montagne_1 : 4vs4 Cold War Z (Conquest)\r\n; Conquete_3x3_Montagne_4 : 3vs3 A Maze in Japan (Conquest)\r\n; Conquete_3x3_Chongju : 4vs4 Korea Rocks (Conquest)\r\n; Conquete_3x3_Gangjin : 4vs4 Floods (Conquest)\r\n; Conquete_4x4_Marine_6 : 1vs1 Out of the blue (Conquest)\r\n; Conquete_4x4_Marine_7 : 1vs1 Standoff in Barents (Conquest)\r\n; Conquete_4x4_Marine_9 : 2vs2 Bulldogs and Vampires (Conquest)\r\n; Conquete_4x4_Marine_10 : 2vs2 Alea Jacta West (Conquest)\r\n; Conquete_4x4_Marine_4 : 3vs3 Atoll Inbound (Conquest)\r\n; Conquete_4x4_Marine_5 : 3vs3 Waterworld (Conquest)\r\n; Conquete_5x3_Marine_1_small_Terrestre : 1vs1 Strait to the point (small) (Conquest)\r\n; Conquete_5x3_Marine_1_small : 2vs2 Strait to the point (small) (Land\/Sea) (Conquest)\r\n; Conquete_5x3_Marine_1_Terrestre : 3vs3 Strait to the point (Conquest)\r\n; Conquete_5x3_Marine_1 : 4vs4 Strait to the point (Land\/Sea) (Conquest)\r\n; Conquete_5x3_Asgard_10v10 : 10vs10 Asgard (Conquest)\r\n; Conquete_5x3_Gjoll_10v10 : 10vs10 Gjoll (Conquest)\r\n; Conquete_4x4_Russian_Roulette : 10vs10 Russian Roulette (Conquest)\r\n;\r\n\r\nServerName = \"Default Server Name\"\r\nNbMaxPlayer = 20\r\nGameType = 0\r\nMap = Destruction_5x3_Asgard_10v10\r\nInitMoney = 10000\r\nScoreLimit = 20000\r\nVictoryCond = 1\r\nNbMinPlayer = 18\r\nDebriefingTimeMax = 180\r\nDeploiementTimeMax = 120\r\nWarmupCountdown = 15\r\nTimeLimit = 3600\r\nDeltaMaxTeamSize = 10\r\nMaxTeamSize = 10\r\nEOF", + "container": "alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Server Name", + "description": "The server name shown in matchmaking", + "env_variable": "SRV_NAME", + "default_value": "Wargame Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "Login", + "description": "Username provided to Eugen when requesting an API key", + "env_variable": "SRV_LOGIN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "API Key", + "description": "API Key provided by Eugen. Send an email to \"eugsupport@eugen.fr\" containing your EugNet login, E-Mail used to register, and Wargame CD key to receive one.", + "env_variable": "SRV_APIKEY", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "RCon Password", + "description": "Password used to connect to server RCon", + "env_variable": "SRV_RCON", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "RCon port", + "description": "Port used to connect to server RCon", + "env_variable": "SRV_RCON_PORT", + "default_value": "", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|min:1" + }, + { + "name": "Matchmaking server IP address", + "description": "IP Address to Eugen Matchmaking server", + "env_variable": "SRV_MMS_IP", + "default_value": "178.32.126.73", + "user_viewable": true, + "user_editable": false, + "rules": "required|ip" + }, + { + "name": "Matchmaking server port", + "description": "Port used to connect to Eugen Matchmaking server", + "env_variable": "SRV_MMS_PORT", + "default_value": "10002", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|min:1" + } + ] +} \ No newline at end of file diff --git a/game_eggs/eugen/wargame-red-dragon/README.md b/game_eggs/eugen/wargame-red-dragon/README.md new file mode 100644 index 00000000..a672d838 --- /dev/null +++ b/game_eggs/eugen/wargame-red-dragon/README.md @@ -0,0 +1,20 @@ +# Wargame: Red Dragon + +#### Wargame: Red Dragon dedicated server + + +#### from the developers + +Wargame: Red Dragon is thrilling in single-player mode with its new dynamic campaign system, and also offers an extensive multiplayer mode where up to 20 players can compete against each other simultaneously. + +#### Obtaining access key + +Any person willing to run a dedicated server, please contact us at this eugsupport@eugen.fr. Send us an email requestion access to the dedicated servers request for access. Please include your EugNet login in the email. Only send us your login. We don't need your password or your Steam login. + +### Server Ports +Wargame: Red Dragon requires two ports higher than 1024, one main port and one RCon. + +| Port | default | +|---------|---------| +| Game | >1024 | +| RCon | >1024 | \ No newline at end of file diff --git a/game_eggs/eugen/wargame-red-dragon/egg-wargame-red-dragon.json b/game_eggs/eugen/wargame-red-dragon/egg-wargame-red-dragon.json new file mode 100644 index 00000000..744c55df --- /dev/null +++ b/game_eggs/eugen/wargame-red-dragon/egg-wargame-red-dragon.json @@ -0,0 +1,95 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2021-08-17T08:18:54-05:00", + "name": "Wargame: Red Dragon", + "author": "f.falk@pm.me", + "description": "Wargame: Red Dragon is thrilling in single-player mode with its new dynamic campaign system, and also offers an extensive multiplayer mode where up to 20 players can compete against each other simultaneously.", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:base_debian" + ], + "file_denylist": [], + "startup": ".\/wargame3-server +ip {{SERVER_IP}} +port {{SERVER_PORT}} +ip_mms {{SRV_MMS_IP}} +port_mms {{SRV_MMS_PORT}} +rcon_password {{SRV_RCON}} +rcon_port {{SRV_RCON_PORT}} +chat_log_file chat.txt", + "config": { + "files": "{\r\n \"login.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"login\": \"login=\\\"{{server.build.env.SRV_LOGIN}}\\\"\",\r\n \"dedicated_key\": \"dedicated_key=\\\"{{server.build.env.SRV_APIKEY}}\\\"\"\r\n }\r\n },\r\n \"variables.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName=\\\"{{server.build.env.SRV_NAME}}\\\"\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Connection to match making server validated\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# TS3 Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napk add wget bash jq curl openssl\r\n\r\n# Download server files, only available in docker unfortunately\r\n# Docker-in-docker requires special setup to work, so this is a bit of a workaround\r\n# https:\/\/stackoverflow.com\/questions\/37905763\/how-do-i-download-docker-images-without-using-the-pull-command\r\nwget https:\/\/raw.githubusercontent.com\/moby\/moby\/master\/contrib\/download-frozen-image-v2.sh\r\nchmod +x download-frozen-image-v2.sh\r\nmkdir 'img'\r\n.\/download-frozen-image-v2.sh 'img' eugensystems\/wargame3:latest\r\nmkdir 'img-files'\r\nfind -type f -name layer.tar -exec tar -zxf {} --directory 'img-files' \\;\r\ncp 'img-files\/server\/wargame3-server' \/mnt\/server\r\n\r\n# Generate pkey\/cert\r\nopenssl genrsa -out \/mnt\/server\/pkey 2048\r\nopenssl req -new -batch -key \/mnt\/server\/pkey -out \/mnt\/server\/cert.req\r\nopenssl x509 -req -days 365 -in \/mnt\/server\/cert.req -signkey \/mnt\/server\/pkey -out \/mnt\/server\/cert\r\n\r\n# Generate config files\r\n# Comments copied from https:\/\/eugensystems.com\/downloads\/wargame3_server.tar.bz2\r\ncat < \/mnt\/server\/install.txt\r\nWargame2 Dedicated Server is provided \"AS IS\" WITHOUT WARRANTY OF ANY KIND,\r\nEITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\r\nOF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\r\n\r\nTo install dedicated server, please follow these steps :\r\n- Edit login.ini file and insert your login and the dedicated key that eugen must have provided\r\n- Edit variables.ini and configure the games options\r\n- Launch wargame3-server with command line : .\/wargame3-server +port XXXX +ip_mms 178.32.126.73 +port_mms 10002 +ip YY.YY.YY.YY\r\nwhere your must replace XXXX by a valid port > 10000 and YY.YY.YY.YY by the IP of your server.\r\n\r\nEnjoy !\r\n\r\n\r\nOptional steps :\r\n- You can use rcon protocol to kick\/ban people, change server properties at runtime.\r\nYou can active rcon by specify the option +rcon_password and +rcon_port when you start your server.\r\nYou should then be able to connect using rcon client. Available commands are :\r\ndisplay_all_clients -> Display the list of connected clients with their Id\r\nkick CLIENT_ID -> Kick the client with Id CLIENT_ID\r\nkick CLIENT_PSEUDO -> Kick the client with pseudo CLIENT_PSEUDO (CLIENT_PSEUDO can be a part of his real pseudo)\r\nban CLIENT_ID DELAY_IN_HOUR -> Ban the player with Id CLIENT_ID for DELAY_IN_HOUR hours\r\nban CLIENT_PSEUDO DELAY_IN_HOUR -> Ban the player with pseudo CLIENT_PSEUDO for DELAY_IN_HOUR hours (CLIENT_PSEUDO can be a part of his real pseudo)\r\nunban CLIENT_ID -> Unban the player with Id CLIENT_ID\r\nsetsvar VARIABLE_NAME VARIABLE_VALUE -> Allow you to change one of the settings of the server (have a look at variables.ini)\r\n\r\n- You can have a look at the admins.ini file to add some admins to your server\r\nEOF\r\n\r\ncat < \/mnt\/server\/banned_clients.ini\r\n; This file contains the list of the banned user\r\n; Its lines should be like :\r\n; 120487=1373993738\r\n; where 120487 is the client Id of the banned player and 1373993738 is the end date of the ban stored using Unix time (http:\/\/en.wikipedia.org\/wiki\/Unix_time)\r\n; If the end date is 0, it means that the player is banned forever\r\nEOF\r\n\r\ncat < \/mnt\/server\/admins.ini\r\n; This file contains the list of the admins\r\n;\r\n; Its lines should be like :\r\n; 120487=\"abcdefghijklmnopqrstuvwxyz\"\r\n; where 120487 is the client Id of the admin player and abcdefghijklmnopqrstuvwxyz is the rights granted to this players\r\n;\r\n; Granted rights can be :\r\n; s -> Can change serveur variable \r\n; p -> Can change player variable\r\n; k -> Can kick clients\r\n; b -> Can ban clients \r\n; u -> Can unban clients\r\n;\r\n; Admins can execute these commands ingame if they are connected on the server.\r\n;\r\n; Available commands are :\r\n; kick CLIENT_ID -> Kick the client with Id CLIENT_ID\r\n; kick CLIENT_PSEUDO -> Kick the client with pseudo CLIENT_PSEUDO (CLIENT_PSEUDO can be a part of his real pseudo)\r\n; ban CLIENT_ID DELAY_IN_HOUR -> Ban the player with Id CLIENT_ID for DELAY_IN_HOUR hours\r\n; ban CLIENT_PSEUDO DELAY_IN_HOUR -> Ban the player with pseudo CLIENT_PSEUDO for DELAY_IN_HOUR hours (CLIENT_PSEUDO can be a part of his real pseudo)\r\n; unban CLIENT_ID -> Unban the player with Id CLIENT_ID\r\n; setsvar VARIABLE_NAME VARIABLE_VALUE -> Allow you to change one of the settings of the server (have a look at variables.ini)\r\n;\r\n; To execute a command, admin must enter in the lobby chat : \"\/COMMAND\"\r\n; For example, to kick player with pseudo toto, he must enter \/kick toto\r\n;\r\nEOF\r\n\r\ncat < \/mnt\/server\/login.ini\r\n; This file contains the parameters needed to register your server in the servers list\r\n; You need to have a valid eugnet account and a dedicated key. \r\n; If you have no dedicated key, ask a key at : eugsupport@eugen.fr (please provide your login in the mail).\r\n;\r\n\r\nlogin=\"INSERT_YOUR_LOGIN\"\r\ndedicated_key=\"INSERT_YOUR_KEY_HERE\"\r\nEOF\r\n\r\ncat < \/mnt\/server\/variables.ini\r\n; This file contains the parameters of the room\r\n; Allowed key \/ values are :\r\n;\r\n; NbMaxPlayer : Specify how many players can play during a game\r\n; Allowed values : NbMaxPlayer <= 20, default value is 20\r\n;\r\n; ServerName : Specify the name of the server\r\n; Allowed values : Text, default value is \"Default Server Name\"\r\n;\r\n; GameType : Specify the mode opposition mode.\r\n; Allowed values : 0 (NATO vs PACT), 1 (NATO vs NATO), 2 (PACT vs PACT), default value is 0\r\n;\r\n; InitMoney : Specify the amount of money which will be shared between players\r\n; Allowed values : All, default value is 4000\r\n;\r\n; TimeLimit : Specify the time of the fight in seconds\r\n; Allowed values : All, 0 means unlimited, default value is 1200\r\n;\r\n; ScoreLimit : Specify the score to reach to win\r\n; Allowed values : All, default value is 4000\r\n;\r\n; VictoryCond : Specify the victory condition\r\n; Allowed values : 1 (Destruction), 2 (Siege), 3 (Economy), 4 (Conquest), default value is 1\r\n;\r\n; NbMinPlayer: Specify the number of players needed to start the countdown\r\n; Allowed values : NbMinPlayer < 20 and NbMinPlayer < NbMaxPlayer, default value is 10\r\n;\r\n; WarmupCountdown : Specify the time in seconds before launch the game when NbMinPlayers is reached\r\n; Allowed values : WarmupCountdown > 10, default value is 120\r\n;\r\n; LoadingTimeMax : Specify the time max in seconds between the end of the countdown and the beginning of the deployment\r\n; Allowed values : LoadingTimeMax > 60, default value is 120\r\n;\r\n; DeploiementTimeMax : Specify the time in seconds before deployment end\r\n; Allowed values : DeploiementTimeMax > 10, default value is 120\r\n;\r\n; DebriefingTimeMax : Specify the time max in seconds of the debriefing, players have DebriefingTimeMax seconds to click on the \"Next Game\" button if they want to stay on the server\r\n; Allowed values : All values, default value is 30\r\n;\r\n; DeltaMaxTeamSize : Specify the delta max of players between the 2 teams\r\n; Allowed values : All values, default value is 10\r\n;\r\n; MaxTeamSize : Specify the size max of the teams\r\n; Allowed values : All values, default value is 10\r\n;\r\n; IncomeRate : Specify the income rate\r\n; Allowed values : 0 (None), 1 (Very low), 2 (Low), 3 (Normal), 4 (High), 5 (VeryHigh), default value is 3\r\n;\r\n; NationConstraint : Specify the deck nation constraint\r\n; Allowed values : -1 (None), 0 (Any), 1 (Nation), 2 (Coalition), default value is -1\r\n;\r\n; ThematicConstraint : Specify the deck thematic constraint\r\n; Allowed values : -1 (None), -2 (Any), 0 (Motorized), 1 (Armored), 2 (Support), 3 (Marine), 4 (Mechanized), 5 (Airborne), 6 (Naval), default value is -1\r\n;\r\n; DateConstraint : Specify the deck date constraint\r\n; Allowed values : -1 (None), 0 (1981 to 1985), 1 (1980 and less), default value is -1\r\n;\r\n; Map : Specify the Id of the map\r\n; Allowed values (Format \"Id : Name visible in lobby\") :\r\n; Destruction_2x2_port_Wonsan_Terrestre : 1vs1 Wonsan harbour (Destruction, Economy)\r\n; Destruction_2x2_port_Wonsan : 1vs1 Wonsan harbour (Land\/Sea) (Destruction, Economy)\r\n; Destruction_2x3_Hwaseong : 1vs1 Nuclear winter is coming (Destruction, Economy)\r\n; Destruction_2x3_Esashi : 1vs1 Tropic Thunder (Destruction, Economy)\r\n; Destruction_2x3_Boseong : 1vs1 Apocalypse Imminent (Destruction, Economy)\r\n; Destruction_2x3_Tohoku : 2vs2 Paddy Field (Destruction, Economy)\r\n; Destruction_2x3_Anbyon : 2vs2 Hop and Glory (Destruction, Economy)\r\n; Destruction_2x3_Montagne_2 : 3vs3 Cliff Hanger (Destruction, Economy)\r\n; Destruction_3x2_Boryeong_Terrestre : 2vs2 Gunboat diplomacy (Destruction, Economy)\r\n; Destruction_3x2_Haenam : 3vs3 Back to Inchon (Destruction, Economy)\r\n; Destruction_3x3_Marine_2 : 4vs4 Smoke in the water (Land\/Sea) (Destruction, Economy)\r\n; Destruction_3x3_Marine_3 : 3vs3 Another D-Day in paradise (Land\/Sea) (Destruction, Economy)\r\n; Destruction_3x2_Boryeong : 3vs3 Gunboat diplomacy (Land\/Sea) (Destruction, Economy)\r\n; Destruction_3x2_Taean : 3vs3 Bloody Ridge (Destruction, Economy)\r\n; Destruction_3x2_Taebuko : 2vs2 Jungle LAW (Destruction, Economy)\r\n; Destruction_3x2_Sangju : 2vs2 Tough Jungle (Destruction, Economy)\r\n; Destruction_3x2_Montagne_3 : 2vs2 Chosin Reservoir (Destruction, Economy)\r\n; Destruction_3x3_Muju : 1vs1 Plunjing Valley (Destruction, Economy)\r\n; Destruction_3x3_Pyeongtaek : 3vs3 38th Parallel (Destruction, Economy)\r\n; Destruction_3x3_Marine_3_Terrestre : 2vs2 Another D-Day in paradise (Destruction, Economy)\r\n; Destruction_3x3_Montagne_1 : 4vs4 Cold War Z (Destruction, Economy)\r\n; Destruction_3x3_Montagne_4 : 3vs3 A Maze in Japan (Destruction, Economy)\r\n; Destruction_3x3_Chongju : 4vs4 Korea Rocks (Destruction, Economy)\r\n; Destruction_3x3_Gangjin : 4vs4 Floods (Destruction, Economy)\r\n; Destruction_4x4_Marine_6 : 1vs1 Out of the blue (Destruction, Economy)\r\n; Destruction_4x4_Marine_7 : 1vs1 Standoff in Barents (Destruction, Economy)\r\n; Destruction_4x4_Marine_9 : 2vs2 Bulldogs and Vampires (Destruction, Economy)\r\n; Destruction_4x4_Marine_10 : 2vs2 Alea Jacta West (Destruction, Economy)\r\n; Destruction_4x4_Marine_4 : 3vs3 Atoll Inbound (Destruction, Economy)\r\n; Destruction_4x4_Marine_5 : 3vs3 Waterworld (Destruction, Economy)\r\n; Destruction_5x3_Marine_1_small_Terrestre : 1vs1 Strait to the point (small) (Destruction, Economy)\r\n; Destruction_5x3_Marine_1_small : 2vs2 Strait to the point (small) (Land\/Sea) (Destruction, Economy)\r\n; Destruction_5x3_Marine_1_Terrestre : 3vs3 Strait to the point (Destruction, Economy)\r\n; Destruction_5x3_Marine_1 : 4vs4 Strait to the point (Land\/Sea) (Destruction, Economy)\r\n; Destruction_5x3_Asgard_10v10 : 10vs10 Asgard (Destruction, Economy)\r\n; Destruction_5x3_Gjoll_10v10 : 10vs10 Gjoll (Destruction, Economy)\r\n; Destruction_4x4_Russian_Roulette : 10vs10 Russian Roulette (Destruction, Economy)\r\n; Conquete_2x2_port_Wonsan_Terrestre : 1vs1 Wonsan harbour (Conquest)\r\n; Conquete_2x2_port_Wonsan : 1vs1 Wonsan harbour (Land\/Sea) (Conquest)\r\n; Conquete_2x3_Hwaseong : 1vs1 Nuclear winter is coming (Conquest)\r\n; Conquete_2x3_Boseong : 1vs1 Apocalypse Imminent (Conquest)\r\n; Conquete_2x3_Esashi : 1vs1 Tropic Thunder (Conquest)\r\n; Conquete_2x3_Tohoku : 2vs2 Paddy Field (Conquest)\r\n; Conquete_2x3_Anbyon : 2vs2 Hop and Glory (Conquest)\r\n; Conquete_2x3_Montagne_2 : 3vs3 Cliff Hanger (Conquest)\r\n; Conquete_3x2_Boryeong_Terrestre : 2vs2 Gunboat diplomacy (Conquest)\r\n; Conquete_3x2_Montagne_3 : 2vs2 Chosin Reservoir (Conquest)\r\n; Conquete_3x2_Sangju : 2vs2 Tough Jungle (Conquest)\r\n; Conquete_3x2_Taebuko : 2vs2 Jungle LAW (Conquest)\r\n; Conquete_3x2_Boryeong : 3vs3 Gunboat diplomacy (Land\/Sea) (Conquest)\r\n; Conquete_3x2_Taean : 3vs3 Bloody Ridge (Conquest)\r\n; Conquete_3x2_Haenam : 3vs3 Back to Inchon (Conquest)\r\n; Conquete_3x3_Marine_2 : 4vs4 Smoke in the water (Land\/Sea) (Conquest)\r\n; Conquete_3x3_Marine_3 : 3vs3 Another D-Day in paradise (Land\/Sea) (Conquest)\r\n; Conquete_3x3_Muju : 1vs1 Plunjing Valley (Conquest)\r\n; Conquete_3x3_Pyeongtaek : 3vs3 38th Parallel (Conquest)\r\n; Conquete_3x3_Marine_3_Terrestre : 2vs2 Another D-Day in paradise (Conquest)\r\n; Conquete_3x3_Montagne_1 : 4vs4 Cold War Z (Conquest)\r\n; Conquete_3x3_Montagne_4 : 3vs3 A Maze in Japan (Conquest)\r\n; Conquete_3x3_Chongju : 4vs4 Korea Rocks (Conquest)\r\n; Conquete_3x3_Gangjin : 4vs4 Floods (Conquest)\r\n; Conquete_4x4_Marine_6 : 1vs1 Out of the blue (Conquest)\r\n; Conquete_4x4_Marine_7 : 1vs1 Standoff in Barents (Conquest)\r\n; Conquete_4x4_Marine_9 : 2vs2 Bulldogs and Vampires (Conquest)\r\n; Conquete_4x4_Marine_10 : 2vs2 Alea Jacta West (Conquest)\r\n; Conquete_4x4_Marine_4 : 3vs3 Atoll Inbound (Conquest)\r\n; Conquete_4x4_Marine_5 : 3vs3 Waterworld (Conquest)\r\n; Conquete_5x3_Marine_1_small_Terrestre : 1vs1 Strait to the point (small) (Conquest)\r\n; Conquete_5x3_Marine_1_small : 2vs2 Strait to the point (small) (Land\/Sea) (Conquest)\r\n; Conquete_5x3_Marine_1_Terrestre : 3vs3 Strait to the point (Conquest)\r\n; Conquete_5x3_Marine_1 : 4vs4 Strait to the point (Land\/Sea) (Conquest)\r\n; Conquete_5x3_Asgard_10v10 : 10vs10 Asgard (Conquest)\r\n; Conquete_5x3_Gjoll_10v10 : 10vs10 Gjoll (Conquest)\r\n; Conquete_4x4_Russian_Roulette : 10vs10 Russian Roulette (Conquest)\r\n;\r\n\r\nServerName = \"Default Server Name\"\r\nNbMaxPlayer = 20\r\nGameType = 0\r\nMap = Destruction_5x3_Asgard_10v10\r\nInitMoney = 10000\r\nScoreLimit = 20000\r\nVictoryCond = 1\r\nNbMinPlayer = 18\r\nDebriefingTimeMax = 180\r\nDeploiementTimeMax = 120\r\nWarmupCountdown = 15\r\nTimeLimit = 3600\r\nDeltaMaxTeamSize = 10\r\nMaxTeamSize = 10\r\nEOF", + "container": "alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Server Name", + "description": "The server name shown in matchmaking", + "env_variable": "SRV_NAME", + "default_value": "Wargame Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "Login", + "description": "Username provided to Eugen when requesting an API key", + "env_variable": "SRV_LOGIN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "API Key", + "description": "API Key provided by Eugen. Send an email to \"eugsupport@eugen.fr\" containing your EugNet login, E-Mail used to register, and Wargame CD key to receive one.", + "env_variable": "SRV_APIKEY", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "RCon Password", + "description": "Password used to connect to server RCon", + "env_variable": "SRV_RCON", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "RCon port", + "description": "Port used to connect to server RCon", + "env_variable": "SRV_RCON_PORT", + "default_value": "", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|min:1" + }, + { + "name": "Matchmaking server IP address", + "description": "IP Address to Eugen Matchmaking server", + "env_variable": "SRV_MMS_IP", + "default_value": "178.32.126.73", + "user_viewable": true, + "user_editable": false, + "rules": "required|ip" + }, + { + "name": "Matchmaking server port", + "description": "Port used to connect to Eugen Matchmaking server", + "env_variable": "SRV_MMS_PORT", + "default_value": "10002", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|min:1" + } + ] +} \ No newline at end of file