Documentation
User Guide
1. Installation
What you need
Unreal Engine 5.0 – 5.8 (Windows or macOS editor).
Nothing else — BPTracker has no third-party dependencies.
Step by step
Install the plugin.
From Fab: install BPTracker to your engine through the Epic Games Launcher.
Manual copy: put the
BPTrackerfolder into your project'sPlugins/folder (createPlugins/next to your.uprojectif it doesn't exist yet).
Enable it. In the editor, go to Edit > Plugins, type "BPTracker" in the search box, and tick Enabled.
Restart the editor when prompted. That's it — recording is on by default.
✅ How to check it's working: after the restart, open Project Settings > Plugins > BP Tracker. If you can see the BP Tracker settings page, the plugin is loaded and recording.
Two engine plugins BPTracker uses
Both are standard Epic plugins that ship with the engine and are enabled by default, so normally you don't have to do anything. They only matter if your project has turned them off:
Level Sequence Editor
Tracking Level Sequences and jumping to tracks/sections
Re-enable it in Edit > Plugins (category Editor) — Level Sequence tracking needs it
Niagara
Tracking Niagara Systems and Emitters
Optional. BPTracker still works fine; only Niagara assets won't be tracked
Will this affect my game?
No. BPTracker is an editor-only plugin. It is automatically excluded from packaged/shipping builds — zero runtime cost, zero files in your shipped game.
2. Your First Five Minutes — a Hands-On Tour
The best way to understand BPTracker is to watch it catch one change. Try this:
Open any Blueprint in your project (or create a throwaway one).
Move a node, add a variable, or change a default value — anything.
Save the asset (Ctrl+S).
In the Content Browser, right-click that Blueprint and choose View Change History.
A history window opens with a fresh entry at the top. Expand it and you'll see lines like:
Now try these on the diff lines:
Hover a line → a tooltip shows the full recorded key and values. If the line is jumpable, it highlights and shows a "double-click to jump" hint.
Double-click a Blueprint node line → the Blueprint editor opens focused on that exact node. This works even days later, in a fresh editor session.
Right-click a line → copies the raw key to your clipboard (handy for bug reports or searching).
That's the core loop: save → history → jump. Everything else is convenience on top.
💡 Good to know: BPTracker starts recording from the moment it's enabled. It cannot look back in time — changes made before installation are not recoverable. (Baselines are captured when an asset is first opened, so the very first save of an asset records a baseline rather than a diff.)
3. The Three Places to See History
① One asset — Content Browser right-click
Right-click any asset > View Change History. Shows that asset's timeline only. If the history window is already open, it switches to the asset you clicked.
② Everything — Tools menu
Tools > Change History. One merged timeline across all assets, newest first, with each entry prefixed by its asset name. This is the "what happened in the project today?" view. Use the search box to narrow it down — it matches both change text and asset paths, so typing Player finds every change to anything under a Player folder or named Player-something.
ℹ️ You won't find Change History inside an asset editor's Window menu — that's intentional, to keep each view clearly scoped. Use the right-click for one asset, Tools for everything.
③ Statistics — Change Dashboard
Tools > Change Dashboard (also in the main Window menu). A per-asset overview: how many changes, most recently changed, most frequently changed. It merges everything — current session, disk history, shared team history, and archives — so the numbers cover the full recorded lifetime of your project, even after editor restarts. Use Refresh to re-scan and Run Archive Now to tidy up old entries on the spot.
Filters in the history window
Search box — filters by change text or asset path.
Changes only — hides "asset created / renamed / deleted" event lines so you see only real content edits. (Saves that changed nothing are never recorded at all, so you'll never see empty entries.)
Days — how far back to look (the default comes from the Default Filter Days setting).
4. Understanding the Diff Lines
BPTracker names things the way the editor does, so lines are readable without detective work:
ScalarParameter:Roughness
A material expression node, by type and parameter name
Branch@a1b2c3d4
A Blueprint node (name + short id — the id only appears when two nodes share a name)
Ch.Volume
A Sequencer channel, by its channel name
Emitter|Smoke.Stk|SpawnRate
A Niagara emitter's stack module
op: + / - / ~
Added / removed / modified
Jumpable line types and where they take you:
Blueprint node / pin / comment
Blueprint editor, focused on that node
Material / Material Function node or comment
Material editor, node selected
Sequencer track / section
Level Sequence editor, track selected
Niagara emitter line
Niagara editor for that System/Emitter
Behavior Tree / Blackboard line
Behavior Tree editor
If the target no longer exists (deleted, moved), you get a polite toast message instead of a crash — the history itself is never lost.
5. Settings, Explained
Everything lives in Project Settings > Plugins > BP Tracker. The defaults are sensible — most people only ever touch Asset Types.
Asset Types — what gets tracked
Each asset family has a master checkbox and indented detail options (greyed out until the master is on):
Blueprint
Track Blueprint
Components / Node Details / Macros — these detail options apply to every Blueprint kind, including Widget and Anim Blueprints
Widget Blueprint
Track Widget Blueprint
Properties / Slot / Animations / Bindings
Animation
(three toggles)
Anim Blueprint, Anim Montage, Anim Sequence + shared Notify Details
Material
Track Material
Properties / Input Connections / Expression Nodes / Material Instance / Material Function
AI
Track Behavior Tree
BT Node Details (covers Blackboard too)
Data
(seven toggles)
Data Asset, Data Table, Curve, Curve Table, String Table, User Defined Enum, User Defined Struct
Niagara
Track Niagara System
Module Values / Renderer Details
Sequencer
Track Level Sequence
Section Details
Turning a type off stops new recording for it — history already on disk stays and remains browsable. (Heads-up: the first save after switching detail options off compares against the previous, richer snapshot once, so you may see a single bulk "removed" entry. After that, silence.)
Recording — when saves get recorded
Enabled — the global switch. Off means nothing is recorded anywhere.
Ignore Auto Save (default: on) — editor auto-saves don't pollute your history.
Min Save Interval — if you hammer Ctrl+S, only the first save in this window is recorded.
Track Save All / Max Save All Assets — what happens when you hit "Save All" and 30 assets save at once: record them (up to the cap) or skip the burst.
Local History — your personal record (default: on)
Writes each asset's log to <Project>/AssetChangeLogs/ — deliberately outside the volatile Saved/ folder, so cleaning Saved/ never destroys your history. Local History Path lets you move it (takes effect at next editor start).
Content History — for teams (default: off)
Also writes logs under Content/, right next to your assets. Commit them with your normal source control flow (Git/SVN/Perforce) and every teammate running BPTracker sees the combined history — including who made each change. On startup, shared logs sync into your local history automatically.
Performance
Async Write (default: on) — log writing happens on a background queue: no editor hitches, no lost or garbled lines (the queue flushes on renames and editor shutdown).
Baseline Cache Size — how many baselines stay in memory (LRU). Applied at next editor start.
Display
Page Size — history entries per page.
Default Filter Days — the initial "how far back" of the history window.
History / Dashboard Window Default Size and a Reset Window Sizes button if you've dragged things somewhere unfortunate.
Archive — automatic housekeeping
History files grow forever unless you archive. With Enable Archive on:
Entries older than Archive Entries Older Than (Months) move to an archive folder.
Force Archive When File Size Exceeds (MB) additionally trims oversized live logs.
Archive Path — where archived entries go (default
<Project>/AssetChangeLogs/_archive, applied at next editor start).Archive After Days (Test) — a testing override; when > 0, the smaller of days/months wins.
Archived entries disappear from the live History window but still count in the Dashboard.
Run Archive Now runs a pass immediately.
Actions
Initialize All Baselines — pre-captures baselines for every tracked asset in the project, so even the first save of an untouched asset produces a proper diff. Nice to run once right after installing. (Requires Enabled to be on.)
Clear All Baselines — the factory reset: deletes all baselines, in-memory history, local logs, and archived history (including a custom archive path). A confirmation dialog lists everything that will be removed. This cannot be undone — export anything you care about first.
🔁 Three settings need an editor restart: Local History Path, Archive Path, Baseline Cache Size. The editor reminds you with a notice when you change them.
6. Console Commands
For automation or quick keyboard access (~ console):
BPTracker.InitAll
Actions > Initialize All Baselines
BPTracker.RunArchive
Archive > Run Archive Now
BPTracker.ClearAll
Actions > Clear All Baselines (asks for confirmation)
7. Where Your Data Lives
Each asset gets its own log file:
<AssetName>.changelog.jsonl— plain-text JSONL (one JSON event per line, UTF-8). Easy togrep, diff, or parse in CI scripts.Default locations:
<Project>/AssetChangeLogs/(local),Content/(shared, if enabled),<Project>/AssetChangeLogs/_archive(archive).
A real log line looks like this:
t = timestamp, a = author, d = the list of diffs (op: + added, - removed, ~ modified). Field order isn't guaranteed — parse by key name.
8. FAQ & Troubleshooting
Q. I saved an asset but nothing showed up. Walk this checklist:
Recording > Enabled is on?
The asset's type toggle is on under Asset Types? (e.g. Data Table changes need Track Data Table.)
Did the save actually change anything? Zero-diff saves are never recorded — this is by design, not a bug.
Was it an editor auto-save? Those are skipped by default (Ignore Auto Save).
Was it part of a "Save All" burst with Track Save All off?
Q. I can't find Change History in the asset editor's Window menu. That's intentional — it lives in exactly two places: Content Browser right-click (one asset) and Tools > Change History (all assets). The Dashboard, on the other hand, is in the Window menu.
Q. Double-clicking a Niagara module line opens the editor but doesn't select the module. An engine limitation — the Niagara editor doesn't allow external code to select stack modules. BPTracker opens the correct System/Emitter; find the module by the name shown in the diff line.
Q. My history is suddenly shorter! Check whether Archive is enabled — old entries move to the archive folder (still visible in Dashboard statistics). They're not gone; look in AssetChangeLogs/_archive.
Q. Do my teammates see my changes? Only if Content History is enabled and you commit the generated log files under Content/. Local history is yours alone.
Q. Can I track assets in a plugin folder or engine content? BPTracker tracks project assets (/Game/...). Engine and plugin-mounted content is out of scope.
Q. Does it slow the editor down? Recording happens at save time against an in-memory baseline, and writing is asynchronous. In normal use you shouldn't notice it. If you work with thousands of huge assets, you can trim Asset Types down to what you care about.
Q. How do I completely start over? Actions > Clear All Baselines (read the dialog!), or delete <Project>/AssetChangeLogs/ while the editor is closed.
9. Support
Questions, bug reports, feature requests — we're happy to hear from you:
📧 lv.stack.co@gmail.com
To help us help you fast, include:
Your engine version (e.g. 5.8.0) and BPTracker version,
The asset type involved,
What you expected vs. what happened,
If possible, the relevant
.changelog.jsonlfile from<Project>/AssetChangeLogs/.
Copyright 2026 Dev Levy. All Rights Reserved.
Last updated