UE5 Editor Control
HTTP API for the UE5 editor. Plugin UE5AIAssistant runs on localhost:58080.
Auto-Setup Flow (MUST follow on first use)
Every time you need to use this skill, start here:
Step 1: Check if plugin is already running
curl -s --max-time 3 http://localhost:58080/api/ping
- If response contains
"success": true→ Skip to Quick Start below - If connection refused / timeout → Plugin not running, continue to Step 2
Step 2: Find user's UE5 project
Ask the user: "你的 UE5 项目路径是什么?"
Or auto-detect (look for .uproject files):
# macOS common locations
find ~/Documents ~/Desktop ~/Projects ~/codeprojects -maxdepth 3 -name "*.uproject" 2>/dev/null
Save the project path for later use.
Step 3: Check if plugin is installed in the project
# Check if plugin exists in the UE5 project
test -f "<UE5_PROJECT_PATH>/Plugins/UE5AIAssistant/UE5AIAssistant.uplugin" && echo "INSTALLED" || echo "NOT INSTALLED"
- If
INSTALLED→ Tell user: "插件已安装,请打开 UE5 编辑器然后告诉我" - If
NOT INSTALLED→ Continue to Step 4
Step 4: Install the plugin
Option A — Download prebuilt binary (recommended, no C++ required):
bash scripts/install.sh "<UE5_PROJECT_PATH>"
If this fails (no releases published yet), fall back to Option B.
Option B — Copy source code (requires UE5 C++ compilation):
The skill's GitHub repo contains the C++ source. Clone and copy:
# Clone the repo (if not already available)
git clone https://github.com/1103837067/ue5-editor-control.git /tmp/ue5-editor-control
# Copy plugin source to UE5 project
mkdir -p "<UE5_PROJECT_PATH>/Plugins/UE5AIAssistant"
cp -r /tmp/ue5-editor-control/Source "<UE5_PROJECT_PATH>/Plugins/UE5AIAssistant/"
cp /tmp/ue5-editor-control/UE5AIAssistant.uplugin "<UE5_PROJECT_PATH>/Plugins/UE5AIAssistant/"
Then tell user: "插件已复制到项目中。请打开 UE5 编辑器,它会自动编译插件。打开后告诉我。"
Step 5: Verify connection
curl -s --max-time 3 http://localhost:58080/api/ping
If still failing, tell user to check:
- UE5 editor is open with the correct project
- Check Output Log for "UE5AIAssistant: HTTP server started on port 58080"
- Plugin is enabled: Edit → Plugins → search "UE5AIAssistant"
Prerequisites Summary
| Requirement | Detail |
|---|---|
| UE5 | 5.4+ installed and project created |
| OS | macOS / Windows / Linux |
| curl | Pre-installed on macOS/Linux; Git Bash on Windows |
| UE5 Editor | Must be running with plugin enabled |
| C++ (Option B only) | Only if no prebuilt binary available for your platform |
Quick Start
# Execute command (preferred for complex JSON)
curl -s -X POST -H "Content-Type: application/json" \
-d '{"command":"get_actors_in_level","args":{}}' \
http://localhost:58080/api/execute
# Simple commands via helper
bash scripts/ue5cmd.sh exec get_actors_in_level '{}'
Response: { "success": true|false, "data": {...}|null, "error": "..."|null }
Common Mistakes — Do NOT
- Do NOT add nodes one-by-one — always use
batch_execute - Do NOT guess C++ function names — use
list_functionsfirst - Do NOT hardcode pin names — read them from response
pinsarray - Do NOT skip
compile_blueprintafter editing - Do NOT use
ue5cmd.shfor complex JSON — usecurldirectly
Task Router — Read the Right Module
Based on the user's task, read only the relevant module file for detailed commands, parameters, and workflows:
| User wants to... | Read this file |
|---|---|
| Work with actors (spawn, delete, transform, properties) | references/actor.md |
| Build blueprint structure & logic (create BP, variables, functions, nodes, batch_execute) | references/blueprint.md |
| Create materials (expressions, connections, apply) | references/material.md |
| Build animation blueprints (state machines, states, transitions) | references/animation.md |
| Access any property via reflection, manage assets (create/read/write) | references/property.md |
| Set up Enhanced Input, configure character movement, build end-to-end characters | references/input-character.md |
Rules:
- Read only the module(s) needed for the current task — do NOT read all files
- If unsure which module, check the table above or read the user's intent
- Multiple tasks may require multiple modules (e.g., character = blueprint + input-character)
65 Commands Overview (for quick orientation only)
| Category | Commands | Count |
|---|---|---|
| Actor | get_actors_in_level, find_actors_by_name, get_selected_actors, spawn_actor, delete_actor, set_actor_transform, get_actor_properties, set_actor_property, attach_actor, detach_actor | 10 |
| Blueprint Structure | create_blueprint, compile_blueprint, read_blueprint_content, create_variable, add_component_to_blueprint, create_function, add_function_parameter, create_event_dispatcher, create_blueprint_interface, implement_interface, add_widget_child | 11 |
| Blueprint Discovery | list_node_types, list_blueprint_classes, list_functions | 3 |
| Blueprint Nodes | add_node, connect_nodes, remove_node, get_node_pins, set_pin_default, batch_execute, add_pin, auto_layout_graph | 8 |
| Material | create_material, add_material_expression, connect_material_expressions, apply_material_to_actor, get_available_materials | 5 |
| Asset | search_assets, get_assets_by_class, get_asset_details | 3 |
| Editor | focus_viewport, get_current_level_info, save_all, get_project_settings, set_project_setting, get_world_settings, set_world_setting | 7 |
| Animation | create_anim_blueprint, get_anim_blueprint_info, add_anim_state_machine, add_anim_state, add_anim_transition, set_anim_state_animation, compile_anim_blueprint | 7 |
| Generic Reflection | list_components, list_properties, get_component_property, set_component_property, create_asset, get_asset_property, set_asset_property, call_function, get_object, modify_array_property, execute_python | 11 |
Error Quick Reference
| Error pattern | Fix |
|---|---|
"not found" | Use discovery commands (find_actors_by_name, search_assets, list_functions, list_node_types, list_properties) |
"Pin 'xxx' not found" | Error response lists all available pins — use the correct name |
compile_blueprint diagnostics | Read references/blueprint.md error handling section |