Usage
In the editor#
| Where | Command | What it does |
|---|---|---|
| Tools > Project Context | Export Project Context | Exports everything in scope. Assets whose files have not changed since the last export are skipped, so repeat runs are fast. |
| Tools > Project Context | Rebuild Project Context | Exports every asset again. |
| Tools > Project Context | Open Project Context Folder | Opens the output folder. |
| Content Browser, right-click a folder | Export Project Context for Folder | Exports only that folder and refreshes PROJECT_CONTEXT.md. |
| Content Browser, right-click assets | Copy as Text | Puts the selected assets on the clipboard as Markdown, ready to paste into a chat or terminal agent. |
| Content Browser, right-click assets | Export Project Context for Selection | Exports only the selected assets. |
A notification shows how many assets were exported, with a link to the folder.
Updates on save#
Once the project has been exported (there is a manifest.json in the output folder), saving an asset re-exports it and refreshes PROJECT_CONTEXT.md and dependencies.md a moment later. Deleting or renaming an asset removes its old files. Turn this off with Project Settings > Plugins > Project Context Export > Export On Save.
Settings#
Project Settings > Plugins > Project Context Export. They are saved in Config/DefaultProjectContextExport.ini, so the whole team and your CI use the same settings.
| Setting | Default | Meaning |
|---|---|---|
| Output Directory | empty (Saved/ProjectContext) |
Relative paths start at the project folder. Use ProjectContext to keep the files next to your source, or leave it in Saved to keep them out of version control. |
| Write Markdown / Write Json | on / on | Which formats to write. |
| Graph Nodes In Json | on | Every Blueprint node with its pins and links in the JSON files. Turn off for smaller files. |
| Included Paths | /Game |
Content folders to export. |
| Include Project Plugins | on | Also export content of plugins in the project's Plugins folder. |
| Excluded Paths | none | Folders to skip, such as /Game/ThirdParty or /Game/Developers. |
| Export On Save | on | See above. |
| Actor Properties | on | List each level actor's changed properties. Off gives a shorter actor list. |
| Max Actors Per Level | 2000 | Actors listed per level; the class counts always include all of them. |
| Max Properties Per Object, Max Value Length, Max Expression Depth, Max Table Rows | 64, 400, 6, 5000 | Caps that keep single files readable. |
Changing a setting that affects the output makes the next export a full one.
From the command line#
The commandlet exports without opening the editor window, for coding agents and CI:
# Windows
UnrealEditor-Cmd.exe C:/Projects/MyGame/MyGame.uproject -run=ProjectContextExport -Incremental -unattended -nullrhi
# macOS
"/Users/Shared/Epic Games/UE_5.8/Engine/Binaries/Mac/UnrealEditor-Cmd" ~/Projects/MyGame/MyGame.uproject -run=ProjectContextExport -Incremental -unattended -nullrhi| Option | Meaning |
|---|---|
-Incremental |
Skip assets whose files have not changed since the last export. |
-Paths=/Game/UI,/Game/Maps/L_Main |
Export only these folders or packages instead of the configured scope. |
-Output=Dir |
Write somewhere else. Relative paths start at the project folder. |
The exit code is 0 when every asset exported and 1 when any failed; failures are logged with LogProjectContextExport: Error. The commandlet reads what is saved on disk, so save in the editor first if it is open.
From Python or Editor Utility Blueprints#
import unreal
unreal.PceLibrary.export_project_context(True) # incremental
unreal.PceLibrary.export_project_context_paths(["/Game/UI"], False)
text = unreal.PceLibrary.asset_to_text(unreal.load_asset("/Game/Demo/BP_Door"))
folder = unreal.PceLibrary.get_project_context_directory()The same four functions are in Editor Utility Blueprints under Project Context Export.
Point your agent at it#
Add a line like this to the file your agent reads first (AGENTS.md or your agent's own instructions file):
## Unreal assets
Blueprints, levels, data tables, materials and widgets are binary. Their text export is in
Saved/ProjectContext/: start with Saved/ProjectContext/PROJECT_CONTEXT.md. The asset /Game/A/B is
described in Saved/ProjectContext/assets/Game/A/B.md. If it looks stale, run:
UnrealEditor-Cmd <Project>.uproject -run=ProjectContextExport -Incremental -unattended -nullrhiIf you want the files in version control so teammates and cloud agents see them without Unreal installed, set Output Directory to a folder outside Saved (for example ProjectContext) and commit it. Only changed assets rewrite their files, so diffs stay small.