Skip to content

UE5CEDumper v2215

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Jul 11:02
f518905

UE5CEDumper — Unreal Engine 4/5 dumper (C++ DLL + Cheat Engine bridge + Avalonia UI).

Self-contained Windows x64 build (Native AOT). No .NET runtime install required.

What's New since v2012

Highlights below — the headline is full time control over the game world, plus behaviour-based function discovery and auto-detected stats.

Time control — slow-mo, freeze & bullet time

  • Slow, freeze, or speed up the whole game world — A new Time Dilation card in the Teleport tab sets the entire world's speed — enemies, projectiles, and physics all included — anywhere from a full freeze up to 3x. It forces Unreal's time-dilation value and re-asserts it about four times a second, so a game's own slow-mo ability or a cutscene time track can't quietly undo your setting.
  • Bullet time — slow the world but keep yourself fast — A second, independent lever dilates only your own pawn, and both run at once, so your effective rate is world x pawn. Set World to 1/2x and Player to 2x and you move at normal speed through a half-speed world (classic bullet-time dodging); a live "Combined player speed" readout on the Player row means the world slowdown affecting you is never a surprise.
  • Presets, a smooth slider, and it remembers your setting — Each row has a 0–3x slider plus one-tap presets (Freeze / quarter / half / 1x / 2x), with Apply and Reset per lever and a Refresh that re-reads both live values. Because the hold lives inside the injected DLL, your dilation survives a UI reconnect while the game keeps running, and your last value and target are restored across UI restarts.
  • Push it to Cheat Engine as an on/off toggle — Add to CE or Save .CT… ships two independent records — Time: World and Time: Player — each baked at its row's speed. Tick a record to hold the value, untick to restore the game's natural rate; both can run together for the bullet-time combo, straight from a standalone table with only the dumper DLL injected and no UI open.
  • Honest limits — Single-player only, and it was live-verified on The Adventures of Elliot (UE4.27). A literal 0 can destabilise physics on some games (use 0.05x for a near-freeze instead), you can't step a world the game itself has paused, the value flickers briefly while fighting an active cutscene time track, and a few games drive speed from a bespoke non-standard multiplier that won't respond to dilation at all.

Find the function behind an in-game action — Live call profiler

  • Record an action, see the function that ran it — A new "Live Funcs" tab records what the game actually does: press Start, switch to the game, perform one action (open a shop, dash, attack), press Stop, and read a ranked list of the functions that fired. This finds the function behind a named action that keyword scoring simply can't — the action's own function sits near the top with a small call count, while per-frame Tick/Update noise piles up huge counts you can ignore.
  • Cut the noise so the real function stands out — Set a baseline on an idle recording, and the action recording then marks the new or changed functions and ranks them first, hiding steady Tick noise. An "Order" column floats the first-fired function to the top — an action's entry point runs before the reactions it triggers — and Type badges let you hide event/delegate callbacks and UI-widget methods so only the imperative call you can actually invoke is left.
  • Find timer-driven callbacks by recording nothing — The inverse workflow finds the callback behind a cooldown, respawn, or damage-over-time tick: record an idle window of about 15–20 seconds, then "Periodic only" leaves just the functions firing at a regular timer cadence, each shown with a "Timer" badge and a Period column. On one UE4.27 title an idle recording correctly flagged the real ~3 Hz Blueprint timers out of about 90 functions, with the per-frame noise excluded.
  • Clearer setup, and an honest limit — The profiler now installs its hook on demand and, if it can't, tells you the real reason and suggests switching maps to retry instead of silently reporting zero. The honest caveat: only reflected/Blueprint calls flow through this hook, so an action opened by a native C++ call — and native or lambda-based timers — stays invisible to the method, and the callable list simply comes up empty rather than wrong.
  • A quick keyword shortcut for common actions — As a faster first guess before live recording, the name-based Interesting Functions scorer gained an opt-in "Gameplay Actions" pack that surfaces the verbs you usually want to call — Dash, Dodge, Roll, Interact, Use, Open, Buy, Sell, Shop, Trade — which previously scored zero and stayed hidden. A Blueprint/Exec-only filter narrows the list to functions you can actually drive.

