Skip to content

Mod Manifest ​

Each mod's folder contains a mod.toml file: the mod's manifest, which Lustral reads to identify the mod, its requirements and how to load it. The SDK generates it from the project file on every build; set SDK properties rather than editing the manifest. This page describes the format for reference and for tools that produce mods without the SDK.

toml
# Generated by Lustral.Sdk from BetterHud.csproj. Do not edit; changes are overwritten on build.
id = "you.betterhud"
name = "Better HUD"
version = "1.2.0"
assembly = "BetterHud.dll"
description = "A cleaner HUD with an FPS counter."
authors = ["you"]
license = "MIT"

[links]
website = "https://example.com/betterhud"
source = "https://github.com/you/betterhud"

[requires]
lustral = "^0.1"
backends = ["mono"]
games = [
    { name = "Lethal Company", developer = "Zeekerss", versions = ["v72*", "v73*"] },
]

[dependencies]
"someone.uikit" = "^1.2"

[optional-dependencies]
"someone.extras" = "*"

[incompatibilities]
"someone.otherhud" = "*"

[update]
source = "github:you/betterhud"

Keys ​

KeyTypeSDK propertyDescription
idString, requiredModIdLowercase letters and digits, separated by single ., - or _.
nameStringModNameDefaults to the ID.
versionString, requiredVersionA semantic version.
kind"mod" or "library"ModKindDefaults to "mod".
assemblyString(the project's assembly)The assembly containing the mod's Mod class, relative to the mod's folder. Optional for libraries without one.
exportsArray of stringsModExport itemsThe assemblies a library exposes to its dependents, by name.
descriptionStringDescription
authorsString or arrayAuthors
creditsStringModCredits
licenseStringPackageLicenseExpressionAn SPDX license expression.
load-orderIntegerModLoadOrderDefaults to 0; among mods that do not depend on each other, lower values load first.
colorStringModColorA Unity color name or #rrggbb.

Named HTTP(S) links shown with the mod's details: website (PackageProjectUrl), source (RepositoryUrl), and any links defined with ModLink items.

[requires] ​

KeyTypeSDK property
lustralVersion rangeModLustralVersion
unityVersion rangeModUnityVersion
backendsArray of "mono", "il2cpp"ModBackends
platformsArray of "windows", "linux", "macos", optionally with -x64, -x86, -arm64ModPlatforms
processesArray of executable namesModProcesses
gamesArray of { name, developer, versions }ModGame items

An omitted key imposes no requirement. See Compatibility Requirements for how requirements are evaluated.

[dependencies], [optional-dependencies], [incompatibilities] ​

Tables mapping mod IDs to version ranges. A mod cannot appear in both dependencies and optional-dependencies, or be both a dependency and an incompatibility. See Mod Dependencies.

[update] ​

KeyDescription
sourcegithub:owner/repository, or the HTTPS address of a JSON feed.
assetFor GitHub sources: the release file to download, with * wildcards.

See Publishing and Updates.

Unknown Keys ​

Lustral ignores unknown keys, so manifests written by newer SDK versions can still be read; their lustral range determines whether the installed Lustral version is supported. A manifest that is not valid TOML, or that violates the rules above, prevents the mod from loading, and the reason is logged.

Mods are third-party software. Lustral does not verify their behavior and is not responsible for any damage they cause.