|
1 | 1 | # Rivet |
2 | 2 |
|
3 | | -Rivet is 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. |
| 3 | +Rivet is a native modding toolkit for Scrap Mechanic. It injects a loader into the game process, loads mod DLLs from a configured directory, and gives mods shared event and hook APIs so they can coordinate without overwriting each other. |
4 | 4 |
|
5 | | -At a high level Rivet consists of: |
| 5 | +Rivet consists of: |
6 | 6 |
|
7 | | -- `RivetDoorstop`: gets a DLL into the game as early as possible using DLL hijacking. You can imagine this alike to [Unity Doorstop](https://github.com/NeighTools/UnityDoorstop). |
8 | | -- `RivetLoader`: discovers and loads mods, using metadata and interfaces where available. You can imagine this like [BepInEx](https://github.com/BepInEx/BepInEx). |
9 | | -- `RivetLib`: the library that mods use to integrate with Rivet, similar in spirit to how BepInEx and Harmony are used for Unity. You can imagine this like [BepInEx's API](https://docs.bepinex.dev/api/index.html) and [Harmony](https://github.com/pardeike/Harmony). |
| 7 | +- `RivetDoorstop`: a `version.dll` proxy that loads Rivet into the game process. |
| 8 | +- `RivetLoader`: the runtime loader that discovers mods, owns hooks, and dispatches events. |
| 9 | +- `RivetLib`: the public headers mods include to use Rivet APIs. |
10 | 10 |
|
11 | | -If you just want to get started, the [Installation Guide](./docs/installation.md) walks through setting up Rivet for a game, and the [Overview](./docs/overview.md) explains how these pieces fit together. |
| 11 | +Documentation lives in [`docs/`](./docs/src/introduction.md), is built with mdBook, and publishes to GitHub Pages. |
12 | 12 |
|
13 | 13 | > [!WARNING] |
14 | 14 | > Currently under heavy development, not ready for real use. |
15 | 15 |
|
16 | | -> [!NOTE] |
17 | | -> Please refer to the [Installation Guide](./docs/installation.md) to set up Rivet for Scrap Mechanic. There is also an [Overview](./docs/overview.md) document that explains how Rivet works and what each component does. |
18 | | -
|
19 | 16 | ## Thanks |
20 | 17 |
|
21 | 18 | This project would not exist without the help and feedback of many people. |
22 | 19 |
|
23 | 20 | - [@VeraDev0](https://github.com/VeraDev0): For contributing to the repository and helping development |
24 | 21 | - [@QuestionableM](https://github.com/QuestionableM): For helping with proxying knowledge (e.g. for prompting me to look into asm thunks for proxying DLL exports). |
25 | 22 | - [@crackx02](https://github.com/crackx02): For helping debug various issues with the DLL loading process. |
26 | | -- Everyone in the [@ReDoIngMods](https://github.com/ReDoIngMods) organization for ideas, testing, and general support. |
| 23 | +- Everyone in the [@ReDoIngMods](https://github.com/ReDoIngMods) organization for ideas, testing, and general support. |
0 commit comments