Auto-detect player stats (HP / MP / Gold)

  • One-button "Detect Stats" panel — A new experimental tab takes a single click and hands you a ranked shortlist of the fields most likely to be Health, Mana/MP, Gold, XP or Level, grouped by the class they live on — so you have a starting point instead of scrolling thousands of properties by hand. It confirms each guess against a live instance in the running game (the field actually exists on a spawned object and holds a plausible value), which pushes the real candidates to the top.
  • Smarter than name-matching alone — The scorer fuses the field's name with structural clues from the dump: it recognises Gameplay Ability System (GAS) attributes, pairs a "Current" value with its matching "Max" (e.g. Health with MaxHealth or MaximumHealth), and weighs the engine's own property flags — SaveGame and BlueprintVisible nudge a field up, editor-only fields down. This catches stats that a plain keyword search would miss and demotes look-alikes sitting in containers or delegates.
  • Optional "it went down" snapshot signal — If you capture two snapshots — for example before and after taking damage — Detect Stats can boost fields whose value dropped between them and show the change inline (e.g. "320.23 → 300.33"), a strong hint that you've found the live stat. Running the detector no longer freezes the window while it reads snapshots.
  • Honest about its limits — reference only — This is a suggestion aid, not a guarantee: it is opt-in behind the experimental toggle and carries a prominent "reference only, low accuracy" note, since games vary wildly in how they store stats. It was verified in-game on Tales of Arise, where the GAS rule surfaced the Health pair, and on ES2 and SEED, which have no GAS at all and fall back to the name, type, pairing and flag signals. A related fix also gives a clearer message when a found value can't be traced back to the world, telling you when raising the search depth would actually help rather than wrongly saying it won't.

