⚠️ BepInEx 5 now enters long term support (LTS) mode
BepInEx 5.4 is the last version of BepInEx 5 with major updates. Any further BepInEx 5 releases will be minor and only contain fixes along with package version updates. Our main development focus now shifts to implementing BepInEx 6.
For developers: BepInEx 5 source code is now maintained on v5-lts
branch. In turn master
branch will start hosting BepInEx 6 source. All PRs regarding BepInEx 5 should be targeting that branch instead of master
.
Changelog
Major changes
- Added config option
StandardOutType
to hint about console output redirection. Useful for dedicated servers which handle logging differently from normal games - Changed Harmony log source to
HarmonyX
to emphasise the use of the custom Harmony library - Marked some core assemblies as "critical" by loading them automatically at game start
- This fixes cases where a game ships its own assemblies like Mono.Cecil that are out-of-date
- Allow multiple versions of an assembly to be loaded
- If multiple assemblies with same name are detected, the one with the higher version is always preferred
Dependency updates
- Updated HarmonyX to v2.1.1
- This brings full Harmony 2 API to HarmonyX along with reverse patchers and more
- Developers: Update your code to use HarmonyX 2.1.1. Old plugins will work via a special interop library (experimental)
- Update MonoMod to v20.11.05.01
Fixes
- Prevent reporting an error if there is a native DLL in
plugins
folder - Fixed assembly resolving causing BepInEx to crash in cases where assembly name contained unconvential characters
- Fixed preloader logs not being output to
LogOutput.txt
- Further improved terminal logging support on linux
- Fixed platform checks on *nix systems
- Fixed failing to parse a config option if the value contained
=
symbol - Fixed crashing on some Unity versions caused by different IO API, see #139
- Unified the format of preloader log messages with chainloader