|
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 | +A mod loader for **Scrap Mechanic**. Install it, drop mods into a folder, and the game loads them at startup. |
4 | 4 |
|
5 | | -At a high level Rivet consists of: |
| 5 | +> Rivet is early in development. Expect rough edges and back up your saves. |
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 | +## Installing |
10 | 8 |
|
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. |
| 9 | +The easiest way is through a mod manager like [r2modman](https://thunderstore.io/c/scrap-mechanic/p/ebkr/r2modman/) or the Thunderstore Mod Manager — click **Install** at the top of this page and you're done. |
12 | 10 |
|
13 | | -> Currently under heavy development, not ready for real use. |
| 11 | +If you'd rather install by hand, see the [manual install guide](https://github.com/ReDoIngMods/Rivet/blob/main/docs/installation.md). |
14 | 12 |
|
15 | | -> 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. |
| 13 | +## Turning Rivet on |
16 | 14 |
|
17 | | -## Thanks |
| 15 | +Rivet ships **disabled** so it can't surprise you. To turn it on: |
18 | 16 |
|
19 | | -This project would not exist without the help and feedback of many people. |
| 17 | +- **Through a mod manager:** launch the game from the manager — Rivet is enabled automatically. |
| 18 | +- **Manually:** open `Rivet.ini` in your game folder and set `enable=true`, or add `-rivetEnable` to your Steam launch options. |
20 | 19 |
|
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). |
22 | | -- [@crackx02](https://github.com/crackx02): For helping debug various issues with the DLL loading process. |
23 | | -- Everyone in the [ReDoIng Mods](https://github.com/ReDoIngMods) organization for ideas, testing, and general support. |
| 20 | +## Adding mods |
| 21 | + |
| 22 | +Drop mod `.dll` files into the `Rivet/Mods/` folder next to `ScrapMechanic.exe`. Most mods from Thunderstore will place themselves there for you. |
| 23 | + |
| 24 | +## Tweaking it |
| 25 | + |
| 26 | +Rivet has a handful of options in `Rivet.ini` — things like hiding the console window, changing the mods folder, or pointing it at a different log file. The full list lives in the [configuration guide](https://github.com/ReDoIngMods/Rivet/blob/main/docs/config.md). |
| 27 | + |
| 28 | +## Something broken? |
| 29 | + |
| 30 | +- Check your `rivet.log` in the game folder first — it usually says what went wrong. |
| 31 | +- Report issues on the [GitHub issue tracker](https://github.com/ReDoIngMods/Rivet/issues). |
| 32 | + |
| 33 | +## Credits |
| 34 | + |
| 35 | +Rivet is built and maintained with help from a lot of people: |
| 36 | + |
| 37 | +- [@VeraDev0](https://github.com/VeraDev0) — contributions and ongoing development |
| 38 | +- [@QuestionableM](https://github.com/QuestionableM) — DLL proxying knowledge |
| 39 | +- [@crackx02](https://github.com/crackx02) — debugging the DLL loading pipeline |
| 40 | +- Everyone in [ReDoIng Mods](https://github.com/ReDoIngMods) for ideas, testing, and support |
| 41 | + |
| 42 | +Source code, docs, and mod-development info: [github.com/ReDoIngMods/Rivet](https://github.com/ReDoIngMods/Rivet) |
0 commit comments