Skip to main content

2. Gameplay Config Setup

The config_gameplay.txt file (often simply referred to as the Gameplay Config file) is used to set up many of the core functions of an SCP:SL server.

Config Paths

    Windows: AppData\Roaming\SCP Secret Laboratory\config\<port>
      You can press Windows button + R and enter AppData\Roaming\SCP Secret Laboratory\config, This will directly take you to the config folder. Linux: .config/SCP Secret Laboratory/config/<port> under the user you are running LocalAdmin in.

      Misc

      Change warhead and intercom timers, friendly fire, etc.

      Config Field Description Type Default Value
      server_forced_class   int -1
      map_seed Set the server map seed int -1
      heavily_modded_server
      bool default
      custom_whitelist
      bool false
      server_access_restriction
      bool false
      transparently_modded_server if your server is a Transparently Modded Server according to the definition that can be found in the Verified Server Rules.
      bool false

      Server main settings

      Config Field Description Type Default Value
      server_name Server name string My Server Name
      player_list_title Title of the playerlist string default
      player_list_title_rate how often title of the playerlist is updated int default
      serverinfo_pastebin_id Pastebin ID for the server description
      string 7wV681fT
      server_ip Server IP that gets sent to the serverlist
      string 0.0.0.0
      max_players Server player limit int 20
      server_tickrate   int 60
      use_reserved_slots Enable or disable reserved slots bool true
      lobby_waiting_time Time on the waiting for players screen int default
      use_native_sockets
      bool true
      ipv4_bind_ip IPv4 address for the server to listen on
      string 0.0.0.0
      ipv6_bind_ip IPv6 address for the server to listen on string ::
      contact_email Contact email for the verification team to contact you by string default

      Spawn settings

      Config Field Description Type Default Value
      minimum_MTF_time_to_spawn   int 280
      maximum_MTF_time_to_spawn
      int 350
      maximum_MTF_respawn_amount
      int 15
      maximum_CI_respawn_amount
      int 15
      priority_mtf_respawn
      bool true
      use_crypto_rng
      bool false
      team_respawn_queue

      default
      late_join_time How long after the round starts can someone join and get spawned int 0

      Player Info Range

      Config Field Description Type Default Value
      player_info_range This controls the default range that the player information text appears on clients. int 10

      Respawn ticket system settings

      Each NTF or CI player spawned in consumes one ticket.
      # We recommend keeping this on for game balance!
      #
      # Warning: Even if you disable the system, the tickets ratio for MTF/CI will still determine their spawn chance. 

      # Ticket counts (initial)
      # The ratio of MTF-to-CI tickets directly determines which team has a higher chance of spawning.
      # The initial settings (24:18) give around 42.8% chance for the CI to spawn instead of the MTF.
      # The CI spawn chance can be calculated by this formula: CI_TICKETS / (MTF_TICKETS + CI_TICKETS) * 100%

      Config Field Description Type Default Value
      respawn_tickets_enable Enable or disable the ticket system bool true
      respawn_tickets_mtf_initial_count

      default
      respawn_tickets_ci_initial_count

      default
      respawn_tickets_mtf_classd_cuffed_escape_count

      default
      respawn_tickets_mtf_scientist_escape_count

      default
      respawn_tickets_mtf_scp_hurt_escape_count

      default
      respawn_tickets_ci_classd_escape_count

      default
      respawn_tickets_ci_scientist_cuffed_escape_count

      default
      respawn_tickets_ci_scientist_died_count

      default
      respawn_tickets_ci_scp_item_count

      default
      respawn_tickets_mtf_scp_hurt_interval

      default

      Stamina

      Config Field Description Type Default Value
      stamina_balance_use The percentage of stamina used per second while sprinting.
      Stamina is currently only utilized on humans.
      0 to disable, but this *will* cause weirdness with status effects and other mechanics, so we recommend keeping it on!
      double 0.05
      stamina_balance_immunity The time (in seconds) that newly-spawned players can sprint without consuming stamina. Used to reduce visual artifacts.
      We recommend to put it at least 2 seconds
      int 3
      stamina_balance_regen_cd The seconds that must pass before stamina starts regenerating after the player stops sprinting.
      Lower values are more liekly to be exploited by players
      Higher higher can be annoying to players.
      int 1
      stamina_balance_regen_speed How fast the stamina regenerates.
      This is a multiplier for the default setting,
      which is based on a curve - not a specific value.
      int 1
      stamina_balance_walk_speed Multiplier for human walk speed.
      Default speed before multiplier is 4.5 m/s.
      double 1.2
      stamina_balance_sprint_speed Multiplier for human sprint speed.
      Default speed before multiplier is 7 m/s.
      double 1.05

      Misc gameplay settings

      Config Field Description Type Default Value
      intercom_cooldown time before intercom becomes available again int 120
      intercom_max_speech_time
      int 20
      auto_round_restart_time
      int 10
      friendly_fire
      bool false
      friendly_fire_multiplier
      double 0.4
      warhead_tminus_start_duration
      int 90
      lock_gates_on_countdown
      bool true
      isolate_zones_on_countdown
      bool false
      open_doors_on_countdown
      bool true
      keep_items_after_escaping
      bool true
      allow_playing_as_tutorial
      bool true
      disable_decontamination
      bool false
      096_destroy_locked_doors
      bool true
      no_holidays
      bool false
      allow_disarmed_interaction
      bool false
      914_mode

      DroppedAndHeld/Inventory/DroppedAndInventory/Held/Dropped

      String default
      sinkhole_slow_amount
      int 30
      sinkhole_spawn_chance
      int 0
      disconnect_drop
      bool true
      end_round_on_one_player
      bool false
      cuffed_escapee_change_team
      bool true
      pd_exit_count how many exits in pd int 2

      AFK Settings

      Config Field Description Type Default Value
      afk_time time for someone to be detected as afk (079 gets extra 13 seconds) int 90
      constantly_check_afk
      bool false
      afk_kick_message
      string AFK

      Spawn Protection

      Config Field Description Type Default Value
      spawn_protect_disable Disable spawn protection. bool true
      spawn_protect_time Spawn protection length in seconds. int 30
      spawn_protect_team Spawn protection enabled for selected team(s).
      1, 2 (MTF, Chaos Insurgents)
      spawn_protect_allow_dmg Allow spawn protected players to deal damage. bool true

      Auto Event Broadcast Settings

      Config Field Description Type Default Value
      auto_warhead_start_minutes How long it takes for the warhead to start int 0
      auto_warhead_lock Is the warhead able to be cancelled? bool true
      auto_warhead_broadcast_enabled Enable broadcast for auto warhead bool false
      auto_warhead_broadcast_message Message for auto broadcast string The Alpha Warhead is being detonated
      auto_warhead_broadcast_time Broadcast time int 10
      auto_warhead_detonate_broadcast End of detonation broadcast string The Alpha Warhead has been detonated now
      auto_warhead_detonate_broadcast_time Broadcast time int 10
      auto_decon_broadcast_enabled enable broadcast bool false
      auto_decon_broadcast_message Decontamination broadcast string Light Containment Zone is now decontaminated
      auto_decon_broadcast_time Broadcast time int 10

      Deadman's Switch settings

      Config Field Description Type Default Value
      dms_enabled If deadmans switch should be enabled bool true
      dms_activation_time
      int 240

      Metrics

      Config Field Description Type Default Value
      save_metrics Metrics are used to anonymously track players' in-game activities and can be used to improve gameplay balance.
      If set to 'true', the game will generate a JSON file containing collected metrics at the end of the round, which will be stored locally.
      bool true

      Security & Anticheat

      Config Field Description Type Default Value
      online_mode Enables connection to central servers bool true
      ip_banning Enables IP banning. bool true
      enable_whitelist Allows only whitelisted users to join. bool false
      forward_ports Enables automatic port forwarding.Note: router must have enabled UPnP support to make this work. bool true
      enable_query Enables query protocol (TCP port). bool false
      query_port_shift Determines shift between game port and query port. int 0
      query_bind_ip1 IPv4 address to listen to
      string 0.0.0.0
      query_socket_ip1_dualmode
      bool false
      query_socket_ip1_linger
      bool false
      query_bind_ip2 IPv6 address to listen to string ::
      query_socket_ip2_dualmode
      bool false
      query_socket_ip2_linger
      bool false
      query_rx_buffer_size
      int 4096
      query_administrator_password Sets administrator password for query procol. string none
      query_permissions
      long 18446744073709551615
      query_kick_power
      int 255
      query_clients_limit
      int 10
      query_timeout_time
      int 10000
      query_maximum_time_difference
      int 120
      connections_delay_time Time to send to clients for how long they should wait on the round restart screen before attempting to connect to the server again int 5
      enable_sync_command_binding
      bool false
      ratelimit_kick Kicks user after exceeding commands rate limits (otherwise just disallows command execution). bool true
      same_account_joining Allow the same account to join more than once?
      bool false
      anticheat_console_output output anticheat stuff to console bool false
      enable_fast_round_restart restart the round fast (can be buggy) bool false
      fast_round_restart_delay
      double 3.2
      display_preauth_logs


      rejection_suppression_threshold


      challenge_issuance_suppression_threshold






      preauth_challenge
      bool true
      preauth_challenge_mode Reply - prevents from flooding server with preauth requests from spoofed IP addresses
      MD5 or SHA1 - prevents from flooding with preauth requests from legitimate IP addresses as well. Requires additional time to join the server.
      string reply
      preauth_challenge_base_length
      int 10
      preauth_challenge_time_window
      int 12
      preauth_challenge_clean_period
      int 4
      preauth_challenge_secret_length Only for MD5 and SHA1 challenges (higher value = longer time required to join the server) int 2
      enforce_same_ip This enforces the player to be using same IP address to connect to the game and authenticate. Enabling this blocks proxies. Not enforced if player joined from IPv4 and authenticated from IPv6 or viceversa.
      bool true
      no_enforcement_for_local_ip_addresses
      bool true
      enforce_same_asn This enforces that the IP address used to connect to the game and authenticate must be assigned to the same Internet Service Provider (ISP).
      Works only on servers on the public list. This is less restrictive that "enforce_same_ip" and blocks most of the proxies.
      bool true

      Connections ratelimiting

      Ratelimit time windows define how often user with the same IP/UserID can initialize new connection (once per X seconds).

      Config Field Description Type Default Value
      enable_ip_ratelimit   bool true
      enable_userid_ratelimit
      bool true
      ip_ratelimit_window Time between connections per ip int 3
      userid_ratelimit_window Time between connections per userid
      int 5

      Item & Ammo limits

      Item category limits -
      Values of 0 are NOT unlimited and will prevent item pickups of that type entirely!
      The inventory can hold a max of 8 items, so a limit of 8 is effectively unlimited.

      Config Field Description Type Default Value
      limit_category_grenade   int default
      limit_category_keycard
      int default
      limit_category_medical
      int default
      limit_category_scpitem
      int default
      limit_category_firearm
      int default

      Ammo type limits
      Values from 1 to 65k.

      Config Field Description Type Default Value
      limit_ammo12ga   int default
      limit_ammo556x45
      int default
      limit_ammo44cal
      int default
      limit_ammo762x39
      int default
      limit_ammo9x19
      int default

      Friendly Fire

      #Action is performed if someone either kills enough teammates OR deals enough damage to teammates.
      #Set kills or damage to 0 to disable that threshold.
      #Detectors priority: Respawn (kill), Window (kill), Life (kill), Round (kill), Respawn (damage), Window (damage), Life (damage), Round (damage)
      #Actions: kill, kick, ban, noop (no operation - do nothing, eg. to enable logging)
      #Damage dealt AFTER round end is ignored.

      Config Field Description Type Default Value
      ff_detector_global_broadcast_seconds Specifies the broadcast time length in seconds in which the broadcast is visible. int 5
      ff_detector_global_adminchat_seconds


      ff_detector_classD_can_damage_classD


      ff_detector_webhook_url


      #Per round


      ff_detector_round_enabled
      bool false
      ff_detector_round_kills
      int 6
      ff_detector_round_damage
      int 500
      ff_detector_round_action
      string ban
      ff_detector_round_ban_time
      string 24h
      ff_detector_round_bankick_reason
      string You have been automatically banned for teamkilling.
      ff_detector_round_kill_reason
      string You have been automatically killed for teamkilling.
      ff_detector_round_adminchat_enable
      bool false
      ff_detector_round_adminchat_message
      string %nick has been banned for teamkilling (round detector).
      ff_detector_round_broadcast_enable
      bool true
      ff_detector_round_broadcast_message
      string %nick has been automatically banned for teamkilling.
      ff_detector_round_webhook_report
      bool true
      #Per life (resets on respawn)


      ff_detector_life_enabled
      bool false
      ff_detector_life_kills
      int 4
      ff_detector_life_damage
      int 300
      ff_detector_life_action
      string ban
      ff_detector_life_ban_time
      string 24h
      ff_detector_life_bankick_reason
      string You have been automatically banned for teamkilling.
      ff_detector_life_kill_reason
      string You have been automatically killed for teamkilling.
      ff_detector_life_adminchat_enable
      bool false
      ff_detector_life_adminchat_message
      string %nick has been banned for teamkilling (life detector).
      ff_detector_life_broadcast_enable
      bool true
      ff_detector_life_broadcast_message
      string %nick has been automatically banned for teamkilling.
      ff_detector_life_webhook_report
      bool true
      #In a specified time window



      ff_detector_window_enabled
      bool false
      ff_detector_window_seconds
      int 180
      ff_detector_window_kills
      int 3
      ff_detector_window_damage
      int 250
      ff_detector_window_action
      string ban
      ff_detector_window_ban_time
      string 16h
      ff_detector_window_bankick_reason
      string You have been automatically banned for teamkilling.
      ff_detector_window_kill_reason
      string You have been automatically killed for teamkilling.
      ff_detector_window_adminchat_enable
      bool false
      ff_detector_window_adminchat_message
      string %nick has been banned for teamkilling (window detector).
      ff_detector_window_broadcast_enable
      bool true
      ff_detector_window_broadcast_message
      string %nick has been automatically banned for teamkilling.
      ff_detector_window_webhook_report
      bool true
      #In a specified time window AFTER RESPAWN




      ff_detector_spawn_enabled
      bool true
      ff_detector_spawn_window_seconds
      int 120
      ff_detector_spawn_kills
      int 2
      ff_detector_spawn_damage
      int 180
      ff_detector_spawn_action
      string ban
      ff_detector_spawn_ban_time
      string 48h
      ff_detector_spawn_bankick_reason
      string You have been automatically banned for teamkilling.
      ff_detector_spawn_kill_reason
      string You have been automatically killed for teamkilling.
      ff_detector_spawn_adminchat_enable
      bool false
      ff_detector_spawn_adminchat_message
      string %nick has been banned for teamkilling (spawn detector).
      ff_detector_spawn_broadcast_enable
      bool true
      ff_detector_spawn_broadcast_message
      string %nick has been automatically banned for teamkilling.
      ff_detector_spawn_webhook_report
      bool true
      #Kills made with explosions (eg. grenades) after DISCONNECTING from a server (eg. throwing a grenade and immediately closing the game)



      ff_detector_explosion_after_disconnecting_enabled
      bool true
      ff_detector_explosion_after_disconnecting_action
      string ban
      ff_detector_explosion_after_disconnecting_ban_time
      string 48h
      ff_detector_explosion_after_disconnecting_bankick_reason
      string You have been automatically banned for teamkilling.
      ff_detector_explosion_after_disconnecting_adminchat_enable
      bool false
      ff_detector_explosion_after_disconnecting_adminchat_message
      string %nick has been banned for teamkilling (explosion after disconnecting detector).
      ff_detector_explosion_after_disconnecting_broadcast_enable
      bool true
      ff_detector_explosion_after_disconnecting_broadcast_message
      string %nick has been automatically banned for teamkilling.
      ff_detector_explosion_after_disconnecting_webhook_report
      bool true

      Port queue

      Config Field Description Type Default Value
      port_queue port_queue is for NONDEDICATED SERVERS ONLY
       - 7777
       - 7778
       - 7779
       - 7780
       - 7781
       - 7782
       - 7783
       - 7784

      Few ban settings

      Config Field Description Type Default Value
      gban_ban_ip Enabling this will automatically ban IP of players on the server that receives a Global Ban by a Global Moderator. (Defaults to false) bool default
      ban_nickname_maxlength

      default
      ban_nickname_trimunicode

      default

      Nickname Filtering with Regex

      Config Field Description Type Default Value
      nickname_filter
      list default
      nickname_filter_replacement
      list default

      Administration Broadcast

      Config Field Description Type Default Value
      broadcast_kicks Enable broadcasts for player kicks. bool false
      broadcast_kick_text Text that is displayed when a player gets kicked. string %nick% has been kicked from this server.
      broadcast_kick_duration Broadcast message duration in seconds. int 5
      broadcast_bans Enable broadcasts for player bans. bool true
      broadcast_ban_text Text that is displayed when a player gets banned. string %nick% has been banned from this server.
      broadcast_ban_duration Broadcast message duration in seconds. int 5

      Idle mode options

      Config Field Description Type Default Value
      idle_mode_enabled Enable or disable idle mode bool false
      idle_mode_time Time in milliseconds until idle mode enables int 5000
      idle_mode_preauth_time   int 30000
      idle_mode_tickrate
      int 1

      Player Report

      Config Field Description Type Default Value
      report_send_using_discord_webhook Send report using webhooks bool false
      report_discord_webhook_url Enter the discord channel webhook URL here string PleaseSetWebhookUrlHere
      report_username Webhook username string Cheater Report
      report_avatar_url Webhook avatar string default
      report_color Webhook embed message color int 14423100
      report_server_name Webhook embed servername field content
      string My SCP:SL Server
      report_header Webhook embed message header string Player Report
      report_content Webhook embed messsage content string Player has just been reported.

      Restart options

      Config Field Description Type Default Value
      full_restart_rejoin_time Amount of time after client should rejoin after a full server restart int 25
      restart_after_rounds Set autorestart of the server after a specified amount of rounds (0 - disabled int 0

      Geoblocking

      Block players from certain regions from playing on your server.

      Config Field Description Type Default Value
      geoblocking_mode Changes the mode for geoblocking. string none
      geoblocking_ignore_whitelisted list of players who bypass geoblocking. bool true
      geoblocking_whitelist country codes to whitelist.    - AA
       - AB
       - AC
      geoblocking_blacklist country codes to blacklist.    - AA
       - AB
       - AC