Egg Repository

Pterodactyl Community Egg Repository

SCP:SL - Exiled

Egg for SCP: Secret Laboratory Dedicated Linux Server with Exiled Plugin Framework - https://github.com/ExSLMod-Team/EXILED

Read Me

SCP: Secret Laboratory Exiled

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

Minimum RAM

Minimum memory required to run the server: 4096 MB

Server Port

Default port required to run the server.

PortDefault
Game7777

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
Mono - Latestghcr.io/ptero-eggs/yolks:mono_latest
Variables
NameDescriptionEnvironment VariableDefault ValueUser ViewableUser Editable
Exiled VersionExiled version to install. "latest" will install the latest release of Exiled.EXILED_VERSIONlatestYesYes
Exiled Pre-ReleasesIf Exiled Version is set to latest, this will cause it to include pre-release versions. This is not required to be on when setting a specific Exiled versionEXILED_PRE_RELEASES0YesYes
SRCDS_APPIDSteam AppID to installSRCDS_APPID996560NoNo
Beta BranchInstalls beta branch from steam if specified. Requires a reinstall to switch branches properly.SRCDS_BETAIDYesYes
Dotnet BundleFor EXILED Framework Updater.DOTNET_BUNDLE_EXTRACT_BASE_DIR./dotnet-bundleNoNo
Install Script
#!/bin/bash
# steamcmd Base Installation Script
#
# Server Files: /mnt/server

## 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

# Download Exiled installer
curl -L -o /tmp/Exiled.Installer-Linux https://github.com/ExSLMod-Team/EXILED/releases/latest/download/Exiled.Installer-Linux 
chmod +x /tmp/Exiled.Installer-Linux


# Run Exiled installer
if [[ -n $EXILED_VERSION  ]] && [[ "${EXILED_VERSION}" != "latest" ]]; then
    echo "Installing Exiled version ${EXILED_VERSION}..."

    if [[ "${EXILED_PRE_RELEASES}" == "1" ]]; then
        echo "Including Exiled pre-releases"
    fi
else
    echo "Installing the latest Exiled version..."
    EXILED_VERSION=""
fi

# shellcheck disable=SC2046
/tmp/Exiled.Installer-Linux --path /mnt/server/ --appdata /mnt/server/.config --exiled /mnt/server/.config $( [[ "${EXILED_PRE_RELEASES}" == "1" ]] && echo "--pre-releases " || echo "" )$( [[ -n "${EXILED_VERSION}" ]] && echo "--target-version ${EXILED_VERSION} " || echo "" )



echo "Installation complete."