Egg Repository

Pterodactyl Community Egg Repository

SCP:SL - Exiled

Egg for SCP: Secret Laboratory Dedicated Linux Server with Exiled Plugin Framework

Read Me

SCP: Secret Laboratory Exiled

SCP: Secret Laboratory Pterodactyl egg with Exiled Plugin Framework https://github.com/Exiled-Team/EXILED

Minimum RAM

Minimum memory required to run the server: 4096 MB

Server Port

Default port required to run the server.

Port Default
Game 7777

Verification

The server must be verified with the SCP:SL developers in order for it to be visible in the server browser.

Instructions are as follows:

  • Make sure your server complies with the Verified Server Rules.
  • Send an email to [email protected] from your configured contact email with the following information:
    1. The public IPv4 address of your server, with port. e.g. 69.69.69.69:7777
    2. If the server's IP is static or dynamic.
Yolks
NameTag
ghcr.io/ptero-eggs/yolks:mono_latestghcr.io/ptero-eggs/yolks:mono_latest
Variables
NameDescriptionEnvironment VariableDefault ValueUser ViewableUser Editable
SRCDS_APPIDSRCDS_APPID996560YesNo
Dotnet BundleOnly used for EXILED Framework Updater.DOTNET_BUNDLE_EXTRACT_BASE_DIR./dotnet-bundleNoNo
VersionVERSIONlatestYesYes
Install Script
#!/bin/bash
# steamcmd Base Installation Script
#
# Server Files: /mnt/server

#apt -y update
#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates

## just in case someone removed the defaults.
if [ "${STEAM_USER}" == "" ]; then
    echo -e "steam user is not set.\n"
    echo -e "Using anonymous user.\n"
    STEAM_USER=anonymous
    STEAM_PASS=""
    STEAM_AUTH=""
else
    echo -e "user set to ${STEAM_USER}"
fi

## download and install steamcmd
cd /tmp
mkdir -p /mnt/server/steamcmd
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
cd /mnt/server/steamcmd

# SteamCMD fails otherwise for some reason, even running as root.
# This is changed at the end of the install process anyways.
chown -R root:root /mnt
export HOME=/mnt/server

## install game using steamcmd
./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

## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so

## set up 64 bit libraries
mkdir -p /mnt/server/.steam/sdk64
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so

mkdir -p $HOME/.config

# Install Exiled

## get release info and download links
LATEST_JSON=$(curl --silent "https://api.github.com/repos/ExMod-Team/EXILED/releases/latest")
RELEASES=$(curl --silent "https://api.github.com/repos/ExMod-Team/EXILED/releases")

if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then
    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i Exiled.tar.gz)
else
    VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name')
    if [ "${VERSION}" == "${VERSION_CHECK}" ]; then
        DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i Exiled.tar.gz)
    else
        echo -e "defaulting to latest release"
        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)
    fi
fi
if [ ! -z "${DOWNLOAD_URL}" ]; then
    if curl --output /dev/null --silent --head --fail ${DOWNLOAD_URL}; then
        echo -e "link is valid. setting download link to ${DOWNLOAD_URL}"
        DOWNLOAD_LINK=${DOWNLOAD_URL}
    else
        echo -e "link is invalid closing out"
        exit 2
    fi
fi

curl -sSL -o Exiled.tar.gz ${DOWNLOAD_LINK}
tar -xzvmf Exiled.tar.gz
rm -rf Exiled.tar.gz

cp -r "SCP Secret Laboratory" /mnt/server/.config/
rm -rf "SCP Secret Laboratory"
cp -r EXILED /mnt/server/.config/
rm -rf EXILED
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"