Skip to content

v0.1.1 — LEGO Batman: LotDK post-update recovery

Choose a tag to compare

@satyajiit satyajiit released this 04 Jun 04:55
· 2 commits to main since this release

OpenForge v0.1.1 — LEGO Batman: Legacy of the Dark Knight post-update recovery

Restores the LEGO Batman: LotDK trainer after the game update, with update-resilient discovery and a code-modification-free game-thread executor.

Fixed

  • Self-healing GUObjectArray discovery. The game update relocated GUObjectArray (+0x4000), so the hardcoded address walked 0 live objects and every reflection feature reported "no live instances." Reflection now self-heals via a structural FChunkedFixedUObjectArray fingerprint scan — it adapts to the live address instead of depending on a baked-in one, so it survives game updates and store variants.
  • Game-thread UFunction executor. The UFunction-backed features (unlock all skills / fast-travel / outfits, fly, NPC dance, teleport-to-waypoint) dispatched ProcessEvent off the game thread, crashing the game; the inline-hook path additionally hung on the new build. Replaced with a hardware-breakpoint rendezvous (debug registers + a vectored exception handler) that runs the dispatch on the game thread with no code modification. The game-thread id is cached so bulk grants and per-frame features stay fast.
  • Reflection crash-safety. Dropped the stale instance-address cache and added live-object validation on dereference chains, so freeze writes can no longer corrupt reallocated objects.

Added — developer tooling

  • discover ue5-locate — external-RPM signature discovery with RVA-drift reporting.
  • discover ue5-soak — sustained-load reflection reproduction harness.
  • discover/re/dump_stack.py — minidump faulting-thread stack reader (no debugger required).

Full changelog: v0.1.0...v0.1.1