tag align to OCT release
download pre-compiled application here: https://opencheattables.com/viewtopic.php?f=17&t=1797
UE5CEDumper v730 — Release Notes (v560 → v730)
Window: 2026-05-09 → 2026-05-25 (16 days, 50 commits)
Tested games: 29 / 29 GWorld coverage (100%)
Tests: 770 → 1015 passing (+245)
This release closes the loop on invoking UFunctions as cheat-table actions, adds two large discovery surfaces (Interesting Funcs, Interesting Props), introduces class-wide property freeze, and lands a critical fix to a ProcessEvent hook that had been silently misfiring for 600+ builds.
Highlights
| Theme | Build(s) | What |
|---|---|---|
| AA Script export from UFunction rows | 590-596 | Helper-in-table pattern, ~50-line AA Script per function |
| Interesting Functions Finder tab | 597-687 | Keyword + class + flag scorer |
| Interesting Properties Finder tab | 670-687 | Mirror of Funcs side + Unusual Location flag |
| Property Freeze (Route B) | 719 | Class-wide horizontal lock |
| Invoke param picker (Stages 1+2) | 711-715 | UClass surface + [Pick…] [null] [self]
|
| Mailbox poll 10ms → 1ms | 707-710 | CE-Lua sequential invokes ~5ms/call faster |
| ProcessEvent vtable detection (CRITICAL fix) | 648 | Function-body pattern scan + hook-fire validator |
New features
Invoke pipeline — discover → invoke → ship as cheat table
- Copy AA Script (Baked) on UFunction rows (build 590-596). Pre-filled params, no in-CE form. Helper-in-table pattern: one shared
ue5_invoke_helper.lualoaded viafindTableFile, AA Script per function ~50 lines. - Interesting Functions Finder tab (build 597-687). Scores all UFunctions across all UClasses. CamelCase tokeniser (build 609) so
HP/MP/SP/XP/TPmatch safely without false-positives onComponent/Spawn/etc. - Static-native ProcessEvent fast path (build 636).
KismetMathLibrary/KismetSystemLibraryinvokes no longer wait on the game thread. ES2 menu-state invokes that used to time out at 5-7s now return instantly. - Tools → Inject Helper into Current CE Table (build 611). One-click ships
ue5_invoke_helper.luainto the open .CT via the AOBMaker pipe. - Verify Return Value toggle on the baked AA Script (build 637). Before/After raw-byte dump + typed return decode for diagnostic invokes.
- Invoke param picker Stages 1+2 (build 711-715):
- Stage 1 — UObject*/UClass*/Soft*/Weak*/Lazy*/Interface params now show the expected UClass:
[UObject*: AActor, 8B, off=0x10]instead of a bare[UObject*, 8B]. - Stage 2 —
[Pick…][null] [self]buttons next to each pointer param. Pick opens a class-pre-filtered instance picker.
- Stage 1 — UObject*/UClass*/Soft*/Weak*/Lazy*/Interface params now show the expected UClass:
- Mailbox poll 10ms → 1ms (build 707-710).
timeBeginPeriod(1)bracket so the 1ms target is delivered even on hosts with the legacy 15.6ms scheduler tick.
Discovery surfaces
- Interesting Properties Finder tab (build 670-687) — mirror of the Funcs Finder for properties. New concept: ⚠ Unusual Location flag for fields living in
LocalPlayer/GameViewportClient/HUD/CheatManager— often the most cheat-tunable. Calibrated against a 15-game dump corpus. - Multi-select Copy CE Field(s) (build 660). LiveWalker DataGrid in Extended mode. Container multi-select emits ONE filtered container with N elements.
- PropertySearch dedupe-by-defining-class (build 610).
bCanBeDamagedno longer returns 4823 rows — single representative row plus an inheritor count badge. search_properties_batch(build 685). 36-keyword Interesting Properties Load went 42s → ~1.5s by walking GObjects once instead of once per keyword.walk_class_batch(build 693-696). Full SDK Export + Dump All Metadata batched at 200 classes per round-trip. Estimated 2-5× wall-time on big games.
Property freeze
- Class-wide horizontal lock (build 719). PropertySearch row gets a Freeze button. Generated AA Script holds the value across every live instance of the owning class with 50ms tick + 5s instance rescan. Numerics + bool supported in v1.
Export / analysis
- Export → Dump All Metadata (.jsonl) (build 676). Streams every class + props + funcs via existing pipe endpoints.
- Python analyzer pipeline —
scripts/analysis/analyze_dumps.py. Aggregates dumps cross-game, emits a Markdown report (top names / tokens / Unusual Locations). Reproducible scoring-table calibration. - 15-game cross-game scoring calibration (build 678 + 687).
PropertyScoringTable/KeywordScoringTableadditions backed by empirical evidence across DQ7R / ES2 / FactoryGameSteam / Hogwarts / TQ2 / FF7R / Stray / others.
UX / polish
- System tab (formerly Pointers) with a Diagnostics card — UI/DLL build match, AOBMaker plugin status, Self-Test button that auto-picks a KismetMathLibrary helper and verifies the return value.
- ⚙ Options popover (build 666) — collapses 5 export-shape sliders into a dropdown. Reclaims ~600px so the toolbar stays one row at 4K@225%.
- Shorter tab labels (build 666) — Instance Finder → Instances, Property Search → Properties, etc.
- Function Goto (build 632) — Live button on Interesting Funcs now auto-expands the LiveWalker Functions section and scrolls to the target row.
- Empty-class hint banner on ClassStruct (build 632) —
BlueprintFunctionLibrarysubclasses no longer read as "broken". - Credit footer in System tab + Live Walker empty state.
Critical fixes
- ProcessEvent vtable wrong slot (build 648). Pre-648 detection picked a slot from a hardcoded version table and "validated" by reading 1 byte. ES2 / Geri ended up hooking the adjacent virtual; invokes silently returned
result=0without ever running the function. Rewrite uses a function-body pattern scan (Dumper-7 technique) matchingFUNC_Native+ high-flag-maskTESTinstructions, plus a post-install validator that logsVALIDATION FAILEDif the hook doesn't fire ≥1× in 1500ms. Verified live on ES2 (UE 5.5) and Geri (UE 4.27) — real PE slots were0x278and0x220, both off by ≥1 slot from the old hardcoded values. - SoftClassProperty silent 4-byte truncation (build 717).
[Pick…]declared 7 pickable pointer types butWriteParamonly covered 6 —SoftClassPropertyfell through to a size-based default that wrote 4 bytes of a 64-bit address before ProcessEvent. 14 contract theories now enforce the canonical type list at compile time. - DLL class filter dropped every BlueprintGeneratedClass (build 673).
Aura::SearchProperties/ListClasses/EnumerateAllFunctionsall hadif (metaClassName != "Class") continue;. ~90% of game-specific classes live in BPGCs. NewIsClassLikeMetawhitelist coversClass+BlueprintGeneratedClass+AnimBPGC+WidgetBPGC+DynamicClass. - SdkExportService BPGC filter (build 690). Same bug class on the C# side. Mirrored to
IsClassLikeMetaName. - Satisfactory / hybrid-layout proxy-deploy scanner (build 691-692). Three UE shipping layouts (monolithic / hybrid / pure-modular) now handled cleanly by a two-tier search (primary roots first,
Engine\as fallback). Eliminates phantom Engine-side rows on StellarBlade / NMKART / Palworld / TQ2 / Satisfactory. - AOBMaker plugin
InjectTableFile(build 632, AOBMaker-side fix).f.Stream.writeset Size=0 silently. Switched tocreateStringStream+copyFrom— same pattern CE's ownautorun/java.luauses.
Quality / infrastructure
- AOT-safe
ObjectInstancePickerDialog(build 729) — 12 IL2026/IL3050 warnings (reflection-basedBinding(string)columns) replaced withDataGridTemplateColumn+FuncDataTemplate<T>. AOT publish is now warning-clean at 41.9 MB. - Static MSVC CRT in Native AOT publish (build 718) — no VCRuntime DLL dependency.
- Compile warning sweep (build 698) — 13 sites cleared (C4189 dead var + xUnit1051 cancellation tokens).
Tested games (29 / 29 GWorld = 100%)
New / re-verified this window: Star Wars Jedi: Fallen Order (UE 4.21), Ghostwire: Tokyo (UE 5.04), Frontiers (UE 4.26), The Artisan of Glimmith (UE 4.27). Plus revalidation across DQ7R / ES2 / Geri / Hogwarts Legacy / Octopath Traveler / Stray / TQ2 / FF7 Rebirth / FF7 Remake / Satisfactory / NMKART / Palworld / StellarBlade / Manor Lords / Tower of Mask / DQI&IIHD2D / Deep Rock Galactic.
Known limitations
- EA-launcher games block proxy DLL preload — neither
version.dllnordinput8.dllloads when the EA app spawns the wrapped exe. Workaround: CE manual injection after the game is running. - Bitfield bool freeze not supported in v1 — helper writes a full byte; packed
uint8 bFoo : 1fields aren't surfaced as bitfields by PropertySearch yet. - FString / FName / TArray freeze out of v1 scope. Numerics + bool first.
Links
- Repository: https://github.com/bbfox0703/UE5CEDumper
- Forum thread: https://opencheattables.com/viewtopic.php?f=17&t=1797
- AOBMaker (companion CE plugin): https://opencheattables.com/viewtopic.php?t=1788