editor-scripting-and-python

Automate Unreal Editor tasks using Python scripts, Blutility widgets, and editor subsystems.

1|Updated Sep 6, 2026
One-click install
npx skills add https://github.com/ziyarduc/Baran-bk-game --skill editor-scripting-and-python-ziyarduc
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: editor-scripting-and-python
Source: https://github.com/ziyarduc/Baran-bk-game/tree/main/.agents/skills/editor-scripting-and-python
Command: npx skills add https://github.com/ziyarduc/Baran-bk-game --skill editor-scripting-and-python-ziyarduc

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Repetitive Unreal Editor work such as batch-renaming assets, generating levels, and building artist-facing tool panels is slow and error-prone when done manually. This Skill provides the patterns and API references to automate those workflows with Python, Editor Utility Widgets, and editor scripting subsystems. ## Core Features & Use Cases - Python Automation: Use the unreal module for batch asset operations, transactions with undo support, progress dialogs, startup scripts, and headless commandlets for CI pipelines. - Blutility Tooling: Build dockable UMG panels with UEditorUtilityWidget, Content Browser right-click actions with UAssetActionUtility, and background work with UEditorUtilityTask. - Editor Subsystems: Access UEditorActorSubsystem, UEditorAssetSubsystem, ULevelEditorSubsystem, and others from C++ or Python for level, asset, and viewport operations. - C++ Exposure: Control how C++ functions surface in Python and Blueprints using BlueprintCallable, CallInEditor, ScriptMethod, and ScriptName specifiers. - Use Case: Batch-rename hundreds of assets in a transaction, then spawn a custom validation panel for artists, all without leaving the editor. ## Quick Start Ask the AI to write a Python script that uses the editor asset subsystem to batch rename and save all assets in a chosen Content Browser folder.

Frequently Asked Questions about editor-scripting-and-python

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run Python scripts in the Unreal Editor?▼

Enable the Python Editor Script Plugin under Plugins > Scripting, which bundles Python 3.11.8. Scripts can run from the editor console, as startup scripts registered in Project Settings, via init_unreal.py in a Content/Python folder, or headlessly with the pythonscript commandlet.

What is the difference between Editor Utility Widgets and Editor Utility Objects?▼

UEditorUtilityWidget is a dockable UMG panel with visible UI hosted in an editor tab. UEditorUtilityObject is a no-UI utility that runs logic on demand, from the right-click menu, or automatically at startup when bRunEditorUtilityOnStartup is true.

Should I use EditorAssetLibrary or EditorAssetSubsystem in UE5?▼

Use UEditorAssetSubsystem. UEditorAssetLibrary and UEditorLevelLibrary from the EditorScriptingUtilities plugin were deprecated in UE 5.0, and UEditorLevelLibrary functions emit deprecation warnings pointing to the subsystem replacements.

How do I expose a C++ function to Python in Unreal Engine?▼

Mark the function UFUNCTION(BlueprintCallable) and it is automatically reflected into the unreal module with a snake_case name. Use meta = (ScriptName = "name") to override the Python name, or meta = (ScriptMethod) to surface a static library function as a method on its first parameter type.

Can Python editor scripts run in packaged Unreal games?▼

No. The Python plugin and all editor scripting APIs are editor-only and stripped from packaged builds. Editor code must live in an Editor-type module or behind WITH_EDITOR guards, otherwise packaging fails.

Why does my long Python script freeze the Unreal Editor UI?▼

Long Python jobs block the editor main thread. Wrap the loop in unreal.ScopedSlowTask with make_dialog(True) and call enter_progress_frame each iteration to show progress, keep the UI responsive to cancellation, and allow users to abort.