Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 20 May 20:12
· 171 commits to main since this release
960be9e

Manifold is a library mod for Vintage Story 1.21+ that exposes a public API for other mods to declare and manage custom dimensions — lifecycle, player transit, per-dimension worldgen, travel policy, and persistence. It adds no in-game content itself (pure dependency).

Features

  • Custom dimensions — declare persistent or ephemeral dimensions from any mod; boot-time (RegisterStatic) or runtime (Create), identified by AssetLocation codes.
  • Active worldgenIWorldgenStrategy (OnInitialize + GenerateColumn); Manifold pre-generates a bounded chunk region around the transit target before the player arrives, so they never land in void. Configurable radius via WithGenerationRadius.
  • Player transitITransitionService.TeleportPlayer with cancellable PlayerEntering + PlayerLeft/PlayerEntered events, plus opt-in helpers (PortalBlockBase, DimensionCommandBuilder).
  • Travel policy per dimension — spawn behavior (SameCoordinates / DimensionSpawn / LastVisited, with persisted per-player position memory) and forced game mode (Preserve / Force).
  • Persistence — dimension manifest, generated-column set, and per-player positions survive restarts. Dimensions from uninstalled mods are quarantined (chunks kept, transit refused).
  • Client mirror — the dimension list is replicated to clients via IManifoldClient.
  • Zero Harmony patches — built entirely on the public VintagestoryAPI.

Downloads

  • Manifold-0.1.0.zip — the library (install this; other mods depend on it).
  • ManifoldSample-0.1.0.zip — optional demo mod showing void + flat dimensions and /voiddim, /flatdim, /overworlddim commands.

Compatibility

Vintage Story 1.21+ · .NET 10 · no Harmony required.

Documentation

https://pixnop.github.io/Manifold/

Known limitations (v1 roadmap)

Worldgen is a bounded region around the transit point — walking past it hits unloaded chunks. Infinite streaming, async generation, and per-dimension inventory are planned for v1 (see issues). The minimap stays on the overworld tiles (closed-source engine limitation).