Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/FarlandsModdingTeam/TerbinProyect/llms.txt

Use this file to discover all available pages before exploring further.

Terbin is the backbone of the Farlands modding ecosystem — a C# framework that lets you build background services capable of managing game instances, plugins, and game launches over a high-performance named-pipe IPC channel. It pairs a binary packet protocol with a reflection-driven dispatcher so you can expose new service operations just by decorating a static method with [TerbinExecutable].

Introduction

Learn what Terbin is, what problems it solves, and how its major subsystems fit together.

Quickstart

Build and connect your first Terbin server and client in minutes.

Architecture

Understand the three-project layout: TerbinLibrary, TerbinService, and SimulateClient.

API Reference

Full reference for TerbinCommunicator, the dispatcher, serialization utilities, and more.

How Terbin Works

1

Start the service

TerbinService runs as a .NET BackgroundService. On startup it creates a TerbinCommunicator in server mode and begins listening on a named pipe called TerbinPipe.
2

Register executables

Call TerbinExecutor.Register(Assembly) to scan your assembly for all static methods decorated with [TerbinExecutable]. Each attribute declares a one- or two-byte action key that routes incoming packets to the right handler.
3

Connect a client

Create a TerbinCommunicator in client mode and call Connect(). The client can then call Send() for fire-and-forget messages or Communicate() to await a typed response.
4

Handle responses

Subscribe to OnRecive on either side. The communicator reassembles fragmented packets transparently before invoking your handler, and you respond with an InfoResponse.

Key Capabilities

Named-Pipe IPC

Bidirectional client-server communication over Windows named pipes with automatic reconnection support.

Executable Dispatcher

Route packets to handler methods purely via [TerbinExecutable] attributes — no switch statements needed.

Binary Serialization

Zero-allocation Span<byte>-based serialization for unmanaged types, arrays, and structs.

Packet Fragmentation

Payloads larger than 65,520 bytes are transparently fragmented and reassembled using TerbinMemory slots.

Plugin Management

Download, install, uninstall, and enumerate mods per game instance over the IPC channel.

Instance Lifecycle

Create, delete, list, and inspect game instances that hold their own plugin manifests.

Build docs developers (and LLMs) love