Simple, convenient and functional plugin loader for SCP: Secret Laboratory
EN RU
- Download
Qurre.tar.gz
file from releases - Move
Qurre
folder into%appdata%
(on Linux:~/.config
) - Move
Assembly-CSharp.dll
into game folder:SCPSL_Data/Managed
(with file replacement) - That's all, you have successfully installed Qurre
Coming soon
Configs are in JSON format and are located in
%appdata%/Qurre/Configs
You can see the contents of the config after installing Qurre
*Coming soon
What is important to know:
- Method [PluginEnable] & [PluginDisable] must be static
- The [EventMethod] event method can be non-static, but for better performance, it is better to use a static method
using Qurre.API;
using Qurre.API.Attributes;
using Qurre.Events;
using Qurre.Events.Structs;
[PluginInit("MyPlugin", "Qurre Team", "1.0.0")]
static class Plugin
{
[PluginEnable] // Similarly, you can use [PluginDisable]
static internal void Enabled()
{
Log.Info("Plugin Enabled");
}
[EventMethod(PlayerEvents.Join)]
static internal void Join(JoinEvent ev)
{
Log.Info($"Player {ev.Player?.UserInfomation.Nickname} joined");
}
[EventMethod(PlayerEvents.PickupArmor)]
[EventMethod(PlayerEvents.PickupItem)]
static internal void TestMultiple(IBaseEvent ev)
{
if (ev is PickupArmorEvent ev1)
{
Log.Info($"Armor; Pl: {ev1.Player?.UserInfomation.Nickname}; Item: {ev1.Pickup?.Serial}");
//ev1.Allowed = false;
}
else if (ev is PickupItemEvent ev2)
{
Log.Info($"Item; Pl: {ev2.Player?.UserInfomation.Nickname}; Item: {ev2.Pickup?.Serial}");
//ev2.Allowed = false;
}
}
}
0Harmony - Owned by Andreas Pardeike
Newtonsoft.Json - Owned by James Newton-King
Assembly-CSharp - Owned by Northwood Studios
Because we are writing code for one game, it can be similar to the code of other plugin loaders {Exiled or Synapse} (Always can carp to something somehow)