Skip to content
LITHIUM
A modular foundation for s&box

Build modular games with Lithium.

A developer framework for creating extensible systems, services and addons in s&box.

Read the documentation/docs
Open source · C# native · Built for s&box
HouseAddon.csC#
using Lithium.Addons;

namespace Lithium.House;

[Addon("thepanicdept.lithium_house", "Lithium House")]
public sealed class HouseAddon : Addon
{
    protected override void OnAddonLoaded()
    {
        Log.Info("House Addon Loaded");
    }

    protected override void OnAddonUnloaded()
    {
        Log.Info("House Addon Unloaded");
    }
}
Sandbox.Addons Lifecycle ready
01C# native
02Built for s&box
03Modular addons
04Component services

Core systems

Systems that stay composable.

Lithium keeps package identity, runtime ownership and dependency contracts visible, so features can grow without turning into one monolithic game project.

01 / Package

Addon packages

Keep gameplay features independent, discoverable and tied to an explicit package identity.

02 / Runtime

Component services

Model reusable systems as s&box components and let Lithium manage their runtime lifecycle.

03 / Contract

Dependency manifests

Describe package identity, load priority and required or optional dependencies in one place.

Experimental

04 / Signals

Event-driven APIs

Connect systems through named events and callable boundaries without hard-wiring every module.

Architecture / 01

Built around the way s&box works.

Lithium adds a small coordination layer around familiar components and packages. Each layer has one job, and every boundary stays explicit.

Game

Your experience

Lithium Runtime

Discovery & lifecycle

Addons

Feature packages

Services

Scene-owned systems

Features

Gameplay modules

Discover

Resolve packages and their concrete addon contracts.

Mount

Attach reusable services to the active scene lifecycle.

Compose

Build gameplay features without collapsing module boundaries.

Developer experience / 02

Small APIs. Clear ownership.

Lithium builds on C# and familiar s&box primitives. The result is code that says what it owns, when it starts and what it depends on.

HouseAddon.cs

A smaller surface for a clearer system.

Own setup and teardown in a small lifecycle that stays close to the feature.

namespace
Sandbox.Addon
HouseAddon.cs
using Lithium.Addons;

namespace Lithium.House;

[Addon("thepanicdept.lithium_house", "Lithium House")]
public sealed class HouseAddon : Addon
{
    protected override void OnAddonLoaded()
    {
        Log.Info("House Addon Loaded");
    }

    protected override void OnAddonUnloaded()
    {
        Log.Info("House Addon Unloaded");
    }
}

Ecosystem / 03

A framework designed to grow.

Lithium starts with a small runtime and lets each gameplay domain become its own package, lifecycle and explicit contract.

Experimental

Lithium House

thepanicdept.lithium_house

A focused example addon that demonstrates feature-owned lifecycle and scene components.

Addon lifecycleScene component
Example module
Experimental

Lithium Inventory

thepanicdept.lithium_inventory

An early inventory module used to exercise package discovery and component-based features.

Package discoveryInventory component
Example module
Blueprint

Build your own addon

yourstudio.your_addon

Use the same small contracts to keep your next gameplay system portable and explicit.

Your featureYour package
Your next module

Open framework · Early foundation

Build your next s&box system on a modular foundation.

Follow Lithium as its addon runtime, service model and developer ecosystem take shape in the open.