Skip to content

SCP:SL - Exiled

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

Report an issue
updated
variables
5
images
1
author
eggs@purpleflaghosting.com
sha256
cbf4befa44d4

Readme

SCP: Secret Laboratory Exiled

SCP: Secret Laboratory Pterodactyl egg with Exiled Plugin Framework https://github.com/ExMod-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

Documentation

Official technical documentation is available at https://techwiki.scpslgame.com.

Verification

The server must be verified in order for it to be visible in the server browser. Make sure your server complies with the Community Server Guidelines.

Automatic Verification

Run one of the following commands in the server console:

  • !verify static if you have a static IP address.
  • !verify dynamic if you have a dynamic IP address.

Manual Verification

Send an email to safety.compliance@scpslgame.com with the following info:

  • Your Public IPv4 (IPv6 or Domain Server Verification isn't supported).
  • Whether your IP is Static or Dynamic.
  • The port that your server is running on.

Startup command

./LocalAdmin {{SERVER_PORT}}

The parts in blue are filled in by the panel when the server starts, from the variables below.

Docker image

  • Mono - Latest ghcr.io/ptero-eggs/yolks:mono_latest

Panel features

  • steam_disk_space

2 contributors

Variables

5 settings

  • Exiled Version

    Exiled version to install. "latest" will install the latest release of Exiled.

    env
    EXILED_VERSION
    default
    latest
    rules
    required|string|max:30
    • viewable
    • editable
  • Exiled Pre-Releases

    If 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 version

    env
    EXILED_PRE_RELEASES
    default
    0
    rules
    required|boolean|in:0,1
    • viewable
    • editable
  • SRCDS_APPID

    Steam AppID to install

    env
    SRCDS_APPID
    default
    996560
    rules
    required|string
  • Beta Branch

    Installs beta branch from steam if specified. Requires a reinstall to switch branches properly.

    env
    SRCDS_BETAID
    default
    none
    rules
    nullable|string|max:20
    • viewable
    • editable
  • Dotnet Bundle

    For EXILED Framework Updater.

    env
    DOTNET_BUNDLE_EXTRACT_BASE_DIR
    default
    ./dotnet-bundle
    rules
    required|string
Installation script 64 lines container ghcr.io/ptero-eggs/installers:debian entrypoint bash show
#!/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/ExMod-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 --skip-version-select --exiled /mnt/server/.config $( [[ "${EXILED_PRE_RELEASES}" == "1" ]] && echo "--pre-releases " || echo "" )$( [[ -n "${EXILED_VERSION}" ]] && echo "--target-version ${EXILED_VERSION} " || echo "" )



echo "Installation complete."