Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rivet

Rivet is a native mod loader for Scrap Mechanic. It injects a loader into the game process, discovers Thunderstore-style packages, resolves their dependencies, and invokes the entrypoints exported by Rivet mod DLLs.

Rivet consists of:

  • RivetDoorstop: a version.dll proxy that loads Rivet into the game process.
  • RivetLoader: the runtime loader that discovers mods, owns hooks, and dispatches events.
  • RivetLib: the public headers mods include to use optional Rivet APIs.

Each mod DLL exports only GET_RIVET_MOD_DEF, whose descriptor contains an entrypoint. Package metadata and dependencies live in Thunderstore's standard manifest.json.

Documentation lives in docs/, is built with mdBook, and publishes to GitHub Pages.

Warning

Currently under heavy development, not ready for real use.

Thanks

This project would not exist without the help and feedback of many people.

  • @VeraDev0: For contributing to the repository and helping development
  • @QuestionableM: For helping with proxying knowledge (e.g. for prompting me to look into asm thunks for proxying DLL exports).
  • @crackx02: For helping debug various issues with the DLL loading process.
  • Everyone in the @ReDoIngMods organization for ideas, testing, and general support.

About

A modding toolkit for Scrap Mechanic. It gives you a clean way to inject DLLs into the game process and to load mods in a structured, discoverable way.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages