Compare commits
	
		
			2 Commits
		
	
	
		
			main
			...
			Survive-Th
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 185507d577 | ||
|  | 1f399d01d9 | 
| @ -106,6 +106,7 @@ | ||||
|   * [BepInEx](stationeers/stationeers_bepinex) | ||||
| * [Stormworks: Build and Rescue](stormworks) | ||||
| * [Subnautica: Nitrox Mod](subnautica_nitrox_mod) | ||||
| * [Survive The Nights](survive_the_nights/) | ||||
| * [Sven Co-op](svencoop) | ||||
| * [Swords 'n Magic and Stuff](swords_'n_Magic_and_Stuff) | ||||
| * [Team Fortress 2 Classic](team_fortress_2_classic) | ||||
|  | ||||
| @ -1,10 +1,10 @@ | ||||
| { | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", | ||||
|     "meta": { | ||||
|         "version": "PLCN_v1", | ||||
|         "update_url": "https:\/\/raw.githubusercontent.com\/pelican-eggs\/games-steamcmd\/refs\/heads\/main\/ark_survival_ascended\/egg-a-r-k--survival-ascended.json" | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|     }, | ||||
|     "exported_at": "2024-11-30T15:44:05+00:00", | ||||
|     "exported_at": "2024-06-01T00:03:48+00:00", | ||||
|     "name": "ARK: Survival Ascended", | ||||
|     "author": "blood@darkartsgaming.com", | ||||
|     "uuid": "e9a600eb-3f06-44bf-bcbc-47fe70fa774e", | ||||
| @ -18,7 +18,7 @@ | ||||
|     "file_denylist": [], | ||||
|     "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} KeepAlive && rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe {{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName=\\\"{{SESSION_NAME}}\\\"?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True$( [  \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword=\"{{SERVER_PASSWORD}}\"{{ARGS_PARAMS}}?ServerAdminPassword=\"{{ARK_ADMIN_PASSWORD}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) -Port={{SERVER_PORT}} {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", | ||||
|     "config": { | ||||
|         "files": "{\r\n    \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"MaxPlayers=\": \"MaxPlayers={{server.environment.MAX_PLAYERS}}\",\r\n            \"ServerAdminPassword=\": \"ServerAdminPassword={{server.environment.ARK_ADMIN_PASSWORD}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "files": "{\r\n    \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\",\r\n            \"ServerAdminPassword=\": \"ServerAdminPassword={{server.build.env.ARK_ADMIN_PASSWORD}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "startup": "{\r\n    \"done\": \"Waiting commands for 127.0.0.1:\"\r\n}", | ||||
|         "logs": "{}", | ||||
|         "stop": "^C" | ||||
| @ -38,12 +38,9 @@ | ||||
|             "default_value": "TheIsland_WP", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "max:64" | ||||
|             ], | ||||
|             "sort": 1 | ||||
|             "rules": "required|string|max:64", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Server Name", | ||||
| @ -52,12 +49,9 @@ | ||||
|             "default_value": "A Pterodactyl Hosted Server", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "max:256" | ||||
|             ], | ||||
|             "sort": 2 | ||||
|             "rules": "required|string|max:256", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Auto-update server", | ||||
| @ -66,11 +60,9 @@ | ||||
|             "default_value": "1", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "boolean" | ||||
|             ], | ||||
|             "sort": 3 | ||||
|             "rules": "required|boolean", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Battle Eye", | ||||
| @ -79,11 +71,9 @@ | ||||
|             "default_value": "1", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "boolean" | ||||
|             ], | ||||
|             "sort": 4 | ||||
|             "rules": "required|boolean", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "App ID", | ||||
| @ -92,12 +82,9 @@ | ||||
|             "default_value": "2430930", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "in:2430930" | ||||
|             ], | ||||
|             "sort": 5 | ||||
|             "rules": "required|integer|in:2430930", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Additional Arguments (PARAMS)", | ||||
| @ -106,12 +93,9 @@ | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "string", | ||||
|                 "max:1024" | ||||
|             ], | ||||
|             "sort": 6 | ||||
|             "rules": "nullable|string|max:1024", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Max Players", | ||||
| @ -120,13 +104,9 @@ | ||||
|             "default_value": "70", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "min:1", | ||||
|                 "max:200" | ||||
|             ], | ||||
|             "sort": 7 | ||||
|             "rules": "required|integer|min:1|max:200", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Server Admin Password", | ||||
| @ -135,12 +115,9 @@ | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "alpha_dash", | ||||
|                 "max:128" | ||||
|             ], | ||||
|             "sort": 8 | ||||
|             "rules": "required|alpha_dash|max:128", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Query Port", | ||||
| @ -149,13 +126,9 @@ | ||||
|             "default_value": "27015", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "min:1025", | ||||
|                 "max:65535" | ||||
|             ], | ||||
|             "sort": 9 | ||||
|             "rules": "required|integer|min:1025|max:65535", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Additional Arguments (FLAGS)", | ||||
| @ -164,12 +137,9 @@ | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "string", | ||||
|                 "max:1024" | ||||
|             ], | ||||
|             "sort": 10 | ||||
|             "rules": "nullable|string|max:1024", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Server PvE", | ||||
| @ -178,11 +148,9 @@ | ||||
|             "default_value": "1", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "boolean" | ||||
|             ], | ||||
|             "sort": 11 | ||||
|             "rules": "required|boolean", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Server Password", | ||||
| @ -191,12 +159,9 @@ | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "alpha_dash", | ||||
|                 "max:128" | ||||
|             ], | ||||
|             "sort": 12 | ||||
|             "rules": "nullable|alpha_dash|max:128", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "RCON Port", | ||||
| @ -205,13 +170,9 @@ | ||||
|             "default_value": "37015", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "min:1025", | ||||
|                 "max:65535" | ||||
|             ], | ||||
|             "sort": 13 | ||||
|             "rules": "required|integer|min:1025|max:65535", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "MOD IDs", | ||||
| @ -220,12 +181,9 @@ | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "string", | ||||
|                 "max:512" | ||||
|             ], | ||||
|             "sort": 14 | ||||
|             "rules": "nullable|string|max:512", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
| @ -1,32 +1,32 @@ | ||||
| { | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", | ||||
|     "meta": { | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|         "update_url": null, | ||||
|         "version": "PTDL_v2" | ||||
|     }, | ||||
|     "exported_at": "2024-10-04T17:28:26+02:00", | ||||
|     "exported_at": "2024-06-01T00:03:48+00:00", | ||||
|     "name": "ARK: Survival Ascended", | ||||
|     "author": "blood@darkartsgaming.com", | ||||
|     "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", | ||||
|     "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame \u0026 breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", | ||||
|     "features": [ | ||||
|         "steam_disk_space" | ||||
|     ], | ||||
|     "docker_images": { | ||||
|         "Proton": "ghcr.io\/parkervcp\/steamcmd:proton" | ||||
|         "Proton": "ghcr.io/parkervcp/steamcmd:proton" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} KeepAlive && rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe {{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName=\\\"{{SESSION_NAME}}\\\"?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True$( [  \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword=\"{{SERVER_PASSWORD}}\"{{ARGS_PARAMS}}?ServerAdminPassword=\"{{ARK_ADMIN_PASSWORD}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog $( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) -Port={{SERVER_PORT}} {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", | ||||
|     "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} KeepAlive \u0026\u0026 rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit \u0026\u0026 wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run ./ShooterGame/Binaries/Win64/ArkAscendedServer.exe {{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName=\\\"{{SESSION_NAME}}\\\"?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True$( [  \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword=\"{{SERVER_PASSWORD}}\"{{ARGS_PARAMS}}?ServerAdminPassword=\"{{ARK_ADMIN_PASSWORD}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) -Port={{SERVER_PORT}} {{ARGS_FLAGS}} \u0026 ARK_PID=$! ; tail -c0 -F ./ShooterGame/Saved/Logs/ShooterGame.log --pid=$ARK_PID \u0026 until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})\u003c\u00260 \u0026 wait $!; do sleep 5; done", | ||||
|     "config": { | ||||
|         "files": "{\r\n    \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\",\r\n            \"ServerAdminPassword=\": \"ServerAdminPassword={{server.build.env.ARK_ADMIN_PASSWORD}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "startup": "{\r\n    \"done\": \"Waiting commands for 127.0.0.1:\"\r\n}", | ||||
|         "files": "{\r\n    \"ShooterGame/Saved/Config/WindowsServer/GameUserSettings.ini\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\",\r\n            \"ServerAdminPassword=\": \"ServerAdminPassword={{server.build.env.ARK_ADMIN_PASSWORD}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "logs": "{}", | ||||
|         "startup": "{\r\n    \"done\": \"Waiting commands for 127.0.0.1:\"\r\n}", | ||||
|         "stop": "^C" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD  flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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## add below your custom commands if needed\r\n## cleanup movies?\r\nrm -rf \/mnt\/server\/ShooterGame\/Content\/Movies\r\n\r\n## touch log file\r\nmkdir -p \/mnt\/server\/ShooterGame\/Saved\/Logs\r\necho \"--fresh install--\" >> \/mnt\/server\/ShooterGame\/Saved\/Logs\/ShooterGame.log\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "bash" | ||||
|             "container": "ghcr.io/parkervcp/installers:debian", | ||||
|             "entrypoint": "bash", | ||||
|             "script": "#!/bin/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: /mnt/server\r\n# Image to install with is 'ghcr.io/parkervcp/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https://developer.valvesoftware.com/wiki/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD  flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing\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 +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] \u0026\u0026 printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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## add below your custom commands if needed\r\n## cleanup movies?\r\nrm -rf /mnt/server/ShooterGame/Content/Movies\r\n\r\n## touch log file\r\nmkdir -p /mnt/server/ShooterGame/Saved/Logs\r\necho \"--fresh install--\" \u003e\u003e /mnt/server/ShooterGame/Saved/Logs/ShooterGame.log\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
| @ -52,7 +52,7 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "Auto-update server", | ||||
|             "description": "This is to enable auto-updating for servers on restart\/re-install.", | ||||
|             "description": "This is to enable auto-updating for servers on restart/re-install.", | ||||
|             "env_variable": "AUTO_UPDATE", | ||||
|             "default_value": "1", | ||||
|             "user_viewable": true, | ||||
| @ -62,7 +62,7 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "Battle Eye", | ||||
|             "description": "Enable BattleEye \/ Anti-Cheat", | ||||
|             "description": "Enable BattleEye / Anti-Cheat", | ||||
|             "env_variable": "BATTLE_EYE", | ||||
|             "default_value": "1", | ||||
|             "user_viewable": true, | ||||
| @ -72,7 +72,7 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "App ID", | ||||
|             "description": "app id required for server download\/updates. end users should not see this.", | ||||
|             "description": "app id required for server download/updates. end users should not see this.", | ||||
|             "env_variable": "SRCDS_APPID", | ||||
|             "default_value": "2430930", | ||||
|             "user_viewable": false, | ||||
| @ -152,7 +152,7 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "RCON Port", | ||||
|             "description": "required for console commands and proper server shutdown (saveworld\/exit), doesn't have to be open to the public", | ||||
|             "description": "required for console commands and proper server shutdown (saveworld/exit), doesn't have to be open to the public", | ||||
|             "env_variable": "RCON_PORT", | ||||
|             "default_value": "37015", | ||||
|             "user_viewable": true, | ||||
| @ -162,7 +162,7 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "MOD IDs", | ||||
|             "description": "https:\/\/www.curseforge.com\/ark-survival-ascended ; ProjectID is is the MOD_ID on the right-side of the mod-view page ; leave blank to disable mods ; separate only by comma ( , ) without spaces! (i.e.) 1234,1235,1236", | ||||
|             "description": "https://www.curseforge.com/ark-survival-ascended ; ProjectID is is the MOD_ID on the right-side of the mod-view page ; leave blank to disable mods ; separate only by comma ( , ) without spaces! (i.e.) 1234,1235,1236", | ||||
|             "env_variable": "MOD_IDS", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|  | ||||
| @ -1,10 +1,10 @@ | ||||
| { | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", | ||||
|     "meta": { | ||||
|         "version": "PLCN_v1", | ||||
|         "update_url": "https:\/\/raw.githubusercontent.com\/pelican-eggs\/games-steamcmd\/refs\/heads\/main\/ark_survival_evolved\/egg-ark--survival-evolved.json" | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|     }, | ||||
|     "exported_at": "2024-11-30T15:45:55+00:00", | ||||
|     "exported_at": "2024-06-01T00:03:48+00:00", | ||||
|     "name": "Ark: Survival Evolved", | ||||
|     "author": "dev@shepper.fr", | ||||
|     "uuid": "97e50ae1-b458-4811-8977-9c7a4e411b6c", | ||||
| @ -13,7 +13,7 @@ | ||||
|         "steam_disk_space" | ||||
|     ], | ||||
|     "docker_images": { | ||||
|         "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" | ||||
|         "ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": "rmv() { echo  \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} saveworld &&rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName=\"{{SESSION_NAME}}\"?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled=True?MaxPlayers={{MAX_PLAYERS}}?GameModIds={{MOD_ID}}$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) -server -automanagedmods {{ARGS}} -log & ARK_PID=$! ; until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", | ||||
| @ -38,12 +38,9 @@ | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "alpha_dash", | ||||
|                 "between:1,100" | ||||
|             ], | ||||
|             "sort": 1 | ||||
|             "rules": "nullable|alpha_dash|between:1,100", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Admin Password", | ||||
| @ -52,12 +49,9 @@ | ||||
|             "default_value": "PleaseChangeMe", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "alpha_dash", | ||||
|                 "between:1,100" | ||||
|             ], | ||||
|             "sort": 2 | ||||
|             "rules": "required|alpha_dash|between:1,100", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Server Map", | ||||
| @ -66,12 +60,9 @@ | ||||
|             "default_value": "TheIsland", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "max:20" | ||||
|             ], | ||||
|             "sort": 3 | ||||
|             "rules": "required|string|max:20", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Server Name", | ||||
| @ -80,12 +71,9 @@ | ||||
|             "default_value": "A Pterodactyl Hosted ARK Server", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "max:128" | ||||
|             ], | ||||
|             "sort": 4 | ||||
|             "rules": "required|string|max:128", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Rcon Port", | ||||
| @ -94,11 +82,9 @@ | ||||
|             "default_value": "27020", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "numeric" | ||||
|             ], | ||||
|             "sort": 5 | ||||
|             "rules": "required|numeric", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Query Port", | ||||
| @ -107,11 +93,9 @@ | ||||
|             "default_value": "27015", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "numeric" | ||||
|             ], | ||||
|             "sort": 6 | ||||
|             "rules": "required|numeric", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Auto-update server", | ||||
| @ -120,11 +104,9 @@ | ||||
|             "default_value": "0", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "boolean" | ||||
|             ], | ||||
|             "sort": 7 | ||||
|             "rules": "required|boolean", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Battle Eye", | ||||
| @ -133,11 +115,9 @@ | ||||
|             "default_value": "1", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "boolean" | ||||
|             ], | ||||
|             "sort": 8 | ||||
|             "rules": "required|boolean", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "App ID", | ||||
| @ -146,11 +126,9 @@ | ||||
|             "default_value": "376030", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "numeric" | ||||
|             ], | ||||
|             "sort": 9 | ||||
|             "rules": "nullable|numeric", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Additional Arguments", | ||||
| @ -159,11 +137,9 @@ | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "string" | ||||
|             ], | ||||
|             "sort": 10 | ||||
|             "rules": "nullable|string", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Mods", | ||||
| @ -172,11 +148,9 @@ | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "string" | ||||
|             ], | ||||
|             "sort": 11 | ||||
|             "rules": "nullable|string", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Max Players", | ||||
| @ -185,10 +159,9 @@ | ||||
|             "default_value": "12", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "numeric" | ||||
|             ], | ||||
|             "sort": 12 | ||||
|             "rules": "numeric", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
| @ -60,12 +60,6 @@ ___ | ||||
| 
 | ||||
| ### Installation/System Requirements | ||||
| 
 | ||||
| > [!IMPORTANT] | ||||
| > [As of 2024-11-27] A real, valid Steam account is required to install this game server. | ||||
| 
 | ||||
| > [!WARNING] | ||||
| > Steam Guard **must** be completely **turned off** for the server to download correctly! | ||||
| 
 | ||||
| |  | Bare Minimum | Recommended | | ||||
| |---------|---------|---------| | ||||
| | Processor | Recent x86/64 (AMD/Intel) processor. No ARM support. | Can use up to 300-600% CPU under load with uncapped FPS (set Max FPS to prevent). | | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|     }, | ||||
|     "exported_at": "2024-11-28T14:47:08-08:00", | ||||
|     "exported_at": "2024-07-03T21:46:20-07:00", | ||||
|     "name": "Arma Reforger", | ||||
|     "author": "red_thirten@yahoo.com", | ||||
|     "uuid": "7c4dc3db-fac9-4d2d-8551-0c266e85cc50", | ||||
| @ -25,34 +25,12 @@ | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n\r\n## File: Pelican Arma Reforger Egg - egg-arma-reforger.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2024\/11\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n# Check for valid Steam credentials to download Arma Reforger with (requires valid Steam account)\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_USER}\" == \"anonymous\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n    echo -e \"INSTALLATION ERROR: A valid REAL Steam account is required to download the Arma Reforger Dedicated Server.\"\r\n    echo -e \"\\t(\\\"anonymous\\\" account cannot be used. Game ownership is not required.)\"\r\n    exit 1\r\nfi\r\n\r\n## Download and install SteamCMD\r\nexport HOME=\/mnt\/server\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\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 $HOME\/steamcmd\r\ncd $HOME\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\nchown -R root:root \/mnt\r\n\r\n# Install\/Verify game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir $HOME \"+login \\\"${STEAM_USER}\\\" \\\"${STEAM_PASS}\\\"\" $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +app_update 1007 $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) validate +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Arma Reforger setup\r\n# Check for successful installation\r\nif [[ ! -f $HOME\/ArmaReforgerServer ]]; then\r\n    echo -e \"\\n\\nSteamCMD failed to install the Arma Reforger Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nfi\r\n\r\nmkdir -p $HOME\/profile $HOME\/tmp\r\n\r\necho -e 'Creating default \"config.json\" configuration file...'\r\ncat > $HOME\/config.json << EOF\r\n{\r\n\t\"bindAddress\": \"0.0.0.0\",\r\n\t\"bindPort\": ${SERVER_PORT},\r\n\t\"publicAddress\": \"${SERVER_IP}\",\r\n\t\"publicPort\": ${SERVER_PORT},\r\n\t\"game\": {\r\n\t\t\"name\": \"${SERVER_NAME}\",\r\n\t\t\"password\": \"${SERVER_PASS}\",\r\n\t\t\"passwordAdmin\": \"${ADMIN_PASS}\",\r\n\t\t\"admins\" : [],\r\n\t\t\"scenarioId\": \"${SCENARIO_ID}\",\r\n\t\t\"maxPlayers\": ${MAX_PLAYERS},\r\n\t\t\"visible\": ${VISIBLE},\r\n\t\t\"gameProperties\": {\r\n\t\t\t\"serverMaxViewDistance\": 2500,\r\n\t\t\t\"serverMinGrassDistance\": 50,\r\n\t\t\t\"networkViewDistance\": 1000,\r\n\t\t\t\"disableThirdPerson\": ${DISABLE_THIRD},\r\n\t\t\t\"fastValidation\": true,\r\n\t\t\t\"battlEye\": ${BATTLEYE},\r\n\t\t\t\"VONDisableUI\": false,\r\n\t\t\t\"VONDisableDirectSpeechUI\": false\r\n\t\t},\r\n\t\t\"mods\": []\r\n\t}\r\n}\r\nEOF\r\n\r\necho -e \"\\nArma Reforger Dedicated Server successfully installed!\\n\"", | ||||
|             "script": "#!\/bin\/bash\r\n\r\n## File: Pelican Arma Reforger Egg - egg-arma-reforger.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2024\/07\/03\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n## Download and install SteamCMD\r\nexport HOME=\/mnt\/server\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\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 $HOME\/steamcmd\r\ncd $HOME\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\nchown -R root:root \/mnt\r\n\r\n# Install\/Verify game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +app_update 1007 $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) validate +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Arma Reforger setup\r\n# Check for successful installation\r\nif [[ ! -f $HOME\/ArmaReforgerServer ]]; then\r\n    echo -e \"\\n\\nSteamCMD failed to install the Arma Reforger Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nfi\r\n\r\nmkdir -p $HOME\/profile $HOME\/tmp\r\n\r\necho -e 'Creating default \"config.json\" configuration file...'\r\ncat > $HOME\/config.json << EOF\r\n{\r\n\t\"bindAddress\": \"0.0.0.0\",\r\n\t\"bindPort\": ${SERVER_PORT},\r\n\t\"publicAddress\": \"${SERVER_IP}\",\r\n\t\"publicPort\": ${SERVER_PORT},\r\n\t\"game\": {\r\n\t\t\"name\": \"${SERVER_NAME}\",\r\n\t\t\"password\": \"${SERVER_PASS}\",\r\n\t\t\"passwordAdmin\": \"${ADMIN_PASS}\",\r\n\t\t\"admins\" : [],\r\n\t\t\"scenarioId\": \"${SCENARIO_ID}\",\r\n\t\t\"maxPlayers\": ${MAX_PLAYERS},\r\n\t\t\"visible\": ${VISIBLE},\r\n\t\t\"gameProperties\": {\r\n\t\t\t\"serverMaxViewDistance\": 2500,\r\n\t\t\t\"serverMinGrassDistance\": 50,\r\n\t\t\t\"networkViewDistance\": 1000,\r\n\t\t\t\"disableThirdPerson\": ${DISABLE_THIRD},\r\n\t\t\t\"fastValidation\": true,\r\n\t\t\t\"battlEye\": ${BATTLEYE},\r\n\t\t\t\"VONDisableUI\": false,\r\n\t\t\t\"VONDisableDirectSpeechUI\": false\r\n\t\t},\r\n\t\t\"mods\": []\r\n\t}\r\n}\r\nEOF\r\n\r\necho -e \"\\nArma Reforger Dedicated Server successfully installed!\\n\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "\/bin\/bash" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
|         { | ||||
|             "name": "[REQUIRED] Steam Username", | ||||
|             "description": "Used for installation and updates. Account does not need to own Arma Reforger, 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": "", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string", | ||||
|             "sort": 1, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[REQUIRED] Steam Password", | ||||
|             "description": "Used for installation and updates. Steam Guard MUST be completely TURNED OFF for install to complete successfully. *This info is not visible to the server owner, BUT IS stored in PLAIN TEXT. It is NOT advised to use a personal account; best to use a dummy account.*", | ||||
|             "env_variable": "STEAM_PASS", | ||||
|             "default_value": "", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string", | ||||
|             "sort": 2, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Automatic Updates", | ||||
|             "description": "Quickly checks for any server or mod updates on startup, and updates if necessary.", | ||||
| @ -61,7 +39,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "boolean", | ||||
|             "sort": 3, | ||||
|             "sort": 1, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -72,7 +50,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:AD,AE,AF,AG,AI,AL,AM,AO,AQ,AR,AS,AT,AU,AW,AX,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,BL,BM,BN,BO,BQ,BR,BS,BT,BV,BW,BY,BZ,CA,CC,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CU,CV,CW,CX,CY,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,EH,ER,ES,ET,EU,FI,FJ,FK,FM,FO,FR,GA,GB,GD,GE,GF,GG,GH,GI,GL,GM,GN,GP,GQ,GR,GS,GT,GU,GW,GY,HK,HM,HN,HR,HT,HU,ID,IE,IL,IM,IN,IO,IQ,IR,IS,IT,JE,JM,JO,JP,KE,KG,KH,KI,KM,KN,KP,KR,KW,KY,KZ,LA,LB,LC,LI,LK,LR,LS,LT,LU,LV,LY,MA,MC,MD,ME,MF,MG,MH,MK,ML,MM,MN,MO,MP,MQ,MR,MS,MT,MU,MV,MW,MX,MY,MZ,NA,NC,NE,NF,NG,NI,NL,NO,NP,NR,NU,NZ,OM,PA,PE,PF,PG,PH,PK,PL,PM,PN,PR,PS,PT,PW,PY,QA,RE,RO,RS,RU,RW,SA,SB,SC,SD,SE,SG,SH,SI,SJ,SK,SL,SM,SN,SO,SR,SS,ST,SV,SX,SY,SZ,TC,TD,TF,TG,TH,TJ,TK,TL,TM,TN,TO,TR,TT,TV,TW,TZ,UA,UG,UM,US,UY,UZ,VA,VC,VE,VG,VI,VN,VU,WF,WS,YE,YT,ZA,ZM,ZW", | ||||
|             "sort": 4, | ||||
|             "sort": 2, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -83,7 +61,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|max:255", | ||||
|             "sort": 5, | ||||
|             "sort": 3, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -94,7 +72,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|integer|between:1,256", | ||||
|             "sort": 6, | ||||
|             "sort": 4, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -105,7 +83,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string|max:32", | ||||
|             "sort": 7, | ||||
|             "sort": 5, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -116,7 +94,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string|max:32", | ||||
|             "sort": 8, | ||||
|             "sort": 6, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -127,7 +105,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string", | ||||
|             "sort": 9, | ||||
|             "sort": 7, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -138,7 +116,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": 10, | ||||
|             "sort": 8, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -149,7 +127,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": 11, | ||||
|             "sort": 9, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -160,7 +138,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": 12, | ||||
|             "sort": 10, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -171,7 +149,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": 13, | ||||
|             "sort": 11, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -182,7 +160,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|integer|gt:0", | ||||
|             "sort": 14, | ||||
|             "sort": 12, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -193,7 +171,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|integer|min:0", | ||||
|             "sort": 15, | ||||
|             "sort": 13, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -204,7 +182,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string", | ||||
|             "sort": 16, | ||||
|             "sort": 14, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -215,7 +193,7 @@ | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|integer", | ||||
|             "sort": 17, | ||||
|             "sort": 15, | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|     }, | ||||
|     "exported_at": "2024-11-28T14:47:08-08:00", | ||||
|     "exported_at": "2024-07-03T21:46:20-07:00", | ||||
|     "name": "Arma Reforger", | ||||
|     "author": "red_thirten@yahoo.com", | ||||
|     "description": "Experience authentic Cold War combat and join friends in the struggle for a sprawling, 51 km\u00b2 mid-Atlantic island \u2014 or take on the role of Game Master and create your very own scenarios for others to enjoy.", | ||||
| @ -24,32 +24,12 @@ | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl Arma Reforger Egg - egg-pterodactyl-arma-reforger.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2024\/11\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n# Check for valid Steam credentials to download Arma Reforger with (requires valid Steam account)\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_USER}\" == \"anonymous\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n    echo -e \"INSTALLATION ERROR: A valid REAL Steam account is required to download the Arma Reforger Dedicated Server.\"\r\n    echo -e \"\\t(\\\"anonymous\\\" account cannot be used. Game ownership is not required.)\"\r\n    exit 1\r\nfi\r\n\r\n## Download and install SteamCMD\r\nexport HOME=\/mnt\/server\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\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 $HOME\/steamcmd\r\ncd $HOME\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\nchown -R root:root \/mnt\r\n\r\n# Install\/Verify game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir $HOME \"+login \\\"${STEAM_USER}\\\" \\\"${STEAM_PASS}\\\"\" $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +app_update 1007 $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) validate +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Arma Reforger setup\r\n# Check for successful installation\r\nif [[ ! -f $HOME\/ArmaReforgerServer ]]; then\r\n    echo -e \"\\n\\nSteamCMD failed to install the Arma Reforger Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nfi\r\n\r\nmkdir -p $HOME\/profile $HOME\/tmp\r\n\r\necho -e 'Creating default \"config.json\" configuration file...'\r\ncat > $HOME\/config.json << EOF\r\n{\r\n\t\"bindAddress\": \"0.0.0.0\",\r\n\t\"bindPort\": ${SERVER_PORT},\r\n\t\"publicAddress\": \"${SERVER_IP}\",\r\n\t\"publicPort\": ${SERVER_PORT},\r\n\t\"game\": {\r\n\t\t\"name\": \"${SERVER_NAME}\",\r\n\t\t\"password\": \"${SERVER_PASS}\",\r\n\t\t\"passwordAdmin\": \"${ADMIN_PASS}\",\r\n\t\t\"admins\" : [],\r\n\t\t\"scenarioId\": \"${SCENARIO_ID}\",\r\n\t\t\"maxPlayers\": ${MAX_PLAYERS},\r\n\t\t\"visible\": ${VISIBLE},\r\n\t\t\"gameProperties\": {\r\n\t\t\t\"serverMaxViewDistance\": 2500,\r\n\t\t\t\"serverMinGrassDistance\": 50,\r\n\t\t\t\"networkViewDistance\": 1000,\r\n\t\t\t\"disableThirdPerson\": ${DISABLE_THIRD},\r\n\t\t\t\"fastValidation\": true,\r\n\t\t\t\"battlEye\": ${BATTLEYE},\r\n\t\t\t\"VONDisableUI\": false,\r\n\t\t\t\"VONDisableDirectSpeechUI\": false\r\n\t\t},\r\n\t\t\"mods\": []\r\n\t}\r\n}\r\nEOF\r\n\r\necho -e \"\\nArma Reforger Dedicated Server successfully installed!\\n\"", | ||||
|             "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl Arma Reforger Egg - egg-pterodactyl-arma-reforger.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2024\/07\/03\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n## Download and install SteamCMD\r\nexport HOME=\/mnt\/server\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\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 $HOME\/steamcmd\r\ncd $HOME\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\nchown -R root:root \/mnt\r\n\r\n# Install\/Verify game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +app_update 1007 $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) validate +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Arma Reforger setup\r\n# Check for successful installation\r\nif [[ ! -f $HOME\/ArmaReforgerServer ]]; then\r\n    echo -e \"\\n\\nSteamCMD failed to install the Arma Reforger Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nfi\r\n\r\nmkdir -p $HOME\/profile $HOME\/tmp\r\n\r\necho -e 'Creating default \"config.json\" configuration file...'\r\ncat > $HOME\/config.json << EOF\r\n{\r\n\t\"bindAddress\": \"0.0.0.0\",\r\n\t\"bindPort\": ${SERVER_PORT},\r\n\t\"publicAddress\": \"${SERVER_IP}\",\r\n\t\"publicPort\": ${SERVER_PORT},\r\n\t\"game\": {\r\n\t\t\"name\": \"${SERVER_NAME}\",\r\n\t\t\"password\": \"${SERVER_PASS}\",\r\n\t\t\"passwordAdmin\": \"${ADMIN_PASS}\",\r\n\t\t\"admins\" : [],\r\n\t\t\"scenarioId\": \"${SCENARIO_ID}\",\r\n\t\t\"maxPlayers\": ${MAX_PLAYERS},\r\n\t\t\"visible\": ${VISIBLE},\r\n\t\t\"gameProperties\": {\r\n\t\t\t\"serverMaxViewDistance\": 2500,\r\n\t\t\t\"serverMinGrassDistance\": 50,\r\n\t\t\t\"networkViewDistance\": 1000,\r\n\t\t\t\"disableThirdPerson\": ${DISABLE_THIRD},\r\n\t\t\t\"fastValidation\": true,\r\n\t\t\t\"battlEye\": ${BATTLEYE},\r\n\t\t\t\"VONDisableUI\": false,\r\n\t\t\t\"VONDisableDirectSpeechUI\": false\r\n\t\t},\r\n\t\t\"mods\": []\r\n\t}\r\n}\r\nEOF\r\n\r\necho -e \"\\nArma Reforger Dedicated Server successfully installed!\\n\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "\/bin\/bash" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
|         { | ||||
|             "name": "[REQUIRED] Steam Username", | ||||
|             "description": "Used for installation and updates. Account does not need to own Arma Reforger, 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": "", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[REQUIRED] Steam Password", | ||||
|             "description": "Used for installation and updates. Steam Guard MUST be completely TURNED OFF for install to complete successfully. *This info is not visible to the server owner, BUT IS stored in PLAIN TEXT. It is NOT advised to use a personal account; best to use a dummy account.*", | ||||
|             "env_variable": "STEAM_PASS", | ||||
|             "default_value": "", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Automatic Updates", | ||||
|             "description": "Quickly checks for any server or mod updates on startup, and updates if necessary.", | ||||
|  | ||||
| @ -35,14 +35,6 @@ ___ | ||||
|             <a href="https://github.com/parkervcp/eggs/commits?author=Brophy" title="Codes">💻</a> | ||||
|             <a href="https://github.com/parkervcp/eggs/commits?author=Brophy" title="Contributor">💡</a> | ||||
|         </td> | ||||
|         <td align="center"> | ||||
|             <a href="https://github.com/shaynendradika"> | ||||
|                 <img src="https://avatars.githubusercontent.com/u/19285167" width="50px;" alt=""/><br /><sub><b>shaynendradika</b></sub> | ||||
|             </a> | ||||
|             <br /> | ||||
|             <a href="https://github.com/parkervcp/eggs/commits?author=shaynendradika" title="Codes">💻</a> | ||||
|             <a href="https://github.com/parkervcp/eggs/commits?author=shaynendradika" title="Contributor">💡</a> | ||||
|         </td> | ||||
|     </tr> | ||||
| </table> | ||||
| <!-- markdownlint-enable --> | ||||
| @ -59,13 +51,13 @@ ___ | ||||
| ### Egg Capabilities | ||||
| 
 | ||||
| - Able to download server updates on startup | ||||
| - Able to download, update, and load Steam Workshop mods on startup (\*see [Installation/System Requirements: Game Ownership](#game-ownership)) | ||||
| - Able to download, update, and load Steam Workshop mods on startup (\*see [Installation/System Requirements](#installationsystem-requirements)) | ||||
|   - Also accepts server-side only mods. | ||||
|   - Checks for mod updates against their Steam Workshop page's last update for quick and efficient update checks. | ||||
|   - Automatically moves mod `.bikey`'s to the `/keys/` directory. | ||||
|   - Note: These features only work with mods in the `@workshopID#` format. Manually uploaded mods are not automatically updated. | ||||
| - Multiple basic settings found within the `serverDZ.cfg` file can be easily set from the server's Startup tab | ||||
|   - Server name, passwords, disable third person, persistent time, and more... | ||||
|   - Server name, passwords, disable third person, persistant time, and more... | ||||
| - Max Players is configurable and able to be host enforced (\*see [Recommended Egg Modifications](#recommended-egg-modifications)) | ||||
| - Additional [DayZ startup parameters](https://community.bistudio.com/wiki/DayZ:Server_Configuration#Launch_Parameters) can be added to fine-tune performance | ||||
| - [WHMCS](https://www.whmcs.com/) compatible (\*see [Recommended Egg Modifications](#recommended-egg-modifications)) | ||||
| @ -76,11 +68,10 @@ ___ | ||||
| 
 | ||||
| Default server ports are listed below, but all ports can be changed freely. | ||||
| 
 | ||||
| | Port | Default | Protocol | Required | Notes | | ||||
| |---------|---------|---------|---------|---------| | ||||
| | **Game** | 2302 | UDP | **Yes** | Primary port in Panel | | ||||
| | Steam Query | 27016 | UDP | Partially | Required for server listing | | ||||
| | RCON | 2305 | UDP | No | Required to be defined, but not required to be assigned to the server | | ||||
| | Port | Default (UDP) | | ||||
| |---------|---------| | ||||
| | **DayZ Game (Main)** | 2302 | | ||||
| | Steam Query | 27016 | | ||||
| 
 | ||||
| ___ | ||||
| 
 | ||||
| @ -99,15 +90,7 @@ ___ | ||||
| | Storage | 3072 MiB | 7168+ MiB (depends on how many mods are installed) | | ||||
| | Network | 0.512 Mbit/s/player | 1-5 Mbit/s/player | | ||||
| | Host OS | Most stable Linux OS branches should work | Using the latest kernel version for your installed OS can prevent some edge-case installation/boot issues. | | ||||
| 
 | ||||
| #### Game Ownership: | ||||
| 
 | ||||
| While not required, it is ***highly recommended*** that the Steam account used to install this server **owns** the DayZ **game** for the following reasons: | ||||
| - Vanilla mission files will only update automatically with the server if the game is owned. | ||||
|   - They can still be manually updated by deleting the `mpmissions/` directory and reinstalling the server (this will not erase other files). | ||||
| - Automatic Steam Workshop mod downloading requires ownership. | ||||
|   - This is optional functionality, and mods can be manually uploaded to the server if desired. | ||||
|   - Hosts may feel free to change the "[Host] Disable Mod Downloads/Updates" variable to `1` if they would not like to offer this functionality to clients. | ||||
| | Game Ownership | Not required to install game server. | Required for automatic Steam Workshop mod downloading to work. However, this is optional functionality, and mods can be manually uploaded to the server if desired. Hosts may feel free to change the "Disable Mod Downloads/Updates" variable to `1` if they would not like to offer it's functionality to clients. | | ||||
| 
 | ||||
| ___ | ||||
| 
 | ||||
| @ -130,10 +113,10 @@ ___ | ||||
| > [!CAUTION] | ||||
| > The following is ***highly discouraged*** for production environments or even private use. It should only be used if you *really* don't want to disable Steam Guard and don't plan on updating your server/mods often. Support will not be given to those with Steam Guard enabled. Additionally, using this method, you are at risk of rate limiting your account if something goes wrong. | ||||
| 
 | ||||
| 1. When creating your server, set the variables "[Host] Skip Game Server Install" and "[Repair] Validate Server Files" to `1`. | ||||
| 2. Proceed with installation as normal. | ||||
| 3. If the server has not automatically started after installation, start it. | ||||
| 4. The console will eventually appear to freeze on the line: `Loading Steam API...OK`. You will likely receive a Steam Guard request for login at this time. Approve this request just to be safe, but this will not log you in. Next, obtain a valid Steam Guard code, enter it into the console, and press Enter to submit it. This should log you in. It is successful if you see: `Two-factor code:OK`. The server will then download for the first time. Note: It may glitch and not display installation progress; be patient while it downloads and verifies. | ||||
| 1. Edit the Egg so the Input Rules of the "Steam Username" and "Steam Password" Variables are `nullable|string`. | ||||
| 2. Create a new server as normal, but set "Steam Username" to be `anonymous` and "Steam Password" to be blank. This will cause the installer to successfully install SteamCMD but fail to install the DayZ server; this is intentional. | ||||
| 3. Once the server is created, go to the Startup tab. Change "Steam Username" and "Steam Password" to be your real Steam account and password. Also, enable "[Repair] Validate Server Files" (this only needs to be enabled for the first boot). | ||||
| 4. Start the server. The console will eventually appear to freeze on the line: `Loading Steam API...OK`. You will likely receive a Steam Guard request for login at this time. Approve this request just to be safe, but this will not log you in. Next, obtain a valid Steam Guard code, enter it into the console, and press Enter to submit it. This should log you in. It is successful if you see: `Two-factor code:OK`. The server will then download for the first time. Note: It may glitch and not display installation progress; be patient while it downloads and verifies. | ||||
|     - If you have mods to install, you will have to repeat this process of obtaining and entering in a *new* Steam Guard code for *every* mod. | ||||
| 5. The server should properly start at this time. | ||||
| 6. Go to the Startup tab and disable "[Repair] Validate Server Files". Also, it is recommended you disable the "Automatic Updates" Startup Variable until you need to update again. Otherwise, you will have to go through the process of entering in Steam Guard codes again *every boot*. | ||||
| 5. Stop the server after it starts. Open the file `serverDZ.cfg` and add `steamQueryPort = 2305;` to the end of the file. (If the file was empty when you opened it for whatever reason, grab the default contents [here](https://community.bistudio.com/wiki/DayZ:Server_Configuration#Main_Parameters)) | ||||
| 6. The server is now ready for a "normal" boot. However, it is recommended you disable the "Automatic Updates" Startup Variable until you need to update again. Otherwise, you will have to go through the process of entering in Steam Guard codes again every boot. | ||||
|  | ||||
| @ -1,44 +0,0 @@ | ||||
| hostname = "EXAMPLE NAME";  // Server name | ||||
| password = "";              // Password to connect to the server | ||||
| passwordAdmin = "";         // Password to become a server admin | ||||
| 
 | ||||
| enableWhitelist = 0;        // Enable/disable whitelist (value 0-1) | ||||
|   | ||||
| maxPlayers = 60;            // Maximum amount of players | ||||
|   | ||||
| verifySignatures = 2;       // Verifies .pbos against .bisign files. (only 2 is supported) | ||||
| forceSameBuild = 1;         // When enabled, the server will allow the connection only to clients with same the .exe revision as the server (value 0-1) | ||||
|   | ||||
| disableVoN = 0;             // Enable/disable voice over network (value 0-1) | ||||
| vonCodecQuality = 20;        // Voice over network codec quality, the higher the better (values 0-30) | ||||
|   | ||||
| disable3rdPerson=0;         // Toggles the 3rd person view for players (value 0-1) | ||||
| disableCrosshair=0;         // Toggles the cross-hair (value 0-1) | ||||
| 
 | ||||
| disablePersonalLight = 1;   // Disables personal light for all clients connected to server | ||||
| lightingConfig = 0;         // 0 for brighter night setup, 1 for darker night setup | ||||
|   | ||||
| serverTime="SystemTime";    // Initial in-game time of the server. "SystemTime" means the local time of the machine. Another possibility is to set the time to some value in "YYYY/MM/DD/HH/MM" format, f.e. "2015/4/8/17/23" . | ||||
| serverTimeAcceleration=12;  // Accelerated Time (value 0-24)// This is a time multiplier for in-game time. In this case, the time would move 24 times faster than normal, so an entire day would pass in one hour. | ||||
| serverNightTimeAcceleration=1;  // Accelerated Nigh Time - The numerical value being a multiplier (0.1-64) and also multiplied by serverTimeAcceleration value. Thus, in case it is set to 4 and serverTimeAcceleration is set to 2, night time would move 8 times faster than normal. An entire night would pass in 3 hours. | ||||
| serverTimePersistent=0;     // Persistent Time (value 0-1)// The actual server time is saved to storage, so when active, the next server start will use the saved time value. | ||||
|   | ||||
| guaranteedUpdates=1;        // Communication protocol used with game server (use only number 1) | ||||
|   | ||||
| loginQueueConcurrentPlayers=5;  // The number of players concurrently processed during the login process. Should prevent massive performance drop during connection when a lot of people are connecting at the same time. | ||||
| loginQueueMaxPlayers=500;       // The maximum number of players that can wait in login queue | ||||
|   | ||||
| instanceId = 1;             // DayZ server instance id, to identify the number of instances per box and their storage folders with persistence files | ||||
| 
 | ||||
| storageAutoFix = 1;         // Checks if the persistence files are corrupted and replaces corrupted ones with empty ones (value 0-1) | ||||
| 
 | ||||
|   | ||||
| class Missions | ||||
| { | ||||
|     class DayZ | ||||
|     { | ||||
|         template="dayzOffline.chernarusplus"; // Mission to load on server startup. <MissionName>.<TerrainName> | ||||
| 					      // Vanilla mission: dayzOffline.chernarusplus | ||||
| 					      // DLC mission: dayzOffline.enoch | ||||
|     }; | ||||
| }; | ||||
| @ -18,14 +18,14 @@ | ||||
|     "file_denylist": [], | ||||
|     "startup": ".\/{{SERVER_BINARY}} -port={{SERVER_PORT}} -profiles=profiles -bepath=.\/ -config=serverDZ.cfg -mod={{CLIENT_MODS}} -serverMod={{SERVERMODS}} {{STARTUP_PARAMS}}", | ||||
|     "config": { | ||||
|         "files": "{\r\n    \"serverDZ.cfg\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"hostname =\": \"hostname = \\\"{{server.environment.SERVER_HOSTNAME}}\\\";\",\r\n            \"password =\": \"password = \\\"{{server.environment.SERVER_PASSWORD}}\\\";\",\r\n            \"passwordAdmin =\": \"passwordAdmin = \\\"{{server.environment.ADMIN_PASSWORD}}\\\";\",\r\n            \"maxPlayers\": \"maxPlayers = {{server.environment.MAX_PLAYERS}};\",\r\n            \"verifySignatures\": \"verifySignatures = {{server.environment.VERIFY_SIGNATURES}};\",\r\n            \"forceSameBuild\": \"forceSameBuild = {{server.environment.ENFORCE_BUILD}};\",\r\n            \"disableVoN\": \"disableVoN = {{server.environment.DISABLE_VON}};\",\r\n            \"vonCodecQuality\": \"vonCodecQuality = {{server.environment.VON_QUALITY}};\",\r\n            \"disable3rdPerson\": \"disable3rdPerson = {{server.environment.DISABLE_THIRD}};\",\r\n            \"disableCrosshair\": \"disableCrosshair = {{server.environment.DISABLE_CROSSHAIR}};\",\r\n            \"disablePersonalLight\": \"disablePersonalLight = {{server.environment.DISABLE_PERSONAL_LIGHT}};\",\r\n            \"lightingConfig\": \"lightingConfig = {{server.environment.LIGHTING_CONFIG}};\",\r\n            \"serverTimeAcceleration\": \"serverTimeAcceleration = {{server.environment.TIME_MULT}};\",\r\n            \"serverNightTimeAcceleration\": \"serverNightTimeAcceleration = {{server.environment.NIGHT_MULT}};\",\r\n            \"serverTimePersistent\": \"serverTimePersistent = {{server.environment.PERSISTENT_TIME}};\",\r\n            \"steamQueryPort\": \"steamQueryPort = {{server.environment.QUERY_PORT}};\"\r\n        }\r\n    },\r\n    \"battleye\/beserver_x64.cfg\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"RConPort\": \"RConPort {{server.environment.RCON_PORT}}\",\r\n            \"RConPassword\": \"RConPassword {{server.environment.RCON_PASSWORD}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "files": "{\r\n    \"serverDZ.cfg\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"hostname =\": \"hostname = \\\"{{env.SERVER_HOSTNAME}}\\\";\",\r\n            \"password =\": \"password = \\\"{{env.SERVER_PASSWORD}}\\\";\",\r\n            \"passwordAdmin =\": \"passwordAdmin = \\\"{{env.ADMIN_PASSWORD}}\\\";\",\r\n            \"maxPlayers\": \"maxPlayers = {{env.MAX_PLAYERS}};\",\r\n            \"verifySignatures\": \"verifySignatures = {{env.VERIFY_SIGNATURES}};\",\r\n            \"forceSameBuild\": \"forceSameBuild = {{env.ENFORCE_BUILD}};\",\r\n            \"disableVoN\": \"disableVoN = {{env.DISABLE_VON}};\",\r\n            \"vonCodecQuality\": \"vonCodecQuality = {{env.VON_QUALITY}};\",\r\n            \"disable3rdPerson\": \"disable3rdPerson = {{env.DISABLE_THIRD}};\",\r\n            \"disableCrosshair\": \"disableCrosshair = {{env.DISABLE_CROSSHAIR}};\",\r\n            \"disablePersonalLight\": \"disablePersonalLight = {{env.DISABLE_PERSONAL_LIGHT}};\",\r\n            \"lightingConfig\": \"lightingConfig = {{env.LIGHTING_CONFIG}};\",\r\n            \"serverTimeAcceleration\": \"serverTimeAcceleration = {{env.TIME_MULT}};\",\r\n            \"serverNightTimeAcceleration\": \"serverNightTimeAcceleration = {{env.NIGHT_MULT}};\",\r\n            \"serverTimePersistent\": \"serverTimePersistent = {{env.PERSISTENT_TIME}};\",\r\n            \"steamQueryPort\": \"steamQueryPort = {{env.QUERY_PORT}};\"\r\n        }\r\n    },\r\n    \"battleye\/beserver_x64.cfg\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"RConPort\": \"RConPort {{env.RCON_PORT}}\",\r\n            \"RConPassword\": \"RConPassword {{env.RCON_PASSWORD}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "startup": "{\r\n    \"done\": \"Mission read.\"\r\n}", | ||||
|         "logs": "{}", | ||||
|         "stop": "^C" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n\r\n## File: Pelican DayZ Egg - egg-day-z.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2024\/07\/04\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\nexport HOME=\/mnt\/server\r\nCONFIG_URL=\"https:\/\/raw.githubusercontent.com\/pelican-eggs\/games-steamcmd\/main\/dayz\/config\/serverDZ.cfg\"\r\nMISSIONS_GITHUB_PACKAGE=\"BohemiaInteractive\/DayZ-Central-Economy\"\r\n\r\n## Download and install SteamCMD\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\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 $HOME\/steamcmd\r\ncd $HOME\/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\n\r\nif [ \"$SKIP_INSTALL\" -eq 1 ]; then\r\n    # This is for the minority of hosts who want to install this server with Steam Guard enabled.\r\n    # Please read the README for instructions on how to do this properly!\r\n    echo -e '\"Skip Game Server Install\" variable is set to enabled!'\r\n    echo -e \"\\tOnly SteamCMD will be installed...\"\r\n    .\/steamcmd.sh +quit\r\nelse\r\n    # Install\/Verify game server using SteamCMD\r\n    .\/steamcmd.sh +force_install_dir $HOME \"+login \\\"${STEAM_USER}\\\" \\\"${STEAM_PASS}\\\"\" +app_update ${STEAMCMD_APPID} $( [[ -z ${STEAMCMD_BETAID} ]] || printf %s \"-beta ${STEAMCMD_BETAID}\" ) $( [[ -z ${STEAMCMD_BETAPASS} ]] || printf %s \"-betapassword ${STEAMCMD_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\nfi\r\necho -e \"\"\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so $HOME\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so $HOME\/.steam\/sdk64\/steamclient.so\r\n\r\n## DayZ Setup\r\ncd $HOME\r\n\r\n# Check for successful server binary installation\r\nif [ ! -f DayZServer ] && [ \"$SKIP_INSTALL\" -ne 1 ]; then\r\n    echo -e \"\\n\\n[ERROR] SteamCMD failed to install the DayZ Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nfi\r\n\r\n# Download default serverDZ.cfg if it is missing or empty (occurs when Steam account *owns* the DayZ game)\r\nif [ ! -f serverDZ.cfg ] || [ ! -s serverDZ.cfg ]; then\r\n    echo -e \"'serverDZ.cfg' is missing or empty. Downloading default config file...\"\r\n    curl -LO ${CONFIG_URL}\r\n    if [ ! -f serverDZ.cfg ]; then\r\n        echo -e \"\\n\\n[ERROR] Failed to download default server config file!\"\r\n        exit 1\r\n    fi\r\n    chmod 644 serverDZ.cfg\r\nfi\r\n\r\n# Add required 'steamQueryPort' parameter to the end of serverDZ.cfg (if it's missing)\r\nif ! grep -q \"steamQueryPort\" serverDZ.cfg; then\r\n    echo -e \"Adding additional required parameters to the end of 'serverDZ.cfg'...\"\r\n    cat >> serverDZ.cfg << EOL\r\n\r\n\r\nsteamQueryPort = ${QUERY_PORT};\r\nEOL\r\nfi\r\n\r\n# Download vanilla mission files if they are missing (occurs when Steam account *does not own* the DayZ game)\r\nif { [ ! -d \"mpmissions\" ] || [ -z \"$(ls -A mpmissions 2>\/dev\/null)\" ]; } && [ \"$SKIP_INSTALL\" -ne 1 ]; then\r\n    echo -e \"[WARNING] The Steam account used to install this server does not own the DayZ game!\"\r\n    echo -e \"\\tVanilla mission files will have to be MANUALLY updated in the future if they update! (See Egg's README for instructions)\"\r\n    echo -e \"\\tDownloading and installing vanilla mission files...\"\r\n    mkdir -p $HOME\/mpmissions\r\n    cd $HOME\/mpmissions\r\n    LATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${MISSIONS_GITHUB_PACKAGE}\/releases\/latest\")\r\n    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r .tarball_url)\r\n    curl -Lo mpmissions.tar.gz ${DOWNLOAD_URL}\r\n    if [ ! -f mpmissions.tar.gz ]; then\r\n        echo -e \"\\n\\n[ERROR] Failed to download vanilla mission files!\"\r\n        exit 1\r\n    fi\r\n    tar -xzvf mpmissions.tar.gz --strip-components=1 --wildcards '*\/dayzOffline.chernarusplus\/*' '*\/dayzOffline.enoch\/*'\r\n    rm -f mpmissions.tar.gz\r\nfi\r\n\r\n# Check for BattlEye RCon configuration\r\nmkdir -p $HOME\/battleye\r\ncd $HOME\/battleye\r\nif [ ! -f beserver_x64.cfg ]; then\r\n    echo -e \"Creating BattlEye RCon Configuration...\"\r\n    cat > beserver_x64.cfg << EOF\r\nRConPort ${RCON_PORT}\r\nRConPassword ${RCON_PASSWORD}\r\nRestrictRCon 0\r\nEOF\r\nfi\r\n\r\necho -e \"\\nDayZ Dedicated Server successfully installed!\\n\"", | ||||
|             "script": "#!\/bin\/bash\r\n\r\n## File: DayZ Egg - egg-dayz.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2024\/06\/05\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n## Download and install SteamCMD\r\nexport HOME=\/mnt\/server\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\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 $HOME\/steamcmd\r\ncd $HOME\/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\n\r\n# Install\/Verify game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir $HOME \"+login \\\"${STEAM_USER}\\\" \\\"${STEAM_PASS}\\\"\" +app_update ${STEAMCMD_APPID} $( [[ -z ${STEAMCMD_BETAID} ]] || printf %s \"-beta ${STEAMCMD_BETAID}\" ) $( [[ -z ${STEAMCMD_BETAPASS} ]] || printf %s \"-betapassword ${STEAMCMD_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so $HOME\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so $HOME\/.steam\/sdk64\/steamclient.so\r\n\r\n## DayZ Setup\r\ncd $HOME\r\n\r\n# Check for successful installation\r\nif [ ! -f DayZServer ] || [ ! -f serverDZ.cfg ]; then\r\n    echo -e \"\\n\\n[ERROR] SteamCMD failed to install the DayZ Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nfi\r\n\r\n# Add required steamQueryPort parameter to end of default serverDZ.cfg (if it's missing)\r\nif ! grep -q \"steamQueryPort\" serverDZ.cfg; then\r\n    echo -e '\\nAdding required additional parameters to end of default \"serverDZ.cfg\"...'\r\ncat >> serverDZ.cfg << EOL\r\n\r\n\r\nsteamQueryPort = 2305;\r\nEOL\r\nfi\r\n\r\n# Check for BattlEye RCon configuration\r\necho -e '\\nCreating BattlEye RCon Configuration.'\r\ncat > $HOME\/battleye\/beserver_x64.cfg << EOF\r\nRConPort ${RCON_PORT}\r\nRConPassword ${RCON_PASSWORD}\r\nRestrictRCon 0\r\nEOF\r\n\r\necho -e \"\\nDayZ Dedicated Server successfully installed!\\n\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "\/bin\/bash" | ||||
|         } | ||||
| @ -35,66 +35,55 @@ | ||||
|             "name": "[Host] Steam Query Port", | ||||
|             "description": "UDP port for Steam server list features. Helps the server be visible in the client server browser.", | ||||
|             "env_variable": "QUERY_PORT", | ||||
|             "default_value": "27016", | ||||
|             "default_value": "2305", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|integer|between:1024,65536", | ||||
|             "sort": 1, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Host] Steam Username", | ||||
|             "name": "Steam Username", | ||||
|             "description": "Used for installation and updates. Account does not need to own DayZ, 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": "", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string|not_in:anonymous", | ||||
|             "sort": 2, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Host] Steam Password", | ||||
|             "name": "Steam Password", | ||||
|             "description": "Used for installation and updates. Steam Guard MUST be completely TURNED OFF for the server and mods to download efficiently. *This info is not visible to the server owner, BUT IS stored in PLAIN TEXT. It is NOT advised to use a personal account; best to use a dummy account.*", | ||||
|             "env_variable": "STEAM_PASS", | ||||
|             "default_value": "", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string", | ||||
|             "sort": 3, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Host] Disable Mod Downloads\/Updates", | ||||
|             "name": "Disable Mod Downloads\/Updates", | ||||
|             "description": "If the Steam account does not own the base DayZ game, Steam Workshop mod downloads\/updates will not work. If so, this setting allows disabling of this feature to avoid errors. (1 ON | 0 OFF)", | ||||
|             "env_variable": "DISABLE_MOD_UPDATES", | ||||
|             "default_value": "0", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "boolean", | ||||
|             "sort": 4, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Host] Number of SteamCMD Retry Attempts", | ||||
|             "name": "Number of SteamCMD Retry Attempts", | ||||
|             "description": "How many times SteamCMD should retry downloading a server or mod after a recoverable error. (ie. A particularly large mod download times out)", | ||||
|             "env_variable": "STEAMCMD_ATTEMPTS", | ||||
|             "default_value": "3", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|integer", | ||||
|             "sort": 5, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Host] Skip Game Server Install", | ||||
|             "description": "Skips the installation of game server files via SteamCMD during the installation script. Should only be enabled if you are trying to install the server with a Steam account that has Steam Guard enabled (not recommended).", | ||||
|             "env_variable": "SKIP_INSTALL", | ||||
|             "default_value": "0", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "boolean", | ||||
|             "sort": 6, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -105,7 +94,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "boolean", | ||||
|             "sort": 7, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -115,8 +104,8 @@ | ||||
|             "default_value": "DayZ Server", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string", | ||||
|             "sort": 8, | ||||
|             "rules": "nullable|string", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -127,7 +116,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|integer|gt:0", | ||||
|             "sort": 9, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -138,7 +127,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string", | ||||
|             "sort": 10, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -149,7 +138,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string", | ||||
|             "sort": 11, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -160,7 +149,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|integer|between:1024,65536", | ||||
|             "sort": 12, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -171,7 +160,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|max:20", | ||||
|             "sort": 13, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -182,7 +171,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string", | ||||
|             "sort": 14, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -193,7 +182,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string", | ||||
|             "sort": 15, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -204,7 +193,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:0,2", | ||||
|             "sort": 16, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -215,7 +204,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "boolean", | ||||
|             "sort": 17, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -226,7 +215,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "boolean", | ||||
|             "sort": 18, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -237,7 +226,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|integer|between:0,30", | ||||
|             "sort": 19, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -248,7 +237,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "boolean", | ||||
|             "sort": 20, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -259,7 +248,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "boolean", | ||||
|             "sort": 21, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -270,7 +259,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "boolean", | ||||
|             "sort": 22, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -281,7 +270,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "boolean", | ||||
|             "sort": 23, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -292,7 +281,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "boolean", | ||||
|             "sort": 24, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -303,7 +292,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|integer|between:0,24", | ||||
|             "sort": 25, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -314,7 +303,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|numeric|between:0.1,64", | ||||
|             "sort": 26, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -325,7 +314,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "boolean", | ||||
|             "sort": 27, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -336,7 +325,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "boolean", | ||||
|             "sort": 28, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -347,7 +336,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string", | ||||
|             "sort": 29, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -358,7 +347,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string", | ||||
|             "sort": 30, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -369,7 +358,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string|in:DayZServer", | ||||
|             "sort": 31, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
| @ -380,7 +369,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|integer|in:223350,1042420", | ||||
|             "sort": 32, | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|     }, | ||||
|     "exported_at": "2024-07-04T17:23:00-07:00", | ||||
|     "exported_at": "2024-06-13T12:52:57+07:00", | ||||
|     "name": "DayZ", | ||||
|     "author": "red_thirten@yahoo.com", | ||||
|     "description": "How long can you survive a post-apocalyptic world? A land overrun with an infected \"zombie\" population, where you compete with other survivors for limited resources. Will you team up with strangers and stay strong together? Or play as a lone wolf to avoid betrayal? This is DayZ \u2013 this is your story.", | ||||
| @ -24,7 +24,7 @@ | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl DayZ Egg - egg-pterodactyl-day-z.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2024\/07\/04\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\nexport HOME=\/mnt\/server\r\nCONFIG_URL=\"https:\/\/raw.githubusercontent.com\/pelican-eggs\/games-steamcmd\/main\/dayz\/config\/serverDZ.cfg\"\r\nMISSIONS_GITHUB_PACKAGE=\"BohemiaInteractive\/DayZ-Central-Economy\"\r\n\r\n## Download and install SteamCMD\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\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 $HOME\/steamcmd\r\ncd $HOME\/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\n\r\nif [ \"$SKIP_INSTALL\" -eq 1 ]; then\r\n    # This is for the minority of hosts who want to install this server with Steam Guard enabled.\r\n    # Please read the README for instructions on how to do this properly!\r\n    echo -e '\"Skip Game Server Install\" variable is set to enabled!'\r\n    echo -e \"\\tOnly SteamCMD will be installed...\"\r\n    .\/steamcmd.sh +quit\r\nelse\r\n    # Install\/Verify game server using SteamCMD\r\n    .\/steamcmd.sh +force_install_dir $HOME \"+login \\\"${STEAM_USER}\\\" \\\"${STEAM_PASS}\\\"\" +app_update ${STEAMCMD_APPID} $( [[ -z ${STEAMCMD_BETAID} ]] || printf %s \"-beta ${STEAMCMD_BETAID}\" ) $( [[ -z ${STEAMCMD_BETAPASS} ]] || printf %s \"-betapassword ${STEAMCMD_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\nfi\r\necho -e \"\"\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so $HOME\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so $HOME\/.steam\/sdk64\/steamclient.so\r\n\r\n## DayZ Setup\r\ncd $HOME\r\n\r\n# Check for successful server binary installation\r\nif [ ! -f DayZServer ] && [ \"$SKIP_INSTALL\" -ne 1 ]; then\r\n    echo -e \"\\n\\n[ERROR] SteamCMD failed to install the DayZ Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nfi\r\n\r\n# Download default serverDZ.cfg if it is missing or empty (occurs when Steam account *owns* the DayZ game)\r\nif [ ! -f serverDZ.cfg ] || [ ! -s serverDZ.cfg ]; then\r\n    echo -e \"'serverDZ.cfg' is missing or empty. Downloading default config file...\"\r\n    curl -LO ${CONFIG_URL}\r\n    if [ ! -f serverDZ.cfg ]; then\r\n        echo -e \"\\n\\n[ERROR] Failed to download default server config file!\"\r\n        exit 1\r\n    fi\r\n    chmod 644 serverDZ.cfg\r\nfi\r\n\r\n# Add required 'steamQueryPort' parameter to the end of serverDZ.cfg (if it's missing)\r\nif ! grep -q \"steamQueryPort\" serverDZ.cfg; then\r\n    echo -e \"Adding additional required parameters to the end of 'serverDZ.cfg'...\"\r\n    cat >> serverDZ.cfg << EOL\r\n\r\n\r\nsteamQueryPort = ${QUERY_PORT};\r\nEOL\r\nfi\r\n\r\n# Download vanilla mission files if they are missing (occurs when Steam account *does not own* the DayZ game)\r\nif { [ ! -d \"mpmissions\" ] || [ -z \"$(ls -A mpmissions 2>\/dev\/null)\" ]; } && [ \"$SKIP_INSTALL\" -ne 1 ]; then\r\n    echo -e \"[WARNING] The Steam account used to install this server does not own the DayZ game!\"\r\n    echo -e \"\\tVanilla mission files will have to be MANUALLY updated in the future if they update! (See Egg's README for instructions)\"\r\n    echo -e \"\\tDownloading and installing vanilla mission files...\"\r\n    mkdir -p $HOME\/mpmissions\r\n    cd $HOME\/mpmissions\r\n    LATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${MISSIONS_GITHUB_PACKAGE}\/releases\/latest\")\r\n    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r .tarball_url)\r\n    curl -Lo mpmissions.tar.gz ${DOWNLOAD_URL}\r\n    if [ ! -f mpmissions.tar.gz ]; then\r\n        echo -e \"\\n\\n[ERROR] Failed to download vanilla mission files!\"\r\n        exit 1\r\n    fi\r\n    tar -xzvf mpmissions.tar.gz --strip-components=1 --wildcards '*\/dayzOffline.chernarusplus\/*' '*\/dayzOffline.enoch\/*'\r\n    rm -f mpmissions.tar.gz\r\nfi\r\n\r\n# Check for BattlEye RCon configuration\r\nmkdir -p $HOME\/battleye\r\ncd $HOME\/battleye\r\nif [ ! -f beserver_x64.cfg ]; then\r\n    echo -e \"Creating BattlEye RCon Configuration...\"\r\n    cat > beserver_x64.cfg << EOF\r\nRConPort ${RCON_PORT}\r\nRConPassword ${RCON_PASSWORD}\r\nRestrictRCon 0\r\nEOF\r\nfi\r\n\r\necho -e \"\\nDayZ Dedicated Server successfully installed!\\n\"", | ||||
|             "script": "#!\/bin\/bash\r\n\r\n## File: DayZ Egg - egg-dayz.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2024\/06\/05\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n## Download and install SteamCMD\r\nexport HOME=\/mnt\/server\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\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 $HOME\/steamcmd\r\ncd $HOME\/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\n\r\n# Install\/Verify game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir $HOME \"+login \\\"${STEAM_USER}\\\" \\\"${STEAM_PASS}\\\"\" +app_update ${STEAMCMD_APPID} $( [[ -z ${STEAMCMD_BETAID} ]] || printf %s \"-beta ${STEAMCMD_BETAID}\" ) $( [[ -z ${STEAMCMD_BETAPASS} ]] || printf %s \"-betapassword ${STEAMCMD_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so $HOME\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so $HOME\/.steam\/sdk64\/steamclient.so\r\n\r\n## DayZ Setup\r\ncd $HOME\r\n\r\n# Check for successful installation\r\nif [ ! -f DayZServer ] || [ ! -f serverDZ.cfg ]; then\r\n    echo -e \"\\n\\n[ERROR] SteamCMD failed to install the DayZ Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nfi\r\n\r\n# Add required steamQueryPort parameter to end of default serverDZ.cfg (if it's missing)\r\nif ! grep -q \"steamQueryPort\" serverDZ.cfg; then\r\n    echo -e '\\nAdding required additional parameters to end of default \"serverDZ.cfg\"...'\r\ncat >> serverDZ.cfg << EOL\r\n\r\n\r\nsteamQueryPort = 2305;\r\nEOL\r\nfi\r\n\r\n# Check for BattlEye RCon configuration\r\necho -e '\\nCreating BattlEye RCon Configuration.'\r\ncat > $HOME\/battleye\/beserver_x64.cfg << EOF\r\nRConPort ${RCON_PORT}\r\nRConPassword ${RCON_PASSWORD}\r\nRestrictRCon 0\r\nEOF\r\n\r\necho -e \"\\nDayZ Dedicated Server successfully installed!\\n\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "\/bin\/bash" | ||||
|         } | ||||
| @ -34,14 +34,14 @@ | ||||
|             "name": "[Host] Steam Query Port", | ||||
|             "description": "UDP port for Steam server list features. Helps the server be visible in the client server browser.", | ||||
|             "env_variable": "QUERY_PORT", | ||||
|             "default_value": "27016", | ||||
|             "default_value": "2305", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|integer|between:1024,65536", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Host] Steam Username", | ||||
|             "name": "Steam Username", | ||||
|             "description": "Used for installation and updates. Account does not need to own DayZ, 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": "", | ||||
| @ -51,7 +51,7 @@ | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Host] Steam Password", | ||||
|             "name": "Steam Password", | ||||
|             "description": "Used for installation and updates. Steam Guard MUST be completely TURNED OFF for the server and mods to download efficiently. *This info is not visible to the server owner, BUT IS stored in PLAIN TEXT. It is NOT advised to use a personal account; best to use a dummy account.*", | ||||
|             "env_variable": "STEAM_PASS", | ||||
|             "default_value": "", | ||||
| @ -61,7 +61,7 @@ | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Host] Disable Mod Downloads\/Updates", | ||||
|             "name": "Disable Mod Downloads\/Updates", | ||||
|             "description": "If the Steam account does not own the base DayZ game, Steam Workshop mod downloads\/updates will not work. If so, this setting allows disabling of this feature to avoid errors. (1 ON | 0 OFF)", | ||||
|             "env_variable": "DISABLE_MOD_UPDATES", | ||||
|             "default_value": "0", | ||||
| @ -71,7 +71,7 @@ | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Host] Number of SteamCMD Retry Attempts", | ||||
|             "name": "Number of SteamCMD Retry Attempts", | ||||
|             "description": "How many times SteamCMD should retry downloading a server or mod after a recoverable error. (ie. A particularly large mod download times out)", | ||||
|             "env_variable": "STEAMCMD_ATTEMPTS", | ||||
|             "default_value": "3", | ||||
| @ -80,16 +80,6 @@ | ||||
|             "rules": "required|integer", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Host] Skip Game Server Install", | ||||
|             "description": "Skips the installation of game server files via SteamCMD during the installation script. Should only be enabled if you are trying to install the server with a Steam account that has Steam Guard enabled (not recommended).", | ||||
|             "env_variable": "SKIP_INSTALL", | ||||
|             "default_value": "0", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "boolean", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Automatic Updates", | ||||
|             "description": "Quickly checks for any server or mod updates on startup, and updates if necessary.", | ||||
| @ -107,7 +97,7 @@ | ||||
|             "default_value": "DayZ Server", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string", | ||||
|             "rules": "nullable|string", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|  | ||||
							
								
								
									
										250
									
								
								eco/egg-eco.json
									
									
									
									
									
								
							
							
						
						
									
										250
									
								
								eco/egg-eco.json
									
									
									
									
									
								
							| @ -4,7 +4,7 @@ | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|     }, | ||||
|     "exported_at": "2024-09-20T07:15:26+00:00", | ||||
|     "exported_at": "2024-06-01T00:04:11+00:00", | ||||
|     "name": "Eco", | ||||
|     "author": "eggs@goover.dev", | ||||
|     "uuid": "ea2f3858-c12a-4a8b-9f6d-33573b26ccce", | ||||
| @ -16,283 +16,151 @@ | ||||
|         "ghcr.io\/parkervcp\/steamcmd:dotnet": "ghcr.io\/parkervcp\/steamcmd:dotnet" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": ".\/EcoServer --username=\"{{SLG_USER}}\" --password=\"{{SLG_PW}}\"", | ||||
|     "startup": ".\/EcoServer", | ||||
|     "config": { | ||||
|         "files": "{\r\n    \"Configs\/Network.eco\": {\r\n        \"parser\": \"json\",\r\n        \"find\": {\r\n            \"GameServerPort\": \"{{server.allocations.default.port}}\",\r\n            \"WebServerPort\": \"{{server.environment.WEB_PORT}}\",\r\n            \"PublicServer\": \"{{server.environment.PUB_SRV}}\",\r\n            \"Password\": \"{{server.environment.SRV_PW}}\",\r\n            \"UPnPEnabled\": \"{{server.environment.UPNP}}\",\r\n            \"Description\": \"{{server.environment.SRV_NAME}}\",\r\n            \"DetailedDescription\": \"{{server.environment.DEDES}}\",\r\n            \"Playtime\": \"{{server.environment.PLAYTIME}}\",\r\n            \"MaxConnections\": \"{{server.environment.MAX_CON}}\",\r\n            \"DiscordAddress\": \"{{server.environment.DISCORD_SRV}}\",\r\n            \"RconServerPort\": \"{{server.environment.RCON_PORT}}\",\r\n            \"RconPassword\": \"{{server.environment.RCON_PW}}\",\r\n            \"ServerCategory\": \"{{server.environment.SRV_CAT}}\"\r\n        }\r\n    },\r\n    \"Configs\/Localization.eco\": {\r\n        \"parser\": \"json\",\r\n        \"find\": {\r\n            \"Language\": \"{{server.environment.LANGUAGE}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "startup": "{\r\n    \"done\": \"Web Server now listening on:\"\r\n}", | ||||
|         "files": "{\r\n    \"Configs\/Network.eco\": {\r\n        \"parser\": \"json\",\r\n        \"find\": {\r\n            \"GameServerPort\": \"{{server.build.default.port}}\",\r\n            \"WebServerPort\": \"{{server.build.env.WEB_PORT}}\",\r\n            \"PublicServer\": \"{{server.build.env.PUB_SRV}}\",\r\n            \"Password\": \"{{server.build.env.SRV_PWD}}\",\r\n            \"UPnPEnabled\": \"{{server.build.env.UPNP}}\",\r\n            \"Description\": \"{{server.build.env.SRV_DES}}\",\r\n            \"DetailedDescription\": \"{{server.build.env.DEDES}}\",\r\n            \"Playtime\": \"{{server.build.env.PLAYTIME}}\",\r\n            \"MaxConnections\": \"{{server.build.env.MAX_CON}}\",\r\n            \"WebServerUrl\": \"{{server.build.env.WEBSRVURL}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "startup": "{\r\n    \"done\": \" = Unix\"\r\n}", | ||||
|         "logs": "{}", | ||||
|         "stop": "exit" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD  flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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# add below your custom commands if needed\r\n\r\nFILE=$HOME\/Configs\/Network.eco\r\nif [ -f \"$FILE\" ]; then\r\n  echo -e \"Network.eco found.\"\r\nelse  \r\n  echo -e \"No Network.eco found. Moving default...\"\r\n  cp -f $HOME\/Configs\/Network.eco.template $HOME\/Configs\/Network.eco\r\n  echo -e \".done..\"\r\nfi\r\n\r\nFILE=$HOME\/Configs\/Localization.eco\r\nif [ -f \"$FILE\" ]; then\r\n  echo -e \"Localization.eco found.\"\r\nelse  \r\n  echo -e \"No Localization.eco found. Moving default...\"\r\n  cp -f $HOME\/Configs\/Localization.eco.template $HOME\/Configs\/Localization.eco\r\n  echo -e \"..done..\"\r\nfi\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", | ||||
|             "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD  flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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## add below your custom commands if needed\r\n\r\ncp -f $HOME\/Configs\/Network.eco.template $HOME\/Configs\/Network.eco\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "bash" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[STEAM] AppID", | ||||
|             "description": "", | ||||
|             "name": "Game ID", | ||||
|             "description": "ID", | ||||
|             "env_variable": "SRCDS_APPID", | ||||
|             "default_value": "739590", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "in:739590" | ||||
|             ], | ||||
|             "rules": "required|numeric|digits_between:1,6", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Webserver Port", | ||||
|             "description": "Port for the Webserver", | ||||
|             "name": "Web server port", | ||||
|             "description": "port", | ||||
|             "env_variable": "WEB_PORT", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "between:1024,65536" | ||||
|             ], | ||||
|             "rules": "required|numeric|digits_between:1,6", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Public Server", | ||||
|             "description": "Set to True to have the server listed in the Eco client", | ||||
|             "name": "Public Server", | ||||
|             "description": "Public Server = true | Private Server = false", | ||||
|             "env_variable": "PUB_SRV", | ||||
|             "default_value": "false", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "in:true,false" | ||||
|             ], | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Server Password", | ||||
|             "description": "Set a password for the server, or leave this blank to not require a password. Players on the whitelist will not have to enter a password.", | ||||
|             "env_variable": "SRV_PW", | ||||
|             "name": "Server Password", | ||||
|             "description": "Password to join the Server", | ||||
|             "env_variable": "SRV_PWD", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "string", | ||||
|                 "max:20" | ||||
|             ], | ||||
|             "rules": "nullable|string|max:20", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Server Name", | ||||
|             "description": "Sets the name of your server in the client server browser. Chat_Commands#Text_markup can be used to add color or modify the appearance of the text.", | ||||
|             "env_variable": "SRV_NAME", | ||||
|             "default_value": "Hosted by panel", | ||||
|             "name": "Server Description", | ||||
|             "description": "Server Description", | ||||
|             "env_variable": "SRV_DES", | ||||
|             "default_value": "Hosted by Pterodactyl", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "max:50" | ||||
|             ], | ||||
|             "rules": "required|string|max:50", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "UPNP", | ||||
|             "description": "UPNP OFF", | ||||
|             "env_variable": "UPNP", | ||||
|             "default_value": "false", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "in:true,false" | ||||
|             ], | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string|max:20", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Install Flags", | ||||
|             "description": "", | ||||
|             "env_variable": "INSTALL_FLAGS", | ||||
|             "default_value": "-beta default", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string|max:50", | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Auto Update", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Auto Update", | ||||
|             "description": "", | ||||
|             "env_variable": "AUTO_UPDATE", | ||||
|             "default_value": "1", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "boolean" | ||||
|             ], | ||||
|             "rules": "boolean", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Webserver URL", | ||||
|             "description": "your webserver url.", | ||||
|             "name": "Webserver URL", | ||||
|             "description": "", | ||||
|             "env_variable": "WEBSRVURL", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "url" | ||||
|             ], | ||||
|             "rules": "nullable|url", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Max Connections", | ||||
|             "description": "Maximum number of concurrent players (-1 no limits).", | ||||
|             "name": "Max Connections", | ||||
|             "description": "", | ||||
|             "env_variable": "MAX_CON", | ||||
|             "default_value": "-1", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "max:20" | ||||
|             ], | ||||
|             "rules": "required|string|max:20", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Playtime", | ||||
|             "description": "This is automatically filled in if you created the server in the Eco client and made a Timetable (schedule of preferred playtimes). If this is blank, the best way to fill it in is to \u201cSet Playtime\u201d through the Game Menu (Esc), and copy and paste the data from playtime.eco.", | ||||
|             "name": "Playtime", | ||||
|             "description": "", | ||||
|             "env_variable": "PLAYTIME", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "string" | ||||
|             ], | ||||
|             "rules": "nullable|string", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Detailed Description", | ||||
|             "description": "Sets the long-form description of your server when people click on it in the server browser. Adding this description helps the server show up more prominently in the browser.", | ||||
|             "name": "DetailedDescription", | ||||
|             "description": "", | ||||
|             "env_variable": "DEDES", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "string", | ||||
|                 "max:50" | ||||
|             ], | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "rules": "nullable|string|max:50", | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] RCON Port", | ||||
|             "description": "", | ||||
|             "env_variable": "RCON_PORT", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "between:1024,65536" | ||||
|             ], | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] RCON Password", | ||||
|             "description": "", | ||||
|             "env_variable": "RCON_PW", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "string" | ||||
|             ], | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Discord Server", | ||||
|             "description": "Invite link ID for a Discord server (the ID after the \u201cdiscord.gg\/\u201d).", | ||||
|             "env_variable": "DISCORD_SRV", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "string" | ||||
|             ], | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Server Category", | ||||
|             "description": "Choose from 1 of 4 categories that will show up when players first click on \u201cNew Game\u201d in the Eco client. Selecting a category makes it much more likely new players will join your server. Strings available for this option are: None; Beginner; Established; BeginnerHard; Strange", | ||||
|             "env_variable": "SRV_CAT", | ||||
|             "default_value": "None", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "in:None,Beginner,Established,BeginnerHard,Strange" | ||||
|             ], | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Language", | ||||
|             "description": "Defines the language.", | ||||
|             "env_variable": "LANGUAGE", | ||||
|             "default_value": "English", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "in:English,French,German" | ||||
|             ], | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[ACCOUNT] SLG Username", | ||||
|             "description": "", | ||||
|             "env_variable": "SLG_USER", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "max:20" | ||||
|             ], | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[ACCOUNT] SLG Pasword", | ||||
|             "description": "", | ||||
|             "env_variable": "SLG_PW", | ||||
|             "default_value": "", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "max:20" | ||||
|             ], | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
|  | ||||
| @ -1,10 +1,10 @@ | ||||
| { | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", | ||||
|     "meta": { | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|         "update_url": null, | ||||
|         "version": "PTDL_v2" | ||||
|     }, | ||||
|     "exported_at": "2024-09-20T09:14:59+02:00", | ||||
|     "exported_at": "2024-06-01T00:04:11+00:00", | ||||
|     "name": "Eco", | ||||
|     "author": "eggs@goover.dev", | ||||
|     "description": "Eco is an online world from Strange Loop Games where players must build civilization using resources from an ecosystem that can be damaged and destroyed. The world of Eco is an incredibly reactive one, and whatever any player does in the world affects the underlying ecosystem.", | ||||
| @ -12,47 +12,47 @@ | ||||
|         "steam_disk_space" | ||||
|     ], | ||||
|     "docker_images": { | ||||
|         "ghcr.io\/parkervcp\/steamcmd:dotnet": "ghcr.io\/parkervcp\/steamcmd:dotnet" | ||||
|         "ghcr.io/parkervcp/steamcmd:dotnet": "ghcr.io/parkervcp/steamcmd:dotnet" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": ".\/EcoServer --username=\"{{SLG_USER}}\" --password=\"{{SLG_PW}}\"", | ||||
|     "startup": "./EcoServer", | ||||
|     "config": { | ||||
|         "files": "{\r\n    \"Configs\/Network.eco\": {\r\n        \"parser\": \"json\",\r\n        \"find\": {\r\n            \"GameServerPort\": \"{{server.build.default.port}}\",\r\n            \"WebServerPort\": \"{{server.build.env.WEB_PORT}}\",\r\n            \"PublicServer\": \"{{server.build.env.PUB_SRV}}\",\r\n            \"Password\": \"{{server.build.env.SRV_PW}}\",\r\n            \"UPnPEnabled\": \"{{server.build.env.UPNP}}\",\r\n            \"Description\": \"{{server.build.env.SRV_NAME}}\",\r\n            \"DetailedDescription\": \"{{server.build.env.DEDES}}\",\r\n            \"Playtime\": \"{{server.build.env.PLAYTIME}}\",\r\n            \"MaxConnections\": \"{{server.build.env.MAX_CON}}\",\r\n            \"DiscordAddress\": \"{{server.build.env.DISCORD_SRV}}\",\r\n            \"RconServerPort\": \"{{server.build.env.RCON_PORT}}\",\r\n            \"RconPassword\": \"{{server.build.env.RCON_PW}}\",\r\n            \"ServerCategory\": \"{{server.build.env.SRV_CAT}}\"\r\n        }\r\n    },\r\n    \"Configs\/Localization.eco\": {\r\n        \"parser\": \"json\",\r\n        \"find\": {\r\n            \"Language\": \"{{server.build.env.LANGUAGE}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "startup": "{\r\n    \"done\": \"Web Server now listening on:\"\r\n}", | ||||
|         "files": "{\r\n    \"Configs/Network.eco\": {\r\n        \"parser\": \"json\",\r\n        \"find\": {\r\n            \"GameServerPort\": \"{{server.build.default.port}}\",\r\n            \"WebServerPort\": \"{{server.build.env.WEB_PORT}}\",\r\n            \"PublicServer\": \"{{server.build.env.PUB_SRV}}\",\r\n            \"Password\": \"{{server.build.env.SRV_PWD}}\",\r\n            \"UPnPEnabled\": \"{{server.build.env.UPNP}}\",\r\n            \"Description\": \"{{server.build.env.SRV_DES}}\",\r\n            \"DetailedDescription\": \"{{server.build.env.DEDES}}\",\r\n            \"Playtime\": \"{{server.build.env.PLAYTIME}}\",\r\n            \"MaxConnections\": \"{{server.build.env.MAX_CON}}\",\r\n            \"WebServerUrl\": \"{{server.build.env.WEBSRVURL}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "logs": "{}", | ||||
|         "startup": "{\r\n    \"done\": \" = Unix\"\r\n}", | ||||
|         "stop": "exit" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD  flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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# add below your custom commands if needed\r\n\r\nFILE=$HOME\/Configs\/Network.eco\r\nif [ -f \"$FILE\" ]; then\r\n  echo -e \"Network.eco found.\"\r\nelse  \r\n  echo -e \"No Network.eco found. Moving default...\"\r\n  cp -f $HOME\/Configs\/Network.eco.template $HOME\/Configs\/Network.eco\r\n  echo -e \".done..\"\r\nfi\r\n\r\nFILE=$HOME\/Configs\/Localization.eco\r\nif [ -f \"$FILE\" ]; then\r\n  echo -e \"Localization.eco found.\"\r\nelse  \r\n  echo -e \"No Localization.eco found. Moving default...\"\r\n  cp -f $HOME\/Configs\/Localization.eco.template $HOME\/Configs\/Localization.eco\r\n  echo -e \"..done..\"\r\nfi\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "bash" | ||||
|             "container": "ghcr.io/parkervcp/installers:debian", | ||||
|             "entrypoint": "bash", | ||||
|             "script": "#!/bin/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: /mnt/server\r\n# Image to install with is 'ghcr.io/parkervcp/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https://developer.valvesoftware.com/wiki/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD  flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing\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 +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] \u0026\u0026 printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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## add below your custom commands if needed\r\n\r\ncp -f $HOME/Configs/Network.eco.template $HOME/Configs/Network.eco\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
|         { | ||||
|             "name": "[STEAM] AppID", | ||||
|             "description": "", | ||||
|             "name": "Game ID", | ||||
|             "description": "ID", | ||||
|             "env_variable": "SRCDS_APPID", | ||||
|             "default_value": "739590", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string|in:739590", | ||||
|             "rules": "required|numeric|digits_between:1,6", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] Webserver Port", | ||||
|             "description": "Port for the Webserver", | ||||
|             "name": "Web server port", | ||||
|             "description": "port", | ||||
|             "env_variable": "WEB_PORT", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|integer|between:1024,65536", | ||||
|             "rules": "required|numeric|digits_between:1,6", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] Public Server", | ||||
|             "description": "Set to True to have the server listed in the Eco client", | ||||
|             "name": "Public Server", | ||||
|             "description": "Public Server = true | Private Server = false", | ||||
|             "env_variable": "PUB_SRV", | ||||
|             "default_value": "false", | ||||
|             "user_viewable": true, | ||||
| @ -61,9 +61,9 @@ | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] Server Password", | ||||
|             "description": "Set a password for the server, or leave this blank to not require a password. Players on the whitelist will not have to enter a password.", | ||||
|             "env_variable": "SRV_PW", | ||||
|             "name": "Server Password", | ||||
|             "description": "Password to join the Server", | ||||
|             "env_variable": "SRV_PWD", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
| @ -71,10 +71,10 @@ | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] Server Name", | ||||
|             "description": "Sets the name of your server in the client server browser. Chat_Commands#Text_markup can be used to add color or modify the appearance of the text.", | ||||
|             "env_variable": "SRV_NAME", | ||||
|             "default_value": "Hosted by panel", | ||||
|             "name": "Server Description", | ||||
|             "description": "Server Description", | ||||
|             "env_variable": "SRV_DES", | ||||
|             "default_value": "Hosted by Pterodactyl", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|max:50", | ||||
| @ -86,12 +86,22 @@ | ||||
|             "env_variable": "UPNP", | ||||
|             "default_value": "false", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string|max:20", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] Auto Update", | ||||
|             "name": "Install Flags", | ||||
|             "description": "", | ||||
|             "env_variable": "INSTALL_FLAGS", | ||||
|             "default_value": "-beta default", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string|max:50", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Auto Update", | ||||
|             "description": "", | ||||
|             "env_variable": "AUTO_UPDATE", | ||||
|             "default_value": "1", | ||||
| @ -101,8 +111,8 @@ | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] Webserver URL", | ||||
|             "description": "your webserver url.", | ||||
|             "name": "Webserver URL", | ||||
|             "description": "", | ||||
|             "env_variable": "WEBSRVURL", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
| @ -111,8 +121,8 @@ | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] Max Connections", | ||||
|             "description": "Maximum number of concurrent players (-1 no limits).", | ||||
|             "name": "Max Connections", | ||||
|             "description": "", | ||||
|             "env_variable": "MAX_CON", | ||||
|             "default_value": "-1", | ||||
|             "user_viewable": true, | ||||
| @ -121,8 +131,8 @@ | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] Playtime", | ||||
|             "description": "This is automatically filled in if you created the server in the Eco client and made a Timetable (schedule of preferred playtimes). If this is blank, the best way to fill it in is to \u201cSet Playtime\u201d through the Game Menu (Esc), and copy and paste the data from playtime.eco.", | ||||
|             "name": "Playtime", | ||||
|             "description": "", | ||||
|             "env_variable": "PLAYTIME", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
| @ -131,84 +141,14 @@ | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] Detailed Description", | ||||
|             "description": "Sets the long-form description of your server when people click on it in the server browser. Adding this description helps the server show up more prominently in the browser.", | ||||
|             "name": "DetailedDescription", | ||||
|             "description": "", | ||||
|             "env_variable": "DEDES", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string|max:50", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] RCON Port", | ||||
|             "description": "", | ||||
|             "env_variable": "RCON_PORT", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|integer|between:1024,65536", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] RCON Password", | ||||
|             "description": "", | ||||
|             "env_variable": "RCON_PW", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] Discord Server", | ||||
|             "description": "Invite link ID for a Discord server (the ID after the \u201cdiscord.gg\/\u201d).", | ||||
|             "env_variable": "DISCORD_SRV", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] Server Category", | ||||
|             "description": "Choose from 1 of 4 categories that will show up when players first click on \u201cNew Game\u201d in the Eco client. Selecting a category makes it much more likely new players will join your server. Strings available for this option are: None; Beginner; Established; BeginnerHard; Strange", | ||||
|             "env_variable": "SRV_CAT", | ||||
|             "default_value": "None", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:None,Beginner,Established,BeginnerHard,Strange", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] Language", | ||||
|             "description": "Defines the language.", | ||||
|             "env_variable": "LANGUAGE", | ||||
|             "default_value": "English", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:English,French,German", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[ACCOUNT] SLG Username", | ||||
|             "description": "", | ||||
|             "env_variable": "SLG_USER", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|max:20", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[ACCOUNT] SLG Pasword", | ||||
|             "description": "", | ||||
|             "env_variable": "SLG_PW", | ||||
|             "default_value": "", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string|max:20", | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
| @ -4,7 +4,7 @@ | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|     }, | ||||
|     "exported_at": "2024-08-25T09:33:05+00:00", | ||||
|     "exported_at": "2024-06-01T00:04:12+00:00", | ||||
|     "name": "Foundry", | ||||
|     "author": "eggs@goover.dev", | ||||
|     "uuid": "91705781-6ef4-49a7-8655-8da3b89aa99f", | ||||
| @ -13,12 +13,12 @@ | ||||
|         "steam_disk_space" | ||||
|     ], | ||||
|     "docker_images": { | ||||
|         "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" | ||||
|         "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": "xvfb :0 -screen 0 1024x768x16; DISPLAY=:0.0 xvfb-run wine \/home\/container\/FoundryDedicatedServer.exe -log", | ||||
|     "config": { | ||||
|         "files": "{\r\n    \"App.cfg\": {\r\n        \"parser\": \"properties\",\r\n        \"find\": {\r\n            \"server_name\": \"{{server.environment.SERVER_NAME}}\",\r\n            \"server_password\": \"{{server.environment.SRV_PW}}\",\r\n            \"server_world_name\": \"{{server.environment.WORLD_NAME}}\",\r\n            \"server_max_players\": \"{{server.environment.MAX_PLAYERS}}\",\r\n            \"server_port\": \"{{server.allocations.default.port}}\",\r\n            \"server_query_port\": \"{{server.environment.QUERY_PORT}}\",\r\n            \"pause_server_when_empty\": \"{{server.environment.PAUSE_SERVER}}\",\r\n            \"autosave_interval\": \"{{server.environment.AUTOSAVE_INTERVAL}}\",\r\n            \"server_is_public\": \"{{server.environment.PUBLIC_SERVER}}\",\r\n            \"server_persistent_data_override_folder\": \"{{server.environment.SAVE_PATH}}\",\r\n            \"map_seed\": \"{{server.environment.MAP_SEED}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "files": "{\r\n    \"App.cfg\": {\r\n        \"parser\": \"properties\",\r\n        \"find\": {\r\n            \"server_name\": \"{{server.build.env.SERVER_NAME}}\",\r\n            \"server_password\": \"{{server.build.env.SRV_PW}}\",\r\n            \"server_world_name\": \"{{server.build.env.WORLD_NAME}}\",\r\n            \"server_max_players\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n            \"server_port\": \"{{server.build.default.port}}\",\r\n            \"server_query_port\": \"{{server.build.env.QUERY_PORT}}\",\r\n            \"pause_server_when_empty\": \"{{server.build.env.PAUSE_SERVER}}\",\r\n            \"autosave_interval\": \"{{server.build.env.AUTOSAVE_INTERVAL}}\",\r\n            \"server_is_public\": \"{{server.build.env.PUBLIC_SERVER}}\",\r\n            \"server_persistent_data_override_folder\": \"{{server.build.env.SAVE_PATH}}\",\r\n            \"map_seed\": \"{{server.build.env.MAP_SEED}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "startup": "{\r\n    \"done\": \"Dedicated server is now running!\"\r\n}", | ||||
|         "logs": "{}", | ||||
|         "stop": "^C" | ||||
| @ -32,7 +32,6 @@ | ||||
|     }, | ||||
|     "variables": [ | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Steam Query Port", | ||||
|             "description": "Sets the network port used by the Steam server browser to query information about the game. This is only used if the server is set to public.", | ||||
|             "env_variable": "QUERY_PORT", | ||||
| @ -40,10 +39,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|integer|between:1024,65536", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Server Name", | ||||
|             "description": "This is the name of the server listed in the Steam server browser.", | ||||
|             "env_variable": "SERVER_NAME", | ||||
| @ -51,10 +50,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|max:40", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Server World Name", | ||||
|             "description": "Sets the server world name. This is the folder where the save files will be stored.", | ||||
|             "env_variable": "WORLD_NAME", | ||||
| @ -62,10 +61,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|max:20", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Server Password", | ||||
|             "description": "Sets the server password.", | ||||
|             "env_variable": "SRV_PW", | ||||
| @ -73,10 +72,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string|max:20", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Pause Server When Empty", | ||||
|             "description": "Will the server pause when nobody is connected.", | ||||
|             "env_variable": "PAUSE_SERVER", | ||||
| @ -84,10 +83,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Autosave Interval", | ||||
|             "description": "Sets the autosave frequency in seconds.", | ||||
|             "env_variable": "AUTOSAVE_INTERVAL", | ||||
| @ -95,10 +94,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|numeric", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Server Public", | ||||
|             "description": "Sets whether the server is listed on the Steam server browser.", | ||||
|             "env_variable": "PUBLIC_SERVER", | ||||
| @ -106,10 +105,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Map Seed", | ||||
|             "description": "Sets the map seed used to generate the world.", | ||||
|             "env_variable": "MAP_SEED", | ||||
| @ -117,10 +116,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|numeric", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Server Max Players", | ||||
|             "description": "This sets the max amount of players on a server.", | ||||
|             "env_variable": "MAX_PLAYERS", | ||||
| @ -128,10 +127,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|numeric", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Savepath", | ||||
|             "description": "", | ||||
|             "env_variable": "SAVE_PATH", | ||||
| @ -139,10 +138,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Auto update the server", | ||||
|             "description": "", | ||||
|             "env_variable": "AUTO_UPDATE", | ||||
| @ -150,10 +149,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|boolean", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "WINDOWS_INSTALL", | ||||
|             "description": "", | ||||
|             "env_variable": "WINDOWS_INSTALL", | ||||
| @ -161,10 +160,10 @@ | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|in:1", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[STEAM] Steam App ID", | ||||
|             "description": "Steam App ID", | ||||
|             "env_variable": "SRCDS_APPID", | ||||
| @ -172,10 +171,10 @@ | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string|in:2915550", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[WINE] WINETRICKS_RUN", | ||||
|             "description": "", | ||||
|             "env_variable": "WINETRICKS_RUN", | ||||
| @ -183,10 +182,10 @@ | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[WINE] WINEDEBUG", | ||||
|             "description": "", | ||||
|             "env_variable": "WINEDEBUG", | ||||
| @ -194,10 +193,10 @@ | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[WINE] XVFB", | ||||
|             "description": "", | ||||
|             "env_variable": "XVFB", | ||||
| @ -205,6 +204,7 @@ | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|in:1", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
|  | ||||
| @ -1,10 +1,10 @@ | ||||
| { | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", | ||||
|     "meta": { | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|         "update_url": null, | ||||
|         "version": "PTDL_v2" | ||||
|     }, | ||||
|     "exported_at": "2024-08-25T11:31:45+02:00", | ||||
|     "exported_at": "2024-06-01T00:04:12+00:00", | ||||
|     "name": "Foundry", | ||||
|     "author": "eggs@goover.dev", | ||||
|     "description": "Build a factory optimized to perfection or an artistic masterpiece in an infinite voxel world. Mine and harvest resources, automate your ever-growing production lines and manage complex systems while researching your way to mechanical mastery in FOUNDRY.", | ||||
| @ -12,21 +12,21 @@ | ||||
|         "steam_disk_space" | ||||
|     ], | ||||
|     "docker_images": { | ||||
|         "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" | ||||
|         "ghcr.io/parkervcp/yolks:wine_staging": "ghcr.io/parkervcp/yolks:wine_staging" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": "xvfb :0 -screen 0 1024x768x16; DISPLAY=:0.0 xvfb-run wine \/home\/container\/FoundryDedicatedServer.exe -log", | ||||
|     "startup": "xvfb :0 -screen 0 1024x768x16; DISPLAY=:0.0 xvfb-run wine /home/container/FoundryDedicatedServer.exe -log", | ||||
|     "config": { | ||||
|         "files": "{\r\n    \"App.cfg\": {\r\n        \"parser\": \"properties\",\r\n        \"find\": {\r\n            \"server_name\": \"{{server.build.env.SERVER_NAME}}\",\r\n            \"server_password\": \"{{server.build.env.SRV_PW}}\",\r\n            \"server_world_name\": \"{{server.build.env.WORLD_NAME}}\",\r\n            \"server_max_players\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n            \"server_port\": \"{{server.build.default.port}}\",\r\n            \"server_query_port\": \"{{server.build.env.QUERY_PORT}}\",\r\n            \"pause_server_when_empty\": \"{{server.build.env.PAUSE_SERVER}}\",\r\n            \"autosave_interval\": \"{{server.build.env.AUTOSAVE_INTERVAL}}\",\r\n            \"server_is_public\": \"{{server.build.env.PUBLIC_SERVER}}\",\r\n            \"server_persistent_data_override_folder\": \"{{server.build.env.SAVE_PATH}}\",\r\n            \"map_seed\": \"{{server.build.env.MAP_SEED}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "startup": "{\r\n    \"done\": \"Dedicated server is now running!\"\r\n}", | ||||
|         "logs": "{}", | ||||
|         "startup": "{\r\n    \"done\": \"Dedicated server is now running!\"\r\n}", | ||||
|         "stop": "^C" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n\r\nclear\r\nRED='\\033[0;31m'\r\nGREEN='\\033[0;32m'\r\nYELLOW='\\033[1;33m'\r\nBLUE='\\033[0;34m'\r\nNC='\\033[0m'\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}Foundry Installscript${NC}\"\r\necho -e \"${YELLOW}Egg by gOOvER | 2024 MIT Licence${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\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\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## install game using steamcmd\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install game using steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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# add below your custom commands if needed\r\nmkdir -p $HOME\/Mods\r\nmkdir -p $HOME\/serverfiles\r\n\r\n#ccheck for config\r\nFILE=$HOME\/App.cfg\r\n\r\nif [ -f \"$FILE\" ]; then\r\n  echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n  echo -e \"${GREEN}App.cfg found.${NC}\"\r\n  echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\nelse  \r\n  echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n  echo -e \"${RED}No App.cfg found. downloading default...${NC}\"\r\n  echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n  cd $HOME\r\n  curl -sSL -o App.cfg https:\/\/dedicated.foundry-game.com\/App.cfg\r\n  echo -e \"${GREEN}..done..${NC}\"\r\nfi\r\n\r\n## cleanup to prevent errors\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${RED}deleting old wine dirs... please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\nif [ ! -d \"\/mnt\/server\/.wine\" ]; then\r\n    rm -fR \/mnt\/server\/.wine\r\n    rm -fR \/mnt\/server\/.config\r\n    rm -fR \/mnt\/server\/.cache\r\n    rm -fR \/mnt\/server\/.local\r\n    rm -fR \/mnt\/server\/appcache\r\nfi\r\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## install end\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${GREEN}Installation completed...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "bash" | ||||
|             "container": "ghcr.io/parkervcp/installers:debian", | ||||
|             "entrypoint": "bash", | ||||
|             "script": "#!/bin/bash\r\n\r\nclear\r\nRED='\\033[0;31m'\r\nGREEN='\\033[0;32m'\r\nYELLOW='\\033[1;33m'\r\nBLUE='\\033[0;34m'\r\nNC='\\033[0m'\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}Foundry Installscript${NC}\"\r\necho -e \"${YELLOW}Egg by gOOvER | 2024 MIT Licence${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing\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\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## install game using steamcmd\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install game using steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] \u0026\u0026 printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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# add below your custom commands if needed\r\nmkdir -p $HOME/Mods\r\nmkdir -p $HOME/serverfiles\r\n\r\n#ccheck for config\r\nFILE=$HOME/App.cfg\r\n\r\nif [ -f \"$FILE\" ]; then\r\n  echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n  echo -e \"${GREEN}App.cfg found.${NC}\"\r\n  echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\nelse  \r\n  echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n  echo -e \"${RED}No App.cfg found. downloading default...${NC}\"\r\n  echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n  cd $HOME\r\n  curl -sSL -o App.cfg https://dedicated.foundry-game.com/App.cfg\r\n  echo -e \"${GREEN}..done..${NC}\"\r\nfi\r\n\r\n## cleanup to prevent errors\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${RED}deleting old wine dirs... please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\nif [ ! -d \"/mnt/server/.wine\" ]; then\r\n    rm -fR /mnt/server/.wine\r\n    rm -fR /mnt/server/.config\r\n    rm -fR /mnt/server/.cache\r\n    rm -fR /mnt/server/.local\r\n    rm -fR /mnt/server/appcache\r\nfi\r\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## install end\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${GREEN}Installation completed...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
| @ -124,7 +124,7 @@ | ||||
|             "name": "[SERVER] Savepath", | ||||
|             "description": "", | ||||
|             "env_variable": "SAVE_PATH", | ||||
|             "default_value": "\/home\/container\/serverfiles", | ||||
|             "default_value": "/home/container/serverfiles", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string", | ||||
|  | ||||
| @ -4,33 +4,32 @@ | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|     }, | ||||
|     "exported_at": "2024-09-12T17:18:38+00:00", | ||||
|     "exported_at": "2024-06-01T00:04:17+00:00", | ||||
|     "name": "Garry's Mod - Reworked", | ||||
|     "author": "vilhelm@prytznet.se", | ||||
|     "uuid": "c0b2f96a-f753-4d82-a73e-6e5be2bbadd5", | ||||
|     "description": "Garry's Mod, is a sandbox physics game created by Garry Newman, and developed by his company, Facepunch Studios.", | ||||
|     "features": null, | ||||
|     "docker_images": { | ||||
|         "ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source" | ||||
|         "quay.io\/pterodactyl\/core:source": "quay.io\/pterodactyl\/core:source" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": ".\/srcds_run -game garrysmod -console -maxplayers {{MAX_PLAYERS}} -port {{SERVER_PORT}} +ip 0.0.0.0 +map {{SRCDS_MAP}} -strictportbind -norestart +sv_setsteamaccount {{STEAM_ACC}}", | ||||
|     "config": { | ||||
|         "files": "{}", | ||||
|         "startup": "{\r\n    \"done\": \"gameserver Steam ID\"\r\n}", | ||||
|         "logs": "{}", | ||||
|         "startup": "{\r\n    \"done\": \"gameserver Steam ID\",\r\n    \"userInteraction\": []\r\n}", | ||||
|         "logs": "{\r\n    \"custom\": true,\r\n    \"location\": \"logs\/latest.log\"\r\n}", | ||||
|         "stop": "quit" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\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\nSRCDS_APPID=4020\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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## add below your custom commands if needed\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "script": "#!\/bin\/bash\r\n# Garry's Mod Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\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\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 4020 +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", | ||||
|             "container": "ubuntu:16.04", | ||||
|             "entrypoint": "bash" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "Map", | ||||
|             "description": "The default map for the server.", | ||||
|             "env_variable": "SRCDS_MAP", | ||||
| @ -38,10 +37,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|alpha_dash", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "Steam Account Token", | ||||
|             "description": "The Steam Account Token required for the server to be displayed publicly.", | ||||
|             "env_variable": "STEAM_ACC", | ||||
| @ -49,10 +48,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|alpha_num|size:32", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "Player Slots", | ||||
|             "description": "The amount of player slots on the server.", | ||||
|             "env_variable": "MAX_PLAYERS", | ||||
| @ -60,6 +59,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|integer|max:128", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
|  | ||||
| @ -1,30 +1,30 @@ | ||||
| { | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", | ||||
|     "meta": { | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|         "update_url": null, | ||||
|         "version": "PTDL_v2" | ||||
|     }, | ||||
|     "exported_at": "2024-09-12T19:18:10+02:00", | ||||
|     "exported_at": "2024-06-01T00:04:17+00:00", | ||||
|     "name": "Garry's Mod - Reworked", | ||||
|     "author": "vilhelm@prytznet.se", | ||||
|     "description": "Garry's Mod, is a sandbox physics game created by Garry Newman, and developed by his company, Facepunch Studios.", | ||||
|     "features": null, | ||||
|     "docker_images": { | ||||
|         "ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source" | ||||
|         "quay.io/pterodactyl/core:source": "quay.io/pterodactyl/core:source" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": ".\/srcds_run -game garrysmod -console -maxplayers {{MAX_PLAYERS}} -port {{SERVER_PORT}} +ip 0.0.0.0 +map {{SRCDS_MAP}} -strictportbind -norestart +sv_setsteamaccount {{STEAM_ACC}}", | ||||
|     "startup": "./srcds_run -game garrysmod -console -maxplayers {{MAX_PLAYERS}} -port {{SERVER_PORT}} +ip 0.0.0.0 +map {{SRCDS_MAP}} -strictportbind -norestart +sv_setsteamaccount {{STEAM_ACC}}", | ||||
|     "config": { | ||||
|         "files": "{}", | ||||
|         "startup": "{\r\n    \"done\": \"gameserver Steam ID\"\r\n}", | ||||
|         "logs": "{}", | ||||
|         "logs": "{\r\n    \"custom\": true,\r\n    \"location\": \"logs/latest.log\"\r\n}", | ||||
|         "startup": "{\r\n    \"done\": \"gameserver Steam ID\",\r\n    \"userInteraction\": []\r\n}", | ||||
|         "stop": "quit" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\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\nSRCDS_APPID=4020\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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## add below your custom commands if needed\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "bash" | ||||
|             "container": "ubuntu:16.04", | ||||
|             "entrypoint": "bash", | ||||
|             "script": "#!/bin/bash\r\n# Garry's Mod Installation Script\r\n#\r\n# Server Files: /mnt/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd /tmp\r\ncurl -sSL -o steamcmd.tar.gz http://media.steampowered.com/installer/steamcmd_linux.tar.gz\r\n\r\nmkdir -p /mnt/server/steamcmd\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\n\r\nexport HOME=/mnt/server\r\n./steamcmd.sh +login anonymous +force_install_dir /mnt/server +app_update 4020 +quit\r\n\r\nmkdir -p /mnt/server/.steam/sdk32\r\ncp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
|  | ||||
| @ -1,10 +1,6 @@ | ||||
| # Satisfactory | ||||
| 
 | ||||
| > [!IMPORTANT] | ||||
| > ***Updating for v1.0?*** | ||||
| > - Ensure any existing servers have the updated Startup Command applied! | ||||
| > - TCP is now required! (See [Server Ports](#server-ports) for details) | ||||
| > - While not required, it's recommended existing servers delete the `LinuxServer` directory under `~/FactoryGame/Saved/Config/` to remove depreciated settings, and reconfigure the settings via the in-game Server Manager. | ||||
| ***Updating your Egg?**: Ensure any existing servers have the latest Startup Command, new Startup Variables are set, **and you reinstall server!*** | ||||
| ___ | ||||
| 
 | ||||
| ### Authors / Contributors | ||||
| @ -65,7 +61,6 @@ ___ | ||||
|                 <img src="https://avatars.githubusercontent.com/u/116325?v=4" width="50px;" alt=""/><br /><sub><b>gOOvER</b></sub> | ||||
|             </a> | ||||
|             <br /> | ||||
|             <a href="https://github.com/parkervcp/eggs/commits?author=gOOvER" title="Codes">💻</a> | ||||
|             <a href="https://github.com/parkervcp/eggs/commits?author=gOOvER" title="Contributor">💡</a> | ||||
|         </td> | ||||
|     </tr> | ||||
| @ -84,25 +79,29 @@ ___ | ||||
| 
 | ||||
| ### Egg Capabilities | ||||
| 
 | ||||
| - Configuration of the Server Query, Beacon, and Game ports. | ||||
| - Configurable to automatically check for server updates on start via SteamCMD. Forcing validation is also configurable. | ||||
| - Configurable number of rotating autosaves. | ||||
| - [*Experimental*] Configurable maximum number of players. | ||||
| - [*Advanced*] Configurable networking and server branch settings. | ||||
| 
 | ||||
| > [!NOTE] | ||||
| > As of Satisfactory v1.0, most server settings have moved from being configured in the Egg to being configured via the in-game Server Manager.\ | ||||
| > Please see [Server Initialization](#server-initialization) for what settings can be configured in-game. | ||||
| - *[Experimental]* Max player configuration. | ||||
| - Autosave amount and interval configuration. | ||||
| - Disable crash reporting if desired. | ||||
| - Disable seasonal events if desired. | ||||
| - ...and other advanced networking and server branch configurable settings. | ||||
| 
 | ||||
| ___ | ||||
| 
 | ||||
| ### Server Ports | ||||
| 
 | ||||
| | Port | Default | Protocol | Required | Notes | | ||||
| |---------|---------|---------|---------|---------| | ||||
| | **Primary** | 7777 | UDP & TCP | **Yes** | Clients connect using this port. UDP is un-encrypted game traffic. TCP is also required for the in-game Server Manager & API, and it is TLS encrypted. | | ||||
| - Default server ports are listed below, but all three ports can be changed freely (\*some exceptions apply below). | ||||
|     - All three ports must be unique; they cannot currently be shared on one port (this may change in the future). | ||||
|     - It is recommended to distance ports of other running Satisfactory servers in Pterodactyl by **increments of 100** (it is currently unknown what the minimum increment is, but an increment of +1 caused cross-server talk in testing). Also, your internal ports **must match** your external ports on your network (ie. you can't have an external port of 7778 forwarded to your 7777 internal port; they must match). | ||||
| - **Note:** The Primary/Default/Game Port for your server in Pterodactyl will be Satisfactory's `-Port=????` game port, even though clients will **connect with the Query port**. | ||||
| - ***All three ports are required to be open/allocated for normal server behavior!*** | ||||
| 
 | ||||
| > [!TIP] | ||||
| > \*Your internal ports **must match** your external ports on your network (ie. you can't have an external port of 7778 forwarded to your 7777 internal port; they must match). (\*Testing needed after v1.0 release) | ||||
| | Port | Default (UDP) | | ||||
| |---------|---------| | ||||
| | **Game (Primary Port in Pterodactyl)** | 7777 | | ||||
| | Beacon | 15000 | | ||||
| | Server Query (Port clients connect with) | 15777 | | ||||
| 
 | ||||
| ___ | ||||
| 
 | ||||
| @ -110,10 +109,10 @@ ___ | ||||
| 
 | ||||
| |  | Bare Minimum | Recommended | | ||||
| |---------|---------|---------| | ||||
| | Processor | Recent x86/64 (AMD/Intel) processor that supports modern instructions (ie. AVX, AES, etc.). No 32 bit or ARM support. | Favours higher single-core performance over multiple cores. If you are running Wings via Proxmox, you may need to set the VM's CPU Type to "host" to avoid session save/load crashes. | | ||||
| | RAM | 4608 MiB | 8192-12288 MiB (especially for 4 players or large save files) | | ||||
| | Storage | 5120 MiB | 7168-10240 MiB (or more, depending on save size or frequency) | | ||||
| | Network | 1 Mbit/s | 1-5 Mbit/s ([may require server *and* client config tweaks](https://satisfactory.wiki.gg/wiki/Multiplayer#Temporary_lag_solution)) | | ||||
| | Processor | Recent x86/64 (AMD/Intel) processor. No 32 bit or ARM support. | Favours higher single-core performance over multiple cores. | | ||||
| | RAM | 1536-2048 MiB | 6144-12288 MiB (especially for 4 players or large save files) | | ||||
| | Storage | 5 GB | 7-10 GB (or more, depending on save size or frequency) | | ||||
| | Network | 0.512 Mbit/s | 1-5 Mbit/s ([may require server *and* client config tweaks](https://satisfactory.wiki.gg/wiki/Multiplayer#Temporary_lag_solution)) | | ||||
| | Host OS | Most stable Linux OS branches should work | Using the latest kernel version for your installed OS can prevent some edge-case installation/boot issues. | | ||||
| | Game Ownership | Not required to start. | Required to fully "initialize" (see [Server Initialization](#server-initialization) below) | | ||||
| 
 | ||||
| @ -121,54 +120,46 @@ ___ | ||||
| 
 | ||||
| ### Server Initialization | ||||
| 
 | ||||
| > [!WARNING] | ||||
| > The server cannot be joined for the first time via "Join Game -> Join game directly..." on the main menu due to the TLS certificate not being trusted yet. Instead, join via "Server Manager -> Add Server" and you will be prompted to trust the certificate and initialize the server. | ||||
| 
 | ||||
| For a server to be fully "initialized", a client who owns the game must log into the server to "claim" it and create an administrator password. Then, a new session can be created via the "Create Game" tab in-game, or an existing save file can be uploaded (see [Save Files](#save-files) below). | ||||
| 
 | ||||
| Misc. settings listed below can be configured by an admin client via the Server Manager's "Server Settings" tab, and are currently **not** set via the Egg: | ||||
| Misc. settings listed below can be configured by an admin client via the game's "Server Settings" tab, and are currently **not** set via the Egg: | ||||
| 
 | ||||
| - Server Name | ||||
| - Server Password | ||||
| - Admin Password | ||||
| - Player Password Protection | ||||
| - Auto-Load Session Name | ||||
| - Auto Pause (when no players are online) | ||||
| - Auto-Save on Player Disconnect | ||||
| - Disable Seasonal Events | ||||
| - Autosave Interval | ||||
| - Server Restart Interval | ||||
| - Send Gameplay Data (Crash Reports) | ||||
| - Network Quality | ||||
| 
 | ||||
| > [!NOTE] | ||||
| > Currently, Tier 0 (Onboarding) is not possible to play on a dedicated server and it will be automatically unlocked, even if you upload a save in Tier 0. If you would like to play the beginning of the game with Onboarding, it is recommended you play local multiplayer first, and then upload your save after completing Tier 0. | ||||
| - Pause When No Players Online | ||||
| - ...and possibly more as the client's UI is developed further for more configuration options. | ||||
| 
 | ||||
| ___ | ||||
| 
 | ||||
| ### Save Files | ||||
| 
 | ||||
| > [!CAUTION] | ||||
| > Stopping the server **does not** currently save your game! Ensure it is saved before stopping the server! | ||||
| An existing save file (including single-player saves) can currently be uploaded to the server via two different methods: | ||||
| 
 | ||||
| Save files are located in the following directory, but can be more easily downloaded to your local computer in-game via the Server Manager under the "Manage Saves" tab (admins only). | ||||
| - "Manage Saves" tab via an admin client in-game (Recommended) | ||||
| - Manually via the File Manager or SFTP | ||||
| 
 | ||||
| Save files are located in this directory: | ||||
| 
 | ||||
| ```md | ||||
| /home/container/.config/Epic/FactoryGame/Saved/SaveGames/server | ||||
| ``` | ||||
| 
 | ||||
| An existing save file (including single-player saves) can be uploaded to the server via the Server Manager as well and loaded under the same tab. | ||||
| *Note: A manually uploaded save will only load if it is (a.) loaded manually via the "Manage Saves" tab in-game, (b.) it is the only save file present, or (c.) its existing session name (not its file name) matches the existing save's session name *and* has the most recent time stamp.* | ||||
| 
 | ||||
| ***Warning:*** Stopping the server **does not** currently save your game! Ensure it is saved before stopping the server. | ||||
| 
 | ||||
| If you have forgotten your administrator password or would generally like to reset your server as if it were new, you can delete the following file: | ||||
| 
 | ||||
| ```md | ||||
| /home/container/.config/Epic/FactoryGame/Saved/SaveGames/ServerSettings.<your_server_query_port>.sav | ||||
| /home/container/.config/Epic/FactoryGame/Saved/SaveGames/ServerSettings.<your_server_query_port> | ||||
| ``` | ||||
| 
 | ||||
| ___ | ||||
| 
 | ||||
| ### Console Commands | ||||
| 
 | ||||
| The "Console" tab in the in-game Server Manager is the only way to execute commands. Entering commands via the Panel do nothing. | ||||
| The console tab in the client server manager is the only way to execute commands. Entering commands via Pterodactyl do nothing. | ||||
| 
 | ||||
| [List of known commands can be found via the Wiki.](https://satisfactory.wiki.gg/wiki/Dedicated_servers#Console_commands) | ||||
| 
 | ||||
| @ -192,12 +183,6 @@ Warning: failed to init SDL thread priority manager: SDL not found | ||||
| 
 | ||||
| ↑ This is a common error with Steam related software on Linux, but can safely be ignored. | ||||
| 
 | ||||
| ```log | ||||
| Exiting abnormally (error code: 130) | ||||
| ``` | ||||
| 
 | ||||
| ↑ This misleading message occurs when stopping the server. It is printed by the Unreal Engine because it doesn't know why it was interrupted (even though it was expected by us). This can be safely ignored if you notice normal engine shutdown logs above. | ||||
| 
 | ||||
| ```log | ||||
| ...Error: Couldn't find file for package... | ||||
| ``` | ||||
|  | ||||
| @ -1,10 +1,10 @@ | ||||
| { | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", | ||||
|     "meta": { | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|         "update_url": null, | ||||
|         "version": "PTDL_v2" | ||||
|     }, | ||||
|     "exported_at": "2024-09-10T11:11:13-07:00", | ||||
|     "exported_at": "2024-06-01T00:04:44+00:00", | ||||
|     "name": "Satisfactory", | ||||
|     "author": "red_thirten@yahoo.com", | ||||
|     "description": "Satisfactory is a first-person open-world factory building game with a dash of exploration and combat. Play alone or with friends, explore an alien planet, create multi-story factories, and enter conveyor belt heaven!", | ||||
| @ -12,24 +12,44 @@ | ||||
|         "steam_disk_space" | ||||
|     ], | ||||
|     "docker_images": { | ||||
|         "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" | ||||
|         "ghcr.io/parkervcp/games:source": "ghcr.io/parkervcp/games:source" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": ".\/Engine\/Binaries\/Linux\/*-Linux-Shipping FactoryGame -Port={{SERVER_PORT}}", | ||||
|     "startup": "./Engine/Binaries/Linux/*-Linux-Shipping FactoryGame ?listen -Port={{SERVER_PORT}} -ServerQueryPort={{QUERY_PORT}} -BeaconPort={{BEACON_PORT}} -multihome=0.0.0.0 $(if {{DISABLE_SEASONAL}}; then echo \"-DisableSeasonalEvents\"; fi)", | ||||
|     "config": { | ||||
|         "files": "{\r\n    \"FactoryGame\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n        \"parser\": \"ini\",\r\n        \"find\": {\r\n            \"[\/Script\/Engine.GameSession].MaxPlayers\": \"{{server.build.env.MAX_PLAYERS}}\"\r\n        }\r\n    },\r\n    \"FactoryGame\/Saved\/Config\/LinuxServer\/Engine.ini\": {\r\n        \"parser\": \"ini\",\r\n        \"find\": {\r\n            \"[\/Script\/FactoryGame.FGSaveSession].mNumRotatingAutosaves\": \"{{server.build.env.NUM_AUTOSAVES}}\",\r\n            \"[\/Script\/OnlineSubsystemUtils.IpNetDriver].InitialConnectTimeout\": \"{{server.build.env.INIT_CONNECT_TIMEOUT}}\",\r\n            \"[\/Script\/OnlineSubsystemUtils.IpNetDriver].ConnectionTimeout\": \"{{server.build.env.CONNECT_TIMEOUT}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "startup": "{\r\n    \"done\": \"Engine Initialization\"\r\n}", | ||||
|         "files": "{\r\n    \"FactoryGame/Saved/Config/LinuxServer/Game.ini\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"MaxPlayers\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n        }\r\n    },\r\n    \"FactoryGame/Saved/Config/LinuxServer/Engine.ini\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"mNumRotatingAutosaves\": \"mNumRotatingAutosaves={{server.build.env.NUM_AUTOSAVES}}\",\r\n            \"bImplicitSend\": \"bImplicitSend={{server.build.env.UPLOAD_CRASH_REPORT}}\",\r\n            \"InitialConnectTimeout\": \"InitialConnectTimeout={{server.build.env.INIT_CONNECT_TIMEOUT}}\",\r\n            \"ConnectionTimeout\": \"ConnectionTimeout={{server.build.env.CONNECT_TIMEOUT}}\"\r\n        }\r\n    },\r\n    \"FactoryGame/Saved/Config/LinuxServer/GameUserSettings.ini\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"mFloatValues\": \"mFloatValues=((\\\"FG.AutosaveInterval\\\", {{server.build.env.AUTOSAVE_INTERVAL}}))\",\r\n            \"mIntValues\": \"mIntValues=((\\\"FG.NetworkQuality\\\", {{server.build.env.NETWORK_QUALITY}}))\"\r\n        }\r\n    }\r\n}", | ||||
|         "logs": "{}", | ||||
|         "startup": "{\r\n    \"done\": \"Engine Initialization\"\r\n}", | ||||
|         "stop": "^C" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n\r\n# File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n# Authors: Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord\r\n# Date: 2024\/09\/10\r\n# License: MIT License\r\n\r\n## Download and install SteamCMD\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steamcmd\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\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n# Install game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login anonymous +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) validate +exit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Satisfactory setup\r\n# Check for successful installation and make the server binary executable.\r\n# Use `find` to see if a valid server binary exists using a wildcard, because\r\n# the binary name may change in the future.\r\n# (eg. it changed when the engine was updated from UE4 to UE5)\r\ncd \/mnt\/server\/Engine\/Binaries\/Linux\r\ncount=$(find . -maxdepth 1 -name '*-Linux-Shipping' -type f -executable | wc -l)\r\nif [[ $count -eq 0 ]]; then\r\n    echo -e \"\\n\\nSteamCMD failed to install the Satisfactory Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nelse\r\n    chmod +x *-Linux-Shipping\r\nfi\r\n\r\necho -e \"\\nSatisfactory Dedicated Server successfully installed!\\n\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "\/bin\/bash" | ||||
|             "container": "ghcr.io/parkervcp/installers:debian", | ||||
|             "entrypoint": "/bin/bash", | ||||
|             "script": "#!/bin/bash\r\n\r\n# File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n# Authors: Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord\r\n# Date: 2023/06/13\r\n# License: MIT License\r\n\r\n## Download and install SteamCMD\r\ncd /tmp\r\ncurl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz\r\nmkdir -p /mnt/server/steamcmd\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\nchown -R root:root /mnt\r\nexport HOME=/mnt/server\r\n\r\n# Install game server using SteamCMD\r\n./steamcmd.sh +force_install_dir /mnt/server +login anonymous +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) validate +exit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p /mnt/server/.steam/sdk{32,64}\r\ncp -v linux32/steamclient.so /mnt/server/.steam/sdk32/steamclient.so\r\ncp -v linux64/steamclient.so /mnt/server/.steam/sdk64/steamclient.so\r\n\r\n## Satisfactory setup\r\n# Check for successful installation and make the server binary executable.\r\n# Use `find` to see if a valid server binary exists using a wildcard, because\r\n# the binary name can differ between UE4 and UE5.\r\ncd /mnt/server/Engine/Binaries/Linux\r\ncount=$(find . -maxdepth 1 -name '*-Linux-Shipping' -type f -executable | wc -l)\r\nif [[ $count -eq 0 ]]; then\r\n    echo -e \"\\n\\nSteamCMD failed to install the Satisfactory Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nelse\r\n    chmod +x *-Linux-Shipping\r\nfi\r\n\r\n# Make Config directory and default .ini files (since they are not initially present before first server start)\r\nmkdir -p /mnt/server/FactoryGame/Saved/Config/LinuxServer/ \u0026\u0026 cd \"$_\"\r\n# Currently, this will delete \u0026 re-create certain .ini files during a re-install if they are already present.\r\n# While undesirable, this is required due to a current Pterodactyl ini config parser limitation.\r\n# When the patch to this limitation hits the production branch, this will be updated.\r\nrm -f Engine.ini Game.ini GameUserSettings.ini\r\n\r\necho -e '\\nCreating default \"Engine.ini\" configuration file...'\r\ncat \u003e Engine.ini \u003c\u003c EOF\r\n[/Script/FactoryGame.FGSaveSession]\r\nmNumRotatingAutosaves=${NUM_AUTOSAVES}\r\n\r\n[CrashReportClient]\r\nbImplicitSend=${UPLOAD_CRASH_REPORT}\r\n\r\n[/Script/OnlineSubsystemUtils.IpNetDriver]\r\nInitialConnectTimeout=${INIT_CONNECT_TIMEOUT}\r\nConnectionTimeout=${CONNECT_TIMEOUT}\r\nEOF\r\n\r\necho -e 'Creating default \"Game.ini\" configuration file...'\r\ncat \u003e Game.ini \u003c\u003c EOF\r\n[/Script/Engine.GameSession]\r\nMaxPlayers=${MAX_PLAYERS}\r\nEOF\r\n\r\necho -e 'Creating default \"GameUserSettings.ini\" configuration file...'\r\ncat \u003e GameUserSettings.ini \u003c\u003c EOF\r\n[/Script/FactoryGame.FGGameUserSettings]\r\nmIntValues=((\"FG.NetworkQuality\", ${NETWORK_QUALITY}))\r\nmFloatValues=((\"FG.AutosaveInterval\", ${AUTOSAVE_INTERVAL}))\r\nmAutoDetectSettingsHandled=False\r\nmPrimaryLanguage=\r\nCurrentFGGameUserSettingsVersion=0\r\nbUseVSync=False\r\nbUseDynamicResolution=False\r\nResolutionSizeX=1280\r\nResolutionSizeY=720\r\nLastUserConfirmedResolutionSizeX=1280\r\nLastUserConfirmedResolutionSizeY=720\r\nWindowPosX=-1\r\nWindowPosY=-1\r\nFullscreenMode=1\r\nLastConfirmedFullscreenMode=1\r\nPreferredFullscreenMode=1\r\nVersion=5\r\nAudioQualityLevel=0\r\nLastConfirmedAudioQualityLevel=0\r\nFrameRateLimit=0.000000\r\nDesiredScreenWidth=1280\r\nDesiredScreenHeight=720\r\nLastUserConfirmedDesiredScreenWidth=1280\r\nLastUserConfirmedDesiredScreenHeight=720\r\nLastRecommendedScreenWidth=-1.000000\r\nLastRecommendedScreenHeight=-1.000000\r\nLastCPUBenchmarkResult=-1.000000\r\nLastGPUBenchmarkResult=-1.000000\r\nLastGPUBenchmarkMultiplier=1.000000\r\nbUseHDRDisplayOutput=False\r\nHDRDisplayOutputNits=1000\r\n\r\n[ScalabilityGroups]\r\nsg.ResolutionQuality=100.000000\r\nsg.ViewDistanceQuality=3\r\nsg.AntiAliasingQuality=3\r\nsg.ShadowQuality=3\r\nsg.PostProcessQuality=3\r\nsg.TextureQuality=3\r\nsg.EffectsQuality=3\r\nsg.FoliageQuality=3\r\nsg.ShadingQuality=3\r\n\r\n[/Script/Engine.GameUserSettings]\r\nbUseDesiredScreenHeight=False\r\n\r\n\r\nEOF\r\n\r\necho -e \"\\nSatisfactory Dedicated Server successfully installed!\\n\"" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
|         { | ||||
|             "name": "[REQUIRED] Server Query Port", | ||||
|             "description": "This is the port that your clients will type in and use to connect to the lobby (not the game world). Ensure this port matches your externally forwarded port, and is distanced from other running Satisfactory servers in Pterodactyl (increments of 100 are recommended). This is also true for the Primary/Game Port!", | ||||
|             "env_variable": "QUERY_PORT", | ||||
|             "default_value": "15777", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|integer|between:1024,65536", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[REQUIRED] Beacon Port", | ||||
|             "description": "This port provides a lightweight way for clients to contact a server and interact with it without committing to a normal game connection (likely used for client administration). Ensure this port matches your externally forwarded port, and is distanced from other running Satisfactory servers in Pterodactyl (increments of 100 are recommended).", | ||||
|             "env_variable": "BEACON_PORT", | ||||
|             "default_value": "15000", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|integer|between:1024,65536", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Automatic Updates", | ||||
|             "description": "Quickly checks for any server updates on startup, and updates if necessary. (1 Enable | 0 Disable)", | ||||
| @ -50,6 +70,16 @@ | ||||
|             "rules": "string|nullable", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Autosave Interval", | ||||
|             "description": "How often, in seconds, the server should generate a new autosave (ex. 300 = 5 min). Keep in mind that shorter times mean that while the server will save the game more often, it also means a potential drop in server performance. NOTE: This overrides any \"FG.AutosaveInterval\" commands made to the console!", | ||||
|             "env_variable": "AUTOSAVE_INTERVAL", | ||||
|             "default_value": "300", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|numeric|min:1", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Number of Rotating Autosaves", | ||||
|             "description": "Number of session auto-saves for the server to keep before the oldest save is deleted and the others are moved down the list.", | ||||
| @ -60,9 +90,29 @@ | ||||
|             "rules": "required|integer|min:0", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Upload Crash Reports", | ||||
|             "description": "Accepted values are \"true\" or \"false\". Determines if the server should upload any crash reports to the developer to help pinpoint issues for future patches.", | ||||
|             "env_variable": "UPLOAD_CRASH_REPORT", | ||||
|             "default_value": "true", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Disable Seasonal Events", | ||||
|             "description": "Accepted values are \"true\" or \"false\". Setting to \"true\" will disable any currently active seasonal events.", | ||||
|             "env_variable": "DISABLE_SEASONAL", | ||||
|             "default_value": "false", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Experimental] Max Players", | ||||
|             "description": "The server and client are currently not optimized to support more than 4 players. However, you can override this value here at your own risk of poor performance.", | ||||
|             "description": "[Requires server re-install to change default value!] The server and client are currently not optimized to support more than 4 players. However, you can override this value here at your own risk of poor performance.", | ||||
|             "env_variable": "MAX_PLAYERS", | ||||
|             "default_value": "4", | ||||
|             "user_viewable": true, | ||||
| @ -90,9 +140,19 @@ | ||||
|             "rules": "required|numeric|min:1", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Advanced] Network Quality", | ||||
|             "description": "[0 = Low, 1 = Medium, 2 = High, 3 = Ultra] Sets the network configuration for the game server (shouldn't need to be changed). NOTE: This overrides any \"FG.NetworkQuality\" commands made to the console!", | ||||
|             "env_variable": "NETWORK_QUALITY", | ||||
|             "default_value": "3", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|integer|between:0,3", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Advanced] Branch Name", | ||||
|             "description": "[Accepted Values: \"public\", \"experimental\", or leave empty to use the primary branch of the server] Used to download or switch to a non-primary branch of the game server. \"Automatic Updates\" and \"Validate Server Files\" must be set to \"1\" to switch branches if the server is already installed. NOTE: Any non-primary branches may not be fully compatible\/stable!", | ||||
|             "description": "[Accepted Values: \"public\", \"experimental\", or leave empty to use the primary branch of the server] Used to download or switch to a non-primary branch of the game server. \"Automatic Updates\" and \"Validate Server Files\" must be set to \"1\" to switch branches if the server is already installed. NOTE: Any non-primary branches may not be fully compatible/stable!", | ||||
|             "env_variable": "SRCDS_BETAID", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
| @ -102,12 +162,12 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Advanced] Satisfactory Dedicated Server App ID", | ||||
|             "description": "Steam App ID used for installation and updates.", | ||||
|             "description": "Steam App ID used for installation and updates. Rarely needs to be changed.", | ||||
|             "env_variable": "SRCDS_APPID", | ||||
|             "default_value": "1690800", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|integer|in:1690800", | ||||
|             "rules": "required|integer|min:1", | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
|  | ||||
| @ -1,10 +1,10 @@ | ||||
| { | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", | ||||
|     "meta": { | ||||
|         "version": "PLCN_v1", | ||||
|         "update_url": "https:\/\/raw.githubusercontent.com\/pelican-eggs\/games-steamcmd\/refs\/heads\/main\/satisfactory\/egg-satisfactory.json" | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|     }, | ||||
|     "exported_at": "2024-11-30T15:42:32+00:00", | ||||
|     "exported_at": "2024-06-08T04:41:17+00:00", | ||||
|     "name": "Satisfactory", | ||||
|     "author": "red_thirten@yahoo.com", | ||||
|     "uuid": "dafdb96a-e8c1-449f-a6ae-b7ba209c05ff", | ||||
| @ -16,21 +16,43 @@ | ||||
|         "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": ".\/Engine\/Binaries\/Linux\/*-Linux-Shipping FactoryGame -Port={{SERVER_PORT}}", | ||||
|     "startup": ".\/Engine\/Binaries\/Linux\/*-Linux-Shipping FactoryGame ?listen -Port={{SERVER_PORT}} -ServerQueryPort={{QUERY_PORT}} -BeaconPort={{BEACON_PORT}} -multihome=0.0.0.0 $(if {{DISABLE_SEASONAL}}; then echo \"-DisableSeasonalEvents\"; fi)", | ||||
|     "config": { | ||||
|         "files": "{\r\n    \"FactoryGame\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n        \"parser\": \"ini\",\r\n        \"find\": {\r\n            \"[\/Script\/Engine.GameSession].MaxPlayers\": \"{{server.environment.MAX_PLAYERS}}\"\r\n        }\r\n    },\r\n    \"FactoryGame\/Saved\/Config\/LinuxServer\/Engine.ini\": {\r\n        \"parser\": \"ini\",\r\n        \"find\": {\r\n            \"[\/Script\/FactoryGame.FGSaveSession].mNumRotatingAutosaves\": \"{{server.environment.NUM_AUTOSAVES}}\",\r\n            \"[\/Script\/OnlineSubsystemUtils.IpNetDriver].InitialConnectTimeout\": \"{{server.environment.INIT_CONNECT_TIMEOUT}}\",\r\n            \"[\/Script\/OnlineSubsystemUtils.IpNetDriver].ConnectionTimeout\": \"{{server.environment.CONNECT_TIMEOUT}}\"\r\n        }\r\n    }\r\n}", | ||||
|         "files": "{\n    \"FactoryGame\/Saved\/Config\/LinuxServer\/Game.ini\": {\n        \"parser\": \"file\",\n        \"find\": {\n            \"MaxPlayers\": \"MaxPlayers={{server.environment.MAX_PLAYERS}}\"\n        }\n    },\n    \"FactoryGame\/Saved\/Config\/LinuxServer\/Engine.ini\": {\n        \"parser\": \"file\",\n        \"find\": {\n            \"mNumRotatingAutosaves\": \"mNumRotatingAutosaves={{server.environment.NUM_AUTOSAVES}}\",\n            \"bImplicitSend\": \"bImplicitSend={{server.environment.UPLOAD_CRASH_REPORT}}\",\n            \"InitialConnectTimeout\": \"InitialConnectTimeout={{server.environment.INIT_CONNECT_TIMEOUT}}\",\n            \"ConnectionTimeout\": \"ConnectionTimeout={{server.environment.CONNECT_TIMEOUT}}\"\n        }\n    },\n    \"FactoryGame\/Saved\/Config\/LinuxServer\/GameUserSettings.ini\": {\n        \"parser\": \"file\",\n        \"find\": {\n            \"mFloatValues\": \"mFloatValues=((\\\"FG.AutosaveInterval\\\", {{server.environment.AUTOSAVE_INTERVAL}}))\",\n            \"mIntValues\": \"mIntValues=((\\\"FG.NetworkQuality\\\", {{server.environment.NETWORK_QUALITY}}))\"\n        }\n    }\n}", | ||||
|         "startup": "{\r\n    \"done\": \"Engine Initialization\"\r\n}", | ||||
|         "logs": "{}", | ||||
|         "stop": "^C" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n\r\n# File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n# Authors: Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord\r\n# Date: 2024\/09\/10\r\n# License: MIT License\r\n\r\n## Download and install SteamCMD\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steamcmd\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\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n# Install game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login anonymous +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) validate +exit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Satisfactory setup\r\n# Check for successful installation and make the server binary executable.\r\n# Use `find` to see if a valid server binary exists using a wildcard, because\r\n# the binary name may change in the future.\r\n# (eg. it changed when the engine was updated from UE4 to UE5)\r\ncd \/mnt\/server\/Engine\/Binaries\/Linux\r\ncount=$(find . -maxdepth 1 -name '*-Linux-Shipping' -type f -executable | wc -l)\r\nif [[ $count -eq 0 ]]; then\r\n    echo -e \"\\n\\nSteamCMD failed to install the Satisfactory Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nelse\r\n    chmod +x *-Linux-Shipping\r\nfi\r\n\r\necho -e \"\\nSatisfactory Dedicated Server successfully installed!\\n\"", | ||||
|             "script": "#!\/bin\/bash\r\n\r\n# File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n# Authors: Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord\r\n# Date: 2023\/06\/13\r\n# License: MIT License\r\n\r\n## Download and install SteamCMD\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steamcmd\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\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n# Install game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login anonymous +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) validate +exit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Satisfactory setup\r\n# Check for successful installation and make the server binary executable.\r\n# Use `find` to see if a valid server binary exists using a wildcard, because\r\n# the binary name can differ between UE4 and UE5.\r\ncd \/mnt\/server\/Engine\/Binaries\/Linux\r\ncount=$(find . -maxdepth 1 -name '*-Linux-Shipping' -type f -executable | wc -l)\r\nif [[ $count -eq 0 ]]; then\r\n    echo -e \"\\n\\nSteamCMD failed to install the Satisfactory Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nelse\r\n    chmod +x *-Linux-Shipping\r\nfi\r\n\r\n# Make Config directory and default .ini files (since they are not initially present before first server start)\r\nmkdir -p \/mnt\/server\/FactoryGame\/Saved\/Config\/LinuxServer\/ && cd \"$_\"\r\n# Currently, this will delete & re-create certain .ini files during a re-install if they are already present.\r\n# While undesirable, this is required due to a current Pterodactyl ini config parser limitation.\r\n# When the patch to this limitation hits the production branch, this will be updated.\r\nrm -f Engine.ini Game.ini GameUserSettings.ini\r\n\r\necho -e '\\nCreating default \"Engine.ini\" configuration file...'\r\ncat > Engine.ini << EOF\r\n[\/Script\/FactoryGame.FGSaveSession]\r\nmNumRotatingAutosaves=${NUM_AUTOSAVES}\r\n\r\n[CrashReportClient]\r\nbImplicitSend=${UPLOAD_CRASH_REPORT}\r\n\r\n[\/Script\/OnlineSubsystemUtils.IpNetDriver]\r\nInitialConnectTimeout=${INIT_CONNECT_TIMEOUT}\r\nConnectionTimeout=${CONNECT_TIMEOUT}\r\nEOF\r\n\r\necho -e 'Creating default \"Game.ini\" configuration file...'\r\ncat > Game.ini << EOF\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${MAX_PLAYERS}\r\nEOF\r\n\r\necho -e 'Creating default \"GameUserSettings.ini\" configuration file...'\r\ncat > GameUserSettings.ini << EOF\r\n[\/Script\/FactoryGame.FGGameUserSettings]\r\nmIntValues=((\"FG.NetworkQuality\", ${NETWORK_QUALITY}))\r\nmFloatValues=((\"FG.AutosaveInterval\", ${AUTOSAVE_INTERVAL}))\r\nmAutoDetectSettingsHandled=False\r\nmPrimaryLanguage=\r\nCurrentFGGameUserSettingsVersion=0\r\nbUseVSync=False\r\nbUseDynamicResolution=False\r\nResolutionSizeX=1280\r\nResolutionSizeY=720\r\nLastUserConfirmedResolutionSizeX=1280\r\nLastUserConfirmedResolutionSizeY=720\r\nWindowPosX=-1\r\nWindowPosY=-1\r\nFullscreenMode=1\r\nLastConfirmedFullscreenMode=1\r\nPreferredFullscreenMode=1\r\nVersion=5\r\nAudioQualityLevel=0\r\nLastConfirmedAudioQualityLevel=0\r\nFrameRateLimit=0.000000\r\nDesiredScreenWidth=1280\r\nDesiredScreenHeight=720\r\nLastUserConfirmedDesiredScreenWidth=1280\r\nLastUserConfirmedDesiredScreenHeight=720\r\nLastRecommendedScreenWidth=-1.000000\r\nLastRecommendedScreenHeight=-1.000000\r\nLastCPUBenchmarkResult=-1.000000\r\nLastGPUBenchmarkResult=-1.000000\r\nLastGPUBenchmarkMultiplier=1.000000\r\nbUseHDRDisplayOutput=False\r\nHDRDisplayOutputNits=1000\r\n\r\n[ScalabilityGroups]\r\nsg.ResolutionQuality=100.000000\r\nsg.ViewDistanceQuality=3\r\nsg.AntiAliasingQuality=3\r\nsg.ShadowQuality=3\r\nsg.PostProcessQuality=3\r\nsg.TextureQuality=3\r\nsg.EffectsQuality=3\r\nsg.FoliageQuality=3\r\nsg.ShadingQuality=3\r\n\r\n[\/Script\/Engine.GameUserSettings]\r\nbUseDesiredScreenHeight=False\r\n\r\n\r\nEOF\r\n\r\necho -e \"\\nSatisfactory Dedicated Server successfully installed!\\n\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "\/bin\/bash" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
|         { | ||||
|             "name": "[REQUIRED] Server Query Port", | ||||
|             "description": "This is the port that your clients will type in and use to connect to the lobby (not the game world). Ensure this port matches your externally forwarded port, and is distanced from other running Satisfactory servers in Pterodactyl (increments of 100 are recommended). This is also true for the Primary\/Game Port!", | ||||
|             "env_variable": "QUERY_PORT", | ||||
|             "default_value": "15777", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|integer|between:1024,65536", | ||||
|             "sort": 1, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[REQUIRED] Beacon Port", | ||||
|             "description": "This port provides a lightweight way for clients to contact a server and interact with it without committing to a normal game connection (likely used for client administration). Ensure this port matches your externally forwarded port, and is distanced from other running Satisfactory servers in Pterodactyl (increments of 100 are recommended).", | ||||
|             "env_variable": "BEACON_PORT", | ||||
|             "default_value": "15000", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|integer|between:1024,65536", | ||||
|             "sort": 2, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Automatic Updates", | ||||
|             "description": "Quickly checks for any server updates on startup, and updates if necessary. (1 Enable | 0 Disable)", | ||||
| @ -38,10 +60,9 @@ | ||||
|             "default_value": "1", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "boolean" | ||||
|             ], | ||||
|             "sort": 1 | ||||
|             "rules": "boolean", | ||||
|             "sort": 3, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Repair] Validate Server Files", | ||||
| @ -50,11 +71,20 @@ | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "string", | ||||
|                 "nullable" | ||||
|             ], | ||||
|             "sort": 2 | ||||
|             "rules": "string|nullable", | ||||
|             "sort": 4, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Autosave Interval", | ||||
|             "description": "How often, in seconds, the server should generate a new autosave (ex. 300 = 5 min). Keep in mind that shorter times mean that while the server will save the game more often, it also means a potential drop in server performance. NOTE: This overrides any \"FG.AutosaveInterval\" commands made to the console!", | ||||
|             "env_variable": "AUTOSAVE_INTERVAL", | ||||
|             "default_value": "300", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|numeric|min:1", | ||||
|             "sort": 5, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Number of Rotating Autosaves", | ||||
| @ -63,26 +93,42 @@ | ||||
|             "default_value": "3", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "min:0" | ||||
|             ], | ||||
|             "sort": 3 | ||||
|             "rules": "required|integer|min:0", | ||||
|             "sort": 6, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Upload Crash Reports", | ||||
|             "description": "Accepted values are \"true\" or \"false\". Determines if the server should upload any crash reports to the developer to help pinpoint issues for future patches.", | ||||
|             "env_variable": "UPLOAD_CRASH_REPORT", | ||||
|             "default_value": "true", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": 7, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Disable Seasonal Events", | ||||
|             "description": "Accepted values are \"true\" or \"false\". Setting to \"true\" will disable any currently active seasonal events.", | ||||
|             "env_variable": "DISABLE_SEASONAL", | ||||
|             "default_value": "false", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": 8, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Experimental] Max Players", | ||||
|             "description": "The server and client are currently not optimized to support more than 4 players. However, you can override this value here at your own risk of poor performance.", | ||||
|             "description": "[Requires server re-install to change default value!] The server and client are currently not optimized to support more than 4 players. However, you can override this value here at your own risk of poor performance.", | ||||
|             "env_variable": "MAX_PLAYERS", | ||||
|             "default_value": "4", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "min:1" | ||||
|             ], | ||||
|             "sort": 4 | ||||
|             "rules": "required|integer|min:1", | ||||
|             "sort": 9, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Advanced] Client Initial Connection Timeout", | ||||
| @ -91,12 +137,9 @@ | ||||
|             "default_value": "30", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "numeric", | ||||
|                 "min:1" | ||||
|             ], | ||||
|             "sort": 5 | ||||
|             "rules": "required|numeric|min:1", | ||||
|             "sort": 10, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Advanced] Client Established Connection Timeout", | ||||
| @ -105,12 +148,20 @@ | ||||
|             "default_value": "20", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "numeric", | ||||
|                 "min:1" | ||||
|             ], | ||||
|             "sort": 6 | ||||
|             "rules": "required|numeric|min:1", | ||||
|             "sort": 11, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Advanced] Network Quality", | ||||
|             "description": "[0 = Low, 1 = Medium, 2 = High, 3 = Ultra] Sets the network configuration for the game server (shouldn't need to be changed). NOTE: This overrides any \"FG.NetworkQuality\" commands made to the console!", | ||||
|             "env_variable": "NETWORK_QUALITY", | ||||
|             "default_value": "3", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|integer|between:0,3", | ||||
|             "sort": 12, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Advanced] Branch Name", | ||||
| @ -119,26 +170,20 @@ | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "string", | ||||
|                 "nullable", | ||||
|                 "in:public,experimental" | ||||
|             ], | ||||
|             "sort": 7 | ||||
|             "rules": "string|nullable|in:public,experimental", | ||||
|             "sort": 13, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "[Advanced] Satisfactory Dedicated Server App ID", | ||||
|             "description": "Steam App ID used for installation and updates.", | ||||
|             "description": "Steam App ID used for installation and updates. Rarely needs to be changed.", | ||||
|             "env_variable": "SRCDS_APPID", | ||||
|             "default_value": "1690800", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "in:1690800" | ||||
|             ], | ||||
|             "sort": 8 | ||||
|             "rules": "required|integer|min:1", | ||||
|             "sort": 14, | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
| @ -1,10 +1,10 @@ | ||||
| { | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", | ||||
|     "meta": { | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|         "update_url": null, | ||||
|         "version": "PTDL_v2" | ||||
|     }, | ||||
|     "exported_at": "2024-09-09T18:01:58+00:00", | ||||
|     "exported_at": "2024-06-01T00:04:45+00:00", | ||||
|     "name": "SCP:SL - Exiled", | ||||
|     "author": "eggs@goover.dev", | ||||
|     "description": "Egg for SCP: Secret Laboratory Dedicated Linux Server with Exiled Plugin Framework", | ||||
| @ -12,21 +12,21 @@ | ||||
|         "steam_disk_space" | ||||
|     ], | ||||
|     "docker_images": { | ||||
|         "ghcr.io\/parkervcp\/yolks:mono_latest": "ghcr.io\/parkervcp\/yolks:mono_latest" | ||||
|         "ghcr.io/parkervcp/yolks:mono_latest": "ghcr.io/parkervcp/yolks:mono_latest" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": ".\/LocalAdmin {{SERVER_PORT}}", | ||||
|     "startup": "./LocalAdmin {{SERVER_PORT}}", | ||||
|     "config": { | ||||
|         "files": "{}", | ||||
|         "startup": "{\r\n    \"done\": \"Waiting for players..\"\r\n}", | ||||
|         "logs": "{}", | ||||
|         "startup": "{\r\n    \"done\": \"Waiting for players..\"\r\n}", | ||||
|         "stop": "EXIT" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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\nmkdir -p $HOME\/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/ExMod-Team\/EXILED\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/ExMod-Team\/EXILED\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i Exiled.tar.gz)\r\nelse\r\n    VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n    if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n        DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i Exiled.tar.gz)\r\n    else\r\n        echo -e \"defaulting to latest release\"\r\n        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n    fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n    if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n        echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n        DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n    else\r\n        echo -e \"link is invalid closing out\"\r\n        exit 2\r\n    fi\r\nfi\r\n\r\ncurl -sSL -o Exiled.tar.gz ${DOWNLOAD_LINK}\r\ntar -xzvmf Exiled.tar.gz\r\nrm -rf Exiled.tar.gz\r\n\r\ncp -r \"SCP Secret Laboratory\" \/mnt\/server\/.config\/\r\nrm -rf \"SCP Secret Laboratory\"\r\ncp -r EXILED \/mnt\/server\/.config\/\r\nrm -rf EXILED\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "bash" | ||||
|             "container": "ghcr.io/parkervcp/installers:debian", | ||||
|             "entrypoint": "bash", | ||||
|             "script": "#!/bin/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: /mnt/server\r\n# Image to install with is 'debian:buster-slim'\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 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 +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] \u0026\u0026 printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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\nmkdir -p $HOME/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https://api.github.com/repos/Exiled-Team/EXILED/releases/latest\")\r\nRELEASES=$(curl --silent \"https://api.github.com/repos/Exiled-Team/EXILED/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i Exiled.tar.gz)\r\nelse\r\n    VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n    if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n        DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i Exiled.tar.gz)\r\n    else\r\n        echo -e \"defaulting to latest release\"\r\n        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n    fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n    if curl --output /dev/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n        echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n        DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n    else        \r\n        echo -e \"link is invalid closing out\"\r\n        exit 2\r\n    fi\r\nfi\r\n\r\ncurl -sSL -o Exiled.tar.gz ${DOWNLOAD_LINK}\r\ntar -xzvmf Exiled.tar.gz\r\nrm -rf Exiled.tar.gz\r\n\r\ncp -r \"SCP Secret Laboratory\" /mnt/server/.config/\r\nrm -rf \"SCP Secret Laboratory\"\r\ncp -r EXILED /mnt/server/.config/\r\nrm -rf EXILED\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
| @ -44,7 +44,7 @@ | ||||
|             "name": "Dotnet Bundle", | ||||
|             "description": "Only used for EXILED Framework Updater.", | ||||
|             "env_variable": "DOTNET_BUNDLE_EXTRACT_BASE_DIR", | ||||
|             "default_value": ".\/dotnet-bundle", | ||||
|             "default_value": "./dotnet-bundle", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string", | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|     }, | ||||
|     "exported_at": "2024-09-09T18:01:58+00:00", | ||||
|     "exported_at": "2024-06-01T00:04:45+00:00", | ||||
|     "name": "SCP:SL - Exiled", | ||||
|     "author": "eggs@goover.dev", | ||||
|     "uuid": "3006493a-5e02-4afe-b63a-1248fea77e8e", | ||||
| @ -25,14 +25,13 @@ | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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\nmkdir -p $HOME\/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/ExMod-Team\/EXILED\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/ExMod-Team\/EXILED\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i Exiled.tar.gz)\r\nelse\r\n    VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n    if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n        DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i Exiled.tar.gz)\r\n    else\r\n        echo -e \"defaulting to latest release\"\r\n        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n    fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n    if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n        echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n        DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n    else\r\n        echo -e \"link is invalid closing out\"\r\n        exit 2\r\n    fi\r\nfi\r\n\r\ncurl -sSL -o Exiled.tar.gz ${DOWNLOAD_LINK}\r\ntar -xzvmf Exiled.tar.gz\r\nrm -rf Exiled.tar.gz\r\n\r\ncp -r \"SCP Secret Laboratory\" \/mnt\/server\/.config\/\r\nrm -rf \"SCP Secret Laboratory\"\r\ncp -r EXILED \/mnt\/server\/.config\/\r\nrm -rf EXILED\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", | ||||
|             "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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\nmkdir -p $HOME\/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Exiled-Team\/EXILED\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Exiled-Team\/EXILED\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i Exiled.tar.gz)\r\nelse\r\n    VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n    if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n        DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i Exiled.tar.gz)\r\n    else\r\n        echo -e \"defaulting to latest release\"\r\n        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n    fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n    if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n        echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n        DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n    else        \r\n        echo -e \"link is invalid closing out\"\r\n        exit 2\r\n    fi\r\nfi\r\n\r\ncurl -sSL -o Exiled.tar.gz ${DOWNLOAD_LINK}\r\ntar -xzvmf Exiled.tar.gz\r\nrm -rf Exiled.tar.gz\r\n\r\ncp -r \"SCP Secret Laboratory\" \/mnt\/server\/.config\/\r\nrm -rf \"SCP Secret Laboratory\"\r\ncp -r EXILED \/mnt\/server\/.config\/\r\nrm -rf EXILED\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "bash" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
|         { | ||||
|             "sort": 1, | ||||
|             "name": "SRCDS_APPID", | ||||
|             "description": "", | ||||
|             "env_variable": "SRCDS_APPID", | ||||
| @ -40,10 +39,10 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string|in:996560", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": 2, | ||||
|             "name": "Dotnet Bundle", | ||||
|             "description": "Only used for EXILED Framework Updater.", | ||||
|             "env_variable": "DOTNET_BUNDLE_EXTRACT_BASE_DIR", | ||||
| @ -51,10 +50,10 @@ | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": 3, | ||||
|             "name": "Version", | ||||
|             "description": "", | ||||
|             "env_variable": "VERSION", | ||||
| @ -62,6 +61,7 @@ | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|max:20", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
|  | ||||
							
								
								
									
										11
									
								
								survive_the_nights/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								survive_the_nights/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | ||||
| # Survive the Nights | ||||
| 
 | ||||
| Survive the Nights is a unique FPS survival game focusing on teamwork, fortification, creativity & strategy. Secure a structure or roam free, the choice is yours Gameplay focuses on realistic survival, post zombie infestation. Prepare during the day for nightfall. How many nights will you survive?  | ||||
| 
 | ||||
| ## Server Ports | ||||
| 
 | ||||
| Ports required to run the server | ||||
| | Port    | default | | ||||
| |---------|---------| | ||||
| | Game    | 8888    | | ||||
| | Query (Game+1)   | 8889   | | ||||
							
								
								
									
										131
									
								
								survive_the_nights/ServerConfig.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								survive_the_nights/ServerConfig.txt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,131 @@ | ||||
| //   _____                  _             _______ _            _   _ _       _     _        | ||||
| //  / ____|                (_)           |__   __| |          | \ | (_)     | |   | |       | ||||
| // | (___  _   _ _ ____   _____   _____     | |  | |__   ___  |  \| |_  __ _| |__ | |_ ___  | ||||
| //  \___ \| | | | '__\ \ / / \ \ / / _ \    | |  | '_ \ / _ \ | . ` | |/ _` | '_ \| __/ __| | ||||
| //  ____) | |_| | |   \ V /| |\ V /  __/    | |  | | | |  __/ | |\  | | (_| | | | | |_\__ \ | ||||
| // |_____/ \__,_|_|    \_/ |_| \_/ \___|    |_|  |_| |_|\___| |_| \_|_|\__, |_| |_|\__|___/ | ||||
| //  / ____|                                           / _(_)            __/ |               | ||||
| // | (___   ___ _ ____   _____ _ __    ___ ___  _ __ | |_ _  __ _      |___/                | ||||
| //  \___ \ / _ \ '__\ \ / / _ \ '__|  / __/ _ \| '_ \|  _| |/ _` |                          | ||||
| //  ____) |  __/ |   \ V /  __/ |    | (_| (_) | | | | | | | (_| |                          | ||||
| // |_____/ \___|_|    \_/ \___|_|     \___\___/|_| |_|_| |_|\__, |                          | ||||
| //                                                           __/ |                          | ||||
| //                                                          |___/      | ||||
| // Check the wiki For options.    | ||||
| //  | ||||
| // Lines starting with double // are ignored. | ||||
| // | ||||
| // *** Connections *** | ||||
| serverName=New Private Server | ||||
| serverPassword= | ||||
| useSteamRelays=True | ||||
| useUpnp=True | ||||
| serverIP=194.207.117.251 | ||||
| serverPort=7950 | ||||
| showInPublicLobby=True | ||||
| queryPort=0 | ||||
| worldname=EDITOR | ||||
| serverOwner= | ||||
| //*** Time & Weather *** | ||||
| progressTime=true | ||||
| dayCycleInMinutes=45 | ||||
| timePersistence=True | ||||
| startingHour=8 | ||||
| randomWeather=True | ||||
| startingWeather=0 | ||||
| startingMonth=5 | ||||
| moonPosition=0 | ||||
| // *** Loot *** | ||||
| lootSpawnRate=3  | ||||
| lootRespawn=True | ||||
| lootSpawnFrequency=15 | ||||
| lootSpawnCondition=1 | ||||
| startingComponentsAmount=0 | ||||
| initialFuelAmount=1 | ||||
| fuelEfficiency=1 | ||||
| allowItemOwnership=True | ||||
| itemDecaySystem=True | ||||
| globalItemDecaySystem=True | ||||
| // *** Vehicles *** | ||||
| vehicleSpawnRate=2 | ||||
| vehicleRespawn=True | ||||
| vehicleSpawnFrequency=720 | ||||
| vehicleSpawnCondition=1 | ||||
| vehicleDamageRate=1 | ||||
| vehicleStartingComponentsAmount=1 | ||||
| vehicleStartingFuelAmount=1 | ||||
| vehicleAlarms=True | ||||
| // *** Zombies *** | ||||
| zombieAmount=2 | ||||
| zombieStructureRespawnRate=4 | ||||
| zombieMinHealth=90 | ||||
| zombieMaxHealth=110 | ||||
| zombieStrength=1 | ||||
| zombieVision=1 | ||||
| zombieHearing=1 | ||||
| zombiefortificationAttackDamage=2 | ||||
| zombieHeadshotsOnly=False | ||||
| zombieDayRunnerFrequency=2 | ||||
| zombieNightRunnerFrequency=2 | ||||
| zombieRunnerSpeedDay=1 | ||||
| zombieRunnerSpeedNight=1 | ||||
| zombieDroppedItems= | ||||
| // *** Hordes *** | ||||
| HordeMode=1 | ||||
| hordeDifficulty=2 | ||||
| hordeFrequency=1 | ||||
| hordeAvoidanceAllowed=True | ||||
| hordeStartSync=False | ||||
| hordeNightOverride=0 | ||||
| HordeRunnerFrequency=2 | ||||
| HordeRunnerSpeed=1 | ||||
| HordeConstantHordesMode=2 | ||||
| HordeConstantStartDelay=15 | ||||
| HordeConstantWaitTime=15 | ||||
| // *** Animals *** | ||||
| chickenAmount=2 | ||||
| stagAmount=2 | ||||
| foxAmount=2 | ||||
| // *** Player *** | ||||
| playerInitialSpawnLocation=0 | ||||
| playerRespawnLocation=1 | ||||
| playerSleepingBagRespawn=True | ||||
| playerItemsOnDeath=1 | ||||
| playerNutrition=True | ||||
| playerNutritionDifficulty=1 | ||||
| playerStaminaDrainRate=2 | ||||
| playerStaminaRecoveryRate=1 | ||||
| playerStaminaMode=0 | ||||
| playerStartingOverallHealth=0 | ||||
| playerStartingHealth=65 | ||||
| playerStartingHydration=40 | ||||
| playerStartingCals=300 | ||||
| playerStartingSickness=0 | ||||
| playerStartingMentalHealth=0 | ||||
| playerLogOffNearZombies=False | ||||
| playerStartingItems= | ||||
| playerSavedLockCodes= | ||||
| // *** Misc *** | ||||
| tutorialBehaviour=0 | ||||
| newLifeMessage= | ||||
| weaponWear=2 | ||||
| allowMapUsage=True | ||||
| requireMapItem=False | ||||
| requireCompassItem=False | ||||
| useCraftLeveling=True | ||||
| // *** multiplayer *** | ||||
| allowMultiplayer=True | ||||
| welcomeMessage=Welcome to the server. | ||||
| recurringWelcomeMessage=Welcome to the server. | ||||
| showLoginMessages=True | ||||
| showDeathMessages=True | ||||
| pvpDisabled=False | ||||
| selfDefenceEnabled=True | ||||
| mentalHealthPenalties=2 | ||||
| pvpDamageReduction=2 | ||||
| chatDistance=1 | ||||
| nameTagDistance=2 | ||||
| growRate=3 | ||||
| workshopID= | ||||
| fortificationToolEfficiency=1 | ||||
| fortificationStartingStrength=2 | ||||
							
								
								
									
										332
									
								
								survive_the_nights/TpPresets.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										332
									
								
								survive_the_nights/TpPresets.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,332 @@ | ||||
| { | ||||
|     "presets": [ | ||||
|         { | ||||
|             "name": "unionpoint", | ||||
|             "preset": { | ||||
|                 "x": -1364.0, | ||||
|                 "y": 54.98299789428711, | ||||
|                 "z": 1372.0 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "batcave", | ||||
|             "preset": { | ||||
|                 "x": 99.65880584716797, | ||||
|                 "y": -50.2103385925293, | ||||
|                 "z": -46.20869827270508 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "doortesting", | ||||
|             "preset": { | ||||
|                 "x": -1482.5557861328125, | ||||
|                 "y": 51.196815490722659, | ||||
|                 "z": -1286.49072265625 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "oldtown", | ||||
|             "preset": { | ||||
|                 "x": -1394.1190185546875, | ||||
|                 "y": -31.57574462890625, | ||||
|                 "z": -2496.749755859375 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "addersfield", | ||||
|             "preset": { | ||||
|                 "x": 3287.663330078125, | ||||
|                 "y": -43.600486755371097, | ||||
|                 "z": -894.3609008789063 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "blackrock", | ||||
|             "preset": { | ||||
|                 "x": 2680.36181640625, | ||||
|                 "y": -56.40800476074219, | ||||
|                 "z": -2946.27197265625 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "sagecreek", | ||||
|             "preset": { | ||||
|                 "x": 2040.5694580078125, | ||||
|                 "y": 51.473960876464847, | ||||
|                 "z": 1239.3262939453125 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "unionpoint", | ||||
|             "preset": { | ||||
|                 "x": -939.76123046875, | ||||
|                 "y": 54.973411560058597, | ||||
|                 "z": 813.2296142578125 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "mountbaron", | ||||
|             "preset": { | ||||
|                 "x": -1528.0, | ||||
|                 "y": 320.0, | ||||
|                 "z": -752.0 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "powerstation", | ||||
|             "preset": { | ||||
|                 "x": 769.0, | ||||
|                 "y": 70.0, | ||||
|                 "z": 912.0 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "powertest", | ||||
|             "preset": { | ||||
|                 "x": -1535.8397216796875, | ||||
|                 "y": -33.53345489501953, | ||||
|                 "z": -2506.07958984375 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "farm", | ||||
|             "preset": { | ||||
|                 "x": 2325.369140625, | ||||
|                 "y": 38.63999938964844, | ||||
|                 "z": -371.8695983886719 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "gas", | ||||
|             "preset": { | ||||
|                 "x": 3095.465087890625, | ||||
|                 "y": -43.3640022277832, | ||||
|                 "z": -456.3666076660156 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "popov", | ||||
|             "preset": { | ||||
|                 "x": -1603.4310302734375, | ||||
|                 "y": -33.49234390258789, | ||||
|                 "z": -2377.959228515625 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "forts", | ||||
|             "preset": { | ||||
|                 "x": 293.8551025390625, | ||||
|                 "y": 77.83678436279297, | ||||
|                 "z": 95.57548522949219 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "rooftesting", | ||||
|             "preset": { | ||||
|                 "x": 3232.000244140625, | ||||
|                 "y": -43.560707092285159, | ||||
|                 "z": -703.9999389648438 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "church", | ||||
|             "preset": { | ||||
|                 "x": -1707.643310546875, | ||||
|                 "y": -33.073272705078128, | ||||
|                 "z": -2555.77197265625 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "oldtownhouse", | ||||
|             "preset": { | ||||
|                 "x": -1571.4833984375, | ||||
|                 "y": -33.51015853881836, | ||||
|                 "z": -2494.106689453125 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "policestation", | ||||
|             "preset": { | ||||
|                 "x": 3252.45654296875, | ||||
|                 "y": -43.622276306152347, | ||||
|                 "z": -612.4423217773438 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "wide", | ||||
|             "preset": { | ||||
|                 "x": 2781.5927734375, | ||||
|                 "y": -52.97593307495117, | ||||
|                 "z": -3281.447509765625 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "slidetesting", | ||||
|             "preset": { | ||||
|                 "x": -1444.4681396484375, | ||||
|                 "y": 194.4698486328125, | ||||
|                 "z": -779.5247192382813 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "campsite1", | ||||
|             "preset": { | ||||
|                 "x": -1149.2333984375, | ||||
|                 "y": 17.875829696655275, | ||||
|                 "z": -2324.3037109375 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eacampfire", | ||||
|             "preset": { | ||||
|                 "x": 1369.81787109375, | ||||
|                 "y": 90.29772186279297, | ||||
|                 "z": 1717.1300048828125 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eahunting", | ||||
|             "preset": { | ||||
|                 "x": 1542.4183349609375, | ||||
|                 "y": 96.16523742675781, | ||||
|                 "z": 1746.9842529296875 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eacinematic", | ||||
|             "preset": { | ||||
|                 "x": 1226.7254638671875, | ||||
|                 "y": -4.471528053283691, | ||||
|                 "z": 752.1307983398438 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eadriving1", | ||||
|             "preset": { | ||||
|                 "x": 1398.684814453125, | ||||
|                 "y": 99.95209503173828, | ||||
|                 "z": 1804.3692626953125 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eahouse", | ||||
|             "preset": { | ||||
|                 "x": 2713.12548828125, | ||||
|                 "y": -56.6375732421875, | ||||
|                 "z": -3208.791748046875 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eadriving2", | ||||
|             "preset": { | ||||
|                 "x": 1712.077880859375, | ||||
|                 "y": 54.267173767089847, | ||||
|                 "z": -1489.1051025390625 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eazombie", | ||||
|             "preset": { | ||||
|                 "x": 2630.119873046875, | ||||
|                 "y": -35.341949462890628, | ||||
|                 "z": -3634.476318359375 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eazombie1", | ||||
|             "preset": { | ||||
|                 "x": 2567.552978515625, | ||||
|                 "y": -54.16742706298828, | ||||
|                 "z": -3560.06689453125 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eazombie2", | ||||
|             "preset": { | ||||
|                 "x": 2620.54541015625, | ||||
|                 "y": -56.48999786376953, | ||||
|                 "z": -3413.7392578125 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eadriving3", | ||||
|             "preset": { | ||||
|                 "x": 2688.896728515625, | ||||
|                 "y": -54.82345962524414, | ||||
|                 "z": -2742.3125 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eaendcard", | ||||
|             "preset": { | ||||
|                 "x": -1858.0098876953125, | ||||
|                 "y": 2.179645538330078, | ||||
|                 "z": -2417.590087890625 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eadriving", | ||||
|             "preset": { | ||||
|                 "x": -531.9205322265625, | ||||
|                 "y": 12.057960510253907, | ||||
|                 "z": -2687.745361328125 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eadriving4", | ||||
|             "preset": { | ||||
|                 "x": -532.5352172851563, | ||||
|                 "y": 12.044183731079102, | ||||
|                 "z": -2689.526611328125 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eahunting1", | ||||
|             "preset": { | ||||
|                 "x": 1622.8408203125, | ||||
|                 "y": 91.17031860351563, | ||||
|                 "z": 1615.5191650390625 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "eawalkingstart", | ||||
|             "preset": { | ||||
|                 "x": 1398.9388427734375, | ||||
|                 "y": 100.07472229003906, | ||||
|                 "z": 1805.5322265625 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "warehouse", | ||||
|             "preset": { | ||||
|                 "x": 3076.207763671875, | ||||
|                 "y": -43.62000274658203, | ||||
|                 "z": -476.9427795410156 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "hospital", | ||||
|             "preset": { | ||||
|                 "x": -2157.992919921875, | ||||
|                 "y": 68.54078674316406, | ||||
|                 "z": -801.50439453125 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "airport", | ||||
|             "preset": { | ||||
|                 "x": 1715.986572265625, | ||||
|                 "y": 35.76252746582031, | ||||
|                 "z": -498.918212890625 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "name": "police", | ||||
|             "preset": { | ||||
|                 "x": 3453.417724609375, | ||||
|                 "y": -39.644004821777347, | ||||
|                 "z": -737.1630249023438 | ||||
|             } | ||||
|         } | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										61
									
								
								survive_the_nights/UserPermissions.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								survive_the_nights/UserPermissions.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,61 @@ | ||||
| { | ||||
|    | ||||
| 	"SystemRanks":[ | ||||
|     { | ||||
| 	  "Index_DontChange":-2, | ||||
|       "Name_DontChange":"Console", | ||||
|       "ChatPrefix":"[Console]", | ||||
|       "PrefixColour":"white" | ||||
|     }, | ||||
| 	{ | ||||
| 	  "Index_DontChange":-1, | ||||
|       "Name_DontChange":"Whisper", | ||||
|       "ChatPrefix":"[Whisper]", | ||||
|       "PrefixColour":"darkgrey" | ||||
|     } | ||||
| 	], | ||||
| 	"UserRanks":[ | ||||
|     { | ||||
|       "Index":0, | ||||
|       "Rank":"User", | ||||
|       "ChatPrefix":"[User]", | ||||
|       "PrefixColour":"white", | ||||
|       "Permissions":["Tell", "Reply", "ServerInfo"] | ||||
|     }, | ||||
|     { | ||||
|       "Index":1, | ||||
|       "Rank":"Mod", | ||||
|       "ChatPrefix":"[Mod]", | ||||
|       "PrefixColour":"yellow", | ||||
|       "Permissions":["Tell", "Reply", "Mute", "UnMute", "Kick", "GodSelf", "SuperSprint", "cmdGroup.TP", "DropAllSelf", "DropAllOthers",  "Up" ,"ServerInfo"] | ||||
|     }, | ||||
|     { | ||||
|       "Index":2, | ||||
|       "Rank":"Admin", | ||||
|       "ChatPrefix":"[Admin]", | ||||
|       "PrefixColour":"darkred", | ||||
|       "Permissions":["*"] | ||||
|     }, | ||||
|     { | ||||
|       "Index":3, | ||||
|       "Rank":"Owner", | ||||
|       "ChatPrefix":"[Owner]", | ||||
|       "PrefixColour":"purple", | ||||
|       "Permissions":["Tell", "Reply", "Mute", "UnMute", "Kick", "SetRank", "Ban", "UnBan", "ServerInfo"] | ||||
|     }         | ||||
|   ],  | ||||
|   "CommandGroups":[ | ||||
|     { | ||||
|       "GroupName":"TP", | ||||
|       "Permissions":["TpToLocation","TpToLocation", "TpToPlayer", "TpPlayerToMe", "TpPlayerToPlayer"] | ||||
|     }, | ||||
|     { | ||||
|       "GroupName":"Weather", | ||||
|       "Permissions":["SetTime", "SetMonth", "SetWeather", "WeatherOnOff"] | ||||
|     }, | ||||
|     { | ||||
|       "GroupName":"ExampleGroupNinjaMod", | ||||
|       "Permissions":["Kick", "Mute", "GodSelf"] | ||||
|     } | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										114
									
								
								survive_the_nights/egg-pterodactyl-survive-the-nights.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								survive_the_nights/egg-pterodactyl-survive-the-nights.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,114 @@ | ||||
| { | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", | ||||
|     "meta": { | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|     }, | ||||
|     "exported_at": "2024-08-11T14:10:06+02:00", | ||||
|     "name": "Survive The Nights", | ||||
|     "author": "josdekurk@gmail.com", | ||||
|     "description": "Survive the Nights is a unique FPS survival game focusing on teamwork, fortification, creativity & strategy. Secure a structure or roam free, the choice is yours. Gameplay focuses on realistic survival, post zombie infestation. Prepare during the day for nightfall. How many nights will you survive?", | ||||
|     "features": [ | ||||
|         "steam_disk_space" | ||||
|     ], | ||||
|     "docker_images": { | ||||
|         "SteamCMD_Debian": "ghcr.io\/parkervcp\/steamcmd:debian" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": ".\/Server_Linux_x64 -console -batchmode -nographics", | ||||
|     "config": { | ||||
|         "files": "{\n    \".\/Config\/ServerConfig.txt\": {\n        \"parser\": \"file\",\n        \"find\": {\n            \"serverPort=\": \"serverPort={{server.build.default.port}}\",\n            \"serverIP=\": \"serverIP=0.0.0.0\",\n            \"serverName=\": \"serverName={{env.SERVER_NAME}}\",\n            \"serverPassword=\": \"serverPassword={{env.SERVER_PASSWORD}}\",\n            \"showInPublicLobby=\": \"showInPublicLobby={{env.SERVER_PUBLIC}}\",\n            \"serverOwner=\": \"serverOwner={{env.SERVER_OWNER}}\",\n            \"worldname=\": \"worldname={{env.WORLDNAME}}\",\n            \"queryPort=\": \"queryPort={{env.QUERY_PORT}}\"\n        }\n    }\n}", | ||||
|         "startup": "{\r\n  \"done\":[\r\n    \"*** Server Connected To STEAM *** \",\r\n    \"to start the server ready to accept players!\"\r\n  ]\r\n}", | ||||
|         "logs": "{}", | ||||
|         "stop": "^C" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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\nmkdir -p \/mnt\/server\/Config\r\ncd \/mnt\/server\/Config\r\n## add below your custom commands if needed\r\ncurl -sSL -o ServerConfig.txt https:\/\/raw.githubusercontent.com\/pelican-eggs\/games-steamcmd\/main\/survive_the_nights\/ServerConfig.txt\r\ncurl -sSL -o TpPresets.json https:\/\/raw.githubusercontent.com\/pelican-eggs\/games-steamcmd\/main\/survive_the_nights\/TpPresets.json\r\ncurl -sSL -o UserPermissions.json https:\/\/raw.githubusercontent.com\/pelican-eggs\/games-steamcmd\/main\/survive_the_nights\/UserPermissions.json\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "bash" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
|         { | ||||
|             "name": "Auto update", | ||||
|             "description": "Auto update the server on startup", | ||||
|             "env_variable": "AUTO_UPDATE", | ||||
|             "default_value": "1", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|boolean", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "App id", | ||||
|             "description": "SteamCMD App ID", | ||||
|             "env_variable": "SRCDS_APPID", | ||||
|             "default_value": "1502300", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string|in:1502300", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Server name", | ||||
|             "description": "The name of the server", | ||||
|             "env_variable": "SERVER_NAME", | ||||
|             "default_value": "New Private Server", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|max:48", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Server password", | ||||
|             "description": "The server password", | ||||
|             "env_variable": "SERVER_PASSWORD", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string|max:32", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Public server", | ||||
|             "description": "Show the server in the public lobby", | ||||
|             "env_variable": "SERVER_PUBLIC", | ||||
|             "default_value": "True", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:True,false", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Server owner", | ||||
|             "description": "The owner of the server", | ||||
|             "env_variable": "SERVER_OWNER", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string|max:48", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "World name", | ||||
|             "description": "The name of the server world.\r\n\r\nDo not change this after the server started!", | ||||
|             "env_variable": "WORLDNAME", | ||||
|             "default_value": "DedicatedServer", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|alpha_dash|max:32", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "name": "Query port", | ||||
|             "description": "game port +1", | ||||
|             "env_variable": "QUERY_PORT", | ||||
|             "default_value": "25566", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|numeric", | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										123
									
								
								survive_the_nights/egg-survive-the-nights.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								survive_the_nights/egg-survive-the-nights.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,123 @@ | ||||
| { | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", | ||||
|     "meta": { | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|     }, | ||||
|     "exported_at": "2024-08-11T14:10:06+02:00", | ||||
|     "name": "Survive The Nights", | ||||
|     "author": "josdekurk@gmail.com", | ||||
|     "uuid": "9964bbfd-8a96-435e-af1b-8e1b085a0de9", | ||||
|     "description": "Survive the Nights is a unique FPS survival game focusing on teamwork, fortification, creativity & strategy. Secure a structure or roam free, the choice is yours. Gameplay focuses on realistic survival, post zombie infestation. Prepare during the day for nightfall. How many nights will you survive?", | ||||
|     "features": [ | ||||
|         "steam_disk_space" | ||||
|     ], | ||||
|     "docker_images": { | ||||
|         "SteamCMD_Debian": "ghcr.io\/parkervcp\/steamcmd:debian" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": ".\/Server_Linux_x64 -console -batchmode -nographics", | ||||
|     "config": { | ||||
|         "files": "{\n    \".\/Config\/ServerConfig.txt\": {\n        \"parser\": \"file\",\n        \"find\": {\n            \"serverPort=\": \"serverPort={{server.allocations.default.port}}\",\n            \"serverIP=\": \"serverIP=0.0.0.0\",\n            \"serverName=\": \"serverName={{server.environment.SERVER_NAME}}\",\n            \"serverPassword=\": \"serverPassword={{server.environment.SERVER_PASSWORD}}\",\n            \"showInPublicLobby=\": \"showInPublicLobby={{server.environment.SERVER_PUBLIC}}\",\n            \"serverOwner=\": \"serverOwner={{server.environment.SERVER_OWNER}}\",\n            \"worldname=\": \"worldname={{server.environment.WORLDNAME}}\",\n            \"queryPort=\": \"queryPort={{server.environment.QUERY_PORT}}\"\n        }\n    }\n}", | ||||
|         "startup": "{\r\n  \"done\":[\r\n    \"*** Server Connected To STEAM *** \",\r\n    \"to start the server ready to accept players!\"\r\n  ]\r\n}", | ||||
|         "logs": "{}", | ||||
|         "stop": "^C" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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\nmkdir -p \/mnt\/server\/Config\r\ncd \/mnt\/server\/Config\r\n## add below your custom commands if needed\r\ncurl -sSL -o ServerConfig.txt https:\/\/raw.githubusercontent.com\/pelican-eggs\/games-steamcmd\/main\/survive_the_nights\/ServerConfig.txt\r\ncurl -sSL -o TpPresets.json https:\/\/raw.githubusercontent.com\/pelican-eggs\/games-steamcmd\/main\/survive_the_nights\/TpPresets.json\r\ncurl -sSL -o UserPermissions.json https:\/\/raw.githubusercontent.com\/pelican-eggs\/games-steamcmd\/main\/survive_the_nights\/UserPermissions.json\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "bash" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
|         { | ||||
|             "sort": 1, | ||||
|             "name": "Auto update", | ||||
|             "description": "Auto update the server on startup", | ||||
|             "env_variable": "AUTO_UPDATE", | ||||
|             "default_value": "1", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|boolean", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": 2, | ||||
|             "name": "App id", | ||||
|             "description": "SteamCMD App ID", | ||||
|             "env_variable": "SRCDS_APPID", | ||||
|             "default_value": "1502300", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|string|in:1502300", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": 3, | ||||
|             "name": "Server name", | ||||
|             "description": "The name of the server", | ||||
|             "env_variable": "SERVER_NAME", | ||||
|             "default_value": "New Private Server", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|max:48", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": 4, | ||||
|             "name": "Server password", | ||||
|             "description": "The server password", | ||||
|             "env_variable": "SERVER_PASSWORD", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string|max:32", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": 5, | ||||
|             "name": "Public server", | ||||
|             "description": "Show the server in the public lobby", | ||||
|             "env_variable": "SERVER_PUBLIC", | ||||
|             "default_value": "True", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|string|in:True,false", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": 6, | ||||
|             "name": "Server owner", | ||||
|             "description": "The owner of the server", | ||||
|             "env_variable": "SERVER_OWNER", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "nullable|string|max:48", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": 7, | ||||
|             "name": "World name", | ||||
|             "description": "The name of the server world.\r\n\r\nDo not change this after the server started!", | ||||
|             "env_variable": "WORLDNAME", | ||||
|             "default_value": "DedicatedServer", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": "required|alpha_dash|max:32", | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": 8, | ||||
|             "name": "Query port", | ||||
|             "description": "game port +1", | ||||
|             "env_variable": "QUERY_PORT", | ||||
|             "default_value": "25566", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": "required|numeric", | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
| @ -1,10 +1,10 @@ | ||||
| { | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", | ||||
|     "meta": { | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|         "update_url": null, | ||||
|         "version": "PTDL_v2" | ||||
|     }, | ||||
|     "exported_at": "2024-09-20T09:00:40+02:00", | ||||
|     "exported_at": "2024-06-01T00:04:57+00:00", | ||||
|     "name": "The Front", | ||||
|     "author": "eggs@goover.dev", | ||||
|     "description": "The Front is a survival open-world crafting shooter. You play the role of a resistance fighter sent back in time to stop the rise of a tyrannical empire.", | ||||
| @ -12,21 +12,21 @@ | ||||
|         "steam_disk_space" | ||||
|     ], | ||||
|     "docker_images": { | ||||
|         "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" | ||||
|         "ghcr.io/parkervcp/steamcmd:debian": "ghcr.io/parkervcp/steamcmd:debian" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": ".\/ProjectWar\/Binaries\/Linux\/TheFrontServer  ProjectWar_Start?DedicatedServer -server -game -log -ServerTags=\"{{SRV_TAGS}}\" -UseSteamSocket={{STEAMSOCKET}} -Port=\"{{SERVER_PORT}}\" -BeaconPort=\"{{BEACON_PORT}}\" -ShutDownServicePort=\"{{SHUTDOWN_PORT}}\" -QueryPort=\"{{QUERY_PORT}}\" -ConfigServerName=\"{{CFG_NAME}}\" -OutIPAddress={{SERVER_IP}} -UserDir=\"\/home\/container\/TheFrontManager\/{{CFG_NAME}}\/\" -ServerName=\"{{SRV_NAME}}\" -EnableParallelCharacterMovementTickFunction -EnableParallelCharacterTickFunction -UseDynamicPhysicsScene -Game.PhysicsVehicle=false -ansimalloc -Game.MaxFrameRate=35 -MaxQueueSize=50 -QueueValidTime=120 -QueueThreshold={{MAX_PLAYERS}} -ServerFightModeType={{GAMEMODE}} -IsCanSelfDamage={{SELFDMG}} -IsCanFriendDamage={{DMGALLIES}} -SaveWorldInterval={{SRV_SAVETIME}} -GMOverlapRatio=2 -GreenHand={{GREENHAND}} -SensitiveWords={{SENSITIVE_WORDS}} -UseACE={{ANTI_CHEAT}} -ServerAdminAccounts=\"{{SRV_ADMIN}}\" -IsShowGmTitle={{ADMIN_LABEL}} -ServerPassword={{SRV_PW}}", | ||||
|     "startup": "./ProjectWar/Binaries/Linux/TheFrontServer  ProjectWar_Start?DedicatedServer -server -game -log -ServerTags=\"{{SRV_TAGS}}\" -UseSteamSocket={{STEAMSOCKET}} -Port=\"{{SERVER_PORT}}\" -BeaconPort=\"{{BEACON_PORT}}\" -ShutDownServicePort=\"{{SHUTDOWN_PORT}}\" -QueryPort=\"{{QUERY_PORT}}\" -ConfigServerName=\"{{CFG_NAME}}\" -OutIPAddress={{SERVER_IP}} -UserDir=\"/home/container/TheFrontManager/{{CFG_NAME}}/\" -ServerName=\"{{SRV_NAME}}\" -EnableParallelCharacterMovementTickFunction -EnableParallelCharacterTickFunction -UseDynamicPhysicsScene -Game.PhysicsVehicle=false -ansimalloc -Game.MaxFrameRate=35 -MaxQueueSize=50 -QueueValidTime=120 -QueueThreshold={{MAX_PLAYERS}} -ServerFightModeType={{GAMEMODE}} -IsCanSelfDamage={{SELFDMG}} -IsCanFriendDamage={{DMGALLIES}} -SaveWorldInterval={{SRV_SAVETIME}} -GMOverlapRatio=2 -GreenHand={{GREENHAND}} -SensitiveWords={{SENSITIVE_WORDS}} -UseACE={{ANTI_CHEAT}} -ServerAdminAccounts={{SRV_ADMIN}} -IsShowGmTitle={{ADMIN_LABEL}} -ServerPassword={{SRV_PW}}", | ||||
|     "config": { | ||||
|         "files": "{}", | ||||
|         "startup": "{\r\n    \"done\": \"LogLoad: (Engine Initialization) \"\r\n}", | ||||
|         "logs": "{}", | ||||
|         "startup": "{\r\n    \"done\": \"LogLoad: (Engine Initialization) \"\r\n}", | ||||
|         "stop": "^^C" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "installation": { | ||||
|             "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\nclear\r\nRED='\\033[0;31m'\r\nGREEN='\\033[0;32m'\r\nYELLOW='\\033[1;33m'\r\nBLUE='\\033[0;34m'\r\nNC='\\033[0m'\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}The Front  Installscript${NC}\"\r\necho -e \"${YELLOW}Egg by gOOvER | https:\/\/goover.dev${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq dos2unix\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\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\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## install game using steamcmd\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install game using steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\necho -e \"${GREEN}..done..${NC}\"\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## install end\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${GREEN}Installation completed...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"", | ||||
|             "container": "ghcr.io\/parkervcp\/installers:debian", | ||||
|             "entrypoint": "bash" | ||||
|             "container": "ghcr.io/parkervcp/installers:debian", | ||||
|             "entrypoint": "bash", | ||||
|             "script": "#!/bin/bash\r\n# steamcmd Base Installation Script\r\n#\r\nclear\r\nRED='\\033[0;31m'\r\nGREEN='\\033[0;32m'\r\nYELLOW='\\033[1;33m'\r\nBLUE='\\033[0;34m'\r\nNC='\\033[0m'\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}The Front  Installscript${NC}\"\r\necho -e \"${YELLOW}Egg by gOOvER | https://goover.dev${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq dos2unix\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing\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\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## install game using steamcmd\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install game using steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] \u0026\u0026 printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\necho -e \"${GREEN}..done..${NC}\"\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## install end\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${GREEN}Installation completed...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"" | ||||
|         } | ||||
|     }, | ||||
|     "variables": [ | ||||
| @ -152,7 +152,7 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "[ADVANCED] Server Tags", | ||||
|             "description": "MAX 5 -> \r\n\r\n0= PVP |   \r\n1= PVE | \r\n2= EXP Multiplikator |  \r\n3= GatheringRate |  \r\n4= KeepInventory |  \r\n5= 45d wipe |  \r\n6= 15d wipe |  \r\n7= 30d wipe |  \r\n8= 60d wipe |", | ||||
|             "description": "MAX 5 -\u003e \r\n\r\n0= PVP |   \r\n1= PVE | \r\n2= EXP Multiplikator |  \r\n3= GatheringRate |  \r\n4= KeepInventory |  \r\n5= 45d wipe |  \r\n6= 15d wipe |  \r\n7= 30d wipe |  \r\n8= 60d wipe |", | ||||
|             "env_variable": "SRV_TAGS", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
| @ -182,7 +182,7 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "[SERVER] Auto Update", | ||||
|             "description": "Autoupdate your Server on start\/restart", | ||||
|             "description": "Autoupdate your Server on start/restart", | ||||
|             "env_variable": "AUTO_UPDATE", | ||||
|             "default_value": "0", | ||||
|             "user_viewable": true, | ||||
|  | ||||
| @ -1,10 +1,10 @@ | ||||
| { | ||||
|     "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", | ||||
|     "meta": { | ||||
|         "version": "PLCN_v1", | ||||
|         "version": "PTDL_v2", | ||||
|         "update_url": null | ||||
|     }, | ||||
|     "exported_at": "2024-11-20T10:05:44+00:00", | ||||
|     "exported_at": "2024-06-01T00:04:57+00:00", | ||||
|     "name": "The Front", | ||||
|     "author": "eggs@goover.dev", | ||||
|     "uuid": "cdab0d81-2c29-416e-9766-4e7c17a55533", | ||||
| @ -16,7 +16,7 @@ | ||||
|         "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" | ||||
|     }, | ||||
|     "file_denylist": [], | ||||
|     "startup": ".\/ProjectWar\/Binaries\/Linux\/TheFrontServer  ProjectWar_Start?DedicatedServer -server -game -log -ServerTags=\"{{SRV_TAGS}}\" -UseSteamSocket={{STEAMSOCKET}} -Port=\"{{SERVER_PORT}}\" -BeaconPort=\"{{BEACON_PORT}}\" -ShutDownServicePort=\"{{SHUTDOWN_PORT}}\" -QueryPort=\"{{QUERY_PORT}}\" -ConfigServerName=\"{{CFG_NAME}}\" -OutIPAddress={{SERVER_IP}} -UserDir=\"\/home\/container\/TheFrontManager\/{{CFG_NAME}}\/\" -ServerName=\"{{SRV_NAME}}\" -EnableParallelCharacterMovementTickFunction -EnableParallelCharacterTickFunction -UseDynamicPhysicsScene -Game.PhysicsVehicle=false -ansimalloc -Game.MaxFrameRate=35 -MaxQueueSize=50 -QueueValidTime=120 -QueueThreshold={{MAX_PLAYERS}} -ServerFightModeType={{GAMEMODE}} -IsCanSelfDamage={{SELFDMG}} -IsCanFriendDamage={{DMGALLIES}} -SaveWorldInterval={{SRV_SAVETIME}} -GMOverlapRatio=2 -GreenHand={{GREENHAND}} -SensitiveWords={{SENSITIVE_WORDS}} -UseACE={{ANTI_CHEAT}} -ServerAdminAccounts=\"{{SRV_ADMIN}}\" -IsShowGmTitle={{ADMIN_LABEL}} -ServerPassword={{SRV_PW}}", | ||||
|     "startup": ".\/ProjectWar\/Binaries\/Linux\/TheFrontServer  ProjectWar_Start?DedicatedServer -server -game -log -ServerTags=\"{{SRV_TAGS}}\" -UseSteamSocket={{STEAMSOCKET}} -Port=\"{{SERVER_PORT}}\" -BeaconPort=\"{{BEACON_PORT}}\" -ShutDownServicePort=\"{{SHUTDOWN_PORT}}\" -QueryPort=\"{{QUERY_PORT}}\" -ConfigServerName=\"{{CFG_NAME}}\" -OutIPAddress={{SERVER_IP}} -UserDir=\"\/home\/container\/TheFrontManager\/{{CFG_NAME}}\/\" -ServerName=\"{{SRV_NAME}}\" -EnableParallelCharacterMovementTickFunction -EnableParallelCharacterTickFunction -UseDynamicPhysicsScene -Game.PhysicsVehicle=false -ansimalloc -Game.MaxFrameRate=35 -MaxQueueSize=50 -QueueValidTime=120 -QueueThreshold={{MAX_PLAYERS}} -ServerFightModeType={{GAMEMODE}} -IsCanSelfDamage={{SELFDMG}} -IsCanFriendDamage={{DMGALLIES}} -SaveWorldInterval={{SRV_SAVETIME}} -GMOverlapRatio=2 -GreenHand={{GREENHAND}} -SensitiveWords={{SENSITIVE_WORDS}} -UseACE={{ANTI_CHEAT}} -ServerAdminAccounts={{SRV_ADMIN}} -IsShowGmTitle={{ADMIN_LABEL}} -ServerPassword={{SRV_PW}}", | ||||
|     "config": { | ||||
|         "files": "{}", | ||||
|         "startup": "{\r\n    \"done\": \"LogLoad: (Engine Initialization) \"\r\n}", | ||||
| @ -32,289 +32,235 @@ | ||||
|     }, | ||||
|     "variables": [ | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Server Name", | ||||
|             "description": "no spaces und special signs", | ||||
|             "env_variable": "SRV_NAME", | ||||
|             "default_value": "Pterodactyl hosted Server", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "max:50" | ||||
|             ] | ||||
|             "rules": "required|string|max:50", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Max Players", | ||||
|             "description": "The max number of players on your server.", | ||||
|             "env_variable": "MAX_PLAYERS", | ||||
|             "default_value": "10", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "between:1,80" | ||||
|             ] | ||||
|             "rules": "required|integer|between:1,80", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Config Name", | ||||
|             "description": "Name of the savefile. NO SPACE or SPECIAL signs", | ||||
|             "env_variable": "CFG_NAME", | ||||
|             "default_value": "new", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "max:20" | ||||
|             ] | ||||
|             "rules": "required|string|max:20", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Server Password", | ||||
|             "description": "", | ||||
|             "env_variable": "SRV_PW", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable" | ||||
|             ] | ||||
|             "rules": "nullable", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] PvE", | ||||
|             "description": "off = PvP; on = PvE", | ||||
|             "env_variable": "GAMEMODE", | ||||
|             "default_value": "0", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "boolean" | ||||
|             ] | ||||
|             "rules": "required|boolean", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Use Steam Socket", | ||||
|             "description": "Use Steam servers for network penetration. Enable this if you don't have a public IP but you want to allow players from outside your network to join your server. If disabled, only you and other players on your LAN can join. If you have a public IP, you do not need to enable this. Enabling this feature will affect latency. When Steam servers are busy, you may not be able to join this server.", | ||||
|             "env_variable": "STEAMSOCKET", | ||||
|             "default_value": "0", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "boolean" | ||||
|             ] | ||||
|             "rules": "required|boolean", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Damage self?", | ||||
|             "description": "Allows players to damage themselves.", | ||||
|             "env_variable": "SELFDMG", | ||||
|             "default_value": "true", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "in:true,false" | ||||
|             ] | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Damage allies?", | ||||
|             "description": "Allows squadmates to damage each other.", | ||||
|             "env_variable": "DMGALLIES", | ||||
|             "default_value": "true", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "in:true,false" | ||||
|             ] | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Server Admins", | ||||
|             "description": "Enter a 17-digit Steam ID. Use semicolons between each ID. GM level defaults to highest level (Lv. 25)", | ||||
|             "env_variable": "SRV_ADMIN", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable", | ||||
|                 "string" | ||||
|             ] | ||||
|             "rules": "nullable|string", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[ADVANCED] Label admin", | ||||
|             "description": "Toggles special admin icon.", | ||||
|             "env_variable": "ADMIN_LABEL", | ||||
|             "default_value": "false", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "in:true,false" | ||||
|             ] | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[ADVANCED] Server save interval", | ||||
|             "description": "Server archive interval (in seconds)", | ||||
|             "env_variable": "SRV_SAVETIME", | ||||
|             "default_value": "300", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "between:150,600" | ||||
|             ] | ||||
|             "rules": "required|integer|between:150,600", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[ADVANCED] Enable novice protection?", | ||||
|             "description": "When enabled, new characters will receive novice protection.", | ||||
|             "env_variable": "GREENHAND", | ||||
|             "default_value": "true", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "in:true,false" | ||||
|             ] | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[ADVANCED] Server Tags", | ||||
|             "description": "MAX 5 -> \r\n\r\n0= PVP |   \r\n1= PVE | \r\n2= EXP Multiplikator |  \r\n3= GatheringRate |  \r\n4= KeepInventory |  \r\n5= 45d wipe |  \r\n6= 15d wipe |  \r\n7= 30d wipe |  \r\n8= 60d wipe |", | ||||
|             "env_variable": "SRV_TAGS", | ||||
|             "default_value": "", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "nullable" | ||||
|             ] | ||||
|             "rules": "nullable", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[ADVANCED] Enable anticheat?", | ||||
|             "description": "Toggles anticheat.", | ||||
|             "env_variable": "ANTI_CHEAT", | ||||
|             "default_value": "true", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "in:true,false" | ||||
|             ] | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[ADVANCED] Enable profanity?", | ||||
|             "description": "When disable, profanity will be blocked.", | ||||
|             "env_variable": "SENSITIVE_WORDS", | ||||
|             "default_value": "true", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "in:true,false" | ||||
|             ] | ||||
|             "rules": "required|string|in:true,false", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] Auto Update", | ||||
|             "description": "Autoupdate your Server on start\/restart", | ||||
|             "env_variable": "AUTO_UPDATE", | ||||
|             "default_value": "0", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": true, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "boolean" | ||||
|             ] | ||||
|             "rules": "required|boolean", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SYSTEM] SRCDS_APPID", | ||||
|             "description": "", | ||||
|             "env_variable": "SRCDS_APPID", | ||||
|             "default_value": "2334200", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "string", | ||||
|                 "max:20" | ||||
|             ] | ||||
|             "rules": "required|string|max:20", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] BeaconPort", | ||||
|             "description": "port+1", | ||||
|             "env_variable": "BEACON_PORT", | ||||
|             "default_value": "27016", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "between:1024,65536" | ||||
|             ] | ||||
|             "rules": "required|integer|between:1024,65536", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] QueryPort", | ||||
|             "description": "port+2", | ||||
|             "env_variable": "QUERY_PORT", | ||||
|             "default_value": "27017", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "between:1024,65536" | ||||
|             ] | ||||
|             "rules": "required|integer|between:1024,65536", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "[SERVER] ShutDownServicePort", | ||||
|             "description": "port +3", | ||||
|             "env_variable": "SHUTDOWN_PORT", | ||||
|             "default_value": "27017", | ||||
|             "user_viewable": true, | ||||
|             "user_editable": false, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "integer", | ||||
|                 "between:1024,65536" | ||||
|             ] | ||||
|             "rules": "required|integer|between:1024,65536", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         }, | ||||
|         { | ||||
|             "sort": null, | ||||
|             "name": "WINDOWS_INSTALL", | ||||
|             "description": "DO NOT REMOVE !!!", | ||||
|             "env_variable": "WINDOWS_INSTALL", | ||||
|             "default_value": "1", | ||||
|             "user_viewable": false, | ||||
|             "user_editable": false, | ||||
|             "rules": [ | ||||
|                 "required", | ||||
|                 "boolean" | ||||
|             ] | ||||
|             "rules": "required|boolean", | ||||
|             "sort": null, | ||||
|             "field_type": "text" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user