UnifierTSL 0.0.4
See the version list below for details.
dotnet add package UnifierTSL --version 0.0.4
NuGet\Install-Package UnifierTSL -Version 0.0.4
<PackageReference Include="UnifierTSL" Version="0.0.4" />
<PackageVersion Include="UnifierTSL" Version="0.0.4" />
<PackageReference Include="UnifierTSL" />
paket add UnifierTSL --version 0.0.4
#r "nuget: UnifierTSL, 0.0.4"
#:package UnifierTSL@0.0.4
#addin nuget:?package=UnifierTSL&version=0.0.4
#tool nuget:?package=UnifierTSL&version=0.0.4
UnifierTSL
An experiment-friendly Terraria server launcher built on OTAPI USP, bundling per-instance consoles, early publishing helpers, and plugin scaffolding.
What is UnifierTSL?
UnifierTSL is a plugin framework for Terraria servers that enables:
- Multi-world hosting in a single process
 - Hot-reloadable plugin system with dependency management
 - Shared event hub for cross-server coordination
 - Dedicated console isolation per server instance
 
Installation
dotnet add package UnifierTSL
Quick Start for Plugin Developers
1. Create Your Plugin
using UnifierTSL.PluginHost.Attributes;
using UnifierTSL;
[CoreModule]
[ModuleDependencies(
    nugetPackages: ["Newtonsoft.Json:13.0.3"]
)]
public class MyPlugin
{
    public void Initialize()
    {
        // Hook into UnifierApi.EventHub
        UnifierApi.EventHub.ServerStarted += OnServerStarted;
    }
    private void OnServerStarted(object? sender, ServerEventArgs args)
    {
        Console.WriteLine($"Server {args.ServerName} started!");
    }
}
2. Key Features for Plugin Authors
Module System
[CoreModule]: Mark your main plugin assembly[RequiresCoreModule("Name")]: Create dependent modules[ModuleDependencies]: Declare NuGet or embedded dependencies
Configuration Management
var config = UnifierApi.GetPluginConfig<MyConfig>("MyPlugin");
config.TriggerReloadOnExternalChange(true); // Enable hot reload
Logging
var logger = UnifierApi.CreateLogger("MyPlugin");
logger.Info("Plugin initialized");
Event Hub
Access global events through UnifierApi.EventHub:
ServerStarted,ServerStoppedPlayerJoining,PlayerLeft- Custom event registration
 
3. Build and Deploy
Build your plugin as a class library targeting net9.0:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net9.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="UnifierTSL" Version="*" />
  </ItemGroup>
</Project>
Drop the compiled DLL into the server's plugins/ directory.
Package Contents
This NuGet package includes:
UnifierTSL.dll- Core launcher and plugin frameworkUnifierTSL.ConsoleClient.dll- Console isolation client
Documentation
Requirements
- .NET 9.0 or later
 - OTAPI USP 1.0.13+
 - Supported platforms: Windows, Linux (x64/ARM), macOS
 
License
GPL-3.0 - See LICENSE for details
Links
| Product | Versions Compatible and additional computed target framework versions. | 
|---|---|
| .NET | net9.0 is compatible. 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. | 
- 
                                                    
net9.0
- linq2db (>= 5.4.1)
 - Microsoft.Data.Sqlite (>= 9.0.0)
 - ModFramework (>= 1.1.15)
 - MonoMod.RuntimeDetour (>= 25.2.3)
 - MonoMod.RuntimeDetour.HookGen (>= 22.7.31.1)
 - OTAPI.USP (>= 1.0.13)
 - Tomlyn (>= 0.19.0)
 - UnifierTSL.ConsoleClient (>= 0.0.4)
 
 
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.