Skip to content

Releases: BepInEx/BepInEx

BepInEx 6.0.0-pre.2

27 Aug 19:20
5362580
Compare
Choose a tag to compare
BepInEx 6.0.0-pre.2 Pre-release
Pre-release

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 697 down to 577): It is recommended that you upgrade to this pre-release and stay on it to ensure all your plugins keep working. Builds after 6.0.0-be.697 will bring many breaking API changes in preparation for the first stable v6 release.
  • 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 this release until the stable v6 release, or until bleeding edge builds enter the RC (release candidate) stage.

Changelog

The changelog is concerning BepInEx 6.0.0-pre.1

Merged PRs

New Contributors

Full Changelog: v6.0.0-pre.1...v6.0.0-pre.2

BepInEx 5.4.23.2

01 May 13:47
Compare
Choose a tag to compare

Doorstop has been upgraded from v3.4 to v4.3, bringing some new features for developers. It's for the most part a drop-in replacement.

  • Doorstop 4 debugging works on all platforms and IDEs that supports regular unity remote debugging (previously dnspy debugging had to be used, which is windows only and can't be used with an IDE).
  • It's possible to specify a custom corlib path for messing with game's mono runtime.
  • The unix zip is now split into linux_x86, linux_x64 and macos_x64.
  • ⚠️The macos_x86 target was dropped and won't get any further releases (discussed on Discord). You can still use BepInEx 5.4.22 if it's necessary.
  • ⚠️Settings in doorstop_config.ini were renamed, old config files will no longer work.
  • ⚠️If you modified or wrote your own launch scripts, they may need to be fixed because the order of arguments passed to doorstop changed.
  • See the description of #762 for details.

What's Changed

New Contributors

Full Changelog: v5.4.22...v5.4.23.1

⚠️ BepInEx 5 is in 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.

BepInEx 5.4.22

30 Aug 01:05
Compare
Choose a tag to compare

⚠️ 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.

What's Changed

  • fix: handle parameter spread for lts version by @Danielduel in #496
  • Add TomlTypeConverter for UnityEngine.Rect by @ManlyMarco in #510
  • Fix logging "1 plugins to load" instead of "1 plugin to load" by @ManlyMarco in #653
  • Make Logger.Listeners and Logger.Sources thread safe by @ManlyMarco in #656
  • Fix argument count when launched with Steam on Linux by @zeroepoch in #562

New Contributors

Full Changelog: v5.4.21...5.4.22

BepInEx 6.0.0-pre.1

14 Aug 14:35
Compare
Choose a tag to compare
BepInEx 6.0.0-pre.1 Pre-release
Pre-release

NOTE: This is a pre-release of a major version of BepInEx. BepInEx 5 plugins will not work with this release yet.

WARNING: This pre-release is fairly old and the latest IL2CPP games are unlikely to work with it. It's recommended to use the latest bleeding edge builds instead.

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.dll was renamed to BepInEx.Core.dll
    • BepInEx.Preloader.dll was renamed to BepInEx.Preloader.Core.dll
    • Code to support Unity Mono games was moved to BepInEx.Unity.dll and BepInEx.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.w form will still be accepted, but the w part will be ignored for all but logging purposes
  • Allow piping BepInEx console to Unix terminal on Wine as well (#322)

API improvements

  • BepInDependency now supports specifying version ranges for the dependencies using npm version range syntax
  • ManualLogSource now includes overloads for interpolated string handlers to improve logging performance
  • ConfigEntryBase constructor is now marked as protected to allow use in custom config entries (#403)
  • ConfigFile.Values is now marked as public for consistency with ConfigFile.Keys property

Dependency upgrades, new dependencies

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.Harmony assembly
  • Improved ZIP naming to include consistent OS and Architecture identifiers

BepInEx 5.4.21

19 Jul 17:36
Compare
Choose a tag to compare

⚠️ 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.InputSystem support breaking on some Unity games (#446)

BepInEx 5.4.20

15 Jul 19:14
Compare
Choose a tag to compare

⚠️ 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 KeyboardShortcut not working on games that use Unity.InputSystem instead of the legacy input system
    • This version additionally exposes UnityInput to manually check for input in a library-agnostic way. Note that using this API is discouraged! Instead, use KeyboardShortcut to ensure plugin compatibility

BepInEx 5.4.19

03 Feb 17:16
Compare
Choose a tag to compare

⚠️ 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

22 Dec 20:59
Compare
Choose a tag to compare

⚠️ 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

03 Oct 16:28
Compare
Choose a tag to compare

⚠️ 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

25 Sep 18:40
Compare
Choose a tag to compare

⚠️ 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 DumpAssemblies is enabled, dumped assemblies are now put to BepInEx/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