IL2CPP metadata v107 unsupported in build #785 - Unity 6000.5.8f1
What happened?
I'm currently developing a BepInEx plugin for Hellforged Demo. After the game's recent Patch 0.1.14, BepInEx stopped successfully initializing the IL2CPP chainloader.
I performed a clean installation of:
BepInEx-Unity.IL2CPP-win-x64-6.0.0-be.785+6adbba4
The game is running:
Windows 10 x64 Unity 6000.5.8f1 IL2CPP BepInEx 6.0.0-be.785
BepInEx itself starts and detects that the IL2CPP interop assemblies need to be regenerated. However, Cpp2IL fails while reading the game's global-metadata.dat with the following error:
Unsupported metadata version found! We support 23-106, got 107
After this failure, the IL2CPP chainloader is unable to start and reports:
Unable to execute IL2CPP chainloader, no plugins will be loaded
followed by:
Could not load file or assembly 'UnityEngine.CoreModule'
I have reproduced this with a clean BepInEx installation and no third-party plugins installed, so the failure occurs before my plugin is involved.
Is IL2CPP metadata version 107 support planned for an upcoming BepInEx bleeding-edge build, or is there currently a recommended development build/configuration for Unity 6000.5.8f1 games using metadata v107?
I have attached the complete LogOutput.log.
BepInEx Distribution
Bleeding Edge from BepisBuilds
Log outputs
[Message: Preloader] BepInEx 6.0.0-be.785 - Hellforged (28/08/2026 8:56:46 AM)
[Message: Preloader] Built from commit 6abdba47eeebe08552282e7a58ef0f4a9ab60b62
[Info : BepInEx] System platform: Windows 10 64-bit
[Info : BepInEx] Process bitness: 64-bit (x64)
[Info : BepInEx] Running under Unity 6000.5.8f1
[Info : BepInEx] Runtime version: 6.0.7
[Info : BepInEx] Runtime information: .NET 6.0.7
[Debug : BepInEx] Game executable path: F:\Steam\steamapps\common\Hellforged Demo\Hellforged.exe
[Debug : BepInEx] Interop assembly directory: F:\Steam\steamapps\common\Hellforged Demo\BepInEx\interop
[Debug : BepInEx] BepInEx root path: F:\Steam\steamapps\common\Hellforged Demo\BepInEx
[Info :InteropManager] Detected outdated interop assemblies, will regenerate them now
[Message:InteropManager] Extracting unity base libraries from F:\Steam\steamapps\common\Hellforged Demo\BepInEx\\\unity-libs\6000.5.8.zip
[Message:InteropManager] Running Cpp2IL to generate dummy assemblies from F:\Steam\steamapps\common\Hellforged Demo\Hellforged_Data/il2cpp_data/Metadata/global-metadata.dat
[Info : Cpp2IL] [Library] Initializing Metadata...
[Error :InteropManager] Failed to generate Il2Cpp interop assemblies: Cpp2IL.Core.Exceptions.LibCpp2ILInitializationException: Fatal Exception initializing LibCpp2IL!
---> System.FormatException: Unsupported metadata version found! We support 23-106, got 107
at LibCpp2IL.Metadata.Il2CppMetadata.ReadFrom(Byte[] bytes, UnityVersion unityVersion) in /home/runner/work/Cpp2IL/Cpp2IL/LibCpp2IL/Metadata/Il2CppMetadata.cs:line 87
at LibCpp2IL.LibCpp2IlMain.Initialize(Byte[] binaryBytes, Byte[] metadataBytes, UnityVersion unityVersion) in /home/runner/work/Cpp2IL/Cpp2IL/LibCpp2IL/LibCpp2IlMain.cs:line 156
at LibCpp2IL.LibCpp2IlMain.LoadFromFile(String pePath, String metadataPath, UnityVersion unityVersion) in /home/runner/work/Cpp2IL/Cpp2IL/LibCpp2IL/LibCpp2IlMain.cs:line 206
at Cpp2IL.Core.Cpp2IlApi.InitializeLibCpp2Il(String assemblyPath, String metadataPath, UnityVersion unityVersion, Boolean allowUserToInputAddresses) in /_/Cpp2IL.Core/Cpp2IlApi.cs:line 67
--- End of inner exception stack trace ---
at Cpp2IL.Core.Cpp2IlApi.InitializeLibCpp2Il(String assemblyPath, String metadataPath, UnityVersion unityVersion, Boolean allowUserToInputAddresses) in /_/Cpp2IL.Core/Cpp2IlApi.cs:line 73
at BepInEx.Unity.IL2CPP.Il2CppInteropManager.RunCpp2Il() in /home/runner/work/BepInEx/BepInEx/Runtimes/Unity/BepInEx.Unity.IL2CPP/Il2CppInteropManager.cs:line 364
at BepInEx.Unity.IL2CPP.Il2CppInteropManager.GenerateInteropAssemblies() in /home/runner/work/BepInEx/BepInEx/Runtimes/Unity/BepInEx.Unity.IL2CPP/Il2CppInteropManager.cs:line 266
[Info : Preloader] 0 patcher plugins loaded
[Info : Preloader] 0 assemblies discovered
[Message:AssemblyPatcher] Executing 0 patch(es)
[Message: BepInEx] Chainloader initialized
[Debug : Preloader] Runtime invoke pointer: 0x7FFDA095C560
[Debug :DobbyDetour] Preparing detour from 0x7FFDA095C560 to 0x7FFDB16932E4
[Debug :DobbyDetour] Prepared detour; Trampoline: 0x7FFD60960000
[Debug :DobbyDetour] Original: 7FFDA095C560, Trampoline: 7FFD60960000, diff: 3FFFC560
[Debug : Preloader] Runtime invoke patched
[Fatal : BepInEx] Unable to execute IL2CPP chainloader, no plugins will be loaded
[Error : BepInEx] System.IO.FileNotFoundException: Could not load file or assembly 'UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
File name: 'UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
at BepInEx.Unity.IL2CPP.IL2CPPChainloader.SetupUnityLogging()
at BepInEx.Unity.IL2CPP.IL2CPPChainloader.OnInvokeMethod(IntPtr method, IntPtr obj, IntPtr parameters, IntPtr exc) in /home/runner/work/BepInEx/BepInEx/Runtimes/Unity/BepInEx.Unity.IL2CPP/IL2CPPChainloader.cs:line 90
[Debug : Preloader] Runtime invoke unpatchedEnvironment
- OS: Windows 10 64-bit
- BepInEx: 6.0.0-be.785 (commit 6abdba47eeebe08552282e7a58ef0f4a9ab60b62)
- Game: Hellforged Demo, Patch 0.1.14
- Unity: 6000.5.8f1
- Runtime: IL2CPP, .NET 6.0.7Source: BepInEx/BepInEx