{ "_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" } ] }