-
Notifications
You must be signed in to change notification settings - Fork 106
Open
Description
What happened?
The tool crashes during the process startup phase when running on the game Lost Castle 2. Same critical error as in issue #215, but with an important discovery and a subsequent error.
First Error (with UnityLogListening enabled)
ErrorLog.log
Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at Il2CppInterop.Runtime.Injection.Hooks.GenericMethod_GetMethod_Hook.Hook(Il2CppInterop.Runtime.Runtime.Il2CppGenericMethod*, Boolean)
at BepInEx.Unity.IL2CPP.IL2CPPChainloader.OnInvokeMethod(IntPtr, IntPtr, IntPtr, IntPtr)
at Il2CppInterop.Runtime.IL2CPP.il2cpp_runtime_invoke(IntPtr, IntPtr, Void**, IntPtr ByRef)
at Il2CppSystem.Type.GetMethod(System.String)
at Il2CppInterop.Runtime.DelegateSupport.ConvertDelegate[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Delegate)
at UnityEngine.Application+LogCallback.op_Implicit(System.Action`3<System.String,System.String,UnityEngine.LogType>)
at BepInEx.Unity.IL2CPP.Logging.IL2CPPUnityLogSource..ctor()
at BepInEx.Unity.IL2CPP.IL2CPPChainloader.OnInvokeMethod(IntPtr, IntPtr, IntPtr, IntPtr)
Disabling UnityLogListening allows the mod to load normally, bypassing the first error.
Second Error (after disabling UnityLogListening)
ErrorLog.log
Stack overflow.
at Il2CppInterop.Runtime.Injection.Hooks.GenericMethod_GetMethod_Hook.Hook(Il2CppInterop.Runtime.Runtime.Il2CppGenericMethod*, Boolean)
at BepInEx.Unity.IL2CPP.IL2CPPChainloader.OnInvokeMethod(IntPtr, IntPtr, IntPtr, IntPtr)
at Il2CppInterop.Runtime.IL2CPP.il2cpp_runtime_invoke(IntPtr, IntPtr, Void**, IntPtr ByRef)
at Il2CppSystem.Reflection.MethodInfo.MakeGenericMethod(Il2CppInterop.Runtime.InteropTypes.Arrays.Il2CppReferenceArray`1<Il2CppSystem.Type>)
at UnityEngine.GameObject+MethodInfoStoreGeneric_AddComponent_Public_T_0`1[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]..cctor()
at UnityEngine.GameObject.AddComponent[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]()
at UniverseLib.UniversalBehaviour.Setup()
at UniverseLib.Universe.Init(Single, System.Action, System.Action`2<System.String,UnityEngine.LogType>, UniverseLib.Config.UniverseLibConfig)
at ZGScriptTrainer.ZGScriptTrainer.Init()
at ZGScriptTrainer.ZGScriptTrainer.Load()
at BepInEx.Unity.IL2CPP.IL2CPPChainloader.LoadPlugin(BepInEx.PluginInfo, System.Reflection.Assembly)
at BepInEx.Bootstrap.BaseChainloader`1[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].LoadPlugins(System.Collections.Generic.IList`1<BepInPluginInfo>)
at BepInEx.Bootstrap.BaseChainloader`1[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Execute()
at BepInEx.Unity.IL2CPP.IL2CPPChainloader.OnInvokeMethod(IntPtr, IntPtr, IntPtr, IntPtr)
LogOutput.log
[Message: Preloader] BepInEx 6.0.0-be.738 - LostCastle2 (2025/9/29 21:58:02)
[Message: Preloader] Built from commit af0cba71fb69324aa4dfd651422bfa020309ce15
[Info : BepInEx] System platform: Windows 10 64-bit
[Info : BepInEx] Process bitness: 64-bit (x64)
[Info : BepInEx] Running under Unity 6000.0.57f1
[Info : BepInEx] Runtime version: 6.0.7
[Info : BepInEx] Runtime information: .NET 6.0.7
[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: 0x7FFE07368360
[Debug :DobbyDetour] Preparing detour from 0x7FFE07368360 to 0x7FFE166A3264
[Debug :DobbyDetour] Prepared detour; Trampoline: 0x7FFDC7370000
[Debug :DobbyDetour] Original: 7FFE07368360, Trampoline: 7FFDC7370000, diff: 3FFF8360
[Debug : Preloader] Runtime invoke patched
[Debug :InteropManager] Preloaded 200 interop assemblies in 692ms
[Debug : BepInEx] Examining 'E:\program files (x86)\steam\steamapps\common\Lost Castle 2\BepInEx\plugins\UniverseLib.IL2CPP.Interop.dll'
[Debug : BepInEx] Examining 'E:\program files (x86)\steam\steamapps\common\Lost Castle 2\BepInEx\plugins\ZGScriptTrainer.dll'
[Info : BepInEx] 1 plugin to load
[Info : BepInEx] Loading [失落城堡2内置修改器 1.1.0]
[Debug :Il2CppInterop] il2cpp_object_get_virtual_method: 0x7FFE07368260
[Debug :Il2CppInterop] Object::GetVirtualMethod: 0x7FFE07348290
[Debug :Il2CppInterop] GenericMethod::GetMethod found: 0x7FFE07377880
[Debug :DobbyDetour] Preparing detour from 0x7FFE07377880 to 0x7FFE166A3424
[Debug :DobbyDetour] Prepared detour; Trampoline: 0x7FFDC7380000
[Debug :DobbyDetour] Original: 7FFE07377880, Trampoline: 7FFDC7380000, diff: 3FFF7880
[Debug :Il2CppInterop] il2cpp_image_get_class: 0x7FFE07367F10
[Debug :Il2CppInterop] Image::GetType: 0x7FFE0736E410
[Debug :Il2CppInterop] imageGetTypeXrefs.Length: 2
[Debug :Il2CppInterop] getTypeInfoFromHandle: 7FFE07356B00
[Debug :Il2CppInterop] MetadataCache::GetTypeInfoFromTypeDefinitionIndex found: 0x7FFE0731B220
[Debug :DobbyDetour] Preparing detour from 0x7FFE0731B220 to 0x7FFE166A3464
[Debug :DobbyDetour] Prepared detour; Trampoline: 0x7FFDC7370020
[Debug :DobbyDetour] Original: 7FFE0731B220, Trampoline: 7FFDC7370020, diff: 3FFAB200
[Debug :Il2CppInterop] Class::GetDefaultFieldValue found: 0x7FFE07319C80
[Debug :DobbyDetour] Preparing detour from 0x7FFE07319C80 to 0x7FFE166A34A4
[Debug :DobbyDetour] Prepared detour; Trampoline: 0x7FFDC7370040
[Debug :DobbyDetour] Original: 7FFE07319C80, Trampoline: 7FFDC7370040, diff: 3FFA9C40
[Warning:Il2CppInterop] Class::Init signatures have been exhausted, using a substitute!
[Debug :Il2CppInterop] Picked mono_class_instance_size as a Class::Init substitute
[Debug :Il2CppInterop] Class::Init: 0x7FFE07368B70
[Debug :Il2CppInterop] il2cpp_class_from_il2cpp_type: 0x7FFE07310A90
[Debug :Il2CppInterop] Class::FromIl2CppType found: 0x7FFE073539A0
[Debug :DobbyDetour] Preparing detour from 0x7FFE073539A0 to 0x7FFE166A34E4
[Debug :DobbyDetour] Prepared detour; Trampoline: 0x7FFDC7370060
[Debug :DobbyDetour] Original: 7FFE073539A0, Trampoline: 7FFDC7370060, diff: 3FFE3940
[Debug :Il2CppInterop] il2cpp_class_from_name: 0x7FFE07367800
[Debug :Il2CppInterop] Class::FromName found: 0x7FFE07353F00
[Debug :DobbyDetour] Preparing detour from 0x7FFE07353F00 to 0x7FFE166A3524
[Debug :DobbyDetour] Prepared detour; Trampoline: 0x7FFDC7370080
[Debug :DobbyDetour] Original: 7FFE07353F00, Trampoline: 7FFDC7370080, diff: 3FFE3E80
[Debug :Il2CppInterop] GarbageCollector::RunFinalizer found: 0x7FFE07343DC0
[Debug :DobbyDetour] Preparing detour from 0x7FFE07343DC0 to 0x7FFE166A3564
[Debug :DobbyDetour] Prepared detour; Trampoline: 0x7FFDC73700A0
[Debug :DobbyDetour] Original: 7FFE07343DC0, Trampoline: 7FFDC73700A0, diff: 3FFD3D20
[Info :Il2CppInterop] Registered mono type ZGScriptTrainer.UI.Models.TooltipGUI in il2cpp domain
[Info : HarmonyX] ### Harmony id=ScriptTrainer.Jim97.Lost_Castle_2, version=2.10.2.0, location=E:\program files (x86)\steam\steamapps\common\Lost Castle 2\BepInEx\core\0Harmony.dll, env/clr=6.0.7, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows
### Started from static void ZGScriptTrainer.ZGScriptTrainer::.cctor(), location E:\program files (x86)\steam\steamapps\common\Lost Castle 2\BepInEx\plugins\ZGScriptTrainer.dll
### At 2025-10-03 08.49.29
[Info : HarmonyX] Patching LC2.BagSystem+CheckPickUpType LC2.BagSystem::GetPickUpType(LC2.Item item) with 0 prefixes, 1 postfixes, 0 transpilers, 0 finalizers
1 postfixes:
* static void ZGScriptTrainer.ScriptPatch+BagSystemPatch::Postfix(LC2.BagSystem+CheckPickUpType& __result)
[Info : HarmonyX] Running ILHook manipulator on LC2.BagSystem+CheckPickUpType LC2.BagSystem::GetPickUpType(LC2.Item item)
[Info : HarmonyX] Writing postfixes
[Debug :DobbyDetour] Preparing detour from 0x7FFE079689A0 to 0x7FFE166A3B24
[Debug :DobbyDetour] Prepared detour; Trampoline: 0x7FFDC7970000
[Debug :DobbyDetour] Original: 7FFE079689A0, Trampoline: 7FFDC7970000, diff: 3FFF89A0
[Info : HarmonyX] Patching LC2.BagSystem+CheckPickUpType LC2.BagSystem::GetPickUpType_Shop(LC2.Item item, int price) with 0 prefixes, 1 postfixes, 0 transpilers, 0 finalizers
1 postfixes:
* static void ZGScriptTrainer.ScriptPatch+BagSystemPatch::Postfix(LC2.BagSystem+CheckPickUpType& __result)
[Info : HarmonyX] Running ILHook manipulator on LC2.BagSystem+CheckPickUpType LC2.BagSystem::GetPickUpType_Shop(LC2.Item item, int price)
[Info : HarmonyX] Writing postfixes
[Debug :DobbyDetour] Preparing detour from 0x7FFE07968400 to 0x7FFE166A3B64
[Debug :DobbyDetour] Prepared detour; Trampoline: 0x7FFDC7970020
[Debug :DobbyDetour] Original: 7FFE07968400, Trampoline: 7FFDC7970020, diff: 3FFF83E0
[Info : HarmonyX] Patching LC2.BagSystem+CheckPickUpType LC2.BagSystem::GetPickUpType_PassiveProps(LC2.PassiveProps passiveProps) with 0 prefixes, 1 postfixes, 0 transpilers, 0 finalizers
1 postfixes:
* static void ZGScriptTrainer.ScriptPatch+BagSystemPatch::Postfix(LC2.BagSystem+CheckPickUpType& __result)
[Info : HarmonyX] Running ILHook manipulator on LC2.BagSystem+CheckPickUpType LC2.BagSystem::GetPickUpType_PassiveProps(LC2.PassiveProps passiveProps)
[Info : HarmonyX] Writing postfixes
[Debug :DobbyDetour] Preparing detour from 0x7FFE07967F20 to 0x7FFE166A3BA4
[Debug :DobbyDetour] Prepared detour; Trampoline: 0x7FFDC7970040
[Debug :DobbyDetour] Original: 7FFE07967F20, Trampoline: 7FFDC7970040, diff: 3FFF7EE0
[Info : HarmonyX] Patching LC2.Power.PowerEntry LC2.Weapon::GetNewPerk(bool addNewPerk) with 0 prefixes, 1 postfixes, 0 transpilers, 0 finalizers
1 postfixes:
* static void ZGScriptTrainer.ScriptPatch+WeaponOverridePatch_GetNewPerk::Postfix(LC2.Weapon __instance, LC2.Power.PowerEntry& __result)
[Info : HarmonyX] Running ILHook manipulator on LC2.Power.PowerEntry LC2.Weapon::GetNewPerk(bool addNewPerk)
[Info : HarmonyX] Writing postfixes
[Debug :DobbyDetour] Preparing detour from 0x7FFE0767DBF0 to 0x7FFE166A3BE4
[Debug :DobbyDetour] Prepared detour; Trampoline: 0x7FFDC7970060
[Debug :DobbyDetour] Original: 7FFE0767DBF0, Trampoline: 7FFDC7970060, diff: 3FD0DB90
[Info : HarmonyX] ### Harmony id=com.sinai.universelib, version=2.10.2.0, location=E:\program files (x86)\steam\steamapps\common\Lost Castle 2\BepInEx\core\0Harmony.dll, env/clr=6.0.7, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows
### Started from static void UniverseLib.Universe::.cctor(), location E:\program files (x86)\steam\steamapps\common\Lost Castle 2\BepInEx\plugins\UniverseLib.IL2CPP.Interop.dll
### At 2025-10-03 08.49.29
[Message:失落城堡2内置修改器] [UniverseLib] UniverseLib 1.5.1 initializing...
[Info :Il2CppInterop] Registered mono type UniverseLib.UniversalBehaviour in il2cpp domain
Steps to Reproduce
- Install BepInEx
- With UnityLogListening enabled: Game crashes with AccessViolationException
- With UnityLogListening disabled: Mod starts loading but crashes with StackOverflow during component initialization
BepInEx Distribution
- BepInEx 6.0.0-be.738
Environment
- OS: Win 11
- Unity: 6000.0.57f1
- Game: Lost Castle 2
Metadata
Metadata
Assignees
Labels
No labels