"Enemies can't detect you" — force and hold a field across live objects

  • Discover-then-hold a game field — Unreal has no universal "enemies can't detect you" switch — detection lives in a per-game field (a visibility meter, a bIsInvisible flag, an enemy's target pointer). So instead of a fake magic toggle, you point the tool at the game's own field and it force-holds it across every live instance of that class, re-writing the value whenever the game tries to change it back. It handles booleans (force ON/OFF), object pointers (force to null), and numbers (hold at an exact value).
  • One-click Stealth Meter zero — The Teleport tab's Stealth Meter card auto-finds a stealth/visibility number on your player pawn and its components, shows you the exact field it locked onto so you can sanity-check it, then holds it at 0 so the game can't refill it — with a Reset to release. If nothing turns up, it tells you plainly and points you at the manual Force workflow instead.
  • Force any field you find yourself — In Property Search, right-click any field row for a Force submenu — Force ON / OFF for a boolean, Force → null for an enemy's target pointer (with a confirm, since nulling a live pointer the game still reads can crash it), or Force value… for a number. A "Forced fields (N held)" strip lists every active hold with an N count and per-hold remove, so you can see exactly how many objects each force is touching.
  • Honest about its limits — Both features are behind the Experimental opt-in because they write to live gameplay objects, and they are single-player only. A hold hits every live instance of the class (usually just you for a player field, all of them for a shared enemy class), and an N-held count of 0 is an honest "matched nothing right now" signal — spawn the enemy or enter combat and force again. Only reflected fields are reachable, and object-null works on strong pointers only; it is a per-game field trick, not a guaranteed god-of-stealth.

Find & browse — offline dump search and a whole-pool live instance explorer

  • Dump Explorer — search a saved full dump offline — A new tab loads a saved "Dump All" (.jsonl) export and lets you search across every class, property, and function at once from one keyword box (spaces mean AND — all terms must match — with an All/Class/Prop/Func filter). Results split into what's actually present in the game you're attached to — with a one-click jump to the Live Walker, and a link to that class's live instances — versus metadata that isn't loaded right now. Matching is by class name so it survives a game restart, and a "Last export" button reloads your most recent in-session dump with no file dialog.
  • Object Tree "Instances only" toggle — The Object Tree search already scans the whole object pool, but it was cluttered with the engine's reflection layer — classes, functions, structs, enums, packages, and property descriptors. Tick "Instances only" to hide all of that and get a clean whole-pool keyword search over just the live game objects; the scan still covers every object in the pool, not only the rows currently on screen.
  • Object Tree search that matches more and lets you act on the hit — The top Search box now matches on object name OR class name (so typing "Pawn" finds by class), combines multiple words with AND, honours the Instances-only toggle, and tells you honestly when it hits its cap ("Found N+ — narrow the search") instead of silently stopping short. Right-click any instance row to open it in the Live Walker, show its Related Objects, or locate its shortest pointer chain from GWorld or GameEngine.
  • Space = AND and remembered keywords in every filter box — All the keyword and filter boxes across the app now treat spaces as AND — type "add money" and both words must appear, in any order, in any field — instead of matching one literal substring. Each box also remembers the keywords you've typed that actually found something and offers them back as you type.
  • "Game only" filtering actually works now — A long-standing bug meant the engine-package check never matched the real object-path format, so the "game only" option silently did nothing and engine classes leaked into your dumps and searches. It now recognises engine packages correctly and filters them out, giving you a genuine game-only view.

Cheat Engine export — choose string length, fabricate empty array slots

  • Pick how long exported string fields are — CE String leaves used to be locked to a fixed 256-character length. A toolbar slider now lets you set the length from 16 up to 4096 (256 is still the default), so long names and text no longer get cut off — and you can trim it down when you want a tidier table.
  • Fabricate extra array rows to watch slots the game hasn't filled yet — On Copy CE Field in the Live Walker, a new Fabricate control pads a selected TArray out to N rows (off by default, up to 4096 with an amber warning past 256), so your Cheat Engine table already has slots for items the current save hasn't populated — handy for watching inventory or roster entries appear the moment the game writes them. It never hides real data (the row count is always the larger of your fabricate number and the actual length), only pads the top-level array of the walked object, and leaves empty slots showing ?? in CE until they fill. Maps and Sets aren't fabricated, since their gaps aren't laid out contiguously in memory.

Snapshots, proxies & invoke

  • Auto Snapshot — capture over time, hands-off — The experimental Snapshot tab can now take snapshots on a repeating timer so you can leave it running while you play and diff before/after values later — flip the toggle On, set an interval and a retention rule (keep the most recent N, or stop after N). It's a manual, session-only switch (it never auto-starts on connect), always leaves at least a 60-second breather between captures so the game keeps running smoothly, and does not touch scan thread priority.
  • Disk-space guard — never fills your drive — Every snapshot capture is now blocked if the drive holding the snapshot database drops below a free-space threshold (default: 10% of the drive or 50 GB, whichever is smaller; set either to 0 to relax it). If it trips mid-capture it keeps the partial rather than deleting on a nearly-full disk, so an unattended overnight Auto Snapshot run can't quietly eat all your storage.
  • Proxy Deploy remembers what worked per game — The Proxy Deploy grid now shows a per-game Suggested proxy column so you don't have to re-guess between version/dinput8/dxgi after a reinstall wipes the folder. It prefers a proxy the tool actually saw load and stay running (the DLL now self-reports which proxy loaded it, confirmed only after the game survives about 20 seconds), then falls back to your last deployed pick, then injection, then the safe default. It's advisory only — it never changes your proxy setting or auto-deploys, and it's keyed by the game's .exe name so it survives patches and reinstalls.
  • Fire functions that take a struct by value — The CE Lua invoke helper can now call UFunctions whose input is a whole struct passed by value — previously these failed with an "Unknown param type" message. Generated invoke scripts emit the struct's size and the helper zero-fills and fills the struct region correctly, including nested fields.
  • Heads-up before a too-shallow "Locate in GWorld" — In the Live Walker, if you run Locate in GWorld with the depth set below where deep objects typically live (GAS attributes sit about 7 hops out), the tool now warns you once per session that the depth-bounded search may miss the target and offers to Cancel so you can raise the depth or enable Deep first — saving you a slow search that was never going to find it.

Reliability — bug & leak fixes

  • Snapshots survive a mid-capture disconnect — If the pipe drops while a snapshot is being captured, the tool no longer finalises the half-finished snapshot as if it were complete — so Value Search, Class Pivot, and diff comparisons won't show phantom "removed" rows built from truncated data. The automatic periodic-capture loop also stops cleanly instead of wedging when the connection goes away.
  • Held values keep holding through a brief disconnect — God Mode, Move Speed / Gravity / Super Jump, Time Dilation, and Force-Field / Stealth-meter holds no longer freeze when the UI momentarily disconnects. Their background re-assert workers now ignore the per-command cancel signal, so a value you asked to hold stays held until you release it or restart the game.
  • See-through occluders reliably reappear — Toggling the see-through-walls feature off, disconnecting, or hitting a stalled game thread now reliably restores hidden world geometry instead of occasionally leaving it invisible. It remains a no-op on games that use invisible collision proxies (for example FF7R), as before.
  • Cleaner shutdown and gate handling — Closed a window where a hold worker could be revived after the tool had already begun shutting down, and turning the experimental gate off now releases an active stealth-meter hold instead of leaving it silently running in the background.
  • Proxy suggestion and Property Search fixes — The suggested "last-known-good" proxy is now only recorded as confirmed-working within the same live session, so a crash-and-reconnect no longer credits the wrong proxy. The Property Search results filter also now behaves like every other search box — space-separated words AND-combine and your successful searches are remembered.

Full Changelog: v2012...v2215

Setup

  • Inject via the bundled Cheat Engine table (UE5CEDumper.CT), or drop the proxy version.dll into the game's Binaries\Win64.
  • See Readme.MD for details.

The exe is unsigned — Windows SmartScreen / antivirus may warn on first run. Verify the download with the included .sha256.