Skip to content

Repository files navigation

MeshVault

IL2CPP: MLVScan IL2CPP Attestation Mono: MLVScan Mono Attestation Mono Debug: MLVScan Mono Debug Attestation

A shared mesh spawning library for Schedule I mods. Place any game prop with one line of code.

var desk = MeshVaultAPI.Spawn("desk_counter_l", position, Quaternion.identity);

Both release DLLs are scanned and attested through MLVScan on every release. Click the badges above to verify.


For Players

You don't need to install MeshVault yourself. If a mod you download depends on it, your mod manager (r2modman, Vortex, or Gale) will install it automatically.

For manual installs, drop MeshVault.Il2Cpp.dll or MeshVault.Mono.dll into your Plugins folder. This plugin ships both IL2CPP and Mono builds.

Requirements: MelonLoader v0.7.0+, Schedule I by TVGS


For Mod Developers

MeshVault gives you access to a growing library of pre-extracted game meshes. No asset bundles, no hunting for materials at runtime. Pick an ID, call Spawn, and you get a fully configured GameObject with geometry, materials, colliders, and child objects.

What you can do:

  • Spawn any game prop by ID: MeshVaultAPI.Spawn("dumpster", pos, rot)
  • Swap materials or tint colors per-slot at spawn time
  • Project textures onto surfaces with SpawnDecal()
  • Register your own custom meshes with RegisterMeshes() so other mods can use them too
  • Customize materials in JSON with colorTint, metallic, smoothness, and emissiveColor

Get started: Full documentation with examples, API reference, and JSON format is at hdlmrell.github.io/S1-MeshVault.

Page What you'll find
Quick Start Installation, first spawn, common tasks
API Reference Every public method with parameters and examples
JSON Schema How to author mesh JSON for shipping your own geometry

Contributing

Build configurations

Configuration Runtime Purpose
MonoDebug Mono (netstandard2.1) Development. Includes extraction tools, write API, MeshPlacer
Release IL2CPP (net6.0) Distribution. Read-only spawning API only
MonoRelease Mono (netstandard2.1) Distribution. Read-only spawning API only

Release builds are API-only. You can build your mod against the release DLLs to call Spawn(), RegisterMeshes(), etc. All in-game tools (MeshPlacer, hierarchy picker, GLB export) are stripped via #if DEBUG. To use those tools, download MeshVault.Mono.Debug.dll from the GitHub releases, rename it to MeshVault.Mono.dll, and replace the release version in your Plugins folder. Both builds share the same assembly name — your mod works against either one.

Adding meshes to the database

  1. Build and deploy MonoDebug.
  2. Launch the game. Press F9 to open MeshPlacer.
  3. Use the Hierarchy Picker to browse scene objects and extract meshes.
  4. Extracted meshes are saved to UserData/MeshVault/MeshDatabase.json.

Project setup

Copy LocalPaths.targets.example to LocalPaths.targets in the project directory and fill in your local paths. This file is gitignored. Each developer maintains their own.

Releases

Releases are automated. Push your changes to stable, then create a GitHub release with a version tag (e.g. v1.0.7). The CI pipeline builds all three DLLs (IL2CPP Release, Mono Release, Mono Debug), attaches them to the release, and publishes MLVScan attestations for each automatically.


License

CC BY-NC-SA 4.0. You may share and adapt this work for non-commercial purposes with attribution and share-alike.

Releases

Packages

Contributors

Languages