SCP:SL - Exiled
gamesEgg for SCP: Secret Laboratory Dedicated Linux Server with Exiled Plugin Framework - https://github.com/ExMod-Team/EXILED
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 staticif you have a static IP address.!verify dynamicif 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.
Docker Images (1)
| Name | Image |
|---|---|
Mono - Latest | ghcr.io/ptero-eggs/yolks:mono_latest |
Startup Command
./LocalAdmin {{SERVER_PORT}} Variables (5)
Exiled Version
Exiled version to install. "latest" will install the latest release of Exiled.
- Environment:
EXILED_VERSION- Default:
latest- User Viewable:
- ✅
- User Editable:
- ✅
- Rules:
required|string|max:30
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
- Environment:
EXILED_PRE_RELEASES- Default:
0- User Viewable:
- ✅
- User Editable:
- ✅
- Rules:
required|boolean|in:0,1
SRCDS_APPID
Steam AppID to install
- Environment:
SRCDS_APPID- Default:
996560- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string
Beta Branch
Installs beta branch from steam if specified. Requires a reinstall to switch branches properly.
- Environment:
SRCDS_BETAID- Default:
None- User Viewable:
- ✅
- User Editable:
- ✅
- Rules:
nullable|string|max:20
Dotnet Bundle
For EXILED Framework Updater.
- Environment:
DOTNET_BUNDLE_EXTRACT_BASE_DIR- Default:
./dotnet-bundle- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string
Installation Script
ghcr.io/ptero-eggs/installers:debianbash#!/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."