> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wasabihosting.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SCP: Secret Laboratory Server Configuration Guide

> Detailed explanation of SCP:SL server configuration files and settings

# Introduction to SCP:SL Server Configuration

Properly configuring your SCP: Secret Laboratory server is essential for creating an optimal gameplay experience. This guide covers the various configuration files and options available on the Wasabi Hosting Gamepanel.

## Core Configuration Files

SCP:SL servers use several key configuration files:

<Accordion title="Configuration File Overview">
  | File                        | Location    | Purpose                         |
  | --------------------------- | ----------- | ------------------------------- |
  | **config\_gameplay.txt**    | `/.config/` | Gameplay settings and mechanics |
  | **config\_remoteadmin.txt** | `/.config/` | Remote Admin configuration      |
  | **config.txt**              | `/.config/` | Main server settings            |
  | **config\_localadmin.txt**  | `/.config/` | Local Admin configuration       |
  | **permissions.yml**         | `/.config/` | Permission groups and roles     |
  | **7777\_config.yml**        | `/.config/` | Port-specific configuration     |
</Accordion>

## Basic Server Configuration

### Main Configuration (config.txt)

The primary configuration file for your SCP:SL server. Here's a basic template:

```yaml theme={null}
# Server Identity
server_name: My SCP:SL Server
server_ip: auto
server_port: 7777
max_players: 20
hide_server: false

# Game Settings
minimum_delay: 5
maximum_delay: 10
friendly_fire: true
autoround_restart: true
private_game: false

# Security
enable_whitelist: false
administrator_query_password: YourSecurePassword
server_code: YourServerCode

# Network
ip_binding: true
share_non_public_ip: false
use_reserved_slots: true
reserved_slots: 2

# Misc
enable_RA: true
```

<Warning>
  Always change default passwords! Using a weak password exposes your server to potential unauthorized access.
</Warning>

### Gameplay Configuration (config\_gameplay.txt)

This file controls core gameplay mechanics:

```yaml theme={null}
# Round Settings
auto_round_restart_time: 10
lobby_waiting_time: 30
round_start_countdown: 15
warhead_auto_detonate_time: -1

# Respawn Settings
respawn_time_minimum: 15
respawn_time_maximum: 25
minimum_NTF_amount: 3
maximum_NTF_amount: 8
NTF_spawn_wave_chances: 40 40 20
CI_spawn_wave_chances: 50 50

# Friendly Fire
friendly_fire: true
friendly_fire_multiplier: 1.0
friendly_fire_autoban: false
friendly_fire_autoban_threshold: 10
friendly_fire_autoban_time: 30

# Item Settings
item_spawn_multiplier: 1.0
item_despawn_time: 300
dropped_item_despawn_time: 180

# Spectator Settings
allow_spectator_list: true
spectator_only_shouldnt_overwatch: true

# Escape Settings
escape_time_multiplier: 1.0
cuffed_escape_item_policy: Remove

# Tesla Gate Settings
tesla_trigger_time: 2.5
tesla_idle_time: 10.0

# Elevator Settings
elevator_movement_speed: 5.0

# Decontamination
decontamination_time: 690
```

<Info>
  The `warhead_auto_detonate_time` setting of -1 disables automatic warhead detonation. Set to a positive number (in seconds) to enable.
</Info>

### Remote Admin Configuration (config\_remoteadmin.txt)

Configure remote administration access:

```yaml theme={null}
# Remote Admin Settings
enable_remote_admin: true
query_port: 7777
administrator_query_password: YourSecurePassword

# Security
require_authentication: true
ban_non_authenticated_connections: true
max_invalid_login_attempts: 5
invalid_login_attempt_ban_time: 600

# Chat
enable_query_chat: true
remote_admin_chat_commands: true

# Logging
log_commands: true
log_queries: true
log_user_ids: true
```

<Warning>
  Enable `ban_non_authenticated_connections` to prevent brute-force attacks on your Remote Admin panel.
