0.5.0 update, 2026-10-06

Legend
| Symbol |
Meaning |
Symbol |
Meaning |
 |
Added — new capability |
 |
Upgrade note — action or awareness needed |
 |
Changed — existing behavior differs |
 |
Removed — capability withdrawn |
 |
Fixed — defect corrected |
 |
Validated — verified by a run, not asserted |
 |
Note — context, no behavior change |
 |
Tests — coverage added |
Impact badges:
blocker ·
high ·
medium ·
low
Engines UE 5.5 · 5.6 · 5.7 · 5.8 Platforms Win64 · Linux
Tests 21 → 88, green on every engine Packages 4/4
Not available for Mac at this time, subject to change
0.5.0 turns LocalVault from a backup tool into a review station for everything you get from Fab.
Every download is scanned for code that can run in your editor and quarantined by default, checked
against your engine and project before you open it, and can be loaded in a throwaway sandbox before
you decide to keep it. When it does not work as advertised, LocalVault assembles the evidence for a
refund request. An opt-in price watch tells you when something on your list goes on sale. The
browser was rebuilt from scratch around all of this.
At a glance
|
Change |
Impact |
 |
Safety scan of every download, backup, restore and installed Fab asset; quarantine by default |
 |
 |
Engine-version and project compatibility check with a 5.5–5.8 matrix |
 |
 |
Sandboxed trial in a separate editor process, plus evidence-based refund report |
 |
 |
Opt-in Fab price-drop watch, including listings you do not own |
 |
 |
New browser: sections, KPI cards, filter chips, grid and list views, details drawer |
 |
 |
LocalVault no longer starts inside commandlets (cooks, resaves, trial sandboxes) |
 |
 |
Suite grew 21 → 88 |
 |
