### Install EXILED Linux Installer with Path Source: https://github.com/exiled-team/exiled/blob/master/README.md Runs the EXILED Linux installer executable, specifying the server installation path using the `--path` argument. ```Shell ./Exiled.Installer-Linux --path /path/to/server ``` -------------------------------- ### Run EXILED Linux Pre-release Installer Directly Source: https://github.com/exiled-team/exiled/blob/master/README.md Executes the EXILED Linux installer directly by providing its full path `/home/scp/server/Exiled.Installer-Linux`, including the `--pre-releases` flag to install the latest pre-release version. ```Shell /home/scp/server/Exiled.Installer-Linux --pre-releases ``` -------------------------------- ### Install EXILED Linux Pre-release with Path Source: https://github.com/exiled-team/exiled/blob/master/README.md Runs the EXILED Linux installer, specifying the server path `/home/scp/server` and including the `--pre-releases` flag to install the latest pre-release version. ```Shell ./Exiled.Installer-Linux /home/scp/server --pre-releases ``` -------------------------------- ### Basic Exiled Installation (Linux) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Installation/Automatic/Linux.md Example command to run the Exiled installer in the current directory, including pre-release versions. ```shell ./Exiled.Installer-Linux --pre-releases ``` -------------------------------- ### Run EXILED Linux Installer (Current Directory) Source: https://github.com/exiled-team/exiled/blob/master/README.md Executes the EXILED Linux installer from the current working directory. This command is used after navigating to the server folder. ```Shell ./Exiled.Installer-Linux ``` -------------------------------- ### Basic installation in the folder you are in Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Installation/Automatic/Windows.md This command runs the EXILED installer executable from the current directory using PowerShell. The `--pre-releases` flag includes pre-release versions during the installation process. ```powershell .\Exiled.Installer-Win --pre-releases ``` -------------------------------- ### Download File with Wget (Linux) Source: https://github.com/exiled-team/exiled/blob/master/README.md Downloads a file from a specified URL using the `wget` command-line utility. Used here to download the `Exiled.tar.gz` file via SSH. ```Shell wget (link_to_download) ``` -------------------------------- ### Exiled Installation with Specific Path, AppData, and Version (Linux) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Installation/Automatic/Linux.md Example command demonstrating how to install a specific version of Exiled to a custom server directory and specify a separate AppData folder. ```shell ./Exiled.Installer-Linux -p /home/user/scpsl/server --appdata /home/user/scpsl --target-version 2.0.8 ``` -------------------------------- ### Install Exiled with Pre-releases (Current Directory) - Shell Source: https://github.com/exiled-team/exiled/blob/master/Exiled.Installer/README.md Demonstrates running the Exiled Linux installer with the `--pre-releases` flag to install the latest pre-release version into the current directory and the default AppData path. ```shell user@user:~/SCP# ./Exiled.Installer-Linux --pre-releases Exiled.Installer-Linux-3.2.3.0 AppData folder: YourAppDataPath Exiled folder: YourAppDataPath Receiving releases... Prereleases included - True Target release version - (null) Searching for the latest release that matches the parameters... Trying to find release.. Release found! PRE: True | ID: 87710626 | TAG: 6.0.0-beta.18 Asset found! ID: 90263995 | NAME: Exiled.tar.gz | SIZE: 1027928 | URL: https://api.github.com/repos/Exiled-Team/Exiled-EA/releases/assets/90263995 | DownloadURL: https://github.com/Exiled-Team/Exiled-EA/releases/download/6.0.0-beta.18/Exiled.tar.gz Processing 'EXILED/Plugins/dependencies/0Harmony.dll' Extracting '0Harmony.dll' into 'YourAppDataPath/EXILED/Plugins/dependencies/0Harmony.dll'... Processing 'EXILED/Plugins/dependencies/Exiled.API.dll' Extracting 'Exiled.API.dll' into 'YourAppDataPath/EXILED/Plugins/dependencies/Exiled.API.dll'... Processing 'EXILED/Plugins/dependencies/SemanticVersioning.dll' Extracting 'SemanticVersioning.dll' into 'YourAppDataPath/EXILED/Plugins/dependencies/SemanticVersioning.dll'... Processing 'EXILED/Plugins/dependencies/YamlDotNet.dll' Extracting 'YamlDotNet.dll' into 'YourAppDataPath/EXILED/Plugins/dependencies/YamlDotNet.dll'... Processing 'EXILED/Plugins/Exiled.CreditTags.dll' Extracting 'Exiled.CreditTags.dll' into 'YourAppDataPath/EXILED/Plugins/Exiled.CreditTags.dll'... Processing 'EXILED/Plugins/Exiled.CustomItems.dll' Extracting 'Exiled.CustomItems.dll' into 'YourAppDataPath/EXILED/Plugins/Exiled.CustomItems.dll'... Processing 'EXILED/Plugins/Exiled.CustomRoles.dll' Extracting 'Exiled.CustomRoles.dll' into 'YourAppDataPath/EXILED/Plugins/Exiled.CustomRoles.dll'... Processing 'EXILED/Plugins/Exiled.Events.dll' Extracting 'Exiled.Events.dll' into 'YourAppDataPath/EXILED/Plugins/Exiled.Events.dll'... Processing 'EXILED/Plugins/Exiled.Permissions.dll' Extracting 'Exiled.Permissions.dll' into 'YourAppDataPath/EXILED/Plugins/Exiled.Permissions.dll'... Processing 'EXILED/Plugins/Exiled.Updater.dll' Extracting 'Exiled.Updater.dll' into 'YourAppDataPath/EXILED/Plugins/Exiled.Updater.dll'... Processing 'SCP Secret Laboratory/PluginAPI/plugins/7777/dependencies/Exiled.API.dll' Extracting 'Exiled.API.dll' into 'YourAppDataPath/SCP Secret Laboratory/PluginAPI/plugins/7777/dependencies/Exiled.API.dll'... Processing 'SCP Secret Laboratory/PluginAPI/plugins/7777/dependencies/YamlDotNet.dll' Extracting 'YamlDotNet.dll' into 'YourAppDataPath/SCP Secret Laboratory/PluginAPI/plugins/7777/dependencies/YamlDotNet.dll'... Processing 'SCP Secret Laboratory/PluginAPI/plugins/7777/Exiled.Loader.dll' Extracting 'Exiled.Loader.dll' into 'YourAppDataPath/SCP Secret Laboratory/PluginAPI/plugins/7777/Exiled.Loader.dll'... Installation complete ``` -------------------------------- ### Start Local Development Server with Yarn Source: https://github.com/exiled-team/exiled/blob/master/docs/README.md Starts a local development server for the project using yarn. This command typically opens a browser window and enables live reloading for most changes without requiring a server restart. ```bash $ yarn start ``` -------------------------------- ### Example Output of Dynamic Update Handling (Bash) Source: https://github.com/exiled-team/exiled/blob/master/GettingStarted.md This bash output shows the sequence of events and the value of the counter variable when the C# code snippet is executed and the plugin is reloaded. It illustrates how the counter increments correctly across the reload, demonstrating the persistence achieved by using the `OnReload` method to save the state in a static variable. ```bash # On enable fires 1 # Reload command # On Disable fires 2 # On Reload fires # On Enable fires again 3 ``` -------------------------------- ### Install Dependencies with Yarn Source: https://github.com/exiled-team/exiled/blob/master/docs/README.md Installs the necessary project dependencies using the yarn package manager. ```bash $ yarn ``` -------------------------------- ### Installation in a specific folder, specific version and specific appdata folder Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Installation/Automatic/Windows.md This command runs the EXILED installer specifying custom parameters. `-p` sets the server path, `--appdata` forces a specific AppData folder, and `--target-version` specifies the exact EXILED version to install. ```powershell .\Exiled.Installer-Win -p D:\Games\SCPSL\Server --appdata C --target-version 2.0.8 ``` -------------------------------- ### Install Exiled to Specific Directories - Shell Source: https://github.com/exiled-team/exiled/blob/master/Exiled.Installer/README.md Shows how to use the `--appdata` and `--exiled` flags to specify custom installation paths for the Exiled files and AppData directory. ```shell user@user:~/SCP# ./Exiled.Installer-Linux --appdata /user/SCP --exiled /user/SCP Exiled.Installer-Linux-3.2.3.0 AppData folder: /user/SCP Exiled folder: /user/SCP Receiving releases... Prereleases included - False Target release version - (null) Searching for the latest release that matches the parameters... Trying to find release.. Release found! PRE: False | ID: 87710626 | TAG: 6.0.0-beta.18 Asset found! ID: 90263995 | NAME: Exiled.tar.gz | SIZE: 1027928 | URL: https://api.github.com/repos/Exiled-Team/Exiled-EA/releases/assets/90263995 | DownloadURL: https://github.com/Exiled-Team/Exiled-EA/releases/download/6.0.0-beta.18/Exiled.tar.gz Processing 'EXILED/Plugins/dependencies/0Harmony.dll' Extracting '0Harmony.dll' into '/user/SCP/EXILED/Plugins/dependencies/0Harmony.dll'... Processing 'EXILED/Plugins/dependencies/Exiled.API.dll' Extracting 'Exiled.API.dll' into '/user/SCP/EXILED/Plugins/dependencies/Exiled.API.dll'... Processing 'EXILED/Plugins/dependencies/SemanticVersioning.dll' Extracting 'SemanticVersioning.dll' into '/user/SCP/EXILED/Plugins/dependencies/SemanticVersioning.dll'... Processing 'EXILED/Plugins/dependencies/YamlDotNet.dll' Extracting 'YamlDotNet.dll' into '/user/SCP/EXILED/Plugins/dependencies/YamlDotNet.dll'... Processing 'EXILED/Plugins/Exiled.CreditTags.dll' Extracting 'Exiled.CreditTags.dll' into '/user/SCP/EXILED/Plugins/Exiled.CreditTags.dll'... Processing 'EXILED/Plugins/Exiled.CustomItems.dll' Extracting 'Exiled.CustomItems.dll' into '/user/SCP/EXILED/Plugins/Exiled.CustomItems.dll'... Processing 'EXILED/Plugins/Exiled.CustomRoles.dll' Extracting 'Exiled.CustomRoles.dll' into '/user/SCP/EXILED/Plugins/Exiled.CustomRoles.dll'... Processing 'EXILED/Plugins/Exiled.Events.dll' Extracting 'Exiled.Events.dll' into '/user/SCP/EXILED/Plugins/Exiled.Events.dll'... Processing 'EXILED/Plugins/Exiled.Permissions.dll' Extracting 'Exiled.Permissions.dll' into '/user/SCP/EXILED/Plugins/Exiled.Permissions.dll'... Processing 'EXILED/Plugins/Exiled.Updater.dll' ``` -------------------------------- ### Move EXILED Folder (Linux) Source: https://github.com/exiled-team/exiled/blob/master/README.md Moves the `EXILED` folder to the user's configuration directory (`~/.config`) using the `mv` command. ```Shell mv EXILED ~/.config/ ``` -------------------------------- ### Exiled.Installer Linux Usage Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Installation/Automatic/Linux.md Displays the command-line options available for the Exiled installer on Linux, including required parameters like path and appdata, and optional flags for pre-releases, target version, and GitHub token. ```shell Usage: Exiled.Installer [options] [[--] ...]] Options: -p, --path (REQUIRED) Path to the folder with the SL server [default: YourWorkingFolder] --appdata (REQUIRED) Forces the folder to be the AppData folder (useful for containers when pterodactyl runs as root) [default: YourAppDataPath] --pre-releases Includes pre-releases [default: False] --target-version Target version for installation --github--token Uses a token for auth in case the rate limit is exceeded (no permissions required) --exit Automatically exits the application anyway --get-versions Gets all possible versions for installation --version Show version information -?, -h, --help Show help and usage information Additional Arguments: Arguments passed to the application that is being run. ``` -------------------------------- ### Change Directory (Linux) Source: https://github.com/exiled-team/exiled/blob/master/README.md Changes the current working directory in the terminal. Used here to navigate to the directory containing the installer executable. ```Shell cd ``` -------------------------------- ### Running a Coroutine with Timing.RunCoroutine (C#) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Plugins/MoreEffectiveCoroutines.md Demonstrates how to start a coroutine using `Timing.RunCoroutine`. Coroutines are methods that return `IEnumerator` and allow for timed pauses using `yield return Timing.WaitForSeconds()`. This example shows an infinite loop that prints a message every 5 seconds. ```C# using MEC; using Exiled.API.Features; public void SomeMethod() { Timing.RunCoroutine(MyCoroutine()); } public IEnumerator MyCoroutine() { for (;;) //repeat the loop infinitely { Log.Info("Hey, I'm a infinite loop!"); //Call Log.Info to print a line to the game console/server logs. yield return Timing.WaitForSeconds(5f); //Tells the coroutine to wait 5 seconds before continuing. Since this is at the end of the loop, it effectively stalls the loop from repeating for 5 seconds. } } ``` -------------------------------- ### Move SCP Secret Laboratory Folder (Linux) Source: https://github.com/exiled-team/exiled/blob/master/README.md Moves the `SCP Secret Laboratory` folder to the user's configuration directory (`~/.config`) using the `mv` command. ```Shell mv SCP Secret Laboratory ~/.config/ ``` -------------------------------- ### Extract Tar.gz Archive (Linux) Source: https://github.com/exiled-team/exiled/blob/master/README.md Extracts the contents of the `EXILED.tar.gz` archive using the `tar` command with options for extract (`-x`), verbose output (`-v`), gzip decompression (`-z`), and specifying the file (`-f`). ```Shell tar -xzvf EXILED.tar.gz ``` -------------------------------- ### List of Available Prefabs (Markdown) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Resources/Intro.md This Markdown table provides a comprehensive list of game prefabs available in the EXILED project, along with their unique Global Unique Identifiers (GUIDs). Developers can use these GUIDs to reference specific prefab types within their code or configurations. ```Markdown Guid | Name 43658aa2-f339-6044-eb2b-937db0c2c4bd | Player 5bfd1bbe-10a4-e184-4a2e-381314b3380c | PlaybackLobby 9a77040d-663e-8a14-a8a2-297249bce483 | Pickup 307eb9b0-d080-9dc4-78e6-673847876412 | Work Station 0b58d568-fcd7-5384-abce-593a7931d65d | SCP-173_Ragdoll f602bb4b-88de-d554-5976-5c2e18af4479 | Ragdoll_1 ea314e24-bddd-5264-5b08-dadd1bcfa75e | SCP-106_Ragdoll 2b0290fb-6764-8f44-48ab-9294fe063c8f | Ragdoll_4 05488a04-eda9-a724-18c9-bf2edbe23031 | Ragdoll_6 e12d94d4-66ef-c734-2af0-aef522db57cb | Ragdoll_7 9d7cf7ef-eec0-ece4-196c-4fd2c3cfd03a | Ragdoll_8 e53f7b09-ad63-f924-6a96-0be4381af7f0 | SCP-096_Ragdoll be41bb5a-3b5f-bc84-4ad4-d4e24dfa168f | Ragdoll_10 c87cf6f7-fc36-f144-6ae5-727c8c8f4b9b | Ragdoll_14 b8d25875-6346-0314-68a9-7d1b7ec71167 | SCP-939-53_Ragdoll d2e872e1-1133-0984-186d-d3cdc686883f | SCP-939-89_Ragdoll c69da0e5-a829-6a04-c8d9-f404a1073cfe | Grenade Flash 8063e113-c1f1-1514-7bc5-840ea8ee5f01 | Grenade Frag 38f8296e-fcf4-44f4-491b-b5dc69b8125b | Grenade SCP-018 33f5e0b4-fb1c-0134-493f-5d7aec09dc38 | EZ BreakableDoor 5fbbe939-51c2-ef74-a9ed-bc0abfefa132 | HCZ BreakableDoor b82d6236-b9f5-33d4-e8ee-8ee33fba6edd | LCZ BreakableDoor 3353122b-0ba2-5d14-fa64-886c45425967 | sportTargetPrefab 422b08ed-0bc0-6cb4-7a7f-81dd37c430c0 | dboyTargetPrefab 4f03f7fa-f417-ae84-382b-962c31614d1a | binaryTargetPrefab a0e7ee93-b802-e5a4-38bd-95e27cc133ea | TantrumObj 43c40e13-5a2a-b3a4-9ba8-29c7002cedaf | Tutorial_Ragdoll bf9a7ae6-aaea-0174-d807-e0d4adb1c524 | PrimitiveObjectToy 6996edbf-2adf-a5b4-e8ce-e089cf9710ae | LightSourceToy 19b3629a-3298-8324-0ad0-e841def23244 | RegularKeycardPickup ef69975c-5a03-b9c4-fa26-0b6145b05824 | ChaosKeycardPickup 8359dd57-d964-98c4-5871-586da0d50878 | RadioPickup 52f9fa65-832f-b0f4-ab15-0ac33a45b853 | Com15Pickup 06361fcf-1355-ea54-7a0b-d7a29244eae9 | MedkitPickup 9902569b-0bc8-cf74-b814-a69789ed8c5a | FlashlightPickup 35f6c267-d9b6-f5a4-4a87-5523b7424052 | MicroHidPickup 30d95cc3-8b1f-bd14-4b66-f7350cf3bae9 | SCP500Pickup 46572711-4d8b-f8a4-2a81-b1ca2ff15b5d | SCP207Pickup e7588f50-a788-bd44-89bf-f9dae4ab2071 | Ammo12gaPickup 9958e2c0-668f-9f14-c9ed-1cd97281f3d3 | E11SRPickup 7a39d145-d2d1-5724-7ad5-660cbe2f5757 | CrossvecPickup 0282bdfe-9880-d284-1807-2d4e11fc540d | Ammo556mmPickup d32145e1-e7d9-d674-fbaa-078247910c49 | Fsp9Pickup 4ce1ab59-83ff-aa14-db7a-65e79c48cf8e | LogicerPickup 3f98e495-a544-11b4-dbc3-a03797786f52 | HegPickup 6e4bfac7-e1c9-9af4-9a76-c025cc8bbb37 | FlashbangPickup 8627c2a9-e397-2164-08dd-97f9fddab207 | Ammo44calPickup ecba736b-7b69-0f14-ea94-7c9067dc7ea8 | Ammo762mmPickup 89a36c3a-be6b-5914-7b75-1287c79f19dc | Ammo9mmPickup 2a12ef7e-b39d-ed34-6979-571e541231b1 | Com18Pickup a1d0c7dd-6523-8a34-3b4a-5124f47b93dd | Scp018Projectile 6fbfc036-04fb-1f94-7af0-1335064c0198 | SCP268Pickup 9695f1b9-46d6-7054-c9af-a35a4fefafe1 | AdrenalinePrefab 9925eed6-900f-7444-880f-393468fa1a63 | PainkillersPickup 522f199f-ce6f-5814-9a67-f0191d0110a9 | CoinPickup 51703b4d-a309-11c4-8af7-bdb8d95214c0 | Light Armor Pickup 02e10b6d-9d4d-ed14-2b8b-f5219522da77 | Combat Armor Pickup 19d03dd5-b491-acc4-ea16-be8ad5a33783 | Heavy Armor Pickup 635a3623-281c-e5c4-297d-7f07cd6a0eef | RevolverPickup 1821b416-953c-98f4-c9b8-09d2c192b8b1 | AkPickup d6abff39-0c5c-1804-58de-ac4478538837 | ShotgunPickup 65141804-5071-27e4-c8c0-23c547ce629c | Scp330Pickup 830e7527-1f40-d0d4-3a3e-ff49f5a6176c | Scp2176Projectile 2401ec76-dce3-cf34-b858-7a9c7dc83b0b | SCP244APickup Variant 39825db8-2df8-eed4-caa5-a4c334c669a0 | SCP244BPickup Variant 68f13209-e652-6024-2b89-0f75fb88a998 | Scp268PedestalStructure Variant 17054030-9461-d104-5b92-9456c9eb0ab7 | Scp207PedestalStructure Variant f4149b66-c503-87a4-0b93-aabfe7c352da | Scp500PedestalStructure Variant a149d3eb-11bd-de24-f9dd-57187f5771ef | Scp018PedestalStructure Variant 5ad5dc6d-7bc5-3154-8b1a-3598b96e0d5b | LargeGunLockerStructure 850f84ad-e273-1824-8885-11ae5e01e2f4 | RifleRackStructure d54bead1-286f-3004-facd-74482a872ad8 | MiscLocker daf3ccde-4392-c0e4-882d-b7002185c6b8 | GeneratorStructure ad8a455f-062d-dea4-5b47-ac9217d4c58b | Spawnable Work Station Structure 5b227bd2-1ed2-8fc4-2aa1-4856d7cb7472 | RegularMedkitStructure db602577-8d4f-97b4-890b-8c893bfcd553 | AdrenalineMedkitStructure fff1c10c-a719-bea4-d95c-3e262ed03ab2 | Scp2176PedestalStructure Variant 53cd67d2-995b-3374-4892-4190ffd48ee9 | HegProjectile 2a6e5abb-7999-b8d4-a926-310e3e9e2a13 | FlashbangProjectile ``` -------------------------------- ### Calling and Defining an MEC Coroutine in C# Source: https://github.com/exiled-team/exiled/blob/master/README.md This snippet demonstrates how to call an MEC coroutine from a standard method and defines the coroutine itself. The coroutine runs an infinite loop, printing a message and then waiting for 5 seconds before repeating. It requires referencing 'Assembly-CSharp-firstpass.dll' and including 'using MEC;' and 'using Exiled.API.Features;'. ```cs using MEC; using Exiled.API.Features; public void SomeMethod() { Timing.RunCoroutine(MyCoroutine()); } public IEnumerator MyCoroutine() { for (;;) //repeat the following infinitely { Log.Info("Hey I'm a infinite loop!"); //Call Log.Info to print a line to the game console/server logs. yield return Timing.WaitForSeconds(5f); //Tells the coroutine to wait 5 seconds before continuing, since this is at the end of the loop, it effectively stalls the loop from repeating for 5 seconds. } } ``` -------------------------------- ### Accessing Plugin Configuration Property (C#) Source: https://github.com/exiled-team/exiled/blob/master/GettingStarted.md Shows how to access properties defined in the plugin's configuration class (`Config`) from the main plugin class. The configuration instance is available via the `Config` property inherited from `Plugin`. This example logs the value of `TextThatINeed`. ```csharp public override OnEnabled() { Log.Info(Config.TextThatINeed); } ``` -------------------------------- ### Example Method for Player Death Event (C#) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Plugins/Events.md Illustrates a basic C# method intended to be executed when a player dies. This snippet serves as an example of the type of function that can be hooked into an EXILED event handler. ```C# public void OnDead() { // Show hint to player. } ``` -------------------------------- ### Handling SCP-096 Enraging Event Async (C#) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Plugins/Events.md This snippet demonstrates how to subscribe and unsubscribe from the Scp096.Enraging event in EXILED using C#. It also shows an example of an async event handler method (OnEnraging) that uses MEC coroutines (Timing.WaitForSeconds) and accesses event arguments (EnragingEventArgs). ```C# // Base plugin class // This example assumes a method called "OnEnraging" exists in this class. For best practice, you should create a new class to handle events. using Exiled.Events; public override void OnEnabled() { Scp096.Enraging += OnEnraging; // Scp096 is the event handler, while Enraging is the name of the event. The += operator connects this event to the provided method. } public override void OnDisabled() { Scp096.Enraging -= OnEnraging; // The -= operator disconnects this event from the provided method. } // Some other class using Sustem.Collections.Generic; using Exiled.Events.EventArgs; using MEC; public IEnumerator OnEnraging(EnragingEventArgs ev) // ev is the arguments for the event. Every event has a different argument class with different parameters, so make sure to check its documentation. { yield return Timing.WaitForSeconds(1f); Log.Info(ev.Player.Nickname + " has just been enraged!"); } ``` -------------------------------- ### Exiled.Installer Command Line Options Source: https://github.com/exiled-team/exiled/blob/master/Exiled.Installer/README.md This snippet shows the command-line usage and available options for the Exiled.Installer tool. It includes required parameters like path, appdata, and exiled folders, as well as optional flags for pre-releases, target version, GitHub token, exiting behavior, and version listing. ```plaintext Usage: Exiled.Installer [options] [[--] ...]] Options: -p, --path (REQUIRED) Path to the folder with the SL server [default: YourWorkingFolder] --appdata (REQUIRED) Forces the folder to be the AppData folder (useful for containers when pterodactyl runs as root) [default: YourAppDataPath] --exiled (REQUIRED) Indicates the Exiled root folder [default: YourAppDataPath] --pre-releases Includes pre-releases [default: False] --target-version Target version for installation --github--token Uses a token for auth in case the rate limit is exceeded (no permissions required) --exit Automatically exits the application anyway --get-versions Gets all possible versions for installation --version Show version information -?, -h, --help Show help and usage information Additional Arguments: Arguments passed to the application that is being run. ``` -------------------------------- ### Documenting EXILED Plugin Config Properties in C# Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Plugins/Plugin Structure.mdx Demonstrates how to use the System.ComponentModel.DescriptionAttribute to add descriptive text to configuration properties, which is useful for server hosts. ```C# namespace MyPluginNamespace { using System.ComponentModel; using Exiled.API.Interfaces; public class Config : IConfig { [Description("Whether or not the plugin is enabled.")] public bool IsEnabled { get; set; } [Description("Config that must be true or false!")] public bool MyBoolConfig { get; set; } [Description("Config that must be a string!")] public string MyStringConfig { get; set; } [Description("Config that must be a number! Defaults to 5.")] public int MyIntConfig { get; set; } = 5; } } ``` -------------------------------- ### Registering/Unregistering Player Verified Event Handler (C#) Source: https://github.com/exiled-team/exiled/blob/master/GettingStarted.md Demonstrates how to instantiate an event handler class and subscribe to the `Player.Verified` event in `OnEnable`. Shows how to unsubscribe from the event and nullify the handler in `OnDisable` to support dynamic plugin updates. ```csharp using Player = Exiled.Events.Handlers.Player; public EventHandlers EventHandler; public override OnEnable() { // Register the event handler class. And add the event, // to the EXILED_Events event listener so we get the event. EventHandler = new EventHandlers(); Player.Verified += EventHandler.PlayerVerified; } public override OnDisable() { // Make it dynamically updatable. // We do this by removing the listener for the event and then nulling the event handler. // This process must be repeated for each event. Player.Verified -= EventHandler.PlayerVerified; EventHandler = null; } ``` -------------------------------- ### Handling Dynamic Updates with OnEnable, OnDisable, and OnReload (C#) Source: https://github.com/exiled-team/exiled/blob/master/GettingStarted.md This C# snippet demonstrates how to manage plugin state across reloads in Exiled. It shows how instance variables (`counter`) are initialized in `OnEnable` and how static variables (`StaticCount`) can be used with `OnReload` to persist data across the disable/enable cycle triggered by a reload command, ensuring dynamic updatability. ```csharp public static int StaticCount = 0; public int counter = 0; public override void OnEnable() { counter = StaticCount; counter++; Info(counter); } public override void OnDisable() { counter++; Info(counter); } public override void OnReload() { StaticCount = counter; } ``` -------------------------------- ### Cloning EXILED Repository - Shell Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Contributing/Intro.md Command to clone your forked EXILED repository from GitHub to your local machine. ```Shell git clone https://github.com/your-username/EXILED.git ``` -------------------------------- ### Registering/Unregistering Player Triggering Tesla Event Handler (C#) Source: https://github.com/exiled-team/exiled/blob/master/GettingStarted.md Demonstrates how to instantiate an event handler class and subscribe to the `Player.TriggeringTesla` event in `OnEnable`. Shows how to unsubscribe from the event and nullify the handler in `OnDisable` for dynamic updates. ```csharp using Player = Exiled.Events.Handlers.Player; public EventHandlers EventHandler; public override OnEnable() { EventHandler = new EventHandlers(); Player.TriggeringTesla += EventHandler.TriggeringTesla; } public override OnDisable() { // Don't forget, events must be disconnected and nullified on the disable method. Player.TriggeringTesla -= EventHandler.TriggeringTesla; EventHandler = null; } ``` -------------------------------- ### Defining Basic EXILED Plugin Config in C# Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Plugins/Plugin Structure.mdx Shows the minimal structure of a configuration class for an EXILED plugin, implementing IConfig and including the mandatory IsEnabled property. ```C# namespace MyPluginNamespace { using Exiled.API.Interfaces; public class Config : IConfig { public bool IsEnabled { get; set; } } } ``` -------------------------------- ### Defining Basic Plugin Configuration Class (C#) Source: https://github.com/exiled-team/exiled/blob/master/GettingStarted.md Shows the structure of a basic configuration class (`Config`) for an Exiled plugin. It must inherit `IConfig` and include a public boolean property `IsEnabled`, which is required by the Exiled loader. A `Debug` property is also commonly included. ```csharp public class Config : IConfig { public bool IsEnabled { get; set; } public bool Debug { get; set; } } ``` -------------------------------- ### Broadcasting Message on Player Verified Event (C#) Source: https://github.com/exiled-team/exiled/blob/master/GettingStarted.md Shows how to use the `Broadcast` method available on the `ev.Player` object within the `PlayerVerified` event handler. This sends a message to the player who triggered the event. The broadcast lasts for 5 seconds and uses rich text formatting. ```csharp public class EventHandlers { public void PlayerVerified(VerifiedEventArgs ev) { ev.Player.Broadcast(5, "Welcome to my cool server!"); } } ``` -------------------------------- ### Spawn Reasons (MD) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Resources/Intro.md Lists the integer values corresponding to different reasons a player might spawn in the game. ```md [0] None [1] RoundStart [2] LateJoin [3] Respawn [4] Died [5] Escaped [6] Revived [7] ForceClass [8] Destroyed ``` -------------------------------- ### Defining Basic EXILED Plugin Structure (C#) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Plugins/Plugin Structure.mdx Shows how to declare the main plugin class by inheriting Plugin and how to define a basic configuration class Config that implements IConfig with the required IsEnabled property. This structure is necessary for the EXILED framework to recognize and load the plugin. ```C# namespace MyPluginNamespace { using Exiled.API.Features; public class Plugin : Plugin { // This plugin will now be recognized by the EXILED framework! } // It is strongly encouraged to create a separate file for your Config class. using Exiled.API.Interfaces; public class Config : IConfig { public bool IsEnabled { get; set; } } } ``` -------------------------------- ### Importing EXILED Namespace (C#) Source: https://github.com/exiled-team/exiled/blob/master/GettingStarted.md Imports the core EXILED namespace, which is necessary for accessing EXILED functionalities, including event handling. Requires referencing the `Exiled.Events.dll` assembly. ```csharp using EXILED; ``` -------------------------------- ### Defining EXILED Plugin Config with Multiple Data Types in C# Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Plugins/Plugin Structure.mdx Extends the basic configuration class to include properties of different data types (bool, string, int) and demonstrates setting a default value for an integer property. ```C# namespace MyPluginNamespace { using Exiled.API.Interfaces; public class Config : IConfig { public bool IsEnabled { get; set; } public bool MyBoolConfig { get; set; } public string MyStringConfig { get; set; } public int MyIntConfig { get; set; } = 5; // Set to 5 by default. } } ``` -------------------------------- ### Implementing Plugin Lifecycle Methods (C#) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Plugins/Plugin Structure.mdx Illustrates how to override the OnEnabled and OnDisabled methods provided by the Plugin base class. These methods are executed when the plugin is loaded and unloaded, respectively, allowing for initialization and cleanup logic. ```C# namespace MyPluginNamespace { using Exiled.API.Features; public class Plugin : Plugin { public override void OnEnabled() { Log.Info("My plugin has been enabled!"); } public override void OnDisabled() { Log.Info("My plugin has been disabled!"); } } // Config.cs file using Exiled.API.Interfaces; public class Config : IConfig { public bool IsEnabled { get; set; } } } ``` -------------------------------- ### Adding Custom Property to Plugin Configuration (C#) Source: https://github.com/exiled-team/exiled/blob/master/GettingStarted.md Extends the basic `Config` class by adding a custom string property `TextThatINeed`. Demonstrates how to provide a default value for a configuration property using the property initializer syntax. ```csharp public class Config : IConfig { public bool IsEnabled { get; set; } public bool Debug { get; set; } public string TextThatINeed { get; set; } = "this is the default"; } ``` -------------------------------- ### Defining Player Verified Event Handler Method (C#) Source: https://github.com/exiled-team/exiled/blob/master/GettingStarted.md Provides the basic structure for the `PlayerVerified` method within the `EventHandlers` class. This method is called when a player is successfully authenticated after joining the server. It receives `VerifiedEventArgs` as input. ```csharp public class EventHandlers { public void PlayerVerified(VerifiedEventArgs ev) { } } ``` -------------------------------- ### Keycard Permissions (MD) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Resources/Intro.md Lists the integer values corresponding to different keycard permission levels in the game. ```md [0] None [1] Checkpoints [2] ExitGates [4] Intercom [8] AlphaWarhead [16] ContainmentLevelOne [32] ContainmentLevelTwo [64] ContainmentLevelThree [128] ArmoryLevelOne [256] ArmoryLevelTwo [512] ArmoryLevelThree [1024] ScpOverride ``` -------------------------------- ### Overriding Plugin Metadata Properties (C#) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Plugins/Plugin Structure.mdx Explains how to override the Name, Author, and Version properties in the main plugin class. These properties provide essential metadata about the plugin, required for submission and identification within the framework. ```C# namespace MyPluginNamespace { using System; using Exiled.API.Features; public class Plugin : Plugin { public override string Name => "My Awesome Plugin"; public override string Author => "MyName"; public override Version Version => new Version(1, 0, 0); } // ... } ``` -------------------------------- ### Reading EXILED Plugin Config Values in C# Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Plugins/Plugin Structure.mdx Shows how to access the defined configuration values from the main plugin class by inheriting from Plugin and using the Config property, specifically demonstrating this in the OnEnabled method. Includes the Config class definition for context. ```C# namespace MyPluginNamespace { using Exiled.API.Features; public class Plugin : Plugin { public override void OnEnabled() { Log.Info("Boolean config: " + Config.MyBoolConfig); Log.Info("String config: " + Config.MyStringConfig); Log.Info("Int config: " + Config.MyIntConfig); } } // Config.cs file using System.ComponentModel; using Exiled.API.Interfaces; public class Config : IConfig { [Description("Whether or not the plugin is enabled.")] public bool IsEnabled { get; set; } [Description("Config that must be true or false!")] public bool MyBoolConfig { get; set; } [Description("Config that must be a string!")] public string MyStringConfig { get; set; } [Description("Config that must be a number! Defaults to 5.")] public int MyIntConfig { get; set; } = 5; } } ``` -------------------------------- ### DoorType Reference (Markdown) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Resources/Intro.md Lists the available door types in the EXILED framework with their corresponding integer IDs. Used to identify specific doors in the game. ```Markdown [0] UnknownDoor [1] Scp914Door [2] GR18Inner [3] Scp049Gate [4] Scp049Armory [5] Scp079First [6] Scp079Second [7] Scp096 [8] Scp079Armory [9] Scp106Primary [10] Scp106Secondary [11] Scp173Gate [12] Scp173Connector [13] Scp173Armory [14] Scp173Bottom [15] GR18Gate [16] Scp914Gate [17] Scp939Cryo [18] CheckpointLczA [19] CheckpointLczB [20] EntranceDoor [21] EscapePrimary [22] EscapeSecondary [23] ServersBottom [24] GateA [25] GateB [26] HczArmory [27] HeavyContainmentDoor [28] HID [29] HIDLeft [30] HIDRight [31] Intercom [32] LczArmory [33] LczCafe [34] LczWc [35] LightContainmentDoor [36] NukeArmory [37] NukeSurface [38] PrisonDoor [39] SurfaceGate [40] Scp330 [41] Scp330Chamber [42] CheckpointGate [43] SurfaceDoor [44] CheckpointEzHczA [45] CheckpointEzHczB [46] UnknownGate [47] UnknownElevator [48] ElevatorGateA [49] ElevatorGateB [50] ElevatorNuke [51] ElevatorScp049 [52] ElevatorLczA [53] ElevatorLczB [54] CheckpointArmoryA [55] CheckpointArmoryB [56] Airlock [57] Scp173NewGate ``` -------------------------------- ### Switching to Dev Branch - Git Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Contributing/Intro.md Command to switch to the 'dev' branch within your local EXILED repository, which is the target branch for contributions. ```Shell git checkout dev ``` -------------------------------- ### Generator States (MD) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Resources/Intro.md Lists the integer values corresponding to different states of generators in the game. ```md [1] None [2] Unlocked [4] Open [8] Activating [16] Engaged ``` -------------------------------- ### RoomType Reference (Markdown) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Resources/Intro.md Lists the available room types in the EXILED framework with their corresponding integer IDs. Used to identify specific rooms or locations in the game. ```Markdown [0] Unknown [1] LczArmory [2] LczCurve [3] LczStraight [4] Lcz914 [5] LczCrossing [6] LczTCross [7] LczCafe [8] LczPlants [9] LczToilets [10] LczAirlock [11] Lcz173 [12] LczClassDSpawn [13] LczCheckpointB [14] LczGlassBox [15] LczCheckpointA [16] Hcz079 [17] HczEzCheckpointA [18] HczEzCheckpointB [19] HczArmory [20] Hcz939 [21] HczHid [22] Hcz049 [23] HczCrossing [24] Hcz106 [25] HczNuke [26] HczTesla [27] HczServers [28] HczTCross [29] HczCurve [30] Hcz096 [31] EzVent [32] EzIntercom [33] EzGateA [34] EzDownstairsPcs [35] EzCurve [36] EzPcs [37] EzCrossing [38] EzCollapsedTunnel [39] EzConference [40] EzStraight [41] EzCafeteria [42] EzUpstairsPcs [43] EzGateB [44] EzShelter [45] Pocket [46] Surface [47] HczStraight [48] EzTCross [49] Lcz330 [50] EzCheckpointHallway [51] HczTestRoom [52] HczElevatorA [53] HczElevatorB ``` -------------------------------- ### Attachment Names (MD) Source: https://github.com/exiled-team/exiled/blob/master/docs/docs/Resources/Intro.md Lists the integer values corresponding to different weapon attachment names in the game. ```md [0] None [1] IronSights [2] DotSight [3] HoloSight [4] NightVisionSight [5] AmmoSight [6] ScopeSight [7] StandardStock [8] ExtendedStock [9] RetractedStock [10] LightweightStock [11] HeavyStock [12] RecoilReducingStock [13] Foregrip [14] Laser [15] Flashlight [16] AmmoCounter [17] StandardBarrel [18] ExtendedBarrel [19] SoundSuppressor [20] FlashHider [21] MuzzleBrake [22] MuzzleBooster [23] StandardMagFMJ [24] StandardMagAP [25] StandardMagJHP [26] ExtendedMagFMJ [27] ExtendedMagAP [28] ExtendedMagJHP [29] DrumMagFMJ [30] DrumMagAP [31] DrumMagJHP [32] LowcapMagFMJ [33] LowcapMagAP [34] LowcapMagJHP [35] CylinderMag4 [36] CylinderMag6 [37] CylinderMag8 [38] CarbineBody [39] RifleBody [40] ShortBarrel [41] ShotgunChoke [42] ShotgunExtendedBarrel [43] NoRifleStock [44] ShotgunSingleShot [45] ShotgunDoubleShot ```