Skip to releases
LITHIUM
All releases
Release notesBreaking changes

Lithium 0.1.0

The first documented Lithium foundation for package-owned addons, component services and explicit runtime contracts.

Features

What's new

Addon lifecycle

Addons can own focused setup and teardown through a small, package-bound lifecycle.

Component services

Shared systems can use the same component model as the s&box scene runtime.

Named events

Packages can communicate through explicit event boundaries without direct coupling.

Reliability

Fixes

Package-bound addon discovery

Addon selection now follows the mounted package identity instead of choosing an unrelated available addon type.

Scene-owned services

Dynamically registered services are created on objects that belong to the active scene.

Compatibility

Breaking changes

Explicit addon identity

Addon declarations must provide the package id, display name, version and required API version expected by the current contract.

Upgrade path

Migration instructions

Before upgrading

Confirm that each addon id exactly matches its mounted package identity. Keep a backup of existing addon configuration files before testing the new version.

Update addon declarations

Update each addon attribute to include the complete compatibility contract:

InventoryAddon.cs
[Addon(
    "thepanicdept.lithium_inventory",
    "Lithium Inventory",
    "0.1.0",
    "0.1.0"
)]
public sealed class InventoryAddon : Addon<InventoryConfig>
{
}

Verify the migration

  1. Build the Lithium game project and each addon project independently.
  2. Start a scene with the addon package mounted.
  3. Confirm the expected addon is loaded and its component services belong to the active scene.
  4. Review persisted configuration under lithium/addons/.