Contents
Unreal Engine 5.8 · System guide
Editor Automation
Automate Unreal Editor workflows safely
On this page
Choose a task
Choose an approach
Build and understand
Automation and Functional TestsOpen reference →Commandlets and headless CIOpen reference →Data Validation automationOpen reference →Blueprint editor utilitiesOpen reference →Concrete automation patternsOpen reference →Python editor workflowsOpen reference →Safe asset mutationOpen reference →Unreal MCP in UE 5.8Open reference →
Troubleshoot
Workflow and boundaries
Use these checks when a task crosses several systems. The focused references above contain the specific actions.
Select the automation surface
Read references/selector-architecture.md.
- Use a Scripted Action for a contextual operation on selected assets or actors.
- Use an Editor Utility Widget for a persistent dockable UI and human-reviewed batch work.
- Use Call in Editor for an action attached to a placed Actor that also has runtime use.
- Use a Scriptable Tool for modal viewport interaction with accept/cancel semantics.
- Use Python for text-based pipelines, cross-DCC integration, and repeatable batches.
- Use a commandlet for unattended/headless work and CI.
- Use Data Validation for asset invariants, not as a general behavior-test framework.
- Use Automation/Functional Tests for code, system, map, gameplay, and regression checks.
- Use Unreal MCP only for bounded AI tool calls in 5.8; it is Experimental.
Execute safely
- Define selection/input scope, mutation set, source-control behavior, undo boundary, save policy, cancellation, logs, and validation before writing the tool.
- Separate discovery and planning from mutation. Produce a dry-run report for destructive, bulk, or difficult-to-reverse work.
- Use editor APIs for assets and packages. Never move, rename, or delete
.uassetfiles with generic filesystem operations. - Use
get_editor_property/set_editor_propertywhen scripting reflected editor data so editor change notifications run. - Wrap only genuinely undoable changes in a transaction. Import, save, source-control, and many package operations are not made reversible by a transaction.
- Mark changed objects/packages dirty, save deliberately, and report every failure.
- Make reruns idempotent or detect prior output. Test on a disposable subset before the full content tree.
- Run validation/tests and inspect the actual diff before submission.
Load the task reference:
- UI/Blueprint tools:
references/editor-utilities-blueprint.md - Python execution/APIs:
references/python-workflows.md - mutation guardrails:
references/safe-asset-mutation.md - command line/CI:
references/commandlets-headless-ci.md - Data Validation:
references/data-validation.md - test frameworks:
references/automation-tests.md - Unreal MCP:
references/unreal-mcp.md - concrete tools:
references/patterns.md - recovery:
references/debugging-recovery.md
Hard rules
- Never operate directly on
.uasset/.umapfiles withos,shutil, or shell moves. - Never run a bulk mutation before a scoped dry run or disposable-copy test.
- Never assume a transaction makes import, save, delete, or source-control work reversible.
- Never autosave unrelated dirty packages.
- Never suppress per-asset failures and still report success.
- Never run Python as gameplay code; UE 5.8's embedded Python is editor-only.
- Never expose Unreal MCP beyond loopback; it has no authentication layer.
- Never issue overlapping Unreal MCP tool calls; the server serializes them on the game thread.
- Never let an AI infer permission for destructive or project-wide mutations.
See references/sources.md for the UE 5.8 source trail.
Version and evidence
Targets Unreal Engine 5.8 documentation. This label does not establish that every procedure was tested in an editor or packaged build.
Read the documentation sources and verification notes →