Skip to content

Repository files navigation

Looking for ServerMod?

ServerMod is on its own repo now: https://github.com/ServerMod/Smod2/

MultiAdmin

MultiAdmin is a replacement server tool for SCP: Secret Laboratory, which was built to help enable servers to have multiple configurations per server instance.

The latest release can be found here: Release link

Please check the Installation Instructions for information about installing and running MultiAdmin.

Discord

You can join our Discord server here: https://discord.gg/8nvmMTr

Installation Instructions:

Make sure that you are running Mono 5.18.0 or higher, otherwise you might have issues. The latest Mono release can be found here: https://www.mono-project.com/download/stable.

Running a Single Server with MultiAdmin

  1. Place MultiAdmin.exe in your root server directory (next to LocalAdmin.exe)

Running Multiple Servers with MultiAdmin

  1. Place MultiAdmin.exe in your root server directory (next to LocalAdmin.exe)
  2. Create a new directory defined by servers_folder (servers by default)
  3. For each server you'd like, create a directory within the servers_folder directory
  4. Optional: Create a file named scp_multiadmin.cfg within your server's folder for configuring MultiAdmin specifically for that server

Features

  • Config Generator: Generates a full default MultiAdmin config file
  • Config Reload: Reloads the MultiAdmin configuration file
  • Exit Command: Adds a graceful exit command
  • Folder Copy Round Queue: Copies files from folders in a queue
  • GitHub Generator: Generates a GitHub README file outlining all the features/commands
  • Help: Display a full list of MultiAdmin commands and in game commands
  • Restart On Low Memory: Restarts the server if the working memory becomes too low
  • MultiAdminInfo: Prints MultiAdmin license and version information
  • New Server: Adds a command to start a new server given a config folder and a config to start a new server when one is full [Config Requires Modding]
  • Restart Command: Allows the game to be restarted without restarting MultiAdmin
  • Restart Next Round: Restarts the server after the current round ends [Requires Modding]
  • Restart After a Number of Rounds: Restarts the server after a number rounds completed [Requires Modding]
  • Stop Next Round: Stops the server after the current round ends [Requires Modding]
  • TitleBar: Updates the title bar with instance based information

MultiAdmin Commands

This does not include ingame commands, for a full list type HELP in MultiAdmin which will produce all commands.

  • CONFIGGEN [FILE LOCATION]: Generates a full default MultiAdmin config file
  • CONFIG : Reloads the configuration file
  • EXIT: Exits the server
  • GITHUBGEN [FILE LOCATION]: Generates a GitHub README file outlining all the features/commands
  • HELP: Prints out available commands and their function
  • INFO: Prints MultiAdmin license and version information
  • NEW : Starts a new server with the given Server ID
  • RESTART: Restarts the game server (MultiAdmin will not restart, just the game)
  • RESTARTNEXTROUND: Restarts the server at the end of this round [Requires Modding]
  • STOPNEXTROUND: Stops the server at the end of this round [Requires Modding]

MultiAdmin Execution Arguments

The arguments available for running MultiAdmin with

  • --headless or -h: Runs MultiAdmin in headless mode, this makes MultiAdmin not accept any input at all and only output to log files, not in console (Note: This argument is inherited by processes started by this MultiAdmin process)
  • --server-id <Server ID> or -id <Server ID>: The Server ID to run this MultiAdmin instance with a config location (--config or -c) so that it reads the configs from the location, but stores the logs in the Server ID's folder
  • --config <Config Location> or -c <Config Location>: The config location to use for this MultiAdmin instance (Note: This is used over the config option config_location)
  • --port <Server Port> or -p <Server Port>: The port to use for this MultiAdmin instance (Note: This is used over the config option port and is inherited by processes started by this MultiAdmin process)

Config Settings

All configuration settings go into a file named scp_multiadmin.cfg in the same directory as MultiAdmin.exe or in your server directory within the servers_folder value defined in the global configuration file Any configuration files within the directory defined by servers_folder will have it's values used for that server over the global configuration file

