SANDBOX — this is a test environment. No servers are actually deployed and no real payments are charged.
Back to NxLabs

NxLabs / Vintage Story

Expanded Library

FBy fallenstar

Shared framework library for the Fallenstar's Expanded mods.

Expanded Library

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

For modders

  • NuGet packages - ExpandedLib, ExpandedLib.Industry (the pipe, molten-metal and mechanical-power network types), ExpandedLib.Testing (the headless harness) and ExpandedLib.Templates (the scaffolding templates), all on nuget.org. A mod project needs one PackageReference and 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|command puts 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 - exmod drives every task from a fresh clone to a tagged release; exlib-verify checks a mod's JSON headlessly; exlib-shapes renders 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/ and itemtypes/ 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 hi tints 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.Testing loads the real game assemblies and exercises network and block-entity logic under dotnet 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 ModSystem of 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

Read the full description on Vintage Story ModDB

Ratings & reviews

No ratings yet

Sign in to leave a rating or comment.