UnifierTSL 0.0.4

There is a newer version of this package available.
See the version list below for details.
dotnet add package UnifierTSL --version 0.0.4
                    
NuGet\Install-Package UnifierTSL -Version 0.0.4
                    
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="UnifierTSL" Version="0.0.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="UnifierTSL" Version="0.0.4" />
                    
Directory.Packages.props
<PackageReference Include="UnifierTSL" />
                    
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 UnifierTSL --version 0.0.4
                    
#r "nuget: UnifierTSL, 0.0.4"
                    
#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 UnifierTSL@0.0.4
                    
#: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=UnifierTSL&version=0.0.4
                    
Install as a Cake Addin
#tool nuget:?package=UnifierTSL&version=0.0.4
                    
Install as a Cake Tool

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, ServerStopped
  • PlayerJoining, 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 framework
  • UnifierTSL.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

Product 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. 
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
0.0.5 131 10/24/2025
0.0.4 137 10/24/2025