{"id":13591360,"url":"https://github.com/MonoMod/MonoMod","last_synced_at":"2025-04-08T14:33:24.563Z","repository":{"id":31604668,"uuid":"35169589","full_name":"MonoMod/MonoMod","owner":"MonoMod","description":"C# modding swiss army knife, powered by cecil.","archived":false,"fork":false,"pushed_at":"2025-03-22T02:47:29.000Z","size":14080,"stargazers_count":834,"open_issues_count":36,"forks_count":111,"subscribers_count":21,"default_branch":"reorganize","last_synced_at":"2025-04-01T17:55:16.035Z","etag":null,"topics":["c-sharp","cecil","cil","cross-platform","detours","modding","monkey-patching","mono","msil","net-framework","patching","unity"],"latest_commit_sha":null,"homepage":"https://monomod.dev/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MonoMod.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"patreon":"0x0ade/"}},"created_at":"2015-05-06T16:15:42.000Z","updated_at":"2025-03-27T14:03:33.000Z","dependencies_parsed_at":"2024-03-10T02:46:18.998Z","dependency_job_id":"add385bb-7f14-4190-9c26-f95ed7835b0e","html_url":"https://github.com/MonoMod/MonoMod","commit_stats":null,"previous_names":[],"tags_count":68,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MonoMod%2FMonoMod","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MonoMod%2FMonoMod/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MonoMod%2FMonoMod/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MonoMod%2FMonoMod/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MonoMod","download_url":"https://codeload.github.com/MonoMod/MonoMod/tar.gz/refs/heads/reorganize","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247861193,"owners_count":21008443,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-sharp","cecil","cil","cross-platform","detours","modding","monkey-patching","mono","msil","net-framework","patching","unity"],"created_at":"2024-08-01T16:00:56.575Z","updated_at":"2025-04-08T14:33:19.554Z","avatar_url":"https://github.com/MonoMod.png","language":"C#","readme":"# MonoMod\n\u003c!-- #links --\u003e\n\u003ca href=\"https://discord.gg/jm7GCZB\"\u003e\u003cimg align=\"right\" alt=\"MonoMod Discord\" src=\"https://discordapp.com/api/guilds/295566538981769216/embed.png?style=banner2\" /\u003e\u003c/a\u003e\nGeneral purpose .NET assembly modding \"basework\", powered by [cecil](https://github.com/jbevain/cecil/).  \n*\u003csup\u003eMIT-licensed.\u003c/sup\u003e*\n\u003c!-- #links --\u003e\n\n[![Build and Test](https://github.com/MonoMod/MonoMod/actions/workflows/ci.yml/badge.svg)](https://github.com/MonoMod/MonoMod/actions/workflows/ci.yml)\n\n| GitHub: All | NuGet: Patcher | NuGet: Utils | NuGet: RuntimeDetour | NuGet: HookGen |\n|--|--|--|--|--|\n| [![GitHub releases](https://img.shields.io/github/downloads/MonoMod/MonoMod/total.svg?style=flat-square)](https://github.com/MonoMod/MonoMod/releases) | [![Core](https://img.shields.io/nuget/dt/MonoMod.svg?style=flat-square)](https://www.nuget.org/packages/MonoMod/) | [![Utils](https://img.shields.io/nuget/dt/MonoMod.Utils.svg?style=flat-square)](https://www.nuget.org/packages/MonoMod.Utils/) | [![RuntimeDetour](https://img.shields.io/nuget/dt/MonoMod.RuntimeDetour.svg?style=flat-square)](https://www.nuget.org/packages/MonoMod.RuntimeDetour/) | [![HookGen](https://img.shields.io/nuget/dt/MonoMod.RuntimeDetour.HookGen.svg?style=flat-square)](https://www.nuget.org/packages/MonoMod.RuntimeDetour.HookGen/) |\n| [![Version](https://img.shields.io/github/release/MonoMod/MonoMod.svg?style=flat-square)](https://github.com/MonoMod/MonoMod/releases) | [![Version](https://img.shields.io/nuget/v/MonoMod.svg?style=flat-square)](https://www.nuget.org/packages/MonoMod/) | [![Version](https://img.shields.io/nuget/v/MonoMod.Utils.svg?style=flat-square)](https://www.nuget.org/packages/MonoMod.Utils/) | [![Version](https://img.shields.io/nuget/v/MonoMod.RuntimeDetour.svg?style=flat-square)](https://www.nuget.org/packages/MonoMod.RuntimeDetour/) | [![Version](https://img.shields.io/nuget/v/MonoMod.RuntimeDetour.HookGen.svg?style=flat-square)](https://www.nuget.org/packages/MonoMod.RuntimeDetour.HookGen/) |\n\n\u003csup\u003e[... or download fresh build artifacts for the last commit.](https://dev.azure.com/MonoMod/MonoMod/_build/latest?definitionId=1)\u003c/sup\u003e\n\n## Sections\n- [Introduction](#introduction)\n- [Using RuntimeDetour](docs/RuntimeDetour/Usage.md)\n\n----\n\n## Introduction\nMonoMod is a modding \"basework\" (base tools + framework).  \nMods / mod loaders for the following games are already using it in one way or another:\n- Terraria: [tModLoader](https://github.com/blushiemagic/tModLoader), [TerrariaHooks](https://github.com/0x0ade/TerrariaHooks)\n- Hollow Knight: [HollowKnight.Modding](https://github.com/seanpr96/HollowKnight.Modding)\n- Celeste: [Everest](https://everestapi.github.io/)\n- Risk of Rain 2: [BepInExPack (BepInEx + MonoMod + R2API)](https://thunderstore.io/package/bbepis/BepInExPack/)\n- Enter the Gungeon: [Mod the Gungeon](https://modthegungeon.github.io/)\n- Rain World: [RainDB via BepInEx](http://www.raindb.net/)\n- Totally Accurate Battle Simulator: [TABS-Multiplayer](https://github.com/Ceiridge/TABS-Multiplayer)\n- Salt and Sanctuary: [Salt.Modding](https://github.com/seanpr96/Salt.Modding)\n- Nimbatus: [Nimbatus-Mods via Partiality](https://github.com/OmegaRogue/Nimbatus-Mods)\n- Dungeon of the Endless: [DungeonOfTheEndless-Mod via Partiality](https://github.com/sc2ad/DungeonOfTheEndless-Mod)\n- FEZ: [FEZMod (defunct)](https://github.com/0x0ade/FEZMod-Legacy)\n- And many more! *Ping me on Discord if your mod uses MonoMod!*\n\nIt consists of the following **modular components**:\n- [**MonoMod.Patcher**](docs/README.Patcher.md): The ahead-of-time MonoMod patcher and relinker.\n- [**MonoMod.Utils**](docs/README.Utils.md): Utilities and helpers that not only benefit MonoMod, but also mods in general.\n  It contains classes such as `PlatformDetection`, `FastReflectionHelper`, `DynamicMethodHelper`, `DynamicMethodDefinition`, `DynDll` and the `ModInterop` namespace.\n- **MonoMod.DebugIL**: Enable IL-level debugging of third-party assemblies in Visual Studio / MonoDevelop.\n- [**MonoMod.Core**](docs/README.Core.md): The core upon which runtime method detouring is built.\n- [**MonoMod.RuntimeDetour**](docs/RuntimeDetour/Usage.md): A flexible and easily extensible runtime detouring library, supporting x86/x86_64 on .NET Framework, .NET Core, and Mono.\n- [**MonoMod.RuntimeDetour.HookGen**](docs/RuntimeDetour.HookGen/Usage.md): A utility to generate a \"hook helper .dll\" for any IL assembly. This allows you to hook\n  methods in runtime mods as if they were events. Built with MonoMod and RuntimeDetour.\n- [**MonoMod.Backports**](docs/README.Backports.md): A collection of BCL backports, enabling the use of many new language and library features, as far back as .NET Framework 3.5.\n\n### Why?\n- Cross-version compatibility, even with obfuscated assemblies.\n- Cross-platform compatibility, even if the game uses another engine (f.e. Celeste uses XNA on Windows, FNA on macOS and Linux).\n- Use language features which otherwise wouldn't be supported (f.e. C# 7 in Unity 4.3).\n- Patch on the player's machine with a basic mod installer. No need to pre-patch, no redistribution of game data, no copyright violations.\n- With HookGen, runtime hooks are as simple as `On.Namespace.Type.Method += (orig, a, b, c) =\u003e { /* ... */ }`\n- With HookGen IL, you can manipulate IL at runtime and even inline C# delegate calls between instructions.\n- Modularity allows you to mix and match. Use only what you need!\n\n---\n\n### Special thanks to my [patrons on Patreon](https://www.patreon.com/0x0ade):\n- [Chad Yates](https://twitter.com/ChadCYates)\n- [Sc2ad](https://github.com/sc2ad)\n- Raegous\n- Chaser6\n- [Harrison Clarke](https://twitter.com/hay_guise)\n- [KyleTheScientist](https://www.twitch.tv/kylethescientist)\n- [Renaud Bédard](https://twitter.com/renaudbedard)\n- [leo60228](https://leo60228.space)\n- [Rubydragon](https://www.twitch.tv/rubydrag0n)\n- Holly Magala\n- [Jimmy Londo (iamdadbod)](https://www.youtube.com/iamdadbod)\n- [Artus Elias Meyer-Toms](https://twitter.com/artuselias)\n","funding_links":["https://patreon.com/0x0ade/","https://www.patreon.com/0x0ade"],"categories":["C#","C\\#"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMonoMod%2FMonoMod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMonoMod%2FMonoMod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMonoMod%2FMonoMod/lists"}