Summary
Repeated, fully reproducible access violation (0xc0000005, read) inside UObjectBase::IsA, reached via ForEachUObject --> FindFirstOf. Two separate crash sessions (with a different set of active Lua/DLL mods each time) produced an identical call stack down to the exact hex offset within UE4SS.dll, which I think rules out any single mod as the cause and points at the core object-iteration path.
Environment
- UE4SS build: experimental, "Clean 146", commit dated 2026-06-11T22:16Z
Crash signature
- Exception:
c0000005 (access violation, read)
- Faulting function:
UE4SS!RC::Unreal::UObjectBase::IsA+0x1e (module offset 0x36d3be in both dumps)
- Call chain (identical offsets in both dumps):
... --> LuaMadeSimple::Lua::call_function --> Unreal::Hook::FCallbackOptions::FCallbackOptions --> UObjectGlobals::ForEachUObject --> UObjectGlobals::FindFirstOf --> UObjectBase::IsA (crash)
- The register holding the "object" pointer at fault time contains what appears to be fragments of UTF-16 text rather than a valid UObject address in both dumps (possibly
FindFirstOf/ForEachUObject handing back a pointer into FName/FString data instead of a live UObject).
Reproduction notes
- First crash:
StateIndicator (third-party Lua+DLL mod) enabled, along with several other Lua mods (SwimSpeed_Increased, LockpickSettings, G1R_InGameClock, etc.)
- Second crash:
StateIndicator disabled, all other mods unchanged; produced the exact same stack, same offset, ruling out that specific mod.
- Both crashes occurred a short time after gameplay events likely involving object destruction/GC (an NPC load transition in the first case, closing a lockpicking minigame on a chest in the second); consistent with a race between object teardown and the iteration in
ForEachUObject.
What I've already ruled out
- Not a
bUseUObjectArrayCache staleness issue (already false)
- Not specific to any one Lua mod's logic (identical stack with mod disabled)
Attachments
- crash_1.dmp (StateIndicator enabled)
- crash_2.dmp (StateIndicator disabled)
- UE4SS
.log
UE4SS.log
(enabled mod list at time of second crash)
Happy to provide more detail, test a patched build, or gather anything else that would help; this is 100% reproducible on my end.
Summary
Repeated, fully reproducible access violation (0xc0000005, read) inside
UObjectBase::IsA, reached viaForEachUObject-->FindFirstOf. Two separate crash sessions (with a different set of active Lua/DLL mods each time) produced an identical call stack down to the exact hex offset within UE4SS.dll, which I think rules out any single mod as the cause and points at the core object-iteration path.Environment
Crash signature
c0000005(access violation, read)UE4SS!RC::Unreal::UObjectBase::IsA+0x1e(module offset0x36d3bein both dumps)... --> LuaMadeSimple::Lua::call_function --> Unreal::Hook::FCallbackOptions::FCallbackOptions --> UObjectGlobals::ForEachUObject --> UObjectGlobals::FindFirstOf --> UObjectBase::IsA(crash)FindFirstOf/ForEachUObjecthanding back a pointer into FName/FString data instead of a live UObject).Reproduction notes
StateIndicator(third-party Lua+DLL mod) enabled, along with several other Lua mods (SwimSpeed_Increased, LockpickSettings, G1R_InGameClock, etc.)StateIndicatordisabled, all other mods unchanged; produced the exact same stack, same offset, ruling out that specific mod.ForEachUObject.What I've already ruled out
bUseUObjectArrayCachestaleness issue (alreadyfalse)Attachments
.log
UE4SS.log
(enabled mod list at time of second crash)
Happy to provide more detail, test a patched build, or gather anything else that would help; this is 100% reproducible on my end.