
Back to NxLabs

Expanded Library
FBy fallenstar
Shared framework library for the Fallenstar's Expanded mods.

Description
A framework for building Vintage Story mods: block networks, multiblock and megablock structures with completion monitoring, a production-machine tick lifecycle, code-first block, item and recipe definitions, attribute-driven registration, a source-generated live config system, a headless test harness that needs no game launch, and a module system for extending the framework or another mod without carrying a ModSystem of your own. It is the shared framework behind the Expanded mods, so they share one block-network manager rather than one each.
Versions
- 0.8.0 is the framework of the new family, Iron Industry Expanded and Steel Industry Expanded (both not released yet), both in development and not yet released. Modders build on it today.
- 0.7.2 is what Steelmaking Expanded 0.9.8 and Pipes and Power Expanded 0.6.8 need. They do not load beside 0.8: keep 0.7.2 installed while you play them.
- A mod that needs this framework says so on its own page, with the version. Install that version.
For modders
- NuGet packages -
ExpandedLib,ExpandedLib.Industry(the pipe, molten-metal and mechanical-power network types),ExpandedLib.Testing(the headless harness) andExpandedLib.Templates(the scaffolding templates), all on nuget.org. A mod project needs onePackageReferenceand a target framework. - The starter - exmod-starter: a repository that clones, restores, builds, tests and smokes with nothing hand-edited, holding four real sample mods: a mechanically driven twin-tub blower on the gas-pipe network, a designed multiblock burden maker with its own right-click construction, a plated pipe tier, and a smoke stack that vents the blower's air.
- The scaffolder -
exmod scaffold block|item|recipe|megablock|multiblock|node|blockbehavior|entitybehavior|config|migration|commandputs a compiling, tested definition into an existing mod. - The wiki - exwiki.felled-stars.org: getting started, the first machine walk-through, every module, the supported API and the checks; the same site holds the players' pages of every Expanded mod.
- The tools -
exmoddrives every task from a fresh clone to a tagged release;exlib-verifychecks a mod's JSON headlessly;exlib-shapesrenders shapes and build schematics.
Compatibility
- Game version: built for Vintage Story 1.22. Legacy 1.20 and 1.21 builds are on the GitHub releases page.
- Multiplayer: works in singleplayer and on dedicated servers.
- Requires: nothing. This is itself a dependency for other mods.
- Languages: English, Russian, Ukrainian.
- Save safety: safe to add to an existing world. Only remove it once no installed mod depends on it.
What it provides
- Block networks - a generic connected-graph framework with self-orienting node blocks, merge-on-join and fracture-on-break handling, and a single network manager. The Industry module registers the pipe, molten-metal and mechanical-power network types the family's machines ride.
- Multiblock and megablock structures - structure-completion monitoring, the build-outline projection (Ctrl + Shift + right-click), crash-safe highlighting of incomplete parts, and the invisible filler block that gives a megablock machine proper per-cell collision.
- Code-first definitions - blocks, items and recipes built in C# and injected at load, so a mod built on exlib can ship without hand-written
blocktypes/anditemtypes/JSON; golden files keep the generated JSON reviewable. - Block-entity healing - recreates a block entity that was lost while its block survived (a load error or a server desync), so a machine never ends up an inert, unbreakable ghost. Runs on chunk load and on demand via
/exmod heal. - Live config - every gameplay value is exposed through a JSON config that can also be read and changed in-game with
/exmod config, applied immediately with no world reload. - Recipe-cost levels - lets each dependent mod offer cheaper or normal crafting and construction costs, switchable with
/exmod recipes. - Network highlighting -
.exmod network hitints every networked block, a separate colour per network, so you can see which blocks share a run and where one is broken. - Save migrations - rewrites renamed block codes (and matching item stacks) in old saves as chunks load, so updates do not leave unknown blocks behind.
- Headless test harness -
ExpandedLib.Testingloads the real game assemblies and exercises network and block-entity logic underdotnet test, no game launch required. - Module system - an assembly that extends the framework or a mod built on it, driven through a host mod's lifecycle instead of carrying a
ModSystemof its own. - Shared helpers - orientation and rotation math, particle and sound catalogues, a production-machine base, content gating, and the attribute-driven registration the family uses.
Commands
Ratings & reviews
No ratings yet
Sign in to leave a rating or comment.