Descriptor changes
| Field |
0.4.0 |
0.5.0 |
Version |
4 |
5 |
VersionName |
0.4.0 |
0.5.0 |
Description |
custody features |
adds safety scan, compatibility check, sandboxed trials, refund evidence and price watch |
Modules |
LocalVault |
LocalVault (Editor, PostEngineInit) + LocalVaultTrialRunner (Editor, Default) |
LocalVaultTrialRunner is a small second module holding the trial commandlet. Commandlets are
resolved before PostEngineInit modules load, so the commandlet cannot live in the main module.
0.5.0 features
Safety scan and quarantine
LocalVault scans each new vault copy (right after it is copied and verified), each restore, and —
through Tools > Scan Project Fab Content — every Fab asset already installed in the project. Twenty
rules (S1–S20) flag what can run code or reach the network: init_unreal.py and Python in startup
folders, Python startup settings in bundled .ini files, startup Editor Utility Blueprints,
executables and shell scripts outside plugin build output, disguised executables, network calls and
process launches in bundled scripts (with the matching line), build scripts with side effects,
Python stored inside .blend files (legacy and Blender 5 headers; compressed files are reported as
uninspected), files posing as Unreal packages, and Microsoft Defender detections.
- Files at or above Quarantine Minimum Severity (default Warning) are quarantined. Vault copies
stay byte-faithful; flagged files are left out of every restore. In the project, files move to
Saved/LocalVault/Quarantine/Files, and a code plugin with a flagged build script is disabled.
- Every scan writes
LocalVaultSafety.json and a readable HTML report beside the backup.
- Release puts a file back and trusts its exact bytes (SHA-1); Trust This Version does the same
for a reviewed backup; Delete removes a quarantined copy after confirmation.
- A payload that changes after its scan is marked Stale and rescanned before restore.
Compatibility check
Reads every package header without loading anything: which of UE 5.5, 5.6, 5.7 and 5.8 can open the
files, the minimum engine, cooked packages, and for the running editor the code modules each package
needs (old module names the engine redirects are followed), plugins that are installed but disabled
(one-click Enable plugin), plugin descriptors and binaries built for another engine. The result is
compared with the engines the Fab listing claims, and a contradiction is called out. New Fab downloads
are checked automatically.
Sandboxed trial and refund evidence
Run Trial copies the payload (minus quarantined files) into a throwaway project under
Saved/LocalVault/Trials and has a separate UnrealEditor-Cmd process load every package, with
hard-dependency checks through the Asset Registry. Failures are grouped: newer engine, missing code,
missing assets, engine assets this engine no longer ships, plugin content, Blueprint compile errors.
C++ payloads compile only with Allow Trial Compilation and per-trial confirmation. The sandbox can
be kept and opened.
Build Refund Report follows Fab’s refund policy — standard refunds cover products never downloaded
within 14 days; after a download, the routes are not as described and technical issue — and
collects only evidence that supports those routes, as Markdown, HTML and a ready-to-paste request.
Nothing is sent.
Price watch (opt-in)
Off by default because it reads the same unpublished endpoint the Fab website uses. When enabled it
checks watched listings every 24 hours (configurable), one request every two seconds and at most 100
per run, with an honest LocalVault/<version> user agent. It keeps a 60-point history and flags a
price drop, the start of a sale or a target price, once per drop. Refused requests back off for 24
hours; three refused runs pause the watch with a reason. Any Fab listing URL can be watched, owned
or not.
Rebuilt browser
The 0.4 single-pane browser is replaced by:
- a header with search (
Ctrl+F), a status chip, Sync with Epic, Get from Fab and a Tools menu;
- a rail with Library, Review, Quarantine, Price watch and Jobs, live counts, status filters, collections and tags;
- a library with clickable KPI cards, filter chips, sorting, a thumbnail grid and a sortable list;
- a details drawer with Info, Versions, Safety, Compat, Trial and Price tabs and bulk actions;
- a status bar with progress, Cancel and vault free space;
- a vector icon set and light/dark-aware report pages.
UI state (section, view, sort, filters, drawer) persists per project.
The menu entry is now Tools > GregOrigin > LocalVault (was LocalVault Browser).
0.5.0 fixes
LocalVault ran inside commandlets
The editor subsystem was created in every editor process, including cooks, resaves and other
commandlets, where it polled for a Fab session, watched the download cache and could write a vault
database next to the project. It is no longer created when the editor runs a commandlet.
Trials of packs that ship plugins
Found while preparing the 0.5.0 tutorial. A pack that ships a Plugins folder next to its content was
treated as a plugin-only payload, so its own content never entered the sandbox; and a bundled plugin
that cannot load in this editor (binaries for another engine build, no Source) made the sandbox
editor quit with only “exited without writing a result”. Now the pack’s content is always tried, its
Content folder maps onto the sandbox’s Content so /Game/<Pack>/... references resolve, each
bundled plugin comes along only if this editor can load it (content-only, compiled from Source, or
binaries for this exact build), and a plugin that cannot is reported as a PluginLoad failure with
the reason — in the trial result and as its own line in the refund report. If the sandbox editor still
stops early, the trial quotes the engine’s plugin error instead of a generic message.
Watched prices of owned assets
Owned assets are only price-checked with Watch Owned Assets on (by design: a lower price does not
reopen a refund). The Price tab now says so instead of watching silently.
A listing that claims older engines than its files need was called consistent
Found while filming the 0.5.0 tutorial. When every package needed a newer engine than any the listing
claims (files saved with 5.8, listing claiming 5.3-5.4) but the asset was downloaded in that newer
engine, the claim check said “Consistent with the listing”. It now says the payload requires a newer
engine than every claimed one, that it works where it was downloaded, and that the listing does not
match its files. It is still not refund evidence for someone it works for.
Vault updates could reach a hosted window seconds late
Found while filming the 0.5.0 tutorial. The window coalesced vault updates on a Slate active timer,
which Slate schedules on application time but runs on the paint’s time. Where the two clocks differ,
as in a window drawn by a widget renderer, a finished scan could take seconds to appear. The window
now serves updates on its own tick and clock (still at most five rebuilds a second); the timer stays
only to wake an idle editor.
Status line kept the start message of finished jobs
A finished backup left “Backing up 1 asset(s)…” in the status line. Every finished job now writes
its summary there.
0.5.0 tests
67 new automation tests, in LocalVault.Safety.*, LocalVault.Compat.*, LocalVault.Trial.*,
LocalVault.Refund.*, LocalVault.Price.*, LocalVault.Reports.*, LocalVault.UI.*,
LocalVault.Lifecycle.* and LocalVault.Jobs.*. Package-header tests save a real package with the
running engine and parse it; .blend tests cover legacy 32/64-bit headers and the Blender 5 format;
the Defender test runs MpCmdRun when it is present.
An interactive pass on UE 5.8 exercised every section and drawer tab against a live 416-asset
library: backup with scan, live quarantine and release of a planted startup script, compatibility
check, a full trial (80 packages), search, filters, grid and list, context menu and narrow layouts.