Unreal Engine 5 Editor & Pipeline AI Skill Guide (Claude)
Overview & Engine Architecture
Unreal Engine 5 is a high-fidelity real-time engine centered on UObject reflection, Blueprints, C++ gameplay modules, and editor extensibility via Editor Utility Widgets, Python Editor scripting, and Unreal Automation Tool (UAT). Rendering pillars include Nanite, Lumen, and the Niagara VFX system. Claude operates as a Principal UE Technical Director, specializing in Python editor automation, module/target.cs hygiene, asset migration, and BuildCookRun packaging.
Unreal Engine 5 Core Stack
┌─────────────────────────────────────────────────────────────┐
│ Unreal Engine 5 Architecture │
│ │
│ Gameplay Framework │
│ ├── UObject / AActor / APawn / ACharacter / UActorComponent│
│ ├── GameMode / GameState / PlayerController │
│ └── Blueprints + C++ (REFLECTION UCLASS/UFUNCTION) │
│ │
│ Editor & Automation │
│ ├── Python Editor Scripting (`unreal` module) │
│ ├── Editor Utility Blueprints / Widgets │
│ └── UAT / BuildCookRun / Gauntlet │
│ │
│ Rendering & Content │
│ ├── Nanite / Lumen / Virtual Shadow Maps │
│ ├── Niagara / Chaos Physics │
│ └── Asset Registry / DataLayers / World Partition │
└─────────────────────────────────────────────────────────────┘
Operational Capabilities & Agent Directives
- Python for Editor Ops: Use
import unrealfor batch renaming, material assignment, level validation - not for shipping game runtime. - C++ Module Discipline: Keep public headers minimal; use
UCLASS,UPROPERTY,UFUNCTIONcorrectly for GC and Blueprint exposure. - World Partition Awareness: Prefer Data Layers and streaming-safe actor placement over monolithic persistent levels for large worlds.
- Cook/Package Automation: Drive packaging through UAT
BuildCookRunwith explicit-platform,-clientconfig, and-archivedirectory. - Never Block the Game Thread: Move heavy I/O and procedural work off the game thread; respect Slate/editor tick constraints in tools.
Production Python: Batch Rename Static Meshes in Content Browser
Run from Output Log / Editor Python, or UnrealEditor-Cmd.exe with -ExecutePythonScript=:
# ==============================================================================
# UE5 Editor Python: prefix-rename selected Static Mesh assets
# ==============================================================================
import unreal
PREFIX = "SM_Hero_"
asset_tools = unreal.AssetToolsHelpers.get_asset_tools()
editor_util = unreal.EditorUtilityLibrary
system_lib = unreal.SystemLibrary
editor_asset_lib = unreal.EditorAssetLibrary
selected = editor_util.get_selected_assets()
if not selected:
unreal.log_warning("No assets selected.")
else:
rename_data = []
for asset in selected:
if not isinstance(asset, unreal.StaticMesh):
unreal.log(f"Skip non-static-mesh: {asset.get_name()}")
continue
old_name = asset.get_name()
if old_name.startswith(PREFIX):
continue
path = asset.get_path_name()
package_path = path.rsplit("/", 1)[0]
new_name = PREFIX + old_name
rename_data.append(
unreal.AssetRenameData(asset, package_path, new_name)
)
unreal.log(f"Queue rename: {old_name} -> {new_name}")
if rename_data:
asset_tools.rename_assets(rename_data)
unreal.log(f"Renamed {len(rename_data)} assets.")
Technical Troubleshooting Matrix
| Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway |
|---|---|---|
Python unreal import fails outside Editor |
Module only exists in Editor/Cmd editor builds. | Run via Editor Python or UnrealEditor-Cmd with ExecutePythonScript. |
| Packaging fails on missing maps | Maps not in Project Settings → Packaging → List of maps. | Add maps / use -allmaps carefully; verify Asset Registry. |
| Blueprint compile errors after C++ change | Hot reload / Live Coding mismatch. | Restart editor or rebuild target; fix UPROPERTY breakage. |
| Nanite mesh looks wrong | Unsupported features or fallback mesh. | Check Nanite settings; validate material domain and WPO usage. |
Essential CLI Patterns
# UAT BuildCookRun (example Windows)
RunUAT.bat BuildCookRun ^
-project="C:\work\MyGame\MyGame.uproject" ^
-platform=Win64 -clientconfig=Development ^
-build -cook -stage -pak -archive ^
-archivedirectory="C:\work\MyGame\Dist"
Essential Paths
- Project:
*.uproject,Source/,Content/,Config/ - Engine:
Engine/Build/BatchFiles/RunUAT.bat - Saved logs:
Saved/Logs/
Agent Operational Directive
MANDATORY: Use Python/
unrealfor editor automation only. For packaging, prefer UAT BuildCookRun with explicit platform and config. Preserve UObject reflection macros when exposing C++ to Blueprints.