Config OptionValue TypeDefault ValueDescription
config_locationStringEmptyThe default location for the game to use for storing configuration files (a directory)
appdata_locationStringEmptyThe location for the game to use for AppData (a directory)
disable_config_validationBooleanFalseDisable the config validator
share_non_configsBooleanTrueMakes all files other than the config files store in AppData
multiadmin_log_locationStringlogsThe folder that MultiAdmin will store logs in (a directory)
multiadmin_nologBooleanFalseDisable logging to file
multiadmin_debug_logBooleanTrueEnables MultiAdmin debug logging, this logs to a separate file than any other logs
multiadmin_debug_log_blacklistString ListHandleMessage, StringMatches, MessageListenerWhich tags to block for MultiAdmin debug logging
multiadmin_debug_log_whitelistString ListEmptyWhich tags to log for MultiAdmin debug logging (Defaults to logging all if none are provided)
use_new_input_systemBooleanTrueWhether to use the new input system, if false, the original input system will be used
portUnsigned Integer7777The port for the server to use
copy_from_folder_on_reloadStringEmptyThe location of a folder to copy files from into the folder defined by config_location whenever the configuration file is reloaded
folder_copy_whitelistString ListEmptyThe list of file names to copy from the folder defined by copy_from_folder_on_reload (accepts * wildcards)
folder_copy_blacklistString ListEmptyThe list of file names to not copy from the folder defined by copy_from_folder_on_reload (accepts * wildcards)
folder_copy_round_queueString ListEmptyThe location of a folder to copy files from into the folder defined by config_location after each round, looping through the locations
folder_copy_round_queue_whitelistString ListEmptyThe list of file names to copy from the folders defined by folder_copy_round_queue (accepts * wildcards)
folder_copy_round_queue_blacklistString ListEmptyThe list of file names to not copy from the folders defined by folder_copy_round_queue (accepts * wildcards)
randomize_folder_copy_round_queueBooleanFalseWhether to randomize the order of entries in folder_copy_round_queue
manual_startBooleanFalseWhether or not to start the server automatically when launching MultiAdmin
max_memoryDecimal2048The amount of memory in megabytes for MultiAdmin to check against
restart_low_memoryDecimal400Restart if the game's remaining memory falls below this value in megabytes
restart_low_memory_roundendDecimal450Restart at the end of the round if the game's remaining memory falls below this value in megabytes
random_input_colorsBooleanFalseRandomize the new input system's colors every time a message is input
restart_every_num_roundsInteger-1Restart the server every number of rounds
restart_every_num_rounds_countingBooleanFalseWhether to print the count of rounds passed after each round if the server is set to restart after a number of rounds
safe_server_shutdownBooleanTrueWhen MultiAdmin closes, if this is true, MultiAdmin will attempt to safely shutdown all servers
safe_shutdown_check_delayInteger100The time in milliseconds between checking if a server is still running when safely shutting down
safe_shutdown_timeoutInteger10000The time in milliseconds before MultiAdmin gives up on safely shutting down a server
server_restart_timeoutDouble10The time in seconds before MultiAdmin forces a server restart if it doesn't respond to the regular restart command
server_stop_timeoutDouble10The time in seconds before MultiAdmin forces a server shutdown if it doesn't respond to the regular shutdown command
server_start_retryBooleanTrueWhether to try to start the server again after crashing
server_start_retry_delayInteger10000The time in milliseconds to wait before trying to start the server again after crashing
servers_folderStringserversThe location of the servers folder for MultiAdmin to load multiple server configurations from
set_title_barBooleanTrueWhether to set the console window's titlebar, if false, this feature won't be used
start_config_on_fullStringEmptyStart server with this config folder once the server becomes full [Requires Modding]

About

SCP: Secret Labratory Server modification to support different configs per instance plus a whole lot of other features

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages