pelican-eggs / eggs

Service eggs for the pterodactyl panel
MIT License
2.86k stars 2.32k forks source link

[Egg Request]: SCP Escape Together #2187

Open diamkil opened 1 year ago

diamkil commented 1 year ago

Does this expand an already existing service

Yes

Link to a game or software

https://store.steampowered.com/app/1394270/SCP_Escape_Together/

Links for the download

https://store.steampowered.com/app/1394270/SCP_Escape_Together/

Links for the install docs

https://hosting.scpetgame.com/GettingStarted

QuintenQVD0 commented 1 year ago

You expect us to make a egg for a game where is 0 documentation for? The only thing we know is that it is writen in unity

QuintenQVD0 commented 1 year ago

And what egg does it exepand to? As you selected yes

diamkil commented 1 year ago

And what egg does it exepand to? As you selected yes

I thought it was related to SCP Secret Laboratory, it is not sorry for that (also just know it's on yes by default)

You expect us to make a egg for a game where is 0 documentation for? The only thing we know is that it is writen in unity

It's a basic SteamCMD server but I did find a bit more documentation since making the issue. There's this official egg I found, https://github.com/SCPET/Pterodactyl-Egg however it's 2 years old, it would seem much better to have an up to date egg here

QuintenQVD0 commented 1 year ago

I found there egg and I am working with them on updating it

diamkil commented 1 year ago

I found there egg and I am working with them on updating it

Any progress on the egg?

QuintenQVD0 commented 1 year ago

I found there egg and I am working with them on updating it

Any progress on the egg?

I got it to work but it depents on https://github.com/SCPETGame/SCPET-Server-Console/pull/1 But the big issue is that the current config parser (wings) sorts the keys alphabetically and then it errors out. SO I can make it work but then you have to manual edit the json to match the port and set variables like server name

diamkil commented 1 year ago

I found there egg and I am working with them on updating it

Any progress on the egg?

I got it to work but it depents on SCPETGame/SCPET-Server-Console#1 But the big issue is that the current config parser (wings) sorts the keys alphabetically and then it errors out. SO I can make it work but then you have to manual edit the json to match the port and set variables like server name

Not ideal but that works, I'll give it a try

diamkil commented 1 year ago

I found there egg and I am working with them on updating it

Any progress on the egg?

I got it to work but it depents on https://github.com/SCPETGame/SCPET-Server-Console/pull/1

But the big issue is that the current config parser (wings) sorts the keys alphabetically and then it errors out. SO I can make it work but then you have to manual edit the json to match the port and set variables like server name

Could you share me that egg, I'll compile and use the code from that PR

QuintenQVD0 commented 1 year ago

I found there egg and I am working with them on updating it

Any progress on the egg?

I got it to work but it depents on SCPETGame/SCPET-Server-Console#1 But the big issue is that the current config parser (wings) sorts the keys alphabetically and then it errors out. SO I can make it work but then you have to manual edit the json to match the port and set variables like server name

Could you share me that egg, I'll compile and use the code from that PR

I have a compiled version. The egg is made to download rn to download the version that I PR but the config parsing will not work as I stated. You will have to set it all manual

{
    "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
    "meta": {
        "version": "PTDL_v2",
        "update_url": null
    },
    "exported_at": "2023-03-30T09:55:43+02:00",
    "name": "Official SCP:ET Egg",
    "author": "ced777ric@scpetgame.com",
    "description": "SCP: Escape Together Steam Server",
    "features": null,
    "docker_images": {
        "ghcr.io\/parkervcp\/steamcmd:dotnet": "ghcr.io\/parkervcp\/steamcmd:dotnet"
    },
    "file_denylist": [],
    "startup": ".\/SCPET-Server",
    "config": {
        "files": "{}",
        "startup": "{\r\n    \"done\": \"Server is ready and waiting for players!\"\r\n}",
        "logs": "{}",
        "stop": "stop"
    },
    "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## 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} +app_update ${SRCDS_APPID} $( [[ -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 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## Get the latest console download URL\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/QuintenQVD0\/SCPET-Server-Console\/releases\/latest\")\r\nMATCH=linux\r\nDOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH} | head -1)\r\n\r\n## Download and unpack the console\r\ncd \/mnt\/server\r\ncurl -sSL -o console.zip ${DOWNLOAD_URL}\r\nunzip console.zip\r\nrm console.zip\r\nchmod +x SCPET-Server\r\n\r\n## Generate config ele the file parsel will fail\r\nmkdir -p \/mnt\/server\/settings\r\ncurl -sSL -o \/mnt\/server\/settings\/serverconfig.json https:\/\/pastebin.com\/raw\/fbrGTJNK\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
            "container": "ghcr.io\/parkervcp\/installers:debian",
            "entrypoint": "bash"
        }
    },
    "variables": [
        {
            "name": "Server Name",
            "description": "",
            "env_variable": "SERVER_NAME",
            "default_value": "Unknown Server",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:255",
            "field_type": "text"
        },
        {
            "name": "Map Path",
            "description": "",
            "env_variable": "MAP_PATH",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string|max:255",
            "field_type": "text"
        },
        {
            "name": "Random Map",
            "description": "",
            "env_variable": "RNG_MAP",
            "default_value": "1",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|boolean",
            "field_type": "text"
        },
        {
            "name": "Public Server",
            "description": "",
            "env_variable": "PUBLIC_SERVER",
            "default_value": "0",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|boolean",
            "field_type": "text"
        },
        {
            "name": "Pastebin Info",
            "description": "Server List Pastebin info code",
            "env_variable": "SRVLIST_INFO",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string|max:255",
            "field_type": "text"
        },
        {
            "name": "Max Players",
            "description": "",
            "env_variable": "MAX_PLAYERS",
            "default_value": "16",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|int",
            "field_type": "text"
        },
        {
            "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": "",
            "env_variable": "SRCDS_APPID",
            "default_value": "1433270",
            "user_viewable": false,
            "user_editable": false,
            "rules": "required|string|in:1433270",
            "field_type": "text"
        }
    ]
}
diamkil commented 1 year ago

@QuintenQVD0 I've tested the egg and the server is up and running however I keep running into the same issue, the server seems to not want to install the latest version. It installs 0.4.5-alpha instead of 0.4-5-alpha-rev1 and no players can log on. Any chance you know how this could be fixed?

QuintenQVD0 commented 1 year ago

0.4.5-alpha i

It downloads the latest version out of steamcmd, that is notthing I can change. the last update on steamcmd is 5 months ago the build of the console app is up to date with there master branch

Did you set port, serverName, mapPath ServerInfoPastebinId ServerListAuthenticationKey maxPlayers in the config? and is the port TCP and UPD open?