Verified servers appear in the in-game list; unverified ones are IP-direct only. Derives the actual UDP game port and the optional TCP query port without inventing any "join command".
SCP: Secret Laboratory workshop
Asymmetric horror FPS · Horror / Asymmetric
The number one SCP:SL hosting gotcha is port semantics: player traffic is UDP-only on the game port (dedicated servers take it from the LocalAdmin CLI argument; port_queue 7777–7784 is NONDEDICATED-ONLY per the official template comment). The same-numbered TCP port carries SCP:SL's own query protocol plus text RemoteAdmin (NOT Steam A2S), and enable_query defaults to false so it does not even listen. Configs live per port: SCP Secret Laboratory/<port>/config_gameplay.txt under %AppData% (Windows) or ~/.config (Linux); missing keys are auto-added at startup from the bundled official template. The public server browser only lists verified servers: apply by emailing [email protected] (public IPv4:port plus a static/dynamic declaration, sent from the configured contact_email); until verified, players can only join by direct IP. The plugin ecosystem has three parts: the official LabAPI ships inside the dedicated server (NwPluginAPI is archived), the current community framework is ExMod (ExMod-Team/EXILED), and the original EXILED repo is stale (last release 2024-10). LocalAdmin is the only official launcher and restarts the process after crashes (default: at most 4 restarts per 480-second window); MultiAdmin/ServerMod2 are NOT compatible with the current server (egg README verbatim).
Player tools (5)
Instant interactive calculations and recipe plannersFour-way triage: not listed / cannot connect / preauth rejection / dropped on join — every branch maps to a verifiable config key or source-code behaviour.
Official Resources & Plugin Ecosystem
ResourcesThe five official wiki domains, the LabAPI plugin platform, the ExMod vs stale EXILED split, LocalAdmin and the EULA — each labelled with its maintenance status.
Respawn Ticket & Wave Odds Simulator
SimulatorThe official comment formula CI% = CI/(MTF+CI)×100%, both documented initial ratios side by side (24:14 / 24:18), step-by-step ticket gains for all nine event keys, plus the per-wave caps and time window.
Speed & Stamina Calculator
CalculatorConverts the human base speeds documented in the official template comments (walk 4.5 m/s, sprint 7 m/s) by the multiplier keys; sprint endurance is a linear estimate from the 5%/s drain, clearly labelled as such since the official regen is curve-based.
Server admin and config generation (7)
Config files, startup scripts and command wizards for running a serverCapacity & Stability Planner
PlannerBoth RAM floors side by side (3096 / 4096 MB, neither official), the LocalAdmin auto-restart window (default 4 restarts / 480 s, with the counter-intuitive 0 and -1 semantics), log limits and tickrate notes; every increment is editable.
The UDP game port (dedicated = LocalAdmin CLI argument; port_queue is NONDEDICATED-only with a source-level 7777 fallback), the TCP query port = game port + query_port_shift and disabled by default, UPnP/dual-stack binding behaviour, and same-host multi-instance conflict detection.
Firewall Rule Generator
Firewallufw / firewalld / iptables / netsh flavours: the UDP game port is mandatory; the TCP query port is optional and comes with the source-level warning that it is disabled by default and exposes the RA password surface — never presented as required.
SteamCMD Deploy & Launch
Deployapp_update 996560 (freetodownload, anonymous OK), LocalAdmin launch with both EULA acceptance methods, a systemd unit and a Windows bat; states the egg README's "NOT compatible with ServerMod2 or MultiAdmin" verbatim.
LocalAdmin Argument Builder
StartupTick through the official README argument table to build the command line: --restartsLimit/--restartsTimeWindow defaults and their 0/-1 semantics, the documented --noAutoFlush vs --noLogs incompatibility, both EULA acceptance routes, and the -- passthrough separator.
Grouped generation on the current 14.x key set (cross-validated from three live configs, D3) as a full file or a diff-only fragment from one shared value function; the paste pre-checker names unknown/legacy/duplicate keys and never echoes the administrator_query_password value; any violation refuses the whole output.
SteamID64 members validated with BigInt (Number flips the verdict at the boundary); the 19-permission matrix (both D4 readings side by side, ServerConfigs flagged as source-only); badge colours limited to sourced values; override_password ships with the template's all-caps warning verbatim.
SCP: Secret Laboratory Ports & Protocols
| Port | Protocol | Purpose |
|---|---|---|
| 7777 | UDP | Game port (dedicated: set by the LocalAdmin CLI argument; 7777 is the ecosystem default) |
| 7777 | TCP | Query + RemoteAdmin port (SCP:SL own protocol, NOT Steam A2S; = game port + query_port_shift; enable_query defaults to false, i.e. not listening) |
SCP: Secret Laboratory Dedicated Server Install (SteamCMD)
SteamCMD appid 996560
sudo useradd -m -s /bin/bash steam
sudo apt update && sudo apt install -y steamcmd lib32gcc-s1
sudo -u steam -i \
/usr/games/steamcmd +force_install_dir /opt/gameserver \
+login anonymous +app_update 996560 validate +quit
SCP: Secret Laboratory Config file paths
%AppData%/SCP Secret Laboratory/<port>/config_gameplay.txt (Windows)~/.config/SCP Secret Laboratory/<port>/config_gameplay.txt (Linux)<config-root>/<port>/config_remoteadmin.txt<config-root>/SteamIdBans.txt<config-root>/IpBans.txt<config-root>/SteamIDWhitelist.txt<config-root>/ReservedSlots.txt<server-dir>/SCPSL_Data/Managed/LabAPI.dll<server-dir>/MiscData/gameconfig_template.txt
Server notes
The public list only carries verified servers: email [email protected] (public IPv4:port, static/dynamic declaration; sent from the configured contact_email). The full rules live at scpslgame.com/Verified_server_rules.pdf (403-blocked from this sandbox, so none of its figures are paraphrased here); until verified, players join by direct IP only. The TCP query/RA port does not listen by default (enable_query: false) — set administrator_query_password before enabling it. hasServerList=false means this site does not implement the game's own query protocol for live status, not that the game lacks a server list.
FAQ
- Which SCP: Secret Laboratory tools can I use online?
- We list 5 tools for SCP: Secret Laboratory: Joining Servers & Port Semantics, Connection Troubleshooting Checklist, Official Resources & Plugin Ecosystem, Respawn Ticket & Wave Odds Simulator, Speed & Stamina Calculator. All of them run straight in your browser.
- Do these tools cost anything or need installing?
- No. Everything runs in the page: no install, no sign-up, no cost. Enter your values and the result appears instantly, and you can copy the generated configs and commands with one click.