Drew Mochak 6d82b2e5fc Don't kill the chainloader when Unity log callbacks are stripped (#1389)
UnityLogSource's static constructor falls back to
Application.RegisterLogCallback when Application.logMessageReceived is
absent. Unity's managed code stripper can remove both, in which case
GetMethod returns null and the unguarded Invoke throws a
NullReferenceException out of the static constructor.

That exception propagates through chainloader initialisation, so the
chainloader never starts and no plugins load. The failure is close to
undiagnosable: LogOutput.log ends at "Preloader finished" with no error,
and the exception only appears on stdout.

Unity log forwarding is optional, so warn and continue instead of taking
the whole loader down.

Seen on Beacon Pines (Unity 2021.3.45f1, Mono), whose
UnityEngine.Application has neither member.
2026-09-01 06:56:05 +02: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%