Releases: BepInEx/BepInEx
BepInEx 6.0.0-pre.1
NOTE: This is a pre-release of a major version of BepInEx. BepInEx 5 plugins will not work with this release yet.
About upgrading
This release is mainly meant for those who use current Bleeding Edge builds to mod Il2Cpp games. If you want to use this release, follow this upgrade guide:
- If you use BepInEx 5: Stay on BepInEx 5! The current pre-release does not support loading BepInEx 5 plugins, and there are many issues.
- If you use BepInEx Bleeding Edge builds (builds 577 and lower): It is recommended that you upgrade to this pre-release to ensure all your plugins keep working. All builds after 6.0.0-be.577 will not be compatible with newer BE builds. To upgrade, simply download the appropriate ZIP below and replace your old files with the new ones.
- If you want to mod new Unity Mono games: Consider using BepInEx 5! The API is still stable, and BepInEx 6 will eventually include support for loading BepInEx 5 plugins!
- If you want to mod new Il2Cpp games: Consider using Bleeding Edge builds! Builds after 6.0.0-be.577 use updated tooling and .NET 6 for Il2Cpp. This pre-release is mainly meant for those who already have existing Il2Cpp plugins and can't upgrade at the moment.
Changelog
The changelog is concerning BepInEx 5
New features
- The project was restructured massively to allow extensibility to new game engines and runtimes
BepInEx.dllwas renamed toBepInEx.Core.dllBepInEx.Preloader.dllwas renamed toBepInEx.Preloader.Core.dll- Code to support Unity Mono games was moved to
BepInEx.Unity.dllandBepInEx.Preloader.Unity.dll
- Added official support for new runtimes:
- Unity Il2Cpp: an ahead-of-time compilation tool used by Unity
- .NET Framework for games that use .NET game engines (e.g. XNA, MonoGame)
- .NET Core for games that use .NET Core-based engines (e.g. Silk)
- Added new attribute-based preloader patch syntax (Example)
- Plugin versions are now required to follow semver 2.0.0
- The
x.y.z.wform will still be accepted, but thewpart will be ignored for all but logging purposes
- The
- Allow piping BepInEx console to Unix terminal on Wine as well (#322)
API improvements
BepInDependencynow supports specifying version ranges for the dependencies using npm version range syntaxManualLogSourcenow includes overloads for interpolated string handlers to improve logging performanceConfigEntryBaseconstructor is now marked asprotectedto allow use in custom config entries (#403)ConfigFile.Valuesis now marked aspublicfor consistency withConfigFile.Keysproperty
Dependency upgrades, new dependencies
- Updated HarmonyX to 2.10.0
- Updated MonoMod to 22.5.1.1
- Il2Cpp: Added Cpp2IL
- Il2Cpp: Added fork of Il2CppAssemblyUnhollower
- Il2Cpp: Added fork of mono runtime
Fixes
- Fixed crashes on Unity 4 games caused by
ThreadingHelper - Improved console output on Unix (both Wine and native Unix games)
- Improved file logging especially for concurrent game runs
- Fixed multiple BepInEx instances running the chainloader at the same time (#322)
- Optimized log source and log listener event handling
- Fixed possible crashes when trying to query for Unity version (#229)
- Fixed not detecting plugins with indirect BepInEx reference (#240)
- Improved logging for plugin dependency loading errors
- Fixed possible console-related crashes in Wine (#325)
- Fixed game crashes when a console cannot be allocated on Windows
Deprecations and other housekeeping
- Removed
BepInEx.Patcher(hardpatcher for mono and .NET games) - Upgraded all projects to the new csproj format
- Removed all submodules in favour of using NuGet to manage external dependencies
- Removed all Harmony version wrappers
- Removed the deprecated
BepInEx.Harmonyassembly - Improved ZIP naming to include consistent OS and Architecture identifiers
BepInEx 5.4.21
⚠️ BepInEx 5 now enters long term support (LTS) mode
BepInEx 5.4 is the last version of BepInEx 5 with major updates. Any BepInEx 5 releases starting version 5.4 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
- Fixed new
Unity.InputSystemsupport breaking on some Unity games (#446)
BepInEx 5.4.20
⚠️ BepInEx 5 now enters long term support (LTS) mode
BepInEx 5.4 is the last version of BepInEx 5 with major updates. Any BepInEx 5 releases starting version 5.4 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
- Fixed
KeyboardShortcutnot working on games that useUnity.InputSysteminstead of the legacy input system- This version additionally exposes
UnityInputto manually check for input in a library-agnostic way. Note that using this API is discouraged! Instead, useKeyboardShortcutto ensure plugin compatibility
- This version additionally exposes
BepInEx 5.4.19
⚠️ BepInEx 5 now enters long term support (LTS) mode
BepInEx 5.4 is the last version of BepInEx 5 with major updates. Any BepInEx 5 releases starting version 5.4 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
- Added basic fix for cases where games try to ship their own Harmony
- Updated HarmonyX to 2.9.0
- Updated MonoMod to 22.01.29.01
BepInEx 5.4.18
⚠️ BepInEx 5 now enters long term support (LTS) mode
BepInEx 5.4 is the last version of BepInEx 5 with major updates. Any BepInEx 5 releases starting version 5.4 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
- Fixed some console messages being cut off (especially if using non-ASCII characters)
- Updated HarmonyX to 2.7.0
- Updated MonoMod to 21.12.13.01
BepInEx 5.4.17
⚠️ BepInEx 5 now enters long term support (LTS) mode
BepInEx 5.4 is the last version of BepInEx 5 with major updates. Any BepInEx 5 releases starting version 5.4 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
- Fixed console not opening in Outer Wilds and other games that ship custom
user32.dll
BepInEx 5.4.16
⚠️ BepInEx 5 now enters long term support (LTS) mode
BepInEx 5.4 is the last version of BepInEx 5 with major updates. Any BepInEx 5 releases starting version 5.4 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
- Fixed #303: when
DumpAssembliesis enabled, dumped assemblies are now put toBepInEx/DumpedAssemblies/<ProcessName>. If assembly is in use (e.g. multiple game processes open), dumped assemblies will have a number postfix. - Game executable timestamp is not included in console title now (fixes issue with some window managers)
- Updated HarmonyX to 2.5.5
- Updated MonoMod.RuntimeDetour to 21.9.19.1
BepInEx 5.4.15
⚠️ BepInEx 5 now enters long term support (LTS) mode
BepInEx 5.4 is the last version of BepInEx 5 with major updates. Any BepInEx 5 releases starting version 5.4 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
- Update HarmonyX to 2.5.4
- Update MonoMod to 21.8.5.1, fixes #290
BepInEx 5.4.14
⚠️ BepInEx 5 now enters long term support (LTS) mode
BepInEx 5.4 is the last version of BepInEx 5 with major updates. Any BepInEx 5 releases starting version 5.4 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
- Update HarmonyX to 2.5.3
- Update MonoMod to 21.7.22.3, fixes #286
BepInEx 5.4.13
⚠️ BepInEx 5 now enters long term support (LTS) mode
BepInEx 5.4 is the last version of BepInEx 5 with major updates. Any BepInEx 5 releases starting version 5.4 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
- Update HarmonyX to 2.5.2
- Fixes an issue that prevented BepInEx from launching on certain games