HetCreep a06688e85b Degrade instead of crashing when the IL2CPP interop assemblies are missing (#1338)
* Degrade instead of crashing when the interop assemblies are missing

OnInvokeMethod references interop types (UnityEngine.Application/LogType) in its body. The CLR JIT-compiles the whole method before running any of it, so when the interop assemblies cannot be resolved the method throws FileNotFoundException at JIT time -- before its own try is entered -- and the exception escapes into the native runtime-invoke detour and crashes the process with nothing logged.

Move the interop-referencing call into its own SetupUnityLogging method called inside the try. OnInvokeMethod then JITs without the interop assemblies present, the missing-interop failure is caught, and the loader degrades (logs and continues) so the game runs unmodded. Set unhook at the top of the try so the detour fires exactly once even on failure.

* Condense the interop-degrade comments and reword the fatal log

Per review: trim the JIT-bypass comments to one line each and change
the fatal message to "Unable to execute IL2CPP chainloader, no plugins
will be loaded".
2026-06-11 11:54:22 +02:00
2025-01-12 17:13:13 +01:00
2022-08-14 17:19:09 +03:00
2021-12-21 16:09:39 +02:00
2021-11-02 20:52:06 +02:00
2019-10-24 22:27:29 +03:00
2020-11-09 19:55:03 +11:00

BepInEx

Github All Releases GitHub release BepInEx Discord

Bepis Injector Extensible


BepInEx is a plugin / modding framework for Unity Mono, IL2CPP and .NET framework games (XNA, FNA, MonoGame, etc.)

(Currently only Unity Mono has stable releases)

Platform compatibility chart

Windows OSX Linux ARM
Unity Mono ✔️ ✔️ ✔️ N/A
Unity IL2CPP ✔️ ❌ ✔ ❌
.NET / XNA ✔️ Mono Mono N/A

A more comprehensive comparison list of features and compatibility is available at https://bepis.io/unity.html

Resources

Latest releases

Bleeding Edge builds

How to install (latest releases)

How to install (Bleeding Edge, BepInEx 6)

User and developer guides

Discord server

Available plugin loaders

Name Link to project
BSIPA BepInEx.BSIPA.Loader
IPA IPALoaderX
MelonLoader BepInEx.MelonLoader.Loader
MonoMod BepInEx.MonoMod.Loader
MuseDashModLoader BepInEx.MDML.Loader
Partiality BepInEx-Partiality-Wrapper
Sybaris BepInEx.SybarisLoader.Patcher
UnityInjector BepInEx.UnityInjector.Loader
Unity Mod Manager Yan.UMMLoader
uMod BepInEx.uMod.Loader

Used libraries

IL2CPP libraries

License

The BepInEx project is licensed under the LGPL-2.1 license.

Languages
C# 96.2%
Shell 3.8%