LabApi.LabKit
1.2.0
dotnet add package LabApi.LabKit --version 1.2.0
NuGet\Install-Package LabApi.LabKit -Version 1.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LabApi.LabKit" Version="1.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LabApi.LabKit" Version="1.2.0" />
<PackageReference Include="LabApi.LabKit" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LabApi.LabKit --version 1.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: LabApi.LabKit, 1.2.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package LabApi.LabKit@1.2.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LabApi.LabKit&version=1.2.0
#tool nuget:?package=LabApi.LabKit&version=1.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
LabKit — The Essential Utility Library for SCP:SL LabAPI
LabKit is a high-performance, modular C# utility framework specifically built for SCP: Secret Laboratory LabAPI plugin developers. It removes boilerplate code and provides clean, battle-tested abstractions for HUDs, combat mechanics, spatial audio, radio channels, zone triggers, room transformations, and visual particle systems.
Key Modules (41 Modules — 57 Source Files)
| Module | Namespace | Purpose |
|---|---|---|
| Visual Particles | LabKit.Visuals |
Toxic gas, EMP shockwaves, spark bursts, and player-attached particle emitters |
| Zone Trigger & Manager | LabKit.Zones |
3D Sphere & Box boundary triggers with entry/exit events |
| Radio Frequency Engine | LabKit.Radio |
Channels (100.0-109.9), encryption keys, and distance-based static noise |
| Ability & Cooldown Manager | LabKit.Abilities |
Cooldown timers, multi-charge systems, and key-binding triggers |
| Room Decorator & Lighting | LabKit.World |
Emergency lighting, blackouts, and relative 3D prop/barrier placement |
| Stacked HUD Feed | LabKit.UI |
Timed, multi-line proximity-filtered chat/killfeed overlay |
| Status HUD Helper | LabKit.UI |
Dynamic colored TPS, custom health bars, and player status bars |
| Text Sanitizer | LabKit.UI |
Rich Text exploit prevention, tag stripper, whitespace normalization |
| Overlay Engine | LabKit.Display |
Priority-ordered, flicker-free element renderer with custom offsets & sizes |
| CASSIE Builder & Queue | LabKit.Audio |
Non-overlapping priority CASSIE queue and NATO phonetic generator |
| Spatial Audio & Zones | LabKit.SpatialAudio |
3D positioned audio descriptors attached to players, dummies, or world |
| Damage Pipeline | LabKit.Damage |
Chainable damage modifiers (armor, resistance, SCP vulnerability) |
| Round Scenario Engine | LabKit.Scenario |
Timed round event scheduler with recurring interval triggers |
| Dice Roller & Loot | LabKit.Loot |
Dice notation parser (e.g. 2d6+3), weighted loot drop tables |
| Player Tag Manager | LabKit.Tags |
Priority-ordered, timed, custom colored TMP name tags |
| Round Stats Tracker | LabKit.RoundStats |
Per-round kill, damage, distance, and leaderboard tracking |
| Spawn Wave Builder | LabKit.Spawning |
Weighted and guaranteed custom respawn wave allocator |
| Atomic Storage | LabKit.Storage |
Crash-safe atomic JSON file reader/writer |
| Safe Timers & Anti-Spam | LabKit.Timing |
Cancellable async safe timers and lock-free action throttlers |
Installation via NuGet
<PackageReference Include="LabApi.LabKit" Version="1.0.0" />
Or place LabKit.dll directly into your server's dependencies/ folder.
Quick Start Examples
Visual Particles & Gas Zones
var toxicGas = ParticleDescriptor.CreateToxicGas("gas_hcr", roomCenter, radius: 8f, duration: 15f);
ParticleManager.Instance.Spawn(toxicGas);
Proximity HUD Chat Feed
StackedHudFeed.Instance.Push(
senderId: player.UserId,
senderName: player.Nickname,
content: TextSanitizer.EscapeTags(messageText),
category: "RADIO",
colorHex: "#00FFCC",
durationSeconds: 5f,
worldPosition: player.Position);
Radio Transmission with Distance Noise
var tx = new RadioTransmission(sender.UserId, sender.Nickname, 104.5f, "Alpha-1 reporting in!", sender.Position);
string received = RadioManager.Instance.ProcessTransmissionForReceiver(tx, receiver.Position);
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- Newtonsoft.Json (>= 13.0.3)
- System.Numerics.Vectors (>= 4.5.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.