</Warning>

## Permission Groups

Configure permission groups in `permissions.yml`:

```yaml theme={null}
# Default Groups
Groups:
- Name: Owner
  Inheritance:
  - admin
  KickPower: 255
  RequiredKickPower: 255
  Permissions:
  - PlayerSensitiveDataAccess
  - FacilityManagement
  - PlayersManagement
  - ServerConsoleCommands
  - ServerConfigs
  - Overwatch
  - GameplayData
  - Effects
  - ServerEvents
  - Noclip
  - Announcements
  - RoundEvents
  - Broadcasting

- Name: admin
  Inheritance:
  - moderator
  KickPower: 100
  RequiredKickPower: 75
  Permissions:
  - PlayerSensitiveDataAccess
  - FacilityManagement
  - PlayersManagement
  - Overwatch
  - GameplayData
  - Effects
  - Announcements
  - RoundEvents
  - Broadcasting

- Name: moderator
  Inheritance: []
  KickPower: 50
  RequiredKickPower: 25
  Permissions:
  - PlayersManagement
  - Overwatch
  - GameplayData
  - Broadcasting

# User Assignments
Users:
- UserId: 76561198012345678@steam
  Group: Owner
- UserId: 76561198087654321@steam
  Group: admin
```

<Tip>
  Use SteamID64\@steam format for Steam users. Find Steam IDs at [SteamID.io](https://steamid.io/).
</Tip>

## Port-Specific Configuration (7777\_config.yml)

Each server instance can have port-specific settings:

```yaml theme={null}
# Server Identity
server_name: My SCP:SL Server [US-EAST]
server_ip: auto
max_players: 20
show_in_serverlist: true

# Game Mode
friendly_fire: true
allow_reporting: true
contact_email: admin@example.com

# Advanced Settings
afk_time: 120
afk_kick_time: 30
auto_round_restart_time: 10
lobby_waiting_time: 30

# Custom Settings
custom_info:
  enabled: true
  message: "Welcome to our server! Join our Discord: discord.gg/example"
```

## Workshop Configuration

SCP:SL doesn't use Steam Workshop, but supports plugins through frameworks like EXILED.

### EXILED Plugin Framework

To install EXILED:

<Steps>
  <Step title="Download EXILED">
    Download the latest version from the EXILED GitHub releases
  </Step>

  <Step title="Install to server">
    Extract EXILED files to your server's `~/.config/EXILED/` directory
  </Step>

  <Step title="Configure plugins">
    Place plugin DLLs in `~/.config/EXILED/Plugins/` directory
  </Step>

  <Step title="Restart server">
    Restart the server to load EXILED and plugins
  </Step>
</Steps>

<Info>
  EXILED plugins are configured in individual YAML files located in `~/.config/EXILED/Configs/`.
</Info>

## Gamemode Configurations

<Tabs>
  <Tab title="Classic">
    Standard SCP:SL gameplay:

    ```yaml theme={null}
    # config_gameplay.txt
    friendly_fire: true
    respawn_time_minimum: 15
    respawn_time_maximum: 25
    NTF_spawn_wave_chances: 40 40 20
    CI_spawn_wave_chances: 50 50
    warhead_auto_detonate_time: -1
    ```
  </Tab>

  <Tab title="Friendly Fire Off">
    More casual gameplay:

    ```yaml theme={null}
    # config_gameplay.txt
    friendly_fire: false
    respawn_time_minimum: 10
    respawn_time_maximum: 20
    NTF_spawn_wave_chances: 50 30 20
    CI_spawn_wave_chances: 60 40
    ```
  </Tab>

  <Tab title="Hardcore">
    Challenging gameplay:

    ```yaml theme={null}
    # config_gameplay.txt
    friendly_fire: true
    friendly_fire_multiplier: 1.5
    respawn_time_minimum: 30
    respawn_time_maximum: 45
    NTF_spawn_wave_chances: 30 40 30
    CI_spawn_wave_chances: 40 60
    warhead_auto_detonate_time: 900
    item_spawn_multiplier: 0.7
    ```
  </Tab>

  <Tab title="Fast Rounds">
    Quick-paced gameplay:

    ```yaml theme={null}
    # config_gameplay.txt
    friendly_fire: true
    respawn_time_minimum: 5
    respawn_time_maximum: 10
    NTF_spawn_wave_chances: 60 30 10
    CI_spawn_wave_chances: 70 30
    warhead_auto_detonate_time: 480
    decontamination_time: 420
    auto_round_restart_time: 5
    ```
  </Tab>
</Tabs>

## Advanced Settings

### Respawn Ticket System

Control team spawning:

```yaml theme={null}
# Ticket Settings
tickets_respawn_default: 100
team_respawn_queue:
  - NineTailedFox
  - ChaosInsurgency

# Spawn Wave Configuration
NTF_spawn_wave_chances: 40 40 20
CI_spawn_wave_chances: 50 50

# Respawn Timing
respawn_time_minimum: 15
respawn_time_maximum: 25
```

### Custom Intercom Settings

```yaml theme={null}
# Intercom Configuration
intercom_cooldown: 120
intercom_max_speech_time: 20
intercom_custom_speech_limit: 300
intercom_mute_non_admins: false
```

### Warhead Settings

```yaml theme={null}
# Alpha Warhead Configuration
warhead_auto_detonate_time: -1
warhead_lock_time: 15
warhead_detonation_time: 90
warhead_tminus_start_duration: 10
enable_warhead_cancel: true
```

## Security Configuration

### Anti-Cheat Settings

```yaml theme={null}
# Anti-Cheat
enable_anticheat: true
anticheat_tolerance: 0.5
max_items_per_player: 8
max_ammo_per_caliber: 600

# Behavioral Checks
check_player_speed: true
max_player_speed: 10.0
check_noclip: true
```

### Access Control

```yaml theme={null}
# Whitelist Configuration
enable_whitelist: false
whitelist_users:
  - 76561198012345678@steam
  - 76561198087654321@steam

# Reserved Slots
use_reserved_slots: true
reserved_slots: 2
reserved_slots_users:
  - 76561198012345678@steam
  - 76561198087654321@steam
```

## Server Verification

To get your server verified (marked with a checkmark):

<Steps>
  <Step title="Meet requirements">
    Ensure your server meets Northwood's verification requirements
  </Step>

  <Step title="Register account">
    Create an account at [SCP:SL Server Panel](https://api.scpslgame.com/)
  </Step>

  <Step title="Add server">
    Add your server using the server IP and port
  </Step>

  <Step title="Verify ownership">
    Follow the verification process to prove server ownership
  </Step>

  <Step title="Configure settings">
    Set your server code in the panel and in your config.txt file
  </Step>
</Steps>

<Info>
  Verified servers appear higher in the server list and get a verification badge.
</Info>

## Server List Configuration

Control how your server appears in the public server list:

```yaml theme={null}
# Server List Settings
show_in_serverlist: true
hide_server: false
private_game: false

# Server Info
server_name: My Amazing SCP:SL Server
contact_email: admin@example.com

# Custom Info
custom_info:
  enabled: true
  message: "Custom server message visible in the server browser"
```

## Database Configuration

Some plugins may require database configuration. Example for MySQL:

```yaml theme={null}
# Database Settings (plugin-specific)
database:
  type: mysql
  host: localhost
  port: 3306
  username: scpsl_user
  password: YourSecurePassword
  database: scpsl_data
  connection_timeout: 30
```

<Warning>
  Store database passwords securely and use strong passwords. Never share database credentials.
</Warning>

## Log Configuration

Configure server logging:

```yaml theme={null}
# Logging Settings
log_level: Info
log_to_file: true
log_file_path: logs/
log_rotation: daily
max_log_files: 30

# Specific Logging
log_player_connections: true
log_admin_commands: true
log_round_summary: true
log_teamkills: true
```

## Performance Tuning

Optimize server performance:

```yaml theme={null}
# Performance Settings
max_players: 20
afk_time: 120
afk_kick_time: 30

# Entity Limits
max_items_per_player: 8
dropped_item_despawn_time: 180
ragdoll_cleanup_time: 10

# Network Optimization
network_compression: true
tick_rate: 60
send_rate: 60
```

<Tip>
  Lower tick rates (30-60) can improve performance on servers with limited resources while maintaining acceptable gameplay quality.
</Tip>

## Startup Parameters

Configure these in the Wasabi Hosting Gamepanel:

```
-port 7777 -maxplayers 20 -nographics -batchmode -nodedicateddelete
```

<Accordion title="Parameter Explanation">
  | Parameter            | Description             | Recommended       |
  | -------------------- | ----------------------- | ----------------- |
  | `-port`              | Server port             | 7777 (default)    |
  | `-maxplayers`        | Maximum players         | 20-25 for balance |
  | `-nographics`        | Disable graphics        | Always use        |
  | `-batchmode`         | Run in batch mode       | Always use        |
  | `-nodedicateddelete` | Prevent config deletion | Always use        |
  | `-logFile`           | Custom log location     | Optional          |
</Accordion>

## Common Plugin Configurations

<Accordion title="Common Utilities (EXILED Plugin)">
  ```yaml theme={null}
  # Common Utilities Config
  common_utilities:
    is_enabled: true

    # Utility Features
    better_096:
      is_enabled: true
      trigger_distance: 10

    better_disarmer:
      is_enabled: true
      disarm_time: 3

    # Quality of Life
    auto_warhead_start:
      is_enabled: false
      time: 600

    spawn_protection:
      is_enabled: true
      duration: 10
  ```
</Accordion>

<Accordion title="Admin Tools (EXILED Plugin)">
  ```yaml theme={null}
  # Admin Tools Config
  admin_tools:
    is_enabled: true

    # Teleportation
    allow_tp_command: true
    tp_requires_permission: true

    # Item Spawning
    allow_item_spawn: true
    item_spawn_permission: admintools.items

    # Player Management
    god_mode_enabled: true
    noclip_enabled: true
  ```
</Accordion>

## Troubleshooting Configuration Issues

<Accordion title="Server Won't Start">
  1. Check for YAML syntax errors in configuration files
  2. Verify port availability (not used by another service)
  3. Ensure file permissions are correct
  4. Check server logs for specific error messages
  5. Validate all file paths are correct
</Accordion>

<Accordion title="Players Can't Connect">
  1. Verify server is running and visible in server list
  2. Check firewall settings allow port 7777
  3. Ensure `show_in_serverlist` is true
  4. Verify `hide_server` is false
  5. Check server isn't full or private
</Accordion>

<Accordion title="Remote Admin Issues">
  1. Verify Remote Admin is enabled
  2. Check password is set correctly
  3. Ensure user has proper permissions in permissions.yml
  4. Verify SteamID format is correct (SteamID64\@steam)
  5. Try restarting the server after permission changes
</Accordion>

## Configuration Best Practices

1. **Always backup** configuration files before editing
2. **Test changes** on a development server first
3. **Use version control** to track configuration changes
4. **Document custom settings** for your team
5. **Monitor performance** after configuration changes
6. **Keep plugins updated** to latest compatible versions
7. **Review logs regularly** for errors or warnings

By following this configuration guide, you can create a well-optimized and properly configured SCP: Secret Laboratory server on Wasabi Hosting. If you need further assistance, contact our support team.

<Card title="Get your own SCP: Secret Laboratory server" icon="rocket" href="https://wasabihosting.com/game-servers/scp-sl">
  Deploy a DDoS-protected SCP: Secret Laboratory server on AMD Ryzen hardware in about two minutes. Plans start at €8.00/month.
</Card>
