Star on GitHubStar1.1k stars

Tool

BepInEx

Plugin and patching framework for Unity Mono, Unity IL2CPP and .NET Framework games such as XNA, FNA and MonoGame titles, which loads mods and analysis plugins into a locally installed game. Plugins patch methods at runtime with the bundled HarmonyX and MonoMod.RuntimeDetour, while preloader patchers rewrite managed assemblies with Mono.Cecil before the game loads them; on IL2CPP games it runs Cpp2IL and Il2CppInterop to generate interop assemblies from the game binary and global-metadata.dat. Its guides also cover configuration, logging, and debugging plugins and game assemblies with dnSpy.

Targets
Game
Category
Game analysis tools
Relationship
Foundation tool
Sources reviewed

Requirements & limits

  • Latest stable release at review: v5.4.23.5, published 2026-02-08 from the v5-lts branch, with Windows x86/x64, Linux x86/x64, macOS universal and patcher archives; the README says only Unity Mono has stable releases. The reviewed master commit (2026-10-16) declares the unreleased 6.0.0 and is 75 commits after the latest 6.x prerelease, v6.0.0-pre.2 from 2024-08-27, which ships Unity Mono, Unity IL2CPP and .NET builds; newer bleeding-edge builds are published separately. The guides note that the preloader-patcher contract changed between v5 and v6.
  • The README's compatibility chart lists Unity Mono on Windows, macOS and Linux, Unity IL2CPP on Windows and Linux but not macOS or ARM, and .NET/XNA games on Windows or through Mono on macOS and Linux. The master installation guide lists Windows 7–10, Linux distributions with GCC 10+, macOS 10.13+ and Unity 3 or newer. Source builds use the bundled Cake script and need .NET 6.0 or newer.
  • BepInEx installs into the user's own game directory: the guide identifies Unity Mono games by a Managed folder and IL2CPP games by il2cpp_data. IL2CPP interop generation reads the game's binary and global-metadata.dat and, by default, downloads managed Unity base libraries for the game's Unity version from unity.bepinex.dev; a configuration option points it to a locally placed archive instead. Some games need the documented troubleshooting steps.
  • LGPL-2.1 (LGPL-2.1-only in the package metadata); the libraries it uses, including UnityDoorstop, HarmonyX, MonoMod, Mono.Cecil, Cpp2IL and Il2CppInterop, keep their own licenses. Game license terms are separate from the framework's license.

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · BepInEx/BepInEx · Revision 6cea286
  2. LICENSE GitHub · BepInEx/BepInEx · Revision 6cea286
  3. Directory.Build.props GitHub · BepInEx/BepInEx · Revision 6cea286
  4. docs/BUILDING.md GitHub · BepInEx/BepInEx · Revision 6cea286
  5. Runtimes/Unity/BepInEx.Unity.IL2CPP/Il2CppInteropManager.cs#L48-L110 GitHub · BepInEx/BepInEx · Revision 6cea286
  6. BepInEx.Preloader.Core/Patching/AssemblyPatcher.cs GitHub · BepInEx/BepInEx · Revision 6cea286
  7. https://github.com/BepInEx/BepInEx/releases/tag/v5.4.23.5
  8. https://github.com/BepInEx/BepInEx/releases/tag/v6.0.0-pre.2
  9. https://docs.bepinex.dev/master/articles/user_guide/installation/index.html
  10. https://docs.bepinex.dev/master/articles/dev_guide/runtime_patching.html
  11. https://docs.bepinex.dev/master/articles/dev_guide/preloader_patchers.html

More in Games

All 318 entries in Games

↑↓ move↵ open⌘↵ new tab