KittsCEventSystem 0.1.1
dotnet add package KittsCEventSystem --version 0.1.1
NuGet\Install-Package KittsCEventSystem -Version 0.1.1
<PackageReference Include="KittsCEventSystem" Version="0.1.1" />
<PackageVersion Include="KittsCEventSystem" Version="0.1.1" />
<PackageReference Include="KittsCEventSystem" />
paket add KittsCEventSystem --version 0.1.1
#r "nuget: KittsCEventSystem, 0.1.1"
#:package KittsCEventSystem@0.1.1
#addin nuget:?package=KittsCEventSystem&version=0.1.1
#tool nuget:?package=KittsCEventSystem&version=0.1.1
KittsCEventSystem
LabAPI Custom Events Framework
KittsCEventSystem is a framework that makes adding event easy for SCP Secret Laboratory using LabAPI.
Consider Supporting?
If you enjoy this project and would like to support future development, I would greatly appreciate it if you considered donating via my Ko-Fi.
How to use KittsCEventSystem:
To install KittsCEventSystem on your server, you will need:
KittsCEventSystemlatest version.
All of these files can be found in the latest release.
Once you have these:
- Place
KittsCEventSystem.dllin thepluginsfolder.
Run the server and you're set!
Configurations:
| Parameter | Type | Description | Default Value |
|---|---|---|---|
IsEnabled |
bool |
Is plugin enabled. | true |
Debug |
bool |
Sends debug logs to console. | false |
EnableExamples |
bool |
Whether example menus in-built to the plugin are enabled. | true |
ClearCEventQueuePermission |
string |
Permission for clear cevent queue command. | "kts.clearceventqueue" |
ListCEventsPermission |
string |
Permission for list cevents command. | "kts.listcevents" |
QueueCEventPermission |
string |
Permission for queue cevent command. | "kts.queuecevent" |
RemoveQueuedCEventPermission |
string |
Permission for remove queued cevent command. | "kts.removequeuedcevent" |
StopCurrentCEventPermission |
string |
Permission for stop current cevent command. | "kts.stopcurrentcevent" |
ViewCEventQueuePermission |
string |
Permission for view queued cevent command. | "kts.viewqueuedcevent" |
Default YML Config File:
# Is plugin enabled
is_enabled: true
# Sends debug logs to console
debug: false
# Whether in-built example events are enabled
enable_examples: true
# Permission for clear cevent queue command
clear_c_event_queue: kts.clearceventqueue
# Permission for list cevents command
list_c_events: kts.listcevents
# Permission for queue cevent command
queue_c_event: kts.queuecevent
# Permission for remove queued cevent command
remove_queued_c_event: kts.removequeuedcevent
# Permission for stop current cevent command
stop_current_c_event: kts.stopcurrentcevent
# Permission for view queued cevent command
view_c_event_queue: kts.viewqueuedcevent
Want to use in your own project?
To install in your project, simply reference the KittsCEventSystem.dll file, found in the latest release.
Create a new class inheriting the CEvent class.
Example CEvent
public class Test : CEvent
{
public override string Name { get; } = "Name Here";
public override string Description { get; } = "Description Here";
public override int Id { get; } = 1;
// Your custom events below
}
CEvent Class
| Parameter / Method | Type / Return Type | Description |
|---|---|---|
Name |
string |
Gets the name of CEvent. |
Description |
string |
Gets the description of CEvent. |
Id |
int |
ID of the menu. Must be greater than 0. |
PlayersRequired |
int |
Gets or sets the amount of player required to run the CEvent. |
RegisterEvent |
bool |
Should the CEvent be registered in CEventManager.RegisteredCEvents. |
Config |
CEventConfig |
Gets or sets the config for this CEvent. |
CreateConfigFromArgs(ArraySegment<string>, out string) |
CEventConfig |
Create a config based on command arguments. |
GlobalCEvent Class
Works the same as a CEvent however the parameters are already set and configs don't get used if defined, they are only for puttint in override of events.
CEventManager Class
| Parameter / Method | Type / Return Type | Description |
|---|---|---|
RegisteredCEvents |
IReadOnlyList<CEvent> |
Contains all registered CEvents. |
RegisteredGlobalCEvents |
IReadOnlyList<GlobalCEvent> |
Contains all registered GlobalCEvents. |
QueuedCEvents |
Queue<CEvent> |
Contains queued CEvents. |
CurrentCEvent |
CEvent |
Current running CEvents. |
RegisterAllEvents() |
void |
Register events in Assembly.GetCallingAssembly. |
Register(Assembly) |
void |
Register all events in target Assembly. |
Register(CEvent) |
void |
Register a CEvent. |
Unregister(CEvent) |
void |
Unregister a CEvent. |
UnregisterAllEvents() |
void |
Unregister all CEvents. |
QueueCEvent(CEvent, int, int) |
Menu |
Queue a new CEvent to run. |
StopCurrentEvent() |
void |
Stop the current CEvent. |
SwitchCEvent(CEvent) |
void |
Switches the CurrentCEvent with a new CEvent. |
EventSetup() |
void |
Locks warhead, disables decon, pauses waves, locks doors, and cleans items. |
EventCleanup() |
void |
Stop the current CEvent. |
CleanupItems() |
void |
Removes all ragdolls and items from the scene. |
TeleportToDoor(IReadOnlyList<Player>, DoorName) |
void |
Teleports multiple players to a specific door. |
TeleportToDoor(Player, DoorName) |
void |
Teleports a single player to a specific door. |
LockAllDoors() |
void |
Locks all doors and elevators. |
UnlockAllDoors() |
void |
Unlocks all doors and elevators. |
Unlock(FacilityZone) |
void |
Unlocks all doors in a given zone. |
SetMaxAmmo(Player) |
void |
Sets the player's ammo to max values. |
SpawnWave(SpawnWaveType) |
void |
Spawns a wave of the specified type. |
PauseAllWaves() |
void |
Pauses all waves. |
UnpauseAllWaves() |
void |
Resets timers and unpauses all waves. |
You can look at the Examples folder to get a better idea of how to create a CEvent, CEvent with a config and a GlobalCEvent.
When you enable your plugin, simply run:
CEventManager.RegisterAllEvents();
This will register all CEvents in your assembly. It is important to keep KittsCEventSystem.dll in the plugins folder, as it must run as a plugin in order to register menus from all assemblies with KittsCEventSystem.dll.
Found a bug or have feedback?
If you have found a bug please make an issue on GitHub or the quickest way is to message me on discord at kittscloud.
Also message me on discord if you have feedback for me, I'd appreciate it very much. Thank you!
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET Framework | net481 is compatible. |
-
.NETFramework 4.8.1
- Northwood.LabAPI (>= 1.1.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.1 | 85 | 2/14/2026 |