Yassa.LabApi 1.2.0

dotnet add package Yassa.LabApi --version 1.2.0
                    
NuGet\Install-Package Yassa.LabApi -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="Yassa.LabApi" Version="1.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Yassa.LabApi" Version="1.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Yassa.LabApi" />
                    
Project file
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 Yassa.LabApi --version 1.2.0
                    
#r "nuget: Yassa.LabApi, 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 Yassa.LabApi@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=Yassa.LabApi&version=1.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Yassa.LabApi&version=1.2.0
                    
Install as a Cake Tool

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 OptionIdentifiersRegistry ensures 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 Compatible and additional computed target framework versions.
.NET Framework net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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