Skip to content

Scpslserver

github-actions[bot] edited this page Sep 11, 2026 · 3 revisions

SCP: Secret Laboratory

This guide covers the scpslserver module in AlphaGSM.

scpslserver is currently PASSED on the documented Ubuntu 24.04 Linux baseline. The current GitHub integration lane still exercises both process and Docker runtime selection, and the validated Linux lifecycle stays aligned across both backends while local runs remain process-backed by default unless you opt into the Docker backend.

Requirements

  • screen
  • SteamCMD runtime libraries (lib32gcc-s1, lib32stdc++6)
  • Python packages from requirements.txt

Quick Start

Create the server:

alphagsm myscpslser create scpslserver

Run setup:

alphagsm myscpslser setup

Start it:

alphagsm myscpslser start

Check it:

alphagsm myscpslser status

Stop it:

alphagsm myscpslser stop

Setup Details

Setup configures:

  • the game port (default 7777)
  • the query port (default port + 1)
  • the install directory
  • optional contactemail for the public-list contact field
  • SteamCMD downloads the server files

The canonical gameplay/query settings are managed with set:

alphagsm myscpslser set servername "AlphaGSM SCP:SL Server"
alphagsm myscpslser set queryport 7778
alphagsm myscpslser set rconpassword "changeme"

query_port_shift is derived automatically as queryport - port when AlphaGSM writes config_gameplay.txt, so it updates whenever either port changes.

Useful Commands

alphagsm myscpslser update
alphagsm myscpslser backup

Notes

  • Module name: scpslserver
  • Default port: 7777
  • AlphaGSM launches SCP:SL through LocalAdmin, not by invoking SCPSL.x86_64 directly
  • AlphaGSM seeds home/.config/SCP Secret Laboratory/ inside the server install so the EULA/config wizard stays noninteractive
  • Query is enabled in the generated gameplay config, and query_port_shift is derived from the current queryport - port

Server variables

After create scpslserver, inspect or change these with set:

alphagsm myserver set --list
alphagsm myserver set KEY --describe
alphagsm myserver set KEY VALUE
Key Aliases Type What it does
contactemail email string The public contact email shown in the server browser. Example: ops@example.com.
queryport — integer The query port used to derive the SCP:SL query-port shift. Example: 7778.
rconpassword querypassword, query_administrator_password, rconpass string The administrator password used by the query/admin surface. Stored as a secret. Example: changeme.
servername hostname, name string The server's public name shown to players. Example: AlphaGSM SCP:SL Server.

Developer Notes

Run File

  • Executable: LocalAdmin
  • Location: <install_dir>/LocalAdmin
  • Engine: Custom (SteamCMD)
  • SteamCMD App ID: 996560

Server Configuration

  • Config root: <install_dir>/home/.config/SCP Secret Laboratory/
  • Gameplay config: <install_dir>/home/.config/SCP Secret Laboratory/config/<port>/config_gameplay.txt
  • Canonical set keys: servername, contactemail, queryport, rconpassword
  • Optional property: contactemail maps to SCP:SL contact_email
  • Derived query setting: queryport maps to SCP:SL query_port_shift via queryport - port
  • Template: See server-templates/scpslserver/ if available
  • Current status: The dedicated server can be launched headlessly on Linux through LocalAdmin once its EULA/config state is preseeded.

Maps and Mods

  • Map directory: Check game documentation
  • Mod directory: home/.config/SCP Secret Laboratory/LabAPI/plugins/
  • Dependency directory: home/.config/SCP Secret Laboratory/LabAPI/dependencies/
  • Workshop support: No

Plugin Sources

AlphaGSM's current SCP:SL plugin support targets the official LabAPI loader that ships with modern dedicated-server builds.

  • AlphaGSM stores SCP:SL plugin cache/state under .alphagsm/mods/scpslserver/.
  • Current plugin source support is manifest and url.
  • manifest uses AlphaGSM's checked-in SCP:SL plugin registry. Current built-in families are betterhelpcommand for BetterHelpCommand-LabAPI, escapeplan for EscapePlan, and respawntimer for RespawnTimer.
  • url accepts direct LabAPI plugin .dll downloads and supported plugin archives.
  • Archive payloads can already be laid out relative to the LabAPI root with plugins/ and dependencies/, or expose a bare plugin-root .dll that AlphaGSM stages into plugins/global/.
  • mod cleanup removes only AlphaGSM-tracked LabAPI plugin files and leaves unrelated manual plugins alone.

EXILED is intentionally out of scope for this first slice because it requires a heavier framework bootstrap and managed-assembly patching than the official LabAPI plugin loader.

alphagsm myscpslser mod add manifest betterhelpcommand
alphagsm myscpslser mod add url https://plugins.example.invalid/ExamplePlugin.dll
alphagsm myscpslser mod apply
alphagsm myscpslser mod cleanup

Clone this wiki locally