Yassa.LabApi
1.2.0
dotnet add package Yassa.LabApi --version 1.2.0
NuGet\Install-Package Yassa.LabApi -Version 1.2.0
<PackageReference Include="Yassa.LabApi" Version="1.2.0" />
<PackageVersion Include="Yassa.LabApi" Version="1.2.0" />
<PackageReference Include="Yassa.LabApi" />
paket add Yassa.LabApi --version 1.2.0
#r "nuget: Yassa.LabApi, 1.2.0"
#:package Yassa.LabApi@1.2.0
#addin nuget:?package=Yassa.LabApi&version=1.2.0
#tool nuget:?package=Yassa.LabApi&version=1.2.0
Yassa
Yet another server-specific settings API wrapper for EXILED and LabApi.
Key Features
- Fluent builders for all option types enables declarative configuration through method chaining, making settings definitions both readable and maintainable.
- Numeric IDs have been replaced with human-readable string IDs to eliminate the magic numbers. The
OptionIdentifiersRegistryensures that persistent numeric IDs are mapped correctly, maintaining stability across server restarts. - Seamless integration with other plugins that use SSS.
How to Install
EXILED
Put Yassa.dll under the release tab into %appdata%\EXILED\Plugins (Windows) or ~/.config/EXILED/Plugins (Linux) folder.
LabApi
For LabApi, install Yassa.LabApi.dll in the server's LabAPI/plugins directory. The LabApi build targets LabApi 1.1.7, uses the game's native server-specific settings types, and requires Harmony (0Harmony.dll) in LabAPI/dependencies if it is not already provided by your server.
LabApi plugins should reference Yassa.LabApi.dll and use these namespaces:
using LabApi.Features.Wrappers;
using Yassa.LabApi.Extensions;
using Yassa.LabApi.Features;
using Yassa.LabApi.Features.Builders;
using Yassa.LabApi.Models;
The builders, option models, value getters, update methods, and registration overloads have the same shape as the EXILED version. Player is a LabApi wrapper, while Base / ToBase() and OnChanged callbacks expose native UserSettings.ServerSpecific settings. Change option properties such as option.Label, then call option.UpdateOption() to send the change.
As in EXILED, Register(node, predicate) and Register(node, player) add definitions globally and select who receives the immediate settings update. Unregister removes definitions globally and selects who receives the immediate removal update. These overloads do not create private per-player definitions. UpdateOption, UpdateValue, and RequestClear accept LabApi player filters. Two-button getters and click callbacks return true for the first button; the native UpdateValue(bool) argument selects the second button when true.
Persistent numeric IDs are stored under LabApi's configs directory in YassaCache/CustomIdRegistry-{port}.txt. To keep existing client preferences when migrating from EXILED, copy the corresponding registry file from EXILED's Configs/YassaCache directory before starting the LabApi version. Custom IDs must be nonempty and cannot contain =, carriage returns, or newlines.
Usage Example
Here's an example of how to register settings using Yassa
OptionNode node = new OptionNodeBuilder()
.SetHeader("My honest option node")
.SetHint("Option node hint")
.AddTextInputOption(o => o
.SetCustomId("YourPlugin.NicknameContent")
.SetLabel("Custom Nickname")
.SetCharacterLimit(50)
.SetPlaceholder("Your nickname here..."))
.AddButtonOption(o => o
.SetCustomId("YourPlugin.Confirm")
.SetLabel("Save Changes")
.SetText("Confirm")
.OnClicked(OnConfirmButtonClicked))
.Build();
OptionsService.Register(node);
private void OnConfirmButtonClicked(Player player, ButtonOption button)
{
player.CustomName = player.GetStringValue("YourPlugin.NicknameContent");
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET Framework | net48 is compatible. net481 was computed. |
-
.NETFramework 4.8
- Northwood.LabAPI (>= 1.1.7)
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 |
|---|---|---|
| 1.2.0 | 47 | 11/8/2026 |