Tool Reference¶
UE-MCP exposes 21 category tools covering 569+ actions, plus a flow tool for running multi-step YAML workflows. Every category tool takes an action parameter that selects the operation, plus action-specific parameters.
First call in any session
Start with project(action="get_status") to check the connection, then level(action="get_outliner") or asset(action="list") to explore.
How to read this page
Each row lists a single action and its key parameters. Optional params are marked with ?. For full schemas (types, descriptions, defaults), every action also surfaces its description through the MCP schema - your AI client can introspect them at runtime.
project¶
Project status, config INI files, and C++ source inspection.
| Action | Description |
|---|---|
get_status |
Check server mode and editor connection |
set_project |
Switch project. Params: projectPath |
get_info |
Read .uproject file details |
read_config |
Read INI config. Params: configName (e.g. 'Engine', 'Game') |
search_config |
Search INI files. Params: query |
list_config_tags |
Extract gameplay tags from config |
read_cpp_header |
Parse a .h file. Params: headerPath |
read_module |
Read module source. Params: moduleName |
list_modules |
List C++ modules |
search_cpp |
Search .h/.cpp files. Params: query, directory? |
read_engine_header |
Parse a .h file from the engine source tree. Params: headerPath (relative to Engine/Source, or absolute) |
find_engine_symbol |
Grep engine headers for a symbol. Params: symbol, maxResults? |
list_engine_modules |
List modules in Engine/Source/Runtime |
search_engine_cpp |
Search engine .h/.cpp/.inl files across Runtime/Editor/Developer/Plugins. Params: query, tree? (Runtime\\|Editor\\|Developer\\|Plugins\\|all - default Runtime), subdirectory?, maxResults? (default 500) |
set_config |
Write to INI. Params: configName, section, key, value |
build |
Build C++ project. Params: configuration?, platform?, clean? |
generate_project_files |
Generate IDE project files (Visual Studio, Xcode, etc.) |
create_cpp_class |
Create a new native UCLASS in a project module. Uses the same engine template path as File → New C++ Class. Writes .h + .cpp; returns both paths plus needsEditorRestart (true unless Live Coding successfully hot-reloaded). Params: className (no prefix), parentClass? (default UObject; accepts short names like 'Actor' or /Script/<Module>.<Class> paths), moduleName? (default: first project module, use list_project_modules to pick), classDomain? ('public'\\|'private'\\|'classes', default public), subPath? |
list_project_modules |
List native modules in the current project (name, host type, source path). Feed moduleName from here into create_cpp_class |
live_coding_compile |
Trigger a Live Coding compile (Windows only). Hot-patches method bodies of existing UCLASSes without editor restart - the fast inner loop for UFUNCTION implementations. Does NOT reliably register brand-new UCLASSes; use build_project + editor restart for those. Params: wait? (default false - fire and return 'in_progress') |
live_coding_status |
Report Live Coding availability/state (available, started, enabledForSession, compiling). Helps choose between live_coding_compile and build_project |
write_cpp_file |
Write a .h / .cpp / .inl file under the project's Source/ tree. Used to append UPROPERTYs/UFUNCTIONs or method bodies after create_cpp_class. Writes are scoped to Source/ for safety. Params: path (relative to Source/ or absolute within Source/), content (full file contents) |
read_cpp_source |
Read a .cpp file from the project Source/ tree. Companion to read_cpp_header for round-trip edits. Params: sourcePath (relative to Source/ or absolute) |
write_source_file |
Write a .h/.cpp/.inl into a named module's Public/Private folder (resolves the module dir for you, including plugin modules under Plugins/*/Source/ that write_cpp_file refuses). After a new file, build_project + restart; after a body edit, live_coding_compile. Params: module (module name, default the project's primary module), visibility (Public\\|Private, default Private), fileName, content |
read_source_file |
Read a .h/.cpp/.inl from a named module's folder (companion to write_source_file; resolves plugin modules too). With no visibility it tries Public then Private then the module root. Params: module, visibility?, fileName |
add_module_dependency |
Add a module to a target module's Build.cs dependency array. Params: moduleName (the Build.cs to edit - must exist in the project), dependency (module name to add, e.g. 'UMG'), access? ('public'\\|'private', default 'private') |
add_cpp_member |
Append a UPROPERTY/UFUNCTION declaration to an existing UCLASS header inside the access specifier you choose. Idempotent: if a declaration containing the same memberName is already present, returns existed:true. Params: headerPath (relative to Source/ or absolute), declaration (full multi-line UPROPERTY(...) / UFUNCTION(...) block plus its single-line member or function signature), memberName (the identifier the declaration introduces - used for idempotency), access? ('public'\\|'protected'\\|'private', default 'public') |
asset¶
Asset management: list, search, read, CRUD, import meshes/textures, datatables.
| Action | Description |
|---|---|
list |
List assets via the AssetRegistry (sees /Game and every mounted plugin root). Params: directory? (default /Game), classFilter?, recursive? (default true), maxResults? (default 2000) |
search |
Search by name/class/path. Params: query, directory?, maxResults?, searchAll? |
read |
Read asset via reflection. Params: assetPath |
read_properties |
Read asset properties with values. propertyName accepts dotted/indexed paths into nested structs, array elements, and instanced subobjects (e.g. Config.Traits[1].Params.Field); landing on an array of subobjects also lists each element's index+class (#527). Params: assetPath, propertyName?, includeValues? |
duplicate |
Duplicate asset. Params: sourcePath, destinationPath |
rename |
Rename asset. Params: assetPath, newName (or sourcePath, destinationPath), force? |
bulk_rename |
Batched rename using IAssetTools::RenameAssets - single transaction with one redirector-fixup pass (matches Content Browser drag). Use this over looped rename for scene-referenced assets. World assets are rejected (status=rejected_world); use rename_asset which handles WP externals atomically (#409). Params: renames[] where each entry is {sourcePath, destinationPath} OR {assetPath, newName} |
move |
Move asset. Params: sourcePath, destinationPath |
delete |
Delete asset. On failure returns reason (open_in_editor / has_referencers / unknown) plus referencer list. Pass force=true to auto-close any open asset editors before deleting (#278). Params: assetPath, force? |
delete_batch |
Batch-delete assets. Per-path status (deleted/absent/failed) plus reason+referencers on failed entries (#278). Params: assetPaths[], force? |
create_data_asset |
Create UDataAsset instance of custom class. Params: name, className (/Script/Module.ClassName or loaded name), packagePath?, properties? (key/value map) |
save |
Save asset(s). Params: assetPath? |
save_all_dirty |
Flush every dirty package to disk in one call. End-of-workflow shortcut after bulk import/edit. Params: saveMapPackages? (default true), saveContentPackages? (default true) |
set_mesh_material |
Assign material to static mesh slot. Params: assetPath, materialPath, slotIndex? |
recenter_pivot |
Move static mesh pivot to geometry center. Params: assetPath OR assetPaths |
import_static_mesh |
Import from FBX/OBJ. Params: filePath, name?, packagePath?, combineMeshes?, importMaterials?, importTextures?, generateLightmapUVs? |
import_skeletal_mesh |
Import skeletal mesh from FBX. Params: filePath, name?, packagePath?, skeletonPath?, importMaterials?, importTextures? |
import_animation |
Import anim from FBX. Params: filePath, name?, packagePath?, skeletonPath |
import_texture |
Import image. Params: filePath, name?, packagePath? |
import_texture_batch |
Import many textures in one call - the loop stays inside the editor (no per-file bridge round-trip), so this finishes far faster than N import_texture calls. Per-item result records mirror import_texture. Params: items[]: [{filePath, packagePath?, name?, replaceExisting?}], packagePath? (default for items that don't set it), save? (default true), automated? (default true) |
reimport |
Reimport asset from source file. Params: assetPath, filePath? |
read_datatable |
Read DataTable rows. Params: assetPath, rowFilter? |
create_datatable |
Create DataTable. Params: name, packagePath?, rowStruct |
reimport_datatable |
Reimport DataTable from JSON. Params: assetPath, jsonPath?, jsonString? |
set_datatable_row |
Append or overwrite a single DataTable row. Params: assetPath, rowName, row (object with row-struct fields - partial updates merge with the existing row) |
add_datatable_row |
Alias for set_datatable_row (#437) |
update_datatable_row |
Alias for set_datatable_row; partial update merges with existing row (#437) |
remove_datatable_row |
Remove a single DataTable row. Idempotent (alreadyDeleted=true if missing). Params: assetPath, rowName (#437) |
get_datatable_row |
Read one DataTable row's fields without dumping the whole table. Params: assetPath, rowName (#535) |
set_datatable_cell |
Write a single field on a single existing row (merges, leaves other cells untouched). Errors if the row doesn't exist. Params: assetPath, rowName, fieldName, value (#535) |
rename_datatable_row |
Rename a row key, preserving its values. Params: assetPath, oldName, newName (#535) |
fill_datatable_from_json |
Bulk-upsert rows from a {rowName: {field: value}} object without touching unrelated rows (non-destructive, unlike reimport_datatable). Params: assetPath, rows (object) or jsonString (#535) |
list_textures |
List textures. Params: directory?, recursive? |
get_texture_info |
Get texture details. Params: assetPath |
set_texture_settings |
Set texture settings. Params: assetPath, settings (object with compressionSettings?, lodGroup?, sRGB?, neverStream?) |
add_input_mapping |
Append an Enhanced Input key mapping to an InputMappingContext (InputAction + key by name string e.g. 'Mouse2D','LeftMouseButton'). Idempotent on (action,key). For modifiers/triggers use gameplay(set_mapping_modifiers). Same as gameplay(add_imc_mapping) (#525). Params: mappingContext (IMC path), inputAction (IA path), key |
remove_input_mapping |
Remove an IMC key mapping. Same as gameplay(remove_imc_mapping) (#525). Params: mappingContext (IMC path), mappingIndex? \\| (inputAction? + key?) |
list_input_mappings |
List an IMC's key->action bindings with triggers/modifiers. Same as gameplay(read_imc) (#525). Params: mappingContext (IMC path) |
add_socket |
Add socket to StaticMesh or SkeletalMesh. Idempotent on socket name; pass onConflict='update' to overwrite an existing socket's transform with the supplied relativeLocation/relativeRotation/relativeScale (#412). Params: assetPath, socketName, boneName? (SkeletalMesh only, default 'root'), relativeLocation?, relativeRotation?, relativeScale?, onConflict? (skip\\\|update\\\|error, default skip) |
remove_socket |
Remove socket by name. Params: assetPath, socketName |
list_sockets |
List sockets on a mesh (StaticMesh or SkeletalMesh). Params: assetPath |
set_socket_transform |
Update an existing socket's relative transform on StaticMesh or SkeletalMesh. Pass any subset of relativeLocation/relativeRotation/relativeScale; omitted fields stay at their current values. Errors if the socket does not exist (use add_socket to create). Common after FBX import when SOCKET_* empties land with scale=(100,100,100) (#412). Params: assetPath, socketName, relativeLocation?, relativeRotation?, relativeScale? |
set_property |
Set a UPROPERTY on any loaded asset (Material, DataAsset, DataTable, SubsurfaceProfile, etc.) using a dotted path. Walks nested structs, array elements by index, and instanced subobjects internally - no more read-modify-write copies (e.g. settings.mean_free_path_distance on a UMaterial, or Config.Traits[1].Params.Field on a config asset #527). Value goes through MCPJsonProperty::SetJsonOnProperty so JSON null clears object refs, structs accept {x,y,z}, arrays/maps round-trip. Params: assetPath, propertyName (dotted path), value (#420) |
set_texture_settings_by_type |
Apply the canonical (compressionSettings, sRGB, LOD group) combo to every texture in each group: normal -> Normalmap, grayscale -> Grayscale, baseColor -> Default sRGB, hdr -> HDR. Params: groups (object: {normal?:[paths], grayscale?:[paths], baseColor?:[paths], hdr?:[paths]}) (#421) |
create_interchange_pipeline |
One-call factory for a UInterchangeGenericAssetsPipeline asset with the 15-property mesh-import boilerplate already applied (RecomputeNormals=false, MikkTSpace=true, HighPrecisionTangents=true, BuildNanite=false, CreatePhysicsAsset=false, etc.). Params: assetPath OR (name + packagePath?), meshType? (skeletal default \\| static), options? (dotted-path overrides on the resulting pipeline e.g. {'MeshPipeline.bBuildNanite': true}), onConflict? (#421) |
reload_package |
Force reload an asset package from disk. Params: assetPath |
health_check |
Diagnose stuck-unloadable asset. Returns onDisk/inRegistry/isLoaded/canLoad/isStuck flags so an agent can detect the half-shutdown state where load returns null but the file exists (#279). Params: assetPath |
force_reload |
Aggressive reload that resets package loaders + GCs + LoadObject. Recovers from the half-shutdown state without an editor restart (#279). Closes any open editors first. Params: assetPath |
export |
Export asset to disk file (Texture2D → PNG, StaticMesh → FBX, etc.). Params: assetPath, outputPath |
search_fts |
Ranked asset search (token-scored over name/class/path). Params: query, maxResults?, classFilter? |
reindex_fts |
Rebuild the SQLite FTS5 asset index. Params: directory? |
get_referencers |
Reverse dependency lookup. Params: packages[] OR packagePath (#150) |
set_sk_material_slots |
Set materials on a USkeletalMesh by slot name or slotIndex (bypasses the blueprint override-materials path that UE's ICH silently reverts). Params: assetPath, slots[{slotName?\\|slotIndex?, materialPath}] |
diagnose_registry |
Scan a content path and compare disk vs AssetRegistry (including in-memory pending-kill entries). Returns onDiskCount, inMemoryIncludedCount, ghostCount and paths. Params: path, recursive? (default true), reconcile? (forceRescan=true) |
get_mesh_bounds |
Get StaticMesh OR SkeletalMesh bounding box. Params: assetPath |
get_mesh_info |
One-call mesh QA: bounds + material slots + skeleton + LOD/vertex counts. Works for both UStaticMesh and USkeletalMesh. Params: assetPath |
read_import_sources |
Read AssetImportData source filenames on an imported asset (StaticMesh, SkeletalMesh, Texture, Animation, etc.). Returns sources[] of {relativeFilename, absolutePath, timestamp, fileHash, displayLabelName}. Params: assetPath (#270) |
get_mesh_collision |
Inspect StaticMesh collision setup. Params: assetPath |
move_folder |
Move/rename entire content folder with redirector fixup in one transaction. Params: sourcePath, destinationPath (#192) |
create_folder |
Create empty content browser folder(s). Params: path OR paths[] (e.g. /Game/Foo, /Game/Bar/Baz) |
delete_folder |
Delete content browser folder(s) - counterpart to delete_asset, which leaves the parent directory entry behind as an orphan. Empty folders only by default; pass force=true to also delete any assets still inside (Content Browser 'Delete folder' equivalent). Per-path status (deleted/absent/failed) with reason (invalid_path/protected_path/not_empty/delete_failed) and a sample of contained assets on not_empty entries. Params: path OR paths[], force? |
set_mesh_nav |
Set StaticMesh nav contribution. Params: assetPath, bHasNavigationData?, clearNavCollision? (#167) |
blueprint¶
Blueprint reading, authoring, and compilation. Covers variables, functions, graphs, nodes, components, interfaces, and event dispatchers.
| Action | Description |
|---|---|
read |
Read BP structure incl. SCS components AND inherited native components from the CDO (CharacterMesh0, CharMoveComp, etc.). Params: assetPath, includeComponentProperties? (dump UPROPERTY name/type/value per component template; off by default) (#353/#370) |
list_variables |
List variables. Params: assetPath |
list_functions |
List functions/graphs. Params: assetPath |
read_graph |
Read graph nodes. Supports pagination and file dumps. Params: assetPath, graphName, offset?, limit?, includePins?, includeDefaults?, includeComments?, dumpToFile?, outputPath? |
read_graph_summary |
Lightweight graph summary (nodes+edges only, ~10KB). Params: assetPath, graphName? |
get_execution_flow |
Trace exec pins from an entry point. Params: assetPath, graphName?, entryPoint? |
get_dependencies |
Forward (classes/functions/assets) or reverse (referencers) deps. Params: assetPath, reverse? |
create |
Create Blueprint. Params: assetPath, parentClass? |
add_variable |
Add variable. Params: assetPath, name, varType |
set_variable_properties |
Edit variable properties. Params: assetPath, name, instanceEditable?, blueprintReadOnly?, category?, tooltip?, replicationType?, exposeOnSpawn? |
create_function |
Create function. Params: assetPath, functionName |
delete_function |
Delete function. Params: assetPath, functionName |
rename_function |
Rename function. Params: assetPath, oldName, newName |
add_node |
Add graph node. For a CallFunction node bound to a custom C++ UFUNCTION, pass nodeParams {functionName, className (or targetClass) = /Script/Module.Class}; the function also resolves against the BP's own component classes and an unambiguous loaded BlueprintCallable function, producing a bound node with pins instead of a stub (#546). Params: assetPath, graphName?, nodeClass, nodeParams? |
delete_node |
Delete node. Params: assetPath, graphName, nodeName |
set_node_property |
Set node pin default or struct property. Params: assetPath, graphName, nodeName, propertyName, value |
connect_pins |
Wire nodes. Params: sourceNode, sourcePin, targetNode, targetPin, assetPath, graphName? |
add_component |
Add BP component. componentClass accepts short names (e.g. 'ChildActorComponent') or full paths. For a ChildActorComponent, pass childActorClass to set its ChildActorClass in the same call (a Blueprint path with or without _C, or a C++ class) (#526). Params: assetPath, componentClass, componentName?, parentComponent? (SCS parent for hierarchy - #115), childActorClass? |
remove_component |
Remove SCS component. Params: assetPath, componentName |
set_component_property |
Set property on SCS or inherited component. Inherited components go through the child BP's InheritableComponentHandler override template so the parent stays untouched. Pass value=null to clear a TObjectPtr/SoftObject/WeakObject/UClass/Interface reference (e.g. clear AnimClass on CharacterMesh0) (#420). Params: assetPath, componentName, propertyName, value |
set_component_override_materials |
Write OverrideMaterials on a mesh-component template (StaticMeshComponent / SkeletalMeshComponent / any UMeshComponent). Pass materialPaths as a string[] of material asset paths (empty array clears). Avoids any TArrayassetPath, componentName, materialPaths |
add_timeline_track |
Add a track to a Blueprint timeline. Creates the UTimelineTemplate if missing, builds the matching curve asset (float/vector/color/event), applies keyframes, bumps TimelineLength to cover the last key, then recompiles so K2Node_Timeline regenerates its output pins. Params: assetPath, timelineName, trackName, trackType ('float'\\|'vector'\\|'color'\\|'event'), keyframes ([{time, value}]) |
set_capsule_size |
Call UCapsuleComponent::SetCapsuleSize on a CapsuleComponent template (CharacterMovement-friendly path; raw property writes leave the visualizer stale). Pass either or both of halfHeight/radius. Returns the new + previous values. Params: assetPath, componentName, halfHeight?, radius? (#419) |
get_component_property |
Read a single property value from an SCS or inherited component template. Returns the ICH override value for child BPs if one exists. Params: assetPath, componentName, propertyName |
set_class_default |
Set UPROPERTY on Blueprint CDO. Pass value=null to clear an object/class/interface reference (#420). Params: assetPath, propertyName, value |
delete_variable |
Delete a member variable. Params: assetPath, name |
add_function_parameter |
Add input or output parameter to a function. Params: assetPath, functionName, parameterName, parameterType?, isOutput? |
set_variable_default |
Set default value on a BP variable. Params: assetPath, name, value |
compile |
Compile Blueprint. Params: assetPath |
list_node_types |
List node types. Params: category?, includeFunctions? |
search_node_types |
Search nodes. Params: query |
create_interface |
Create BP Interface. Params: assetPath |
add_interface |
Implement interface. Params: blueprintPath, interfacePath |
list_graphs |
List all graphs in a blueprint. Params: assetPath |
add_event_dispatcher |
Add event dispatcher (multicast delegate variable + signature graph + UFunction). Without parameters, broadcasters fire void(). With parameters, the signature graph gets typed user pins so K2Node_CallDelegate compiles cleanly (#276). Params: blueprintPath, name, parameters?: [{name, type}] where type is bool/int/float/string/name/text/vector/rotator/transform/object:/Script/Module.Class/struct:/Script/Module.Struct |
duplicate |
Duplicate blueprint asset. Params: sourcePath, destinationPath |
add_local_variable |
Add function-scope local variable. Params: assetPath, functionName, name, varType? |
list_local_variables |
List local variables in a function. Params: assetPath, functionName |
validate |
Validate blueprint without saving (compile + collect diagnostics). Params: assetPath |
read_component_properties |
Dump ALL UPROPERTYs on a BP component template incl. array contents (#105). Params: assetPath, componentName |
read_node_property |
Read a node pin default OR a reflected node property for verification (#102). Params: assetPath, graphName?, nodeName, propertyName |
reparent_component |
Reparent an SCS component under a new parent (#115). Params: assetPath, componentName, newParent |
reparent |
Change a Blueprint's ParentClass and recompile (#138). Params: assetPath, parentClass (short name or full path) |
set_actor_tick_settings |
Set actor CDO tick settings (#116). Params: assetPath, bCanEverTick?, bStartWithTickEnabled?, TickInterval? |
export_nodes_t3d |
Export graph nodes as T3D text (Ctrl+C equivalent) for bulk round-trip (#130). Params: assetPath, graphName?, nodeIds? (omit = whole graph) |
import_nodes_t3d |
Paste a T3D node blob into a graph (Ctrl+V equivalent) for bulk authoring (#130). Params: assetPath, graphName?, t3d, posX?, posY? |
set_cdo_property |
Set UPROPERTY on any C++ class CDO (not just Blueprints). Params: className, propertyName, value (#182/#183) |
get_cdo_properties |
Read UPROPERTY values from any C++ class CDO. Params: className, propertyNames? (#183) |
run_construction_script |
Spawn temp actor, run construction script, return generated components and transforms. Params: assetPath, location? (#195) |
compile_all |
Batch compile + save Blueprints. Params: assetPaths[], save? (default true) |
cleanup_graph |
Remove orphan/corrupted nodes (no class, blank title+no pins, missing target UFunction). Params: assetPath, graphName? (default: every graph) (#285) |
connect_pins_batch |
Apply many pin connections in one call (single compile + save). Params: assetPath, graphName?, connections[]: [{sourceNode, sourcePin, targetNode, targetPin}] (#267) |
set_node_position |
Move a graph node to (posX, posY). Params: assetPath, graphName?, nodeId, posX, posY (#277) |
auto_layout |
Topological layered layout for a graph. Eliminates the (0,0) stack from programmatic add_node. Params: assetPath, graphName?, columnGap? (default 360), rowGap? (default 200) (#277) |
level¶
Level actors, selection, components, level management, volumes, lights, and splines.
| Action | Description |
|---|---|
get_outliner |
List actors. Params: classFilter?, nameFilter?, world? (editor\\|pie\\|auto), limit? |
place_actor |
Spawn actor. Params: actorClass, label?, location?, rotation?, scale?, staticMesh?, material? |
delete_actor |
Remove actor. Params: actorLabel |
get_actor_details |
Inspect actor. Params: actorLabel OR actorPath, includeProperties?, propertyName?, world? (editor\\|pie) |
move_actor |
Transform actor. Params: actorLabel, location?, rotation?, scale? |
select |
Select actors. Params: actorLabels[] |
get_selected |
Get selection |
add_component |
Add component to actor. Params: actorLabel, componentClass, componentName? |
remove_component |
Remove instance component from a level actor by name. Idempotent: returns alreadyDeleted=true if no matching component exists. Params: actorLabel, componentName (#426) |
set_component_property |
Set component prop. Pass value=null to clear a TObjectPtr/SoftObject/WeakObject/UClass/Interface reference (#420). Resolves inherited/SCS components on placed Blueprint instances case-insensitively, and refreshes the scene transform after RelativeLocation/RelativeRotation/RelativeScale3D writes (#539). Params: actorLabel, componentName, propertyName, value |
get_component_details |
Read a placed actor's component transforms. With componentName returns that component's relative+world location/rotation/scale, class, and attach parent; without it lists every component with its transform. Resolves SCS components on Blueprint instances (#539). Params: actorLabel, componentName? |
get_current |
Get current level name and path |
load |
Load level. Params: levelPath |
save |
Save current level |
list |
List levels. Params: directory?, recursive? |
create |
Create new level. Params: levelPath?, templateLevel? |
spawn_volume |
Place volume. Params: volumeType, location?, extent?, label? |
list_volumes |
List volumes. Params: volumeType? |
set_volume_properties |
Edit volume. Params: actorLabel, properties |
spawn_light |
Place light. Params: lightType (point\\|spot\\|directional\\|rect\\|sky), location?, rotation?, intensity?, color? ({r,g,b} 0-255), mobility? (static\\|stationary\\|movable; default movable so the light renders without a build), label? (#331/#310) |
set_light_properties |
Edit light. Params: actorLabel, intensity?, color?, rotation? (DirectionalLight sun angle), mobility? (static\\|stationary\\|movable), recaptureSky?, temperature?, castShadows?, attenuationRadius? |
set_fog_properties |
Edit ExponentialHeightFog. Params: actorLabel?, fogDensity?, fogHeightFalloff?, startDistance?, fogInscatteringColor? |
get_actors_by_class |
List actors by class name. Params: className, world? (editor\\|pie) |
count_actors_by_class |
Histogram of actor classes in the level (sorted desc). Params: world? (editor\\|pie), topN? (#146) |
get_runtime_virtual_texture_summary |
List RuntimeVirtualTextureVolume actors + their bound VirtualTexture assets (#150) |
set_water_body_property |
Set a property on an actor's WaterBodyComponent (ShapeDilation, WaterLevel, etc.). Params: actorLabel, propertyName, value |
build_lighting |
Build lights. Params: quality? |
get_spline_info |
Read spline. Params: actorLabel |
set_spline_points |
Set spline points. Params: actorLabel, points[], closedLoop? |
set_actor_material |
Set material on actor. Params: actorLabel, materialPath, slotIndex? |
get_world_settings |
Read world settings (GameMode, KillZ, gravity, etc.) |
set_world_settings |
Set world settings. Params: defaultGameMode?, killZ?, globalGravityZ?, enableWorldBoundsChecks? |
get_actor_bounds |
Get actor AABB. Params: actorLabel |
get_component_tree |
Deep component-tree dump for an actor. Returns per-component: name, class, attachParent, attachSocket, mobility, visibility, relative+world transforms, tags. For PrimitiveComponents adds collisionProfile/collisionEnabled/bounds/castShadow. For StaticMeshComponent adds staticMesh + materials[]. For SkeletalMeshComponent adds skeletalMesh + skeleton + materials[]. Params: actorLabel \\| actorPath, world? (editor\\|pie), componentClass? (substring filter), includeProperties? (dump UPROPERTY name/type/value per component) (#240/#241/#302/#320/#370/#353) |
get_relative_transform |
Compute target's transform in reference's local space (location/rotation/scale). Common dungeon/calibration workflow. Params: target (actor label), reference (actor label), world? (#386/#387) |
resolve_actor |
Resolve internal/runtime actor name to editor label. Params: internalName (e.g. StaticMeshActor_141) |
set_actor_property |
Set per-instance UPROPERTY on a level actor. Params: actorLabel ('WorldSettings' targets the world settings actor), propertyName (dotted paths like 'Foo.Bar' supported), value (string/number/bool/object/array; a label string resolves to an AActor* ref, and a JSON array of labels populates a TArray of actor refs #538), force? (bypass EditDefaultsOnly), world? (editor\\|pie) (#202/#230) |
read_actor_motion |
Snapshot motion telemetry for one or many actors: location, rotation, velocity, scale, angularVelocity (when simulating physics), grounded + distanceToGround (downward 200u trace). Defaults to the PIE world with editor fallback. Loop at your sample interval for long telemetry probes. Params: actorLabel? OR actorLabels (string[]), world? ('pie'\\|'editor') (#453) |
add_hismc_instances |
Bulk-add transforms to a HISMC / ISMC component on an actor (Python add_instance crashes on UE 5.7; this is the C++ path). Params: actorLabel, componentName? (default: first ISMC/HISMC found), transforms ([{location: {x,y,z}, rotation?: {pitch,yaw,roll}, scale?: {x,y,z}}]), worldSpace? (default true) (#434) |
delete_actors |
Bulk-delete actors. Params: at least one of labelPrefix, className, tag; dryRun? to preview |
add_actor_tag |
Append a tag to an actor's Tags array. Params: actorLabel, tag (#219) |
remove_actor_tag |
Remove a tag from an actor's Tags array. Params: actorLabel, tag (#219) |
set_actor_tags |
Replace an actor's Tags array. Params: actorLabel, tags[] (#219) |
list_actor_tags |
List an actor's Tags. Params: actorLabel (#219) |
attach_actor |
Attach actor as child. Params: childLabel, parentLabel, attachRule? (KeepWorld\\|KeepRelative\\|SnapToTarget; default KeepWorld), socketName? (#205) |
detach_actor |
Detach actor from parent. Params: childLabel (#205) |
set_actor_mobility |
Set actor root component Mobility. Params: actorLabel, mobility (static\\|stationary\\|movable) (#205) |
get_current_edit_level |
Read the active edit-target sub-level (#204) |
set_current_edit_level |
Set the active edit-target sub-level so subsequent spawns land in it. Params: levelName (e.g. SubLevel_A) (#204) |
list_streaming_sublevels |
List streaming sub-levels with transform + initially-loaded/visible flags (#206) |
add_streaming_sublevel |
Add a streaming sub-level. Params: levelPath, streamingClass? (LevelStreamingDynamic\\|LevelStreamingAlwaysLoaded), location?, initiallyLoaded?, initiallyVisible? (#206) |
remove_streaming_sublevel |
Remove a streaming sub-level. Params: levelName \\| levelPath (#206) |
set_streaming_sublevel_properties |
Update sub-level transform/visibility flags. Params: levelName \\| levelPath, location?, initiallyLoaded?, initiallyVisible?, editorVisible? (#206) |
spawn_grid |
Batch-spawn StaticMeshActors on a grid. Params: staticMesh, min, max (Vec3 bounds), countX?, countY?, countZ?, jitter?, labelPrefix? (#203) |
batch_translate |
Translate a set of actors by an offset. Params: offset (Vec3), actorLabels[] OR tag (#203) |
place_actors_batch |
Bulk-spawn StaticMeshActors with per-instance mesh + transform. Params: actors[]: [{staticMesh, location?, rotation?, scale?, label?}] |
line_trace |
Line trace in the editor world. Returns hit + actorLabel/actorClass/componentName/componentClass/location/impactPoint/normal/distance/faceIndex/boneName/physicalMaterial. Params: start (Vec3), end? (Vec3) OR direction? (Vec3) + distance? (default 200000), ignoreActors? (array of labels) (#420) |
snap_actor_to_floor |
Snap an actor's bounds-bottom to the first downward line-trace hit. Equivalent of the End-key shortcut, works on arbitrary geometry (not just Landscape). Params: actorLabel, floorOffset? (added to impact Z, default 0), maxDistance? (default 100000) (#419) |
material¶
Materials: create, read, parameters, shading, textures, and graph authoring (expression nodes, connections).
| Action | Description |
|---|---|
read |
Read material structure. Params: assetPath |
list_parameters |
List overridable parameters. Params: assetPath |
set_parameter |
Set parameter on MaterialInstance. Params: assetPath, parameterName, parameterType, value |
set_expression_value |
Set value on expression node. Params: materialPath, expressionIndex, value |
disconnect_property |
Disconnect a material property input. Params: materialPath, property |
create_instance |
Create material instance. Params: parentPath, name?, packagePath? |
create |
Create material. Params: name, packagePath? |
create_function |
Create a MaterialFunction asset. Params: name, packagePath? (default /Game/Materials/Functions), description? (#463) |
add_function_expression |
Add an expression node to a MaterialFunction graph. Params: functionPath, expressionType (e.g. Constant3Vector, FunctionInput, FunctionOutput, If), positionX?, positionY?, inputName? (for FunctionInput), inputType? (Scalar\\|Vector2\\|Vector3\\|Vector4\\|Texture2D\\|TextureCube\\|StaticBool\\|MaterialAttributes), outputName? (for FunctionOutput) (#463) |
connect_function_expressions |
Wire two expressions inside a MaterialFunction. Params: functionPath, sourceExpression (name or index), sourceOutput?, targetExpression (name or index), targetInput? (#463) |
list_function_expressions |
List expression nodes inside a MaterialFunction. Params: functionPath (#463) |
create_simple |
Single-call simple material. Params: name, packagePath?, baseColor? ({r,g,b}), metallic?, specular?, roughness?, emissive?, usages?[] (e.g. InstancedStaticMeshes, Nanite, NiagaraSprites) |
set_usage |
Set EMaterialUsage flag(s) on a material. Params: assetPath, usage OR usages[], enabled? (default true) |
set_shading_model |
Set shading model. Params: assetPath, shadingModel |
set_blend_mode |
Set blend mode. Params: assetPath, blendMode |
set_domain |
Set material domain. Params: assetPath, materialDomain (Surface \\| DeferredDecal \\| LightFunction \\| Volume \\| PostProcess \\| UI \\| RuntimeVirtualTexture) |
set_base_color |
Set base color. Params: assetPath, color |
connect_texture |
Connect texture to property. Params: materialPath, texturePath, property |
add_expression |
Add expression node. Params: materialPath, expressionType, name?, parameterName?, group?, sortPriority?, defaultValue? (scalar number or {r,g,b,a} for vector params), value? (number for Constant, {r,g,b} for Constant3Vector, {x,y} for Constant2Vector), channels? ({r,g,b,a} bools for ComponentMask), positionX?, positionY? (#318) |
connect_expressions |
Wire two expressions. Params: materialPath, sourceExpression, sourceOutput?, targetExpression, targetInput? |
connect_to_property |
Wire expression to material output. Params: materialPath, expressionName, outputName?, property |
list_expressions |
List expression nodes. Params: materialPath |
delete_expression |
Remove expression. Params: materialPath, expressionName |
list_expression_types |
List available expression types |
recompile |
Recompile material. Pass recompileChildren=true to cascade to every MaterialInstanceConstant whose parent chain reaches this material (#421). Params: materialPath, recompileChildren? |
duplicate |
Duplicate material asset. Params: sourcePath, destinationPath |
validate |
Validate material graph - find orphans, broken refs. Params: assetPath |
get_shader_stats |
Shader compile stats, sampler+param counts. Params: assetPath |
export_graph |
Export material graph as JSON. Params: assetPath |
import_graph |
Rebuild graph from JSON. Params: assetPath, nodes, propertyConnections? |
build_graph |
Build graph from spec. Params: assetPath, nodes, propertyConnections? |
render_preview |
Render preview PNG. Params: assetPath, outputPath, width?, height? |
begin_transaction |
Begin undo transaction. Params: label? |
end_transaction |
End undo transaction |
animation¶
Animation assets, skeletons, montages, blendspaces, anim blueprints, physics assets.
| Action | Description |
|---|---|
read_anim_blueprint |
Read AnimBP structure. Params: assetPath |
read_montage |
Read montage. Params: assetPath |
read_sequence |
Read anim sequence. Params: assetPath |
scan_animation_tracks |
Scan AnimSequence bone-track counts. Params: directory?, recursive?, assetPaths?, skeletonPath?, targetTrackCount?, includeTrackNames? |
read_blendspace |
Read blendspace. Params: assetPath |
add_blend_sample |
Append a sample to a BlendSpace. Params: assetPath, animation (AnimSequence path), position {x,y} (or flat x,y) (#248) |
set_blend_sample |
Move an existing BlendSpace sample or swap its animation. Params: assetPath, sampleIndex, position? {x,y} (or flat x,y), animation? (#272) |
list |
List anim assets. Params: directory?, recursive? |
create_montage |
Create montage. Params: animSequencePath, name?, packagePath? |
create_anim_blueprint |
Create AnimBP. Params: skeletonPath, name?, packagePath?, parentClass? |
create_blendspace |
Create blendspace (2D). Params: skeletonPath, name?, packagePath?, axisHorizontal?, axisVertical? |
create_blendspace_1d |
Create BlendSpace1D. Params: skeletonPath, name?, packagePath?, axisName? (default Speed), axisMin?, axisMax?, gridNum? (#459) |
populate_blendspace |
One-call axis params + samples authoring for BlendSpace 1D/2D. Params: assetPath, axis? ({name?, min?, max?, gridNum?}) for axis 0, blendspaceAxes? (per-axis array), axisHorizontal?/axisVertical? + horizontalMin/horizontalMax/verticalMin/verticalMax/gridNumHorizontal/gridNumVertical (back-compat), samples ([{animationPath, x, y?}]), clearExisting? (default true) (#459) |
add_notify |
Add notify. For PlayMontageNotify the notifyName is also written onto the spawned notify object so OnPlayMontageNotifyBegin broadcasts it (not 'None'), and montage branching-point markers refresh (#528). Params: assetPath, notifyName, triggerTime, notifyClass? |
remove_notify |
Remove notify(s) by name and/or class. Pass at least one of notifyName/notifyClass; both filters AND. Idempotent: alreadyDeleted=true if no match. Params: assetPath, notifyName?, notifyClass? (#471) |
get_skeleton_info |
Read skeleton. Params: assetPath |
list_sockets |
List sockets. Params: assetPath |
list_skeletal_meshes |
List skeletal meshes. Params: directory?, recursive? |
get_physics_asset |
Read physics asset. Params: assetPath |
create_sequence |
Create blank AnimSequence. Params: name, skeletonPath, packagePath?, numFrames?, frameRate? |
set_bone_keyframes |
Set bone transform keyframes. Params: assetPath, boneName, keyframes |
bake_keyframes_batch |
Bake per-bone keyframe arrays for many bones into an AnimSequence in one call. Auto-creates each bone track first (set_bone_keyframes silently leaves a T-pose if the track is missing), wraps the batch in one transaction, and raises if any bone fails instead of reporting hollow success (#540). Params: assetPath, tracks ([{bone, keyframes:[{location,rotation{x,y,z,w},scale?}]}]), save? (default true) |
get_bone_transforms |
Read reference pose transforms. Params: skeletonPath, boneNames?, space? ('local' default, or 'component' for composed parent-chain transforms - retarget-chain / anatomical-scale work) (#245) |
set_montage_sequence |
Replace animation sequence in a montage. Params: assetPath, animSequencePath, slotIndex? |
set_montage_properties |
Set montage properties. Params: assetPath, sequenceLength?, rateScale?, blendIn?, blendOut? |
create_state_machine |
Create state machine in AnimBP. Params: assetPath, name?, graphName? |
add_state |
Add state to a state machine. Params: assetPath, stateMachineName, stateName |
add_transition |
Add directed transition between states. Params: assetPath, stateMachineName, fromState, toState |
set_state_animation |
Assign anim asset to state. Params: assetPath, stateMachineName, stateName, animAssetPath |
set_transition_blend |
Set blend type/duration on transition. Params: assetPath, stateMachineName, fromState, toState, blendDuration?, blendLogic? |
read_state_machine |
Read state machine topology. Params: assetPath, stateMachineName |
read_anim_graph |
Read AnimBP AnimGraph nodes with properties & pins. Params: assetPath, graphName? |
add_curve |
Add float curve to AnimSequence. Params: assetPath, curveName, curveType? |
set_montage_slot |
Set slot name on a montage track. Params: assetPath, slotName, trackIndex? |
add_montage_section |
Add composite section to montage. Params: assetPath, sectionName, startTime?, linkedSection? |
create_ik_rig |
Create IKRigDefinition asset, optionally with retargetRoot + chains[]. Params: name, skeletalMeshPath, packagePath?, retargetRoot?, chains?: [{name, startBone, endBone, goal?}] |
read_ik_rig |
Read IK Rig chains, solvers, skeleton. Params: assetPath |
list_control_rig_variables |
List ControlRig variables and hierarchy. Params: assetPath |
set_root_motion |
Set root motion settings on AnimSequence. Params: assetPath, enableRootMotion?, forceRootLock?, useNormalizedRootMotionScale?, rootMotionRootLock? |
add_virtual_bone |
Add virtual bone. Params: skeletonPath, sourceBone, targetBone |
remove_virtual_bone |
Remove virtual bone. Params: skeletonPath, virtualBoneName |
create_composite |
Create AnimComposite. Params: name, skeletonPath, packagePath? |
list_modifiers |
List applied animation modifiers. Params: assetPath |
create_ik_retargeter |
Create IKRetargeter asset and (default) initialize the UE 5.7 ops stack: assigns sourceRig+targetRig to all ops, runs AutoMapChains. Returns chainsMapped count. Params: name, packagePath?, sourceRig?, targetRig?, autoMapChains? (default true) (#246) |
read_ik_retargeter |
Read IKRetargeter: source/target rigs and chain mappings. Params: assetPath (#246) |
set_anim_blueprint_skeleton |
Set target skeleton on AnimBP. Params: assetPath, skeletonPath |
read_bone_track |
Read bone transform samples from AnimSequence. Params: assetPath, boneName, frames?: [int] |
create_pose_search_database |
Create a PoseSearchDatabase asset (motion matching). Params: name, packagePath?, schemaPath? |
set_pose_search_schema |
Set the Schema on an existing PoseSearchDatabase. Params: assetPath, schemaPath |
add_pose_search_sequence |
Append an AnimSequence/AnimComposite/AnimMontage/BlendSpace to a PoseSearchDatabase. Params: assetPath, sequencePath |
build_pose_search_index |
Build (or rebuild) the search index. Params: assetPath, wait? (default true) |
read_pose_search_database |
Inspect a PoseSearchDatabase: schema, animation entries, cost biases, tags. Params: assetPath |
set_sequence_properties |
Batch-set properties on AnimSequence assets. If a path is a Montage and resolveFromMontages is true (default), resolves to its first AnimSequence. Params: assetPaths[], properties{enableRootMotion?, forceRootLock?, useNormalizedRootMotionScale?, rootMotionRootLock?}, resolveFromMontages? |
bake_root_motion_from_bone |
Bake delta translation from a source bone (e.g. pelvis) onto the root bone across the whole sequence; compensates the source bone so world-space position is unchanged. Params: assetPath, sourceBone, rootBone? (default 'root'), axes? (default ['x','y']), interpolation? ('linear'\\|'per_frame', default 'linear') |
get_bone_transform |
Read a bone or socket transform on a live actor's SkeletalMeshComponent. Wraps GetBoneTransform / GetSocketTransform. Params: actorLabel, boneName (or socket name), componentName? (default: CharacterMesh0 / Mesh / first SK component), world? (auto\\|pie\\|game\\|editor, default auto), space? (world\\|component\\|local, default world) |
list_bones |
List bones in a live actor's SkeletalMeshComponent ref skeleton (name, index, parent). Params: actorLabel, componentName?, world? (auto\\|pie\\|game\\|editor, default auto) (#420) |
rebind_leader_pose |
Re-bind every secondary SkeletalMeshComponent on an actor to a body component (default CharacterMesh0 / Mesh). One-call fix for the 'character explodes after rotating the actor' failure mode. Params: actorLabel, bodyComponent? (#419) |
preview_animation |
Toggle bUpdateAnimationInEditor + VisibilityBasedAnimTickOption=AlwaysTickPoseAndRefreshBones on every SkeletalMeshComponent of an actor. Bypasses the 'cannot be edited on templates' guard for level instances. Params: actorLabel, enabled (#419/#420) |
landscape¶
Landscape terrain: info, layers, sculpting, painting, materials, heightmap import.
| Action | Description |
|---|---|
get_info |
Get landscape setup |
list_layers |
List paint layers |
sample |
Sample height/layers. Params: x, y |
list_splines |
Read landscape splines |
get_component |
Inspect component. Params: componentIndex |
set_material |
Set landscape material. Params: materialPath |
add_layer_info |
Register paint layer (creates LayerInfo asset + binds to active landscape). Params: layerName, packagePath?, weightBlended? |
create_layer_info |
Standalone LayerInfo asset creation - no landscape required. Params: layerName, name? (default LI_<layerName>), packagePath? (default /Game/Landscape/LayerInfos), physMaterial? (asset path), hardness? (#251) |
create |
Spawn a new ALandscape with a flat heightmap. Defaults match the Editor's Landscape Mode 'create new' (8x8 components, 63 quads/subsection, 2 subsections/component = 1016x1016 quads). Params: location? (Vec3), scale? (Vec3, default 100,100,100), componentCountX? (default 8), componentCountY? (default 8), subsectionSizeQuads? (one of 7\\|15\\|31\\|63\\|127\\|255, default 63), numSubsections? (1\\|2, default 2), heightOffset? (uint16, default 32768 = mid-elevation), label? (#303) |
get_material_usage_summary |
Per-proxy summary: landscape/hole material paths + component/grass/nanite counts (#150) |
pcg¶
Procedural Content Generation: graphs, nodes, connections, execution, volumes.
| Action | Description |
|---|---|
list_graphs |
List PCG graphs. Params: directory?, recursive? |
read_graph |
Read graph structure. Params: assetPath |
read_node_settings |
Read node settings. Params: assetPath, nodeName |
get_components |
List PCG components in level |
get_component_details |
Inspect PCG component. Params: actorLabel |
create_graph |
Create graph. Params: name, packagePath? |
add_node |
Add node. Params: assetPath, nodeType, nodeName? |
connect_nodes |
Wire nodes. Params: assetPath, sourceNode, sourcePin, targetNode, targetPin |
disconnect_nodes |
Remove a wired edge between two PCG nodes. Params: assetPath, sourceNode, targetNode, sourcePin? (default: any), targetPin? (default: any) |
set_node_settings |
Set node params. Params: assetPath, nodeName, settings |
set_static_mesh_spawner_meshes |
Populate weighted MeshEntries on a PCGStaticMeshSpawner node (#145). Params: assetPath, nodeName, entries=[{mesh, weight?}], replace? (default true) |
remove_node |
Remove node. Params: assetPath, nodeName |
execute |
Regenerate PCG. Params: actorLabel |
force_regenerate |
Force a stuck PCG component to regenerate (clears graph ref, re-sets, cleanup+generate). Params: actorLabel (#146) |
cleanup |
Cleanup a PCG component (remove spawned content). Params: actorLabel, removeComponents? (default true) (#146) |
toggle_graph |
Toggle a PCG component's graph assignment to force reinit (no generate). Params: actorLabel, graphPath? (#146) |
add_volume |
Place PCG volume. Params: graphPath, location?, extent? |
import_graph |
Bulk-author a PCG graph from JSON. Params: assetPath, nodes=[{name,class,posX?,posY?,settings?}], connections=[{from,fromPin?,to,toPin?}], replace? (default false) |
export_graph |
Export a PCG graph as JSON. Params: assetPath, includeSettings? (default true) |
foliage¶
Foliage painting, types, sampling, and settings.
| Action | Description |
|---|---|
list_types |
List foliage types in level |
get_settings |
Read foliage type settings. Params: foliageTypeName |
sample |
Query instances in region. Params: center, radius, foliageType? |
create_type |
Create foliage type from mesh. Params: meshPath, name?, packagePath? |
set_settings |
Modify type settings. Params: foliageTypeName, settings |
niagara¶
Niagara VFX: systems, emitters, spawning, parameters, and graph authoring.
| Action | Description |
|---|---|
list |
List Niagara assets. Params: directory?, recursive? |
get_info |
Inspect system. Params: assetPath |
spawn |
Spawn VFX as a transient component (GC's before offscreen capture). For a findable preview use spawn_actor. Params: systemPath, location, rotation?, label? |
spawn_actor |
Spawn a PERSISTENT, labeled NiagaraActor in the editor world (findable, re-activatable, survives capture - unlike spawn). Assigns the system and activates. Params: systemPath, location?, rotation?, label?, activate? (default true) (#537) |
reactivate |
Reset + reactivate the NiagaraComponent on a placed actor (replay a burst before capturing). Params: actorLabel (#537) |
set_parameter |
Set parameter. Params: actorLabel, parameterName, value, parameterType? |
create |
Create system. Params: name, packagePath? |
create_emitter |
Create Niagara emitter. Params: name, packagePath?, templatePath? |
add_emitter |
Add emitter to system. Params: systemPath, emitterPath |
list_emitters |
List emitters in system. Params: systemPath |
set_emitter_property |
Set emitter property. Params: systemPath, emitterName?, propertyName, value |
list_modules |
List Niagara modules. Params: directory? |
get_emitter_info |
Inspect emitter. Params: assetPath |
list_renderers |
List renderers on an emitter. Params: systemPath, emitterName?, emitterIndex? |
add_renderer |
Add renderer (sprite/mesh/ribbon or full class). Params: systemPath, rendererType, emitterName?, emitterIndex? |
remove_renderer |
Remove renderer by index. Params: systemPath, rendererIndex, emitterName?, emitterIndex? |
set_renderer_property |
Set renderer bool/number/string property. Params: systemPath, rendererIndex, propertyName, value, emitterName?, emitterIndex? |
inspect_data_interfaces |
List user-scope data interfaces. Params: systemPath |
create_system_from_spec |
Declaratively create a system + emitters. Params: name, packagePath?, emitters?:[{path}] |
get_compiled_hlsl |
Read GPU compute script info for an emitter. Params: systemPath, emitterName?, emitterIndex? |
list_system_parameters |
List user-exposed system parameters. Params: systemPath |
list_module_inputs |
List modules + their input pins for an emitter. Params: systemPath, emitterName?, emitterIndex?, stackContext? (ParticleSpawn\\|ParticleUpdate\\|EmitterSpawn\\|EmitterUpdate\\|all - default all) |
set_module_input |
Set literal default on a module input pin. Params: systemPath, moduleName, inputName, value, emitterName?, emitterIndex?, stackContext? |
list_static_switches |
List static switch inputs on a module. Params: systemPath, moduleName, emitterName?, emitterIndex?, stackContext? |
set_static_switch |
Set static switch value on a module's function call node. Params: systemPath, moduleName, switchName, value, emitterName?, emitterIndex?, stackContext? |
create_module_from_hlsl |
Create a NiagaraScript module backed by a custom HLSL node. Params: name, hlsl, packagePath?, inputs?:[{name,type}], outputs?:[{name,type}] |
create_scratch_module |
Create empty Niagara scratch module. Params: name, packagePath?, inputs?:[{name,type}], outputs?:[{name,type}] (#185) |
batch |
Run a sequence of niagara operations against the bridge in order. Fails fast on the first error (returns results up to that point + error). Params: ops:[{action, params}] where action is any niagara subaction listed above |
audio¶
Audio: sound assets, playback, ambient sounds, SoundCues, MetaSounds.
| Action | Description |
|---|---|
list |
List sound assets. Params: directory?, recursive? |
play_at_location |
Play sound. Params: soundPath, location, volumeMultiplier?, pitchMultiplier? |
spawn_ambient |
Place ambient sound. Params: soundPath, location, label? |
create_cue |
Create SoundCue. Params: name, packagePath?, soundWavePath? |
create_metasound |
Create MetaSoundSource. Params: name, packagePath? |
widget¶
UMG Widget Blueprints, Editor Utility Widgets, and Editor Utility Blueprints.
| Action | Description |
|---|---|
read_tree |
Read widget hierarchy. Params: assetPath |
get_details |
Inspect widget (curated subset). Params: assetPath, widgetName |
get_properties |
Full reflected property dump for a widget - every UPROPERTY (RenderOpacity, Visibility, ColorAndOpacity, Border padding/colors, Image brush TintColor/ImageSize, fonts, etc.) plus the slot block, for diagnosing visual bugs get_details omits. Pass includeSubtree to also dump children (#547). Params: assetPath, widgetName, includeSubtree? |
list_bindings |
List designer property bindings on a WidgetBlueprint (the UE 5.7 Python API keeps them protected). Returns {widgetName, propertyName, functionName, bindingType}. Optional filterWidgetName/filterProperty (#530). Params: assetPath, filterWidgetName?, filterProperty? |
clear_binding |
Remove designer binding(s) matching widgetName (and optional propertyName) from a WidgetBlueprint without opening the editor. Idempotent (#530). Params: assetPath, widgetName, propertyName? |
set_property |
Set widget property. Slot struct props take UE struct text that persists every field - Slot.Size=(Value=1.0,SizeRule=Fill), Slot.Padding=(Left=8,Top=8,Right=8,Bottom=8) - or a nested field path like Slot.Size.Value / Slot.Padding.Left; an invalid value errors instead of silently writing 0 (#532). Params: assetPath, widgetName, propertyName, value |
list |
List Widget BPs. Params: directory?, recursive? |
read_animations |
Read UMG animations. Params: assetPath |
create |
Create Widget BP. Params: name, packagePath?, parentClass? |
create_utility_widget |
Create editor utility widget. Params: name, packagePath? |
run_utility_widget |
Open editor utility widget. Params: assetPath |
create_utility_blueprint |
Create editor utility blueprint. Params: name, packagePath? |
run_utility_blueprint |
Run editor utility blueprint. Params: assetPath |
add_widget |
Add widget to widget tree. Params: assetPath, widgetClass, widgetName?, parentWidgetName? |
remove_widget |
Remove widget from tree. Params: assetPath, widgetName |
move_widget |
Reparent widget. Params: assetPath, widgetName, newParentWidgetName |
set_root |
Replace WBP root with an existing widget by name (#365). Params: assetPath, widgetName |
wrap_root |
Wrap the current root in a new panel widget (UMG 'Wrap With'). Params: assetPath, wrapperClass (must be a UPanelWidget subclass), wrapperName? (#365) |
list_classes |
List available widget classes |
list_runtime |
(#160) List live UUserWidget instances in the PIE world. Params: classFilter?, namePrefix?, viewportOnly? |
get_runtime |
(#160) Inspect a live PIE widget tree with text/visibility/brush/percent values. Params: widgetName? \\| className?, childName?, maxDepth? |
get_runtime_delegates |
(#161) Read delegate binding state on a live PIE widget. Params: widgetName, className? |
editor¶
Editor commands, Python execution, PIE, undo/redo, hot reload, viewport, performance, sequencer, build pipeline, logs, editor control.
| Action | Description |
|---|---|
start_editor |
Launch Unreal Editor with the current project and reconnect bridge |
stop_editor |
Close Unreal Editor gracefully |
restart_editor |
Stop then start the editor |
build_project |
Build the project's C++ code using Unreal Build Tool. Editor should be stopped first |
execute_command |
Run console command. Params: command |
execute_python |
Run Python in editor. Params: code |
run_python_file |
Run a Python file from disk with file/name populated (#142). Params: filePath, args? |
set_property |
Set UObject property. Params: objectPath, propertyName, value |
play_in_editor |
PIE control. Params: pieAction (start\\|stop\\|status), waitForAssetRegistry? (start only; default true - block until the AssetRegistry initial scan completes before requesting PIE, otherwise PIE silently no-ops on cold editor starts), assetRegistryTimeoutSeconds? (default 180) (#406) |
get_runtime_value |
Read PIE actor property. Params: actorLabel, propertyName (supports dotted paths: component.field or component.struct.field for nested reads on component subobjects, #344/#381) |
get_pie_pawn |
Resolve the controlled pawn in the active PIE world. Params: playerIndex? (default 0) |
invoke_function |
Call a BlueprintCallable / Exec UFUNCTION on a target actor or one of its components. Params: actorLabel, functionName, component? (component subobject name; redirects target from the actor to that component, #382), args? (object), actorArgs? (object mapping UObject* parameter name to actor label, resolved against live actors in the active world; #383), world? (editor\\|pie) |
invoke_static_function |
Call a static UFUNCTION on a UBlueprintFunctionLibrary (no actor instance). invoke_function needs an actor/component target; this targets the library class CDO instead, so it reaches static *_BlueprintOnly libraries (Voxel sculpt/query/stamp), GeometryScript, Kismet math, any function library. Params: className (short name or /Script/Module.Class path), functionName, args? (name -> JSON value, same marshalling as invoke_function), actorArgs? (name -> actor label for UObject* params that are actors, e.g. the sculpt actor), worldContextParam? (name of a UObject* param to fill with the editor/PIE world; auto-detected for params named WorldContextObject), world? (editor\\|pie) |
list_function_libraries |
Enumerate UBlueprintFunctionLibrary subclasses on this build. Filter by name (case-insensitive substring, e.g. 'GeometryScript' / 'Kismet' / 'Animation'). Returns name, module, and (by default) every static BlueprintCallable function on the library with its tooltip. Use to discover what's available for editor.invoke_function (#455). Params: pattern?, includeFunctions? |
set_pie_time_scale |
Fast-forward PIE game time. Params: factor (>0) |
hot_reload |
Hot reload C++ |
undo |
Undo last transaction |
redo |
Redo last transaction |
get_perf_stats |
Editor performance stats |
run_stat |
Run stat command. Params: command |
set_scalability |
Set quality. Params: level |
capture_screenshot |
Screenshot. Params: filename?, resolution?, target? (auto\\|pie\\|editor; auto routes to PIE viewport when PIE is running) (#226) |
capture_scene_png |
Headless PNG screenshot via SceneCapture2D (works unfocused, guaranteed RGBA8 LDR). Params: outputPath, location?, rotation?, width? (default 1280), height? (default 720), fov? (default 90) (#148) |
set_realtime |
Toggle realtime update on the level editor viewports so the editor-world sim (Niagara, anims) ticks - otherwise capture_scene_png renders an unticked, empty sim. Params: enabled (default true) (#537) |
get_viewport |
Get viewport camera |
hit_test_viewport_pixel |
Ray-cast from a screen pixel through the active editor viewport and return the first hit. Builds the ray from the live viewport's projection matrix (no FOV/aspect guessing). Returns hit + actorLabel/actorClass/componentName/componentClass/materialPath/location/impactPoint/normal/distance/faceIndex/boneName/physicalMaterial. Params: x, y (pixel coords), width? height? (override viewport size when picking from a different-resolution screenshot), maxDistance? (default 200000), ignoreActors? (array of actor labels) (#418) |
get_runtime_values |
Bulk runtime read across the active world. For each actor/component matching classFilter, resolves every path against the (actor|component) root and returns rows of {actorLabel, actorClass, componentName?, componentClass?, values, errors?}. Paths support property hops, sub-object hops, and zero-arg BlueprintCallable getter calls at any segment (e.g. 'PowerConnector.GetRequired' reaches a UFUNCTION on a UObject sub-object). classFilter matches actor class OR component class - omit to match everything. World defaults to PIE if running, else editor. Params: classFilter?, paths[], world? (editor\\|pie) (#414) |
set_viewport |
Set viewport camera. Params: location?, rotation? |
focus_on_actor |
Focus on actor. Params: actorLabel |
create_sequence |
Create Level Sequence. Params: name, packagePath? |
get_sequence_info |
Read sequence. Params: assetPath, includeSectionDetails? (attach sockets, first transform key values per track) |
add_sequence_track |
Add an empty track. Params: assetPath, trackType, actorLabel? |
add_sequence_section |
Add a section to a track (creating the track if needed), set its start/end in seconds, and for a CameraCut track bind it to a camera. Returns the section index + channel names to key. Params: sequencePath, trackType (Transform\\|Float\\|Fade\\|CameraCut\\|Audio\\|Event\\|SkeletalAnimation), actorLabel? (binding scope), startSeconds?, endSeconds?, cameraActorLabel? (#548) |
set_sequence_keyframes |
Add keyframes to a section channel. Transform channels: Location.X/Y/Z, Rotation.X/Y/Z (or friendly x/y/z, yaw/pitch/roll); Fade/Float: the float channel. Params: sequencePath, trackType, actorLabel?, sectionIndex? (default 0), channel, keyframes ([{seconds, value}]), interpolation? (cubic\\|linear) (#548) |
set_sequence_playback_range |
Set a Level Sequence's playback range in seconds. Params: sequencePath, startSeconds, endSeconds (#548) |
play_sequence |
Play/stop/pause sequence. Params: assetPath, sequenceAction |
build_all |
Build all (geometry, lighting, paths, HLOD) |
build_geometry |
Rebuild BSP geometry |
build_hlod |
Build HLODs |
validate_assets |
Run data validation. Params: directory? |
get_build_status |
Get build/map status |
cook_content |
Cook content. Params: platform? |
get_log |
Read output log. Params: maxLines?, filter?, category? |
search_log |
Search log. Params: query |
get_message_log |
Read message log. Params: logName? |
list_crashes |
List crash reports |
get_crash_info |
Get crash details. Params: crashFolder |
check_for_crashes |
Check for recent crashes |
set_dialog_policy |
Auto-respond to dialogs matching a pattern. Params: pattern, response |
clear_dialog_policy |
Clear dialog policies. Params: pattern? |
get_dialog_policy |
Get current dialog policies |
list_dialogs |
List active modal dialogs |
respond_to_dialog |
Click a button on the active modal dialog. Params: buttonIndex?, buttonLabel? |
open_asset |
Open asset in its editor. Params: assetPath |
reload_bridge |
Hot-reload Python bridge handlers from disk |
save_dirty |
Flush every dirty package and return a per-package saved/failed map. Use after multi-step CDO/component edits when set_class_default leaves the asset dirty without persisting (#378). Params: includeMaps? (default true), includeContent? (default true) |
configure_pie |
Set ULevelEditorPlaySettings - multi-client PIE, net mode, single-process flag. Params: numClients?, netMode? (standalone\\|listen\\|client), runUnderOneProcess?, launchSeparateServer? (#384) |
get_pie_config |
Read current ULevelEditorPlaySettings (numClients, netMode, single-process, separate-server) (#384) |
list_dirty_packages |
Enumerate currently-dirty content + map packages (#340) |
reflection¶
UE reflection: classes, structs, enums, gameplay tags.
| Action | Description |
|---|---|
reflect_class |
Reflect UClass. Params: className, includeInherited? |
reflect_struct |
Reflect UScriptStruct. Params: structName |
reflect_enum |
Reflect UEnum. Params: enumName |
list_classes |
List classes. Params: parentFilter?, limit? |
list_tags |
List gameplay tags. Params: filter? |
create_tag |
Create gameplay tag. Params: tag, comment? |
create_enum |
Create UUserDefinedEnum asset, optionally seeded with entries. Params: name, packagePath?, entries?: (string\\|{name, displayName?})[], onConflict? (#274) |
set_enum_entries |
Replace entries on an existing UUserDefinedEnum. Params: assetPath, entries[] (#274) |
gameplay¶
Gameplay systems: physics, collision, navigation, input, behavior trees, AI (EQS, perception, State Trees, Smart Objects), game framework.
| Action | Description |
|---|---|
set_collision_profile |
Set collision preset. Params: actorLabel, profileName |
set_simulate_physics |
Toggle physics. Params: actorLabel, simulate |
set_collision_enabled |
Set collision mode. Params: actorLabel, collisionEnabled |
set_collision |
Unified collision authoring for a placed actor (actorLabel) or a Blueprint component template (assetPath+componentName). Apply any of: collisionProfile, collisionEnabled (NoCollision|QueryOnly|PhysicsOnly|QueryAndPhysics), objectType (channel name), responseToAllChannels (Block|Overlap|Ignore), responses ({channel: Block|Overlap|Ignore}). Profile is applied first, then overrides. componentName optional for actors (defaults to all primitive components), required for Blueprint templates (#545) |
set_physics_properties |
Set mass/damping/gravity. Params: actorLabel, mass?, linearDamping?, angularDamping?, enableGravity? |
rebuild_navigation |
Rebuild navmesh |
find_nav_path |
Synchronous nav-path query between two world points. Returns valid/partial/length plus the polyline. The standard 'why doesn't my AI move?' diagnostic. Params: start (Vec3), end (Vec3), pathfindingContext? (actorLabel - uses its agent + filter) (#424) |
list_nav_invokers |
Enumerate actors carrying a NavigationInvokerComponent + their tile generation/removal radii. Diagnoses 'no navmesh in this region' caused by missing or mis-sized invokers (#424) |
get_navmesh_info |
Query nav system |
project_to_nav |
Project point to navmesh. Params: location, extent? |
spawn_nav_modifier |
Place nav modifier. Params: location, extent?, areaClass? |
create_input_action |
Create InputAction. Params: name, packagePath?, valueType? |
create_input_mapping |
Create InputMappingContext. Params: name, packagePath? |
list_input_assets |
List input assets. Params: directory?, recursive? |
read_imc |
Read InputMappingContext mappings. Params: imcPath |
list_input_mappings |
Alias for read_imc. List key→action bindings with triggers/modifiers. Params: imcPath |
add_imc_mapping |
Add key mapping to IMC. Params: imcPath, inputActionPath, key |
set_mapping_modifiers |
Set modifiers/triggers on an IMC mapping. Params: imcPath, mappingIndex?, modifiers?, triggers? |
remove_imc_mapping |
Remove an IMC mapping. Params: imcPath, mappingIndex? \\| (inputActionPath? + key?) (#158) |
set_imc_mapping_key |
Rebind an IMC mapping to a new key. Params: imcPath, newKey, mappingIndex? \\| key? \\| inputActionPath? (#158) |
set_imc_mapping_action |
Retarget an IMC mapping to a different InputAction. Params: imcPath, newInputActionPath, mappingIndex? \\| key? \\| inputActionPath? (#158) |
list_behavior_trees |
List behavior trees. Params: directory?, recursive? |
get_behavior_tree_info |
Inspect behavior tree (top-level + blackboard). Params: assetPath |
read_behavior_tree_graph |
Walk BT tree: composites, tasks, decorators, services with blackboard keys. Params: assetPath |
create_blackboard |
Create Blackboard. Params: name, packagePath? |
add_blackboard_key |
Add a typed key to a Blackboard asset. Params: blackboardPath, keyName, keyType (Bool\\|Int\\|Float\\|String\\|Name\\|Vector\\|Rotator\\|Object\\|Class\\|Enum), baseClass? (for Object/Class types; e.g. /Script/Engine.Actor) (#250) |
remove_blackboard_key |
Remove a key from a Blackboard asset by name. Idempotent. Params: blackboardPath, keyName (#469) |
set_blackboard_parent |
Set Parent on a BlackboardData asset (canonical UE child-of-parent pattern). Pass parentPath="None" or omit to clear. autoPruneDuplicateKeys (default true) removes own-keys that the parent chain already defines so the BT compiler accepts the child (#469) |
read_blackboard |
Read a Blackboard asset: parent path, ownKeys, inheritedKeys (walks the parent chain). Params: blackboardPath (#469) |
list_bt_node_classes |
Enumerate every concrete BehaviorTree node class on this build (composites, tasks, decorators, services). Filter by kind to narrow. Useful for discovering plugin-supplied decorator/task classes without grepping engine + plugin source. Params: kind? ('composite'\\|'task'\\|'decorator'\\|'service') (#494) |
set_behavior_tree_blackboard |
Rebind a BehaviorTree asset's BlackboardAsset reference. Params: behaviorTreePath, blackboardPath |
create_behavior_tree |
Create behavior tree. Params: name, packagePath?, blackboardPath? |
create_eqs_query |
Create EQS query. Params: name, packagePath? |
list_eqs_queries |
List EQS queries. Params: directory? |
add_perception |
Add AIPerceptionComponent. Params: blueprintPath, senses? |
configure_sense |
Add + configure an AI perception sense config on the blueprint's AIPerceptionComponent. Params: blueprintPath, senseType (Sight\\|Hearing\\|Damage\\|Touch\\|Team\\|Prediction\\|Blueprint), settings? ({SightRadius: ...}), componentName? |
create_state_tree |
Create StateTree. Params: name, packagePath? |
list_state_trees |
List StateTrees. Params: directory? |
add_state_tree_component |
Add StateTreeComponent. Params: blueprintPath |
create_smart_object_def |
Create SmartObjectDefinition. Params: name, packagePath? |
add_smart_object_component |
Add SmartObjectComponent. Params: blueprintPath |
add_smart_object_slot |
Append a FSmartObjectSlotDefinition to a SmartObjectDefinition's Slots array. Params: assetPath, name?, offset? ({x,y,z}), rotation? ({pitch,yaw,roll}), tags? (array) |
set_smart_object_slot |
Mutate an existing slot's offset/rotation/tags. Params: assetPath, slotIndex, offset? ({x,y,z}), rotation? ({pitch,yaw,roll}), tags? (array) |
remove_smart_object_slot |
Remove a slot by index. Idempotent: out-of-range returns alreadyDeleted=true. Params: assetPath, slotIndex (#416) |
list_smart_object_slots |
List slots on a SmartObjectDefinition with index, offset, rotation, and raw text. Params: assetPath (#416) |
add_smart_object_slot_behavior |
Attach a behavior definition (UBehaviorDefinition asset or class) to a slot's BehaviorDefinitions array. Pass instanceProperties to seed UPROPERTYs on a freshly-spawned class-instance. Params: assetPath, slotIndex, behaviorClass (asset path or class path), instanceProperties? (#416) |
create_game_mode |
Create GameMode BP. Params: name, packagePath?, parentClass?, defaults? |
create_game_state |
Create GameState BP. Params: name, packagePath?, parentClass? |
create_player_controller |
Create PlayerController BP. Params: name, packagePath?, parentClass? |
create_player_state |
Create PlayerState BP. Params: name, packagePath? |
create_hud |
Create HUD BP. Params: name, packagePath? |
set_world_game_mode |
Set level GameMode override. Params: gameModeClass (or legacy gameModePath) |
get_framework_info |
Get level framework classes |
get_navmesh_details |
Read RecastNavMesh generation params (cellSize, agentHeight, maxStepHeight, etc.) (#163) |
gas¶
Gameplay Ability System: abilities, effects, attribute sets, cues.
| Action | Description |
|---|---|
add_asc |
Add AbilitySystemComponent. Params: blueprintPath, componentName? |
create_attribute_set |
Create AttributeSet BP. Params: name, packagePath? |
add_attribute |
Add attribute to set. Params: attributeSetPath, attributeName, defaultValue? |
create_ability |
Create GameplayAbility BP. Params: name, packagePath?, parentClass? |
set_ability_tags |
Set tags on ability. Params: abilityPath, ability_tags?, cancel_abilities_with_tag?, activation_required_tags?, activation_blocked_tags? |
create_effect |
Create GameplayEffect BP. Params: name, packagePath?, durationPolicy? |
set_effect_modifier |
Add modifier. Params: effectPath, attribute, operation?, magnitude? |
create_cue |
Create GameplayCue. Params: name, packagePath?, cueType? |
get_info |
Inspect GAS setup. Params: blueprintPath |
set_asc_defaults |
Wire an AttributeSet onto a Blueprint's ASC component (DefaultStartingData) so attributes exist at runtime. Params: blueprintPath, attributeSet (content path or class name), componentName?, initDataTable? (starting values) |
apply_effect |
Apply a GameplayEffect to a live actor's ASC (agnostic stat/damage stimulus - uses the game's own effect). Params: actorLabel, effectClass (content path or class name), level?, setByCaller? ({tag-or-name: magnitude}), world? (auto\\|pie\\|editor, default auto) |
set_attribute |
Set a gameplay attribute's base value on a live actor's ASC (recalculates CurrentValue through the aggregator). Params: actorLabel, attribute (Health \\| SetName.Health), value, world? |
get_attribute |
Read gameplay attribute base + current values on a live actor's ASC. Omit attribute to list all. Params: actorLabel, attribute?, world? |
init_asc |
Initialize a live actor's ASC (InitAbilityActorInfo) and optionally instantiate an AttributeSet so attributes are live - the runtime setup step for testing a bridge-authored GAS actor. Params: actorLabel, attributeSet? (content path or class name), world? |
networking¶
Networking and replication: actor replication, property replication, net relevancy, dormancy.
| Action | Description |
|---|---|
set_replicates |
Enable actor replication. Params: blueprintPath, replicates? |
set_property_replicated |
Mark variable as replicated. Params: blueprintPath, propertyName, replicated?, replicationCondition?, repNotify? |
configure_net_frequency |
Set update frequency. Params: blueprintPath, netUpdateFrequency?, minNetUpdateFrequency? |
set_dormancy |
Set net dormancy. Params: blueprintPath, dormancy |
set_net_load_on_client |
Control client loading. Params: blueprintPath, loadOnClient? |
set_always_relevant |
Always network relevant. Params: blueprintPath, alwaysRelevant? |
set_only_relevant_to_owner |
Only relevant to owner. Params: blueprintPath, onlyRelevantToOwner? |
configure_cull_distance |
Net cull distance. Params: blueprintPath, netCullDistanceSquared? |
set_priority |
Net priority. Params: blueprintPath, netPriority? |
set_replicate_movement |
Replicate movement. Params: blueprintPath, replicateMovement? |
get_info |
Get networking info. Params: blueprintPath |
demo¶
Neon Shrine demo scene builder and cleanup.
| Action | Description |
|---|---|
step |
Execute demo step. Params: stepIndex? |
cleanup |
Remove demo assets and actors. Switches editor to /Game/MCP_Home before deleting so the editor is never left on an Untitled map |
go_home |
Switch the editor to /Game/MCP_Home (creating it on first use). Use this before any operation that would leave the editor on an Untitled map |
feedback¶
Submit feedback to improve ue-mcp when native tools fall short and execute_python was used as a workaround.
| Action | Description |
|---|---|
submit |
Submit feedback about a tool gap. Blocks on an MCP elicitation prompt that asks the USER (not the agent) to approve or decline the exact payload before anything is posted to GitHub |
statetree¶
StateTree asset editing: read, modify states/tasks/conditions/transitions/bindings/evaluators/global tasks/colors/state parameters/root parameters, compile and validate.
| Action | Description |
|---|---|
read |
Full dump of a StateTree asset: state hierarchy (with description, tag, customTickRate, color), tasks, conditions, transitions, evaluators, global tasks, root params, bindings. Params: assetPath |
list_states |
List all states with IDs and paths. Params: assetPath |
add_state |
Add child state. Params: assetPath, stateId? (parent GUID, omit for root), name, stateType? (State\\|Group\\|LinkedAsset\\|Subtree), selectionBehavior?, insertIndex? |
remove_state |
Remove a state by ID. Params: assetPath, stateId |
set_state_property |
Set a property on a state. Params: assetPath, stateId, propertyName (name\\|type\\|selectionBehavior\\|bEnabled\\|weight\\|linkedAsset\\|description\\|tag\\|customTickRate\\|color), value |
clear_state_nodes |
Remove all tasks/conditions/transitions from a state. Params: assetPath, stateId |
add_task |
Add a task to a state. Params: assetPath, stateId, structType (C++ struct name e.g. FMyStateTreeTask or an engine-shipped task like FStateTreeRunParallelStateTreesTask), instanceProperties? |
add_enter_condition |
Add an enter condition to a state. Params: assetPath, stateId, structType (C++ struct name), instanceProperties?, operand? (And\\|Or) |
remove_enter_condition |
Remove an enter condition by index. Params: assetPath, stateId, conditionIndex |
remove_task |
Remove a task by index. Params: assetPath, stateId, taskIndex |
set_task_instance_property |
Set a property on a task's instance data. Params: assetPath, stateId, taskIndex, propertyName, value |
set_task_property |
Set a property on the task's node struct (FStateTreeTaskBase-level: bConsideredForCompletion, bTaskEnabled, bShouldStateChangeOnReselect). Distinct from set_task_instance_property which targets instance data. Params: assetPath, stateId, taskIndex, propertyName, value (string-encoded e.g. 'true'/'false') |
add_transition |
Add a transition to a state. Params: assetPath, stateId, trigger (OnStateCompleted\\|OnStateSucceeded\\|OnStateFailed\\|OnTick\\|OnEvent; combine with \\| e.g. OnStateSucceeded\\|OnStateFailed), transitionType (GotoState\\|NextState\\|Succeeded\\|Failed), eventTag?, targetStateId?, targetStatePath?, priority? (Low\\|Normal\\|Medium\\|High\\|Critical), delayDuration?, bDelayTransition? |
add_transition_condition |
Add a condition to an existing transition. Params: assetPath, stateId, transitionIndex, structType, instanceProperties?, operand? |
remove_transition |
Remove a transition by index. Params: assetPath, stateId, transitionIndex |
add_binding |
Add a property binding. Params: assetPath, sourceStructId, sourcePath, targetStructId, targetPath |
remove_binding |
Remove a property binding. Params: assetPath, targetStructId, targetPath |
list_bindings |
List all property bindings. Params: assetPath, structId? (filter) |
add_evaluator |
Add an evaluator to the StateTree (tree-level). Params: assetPath, structType (must derive from FStateTreeEvaluatorBase), instanceProperties? |
remove_evaluator |
Remove an evaluator by node ID. Params: assetPath, nodeId |
set_evaluator_instance_property |
Set a property on an evaluator's instance data. Params: assetPath, nodeId, propertyName, value |
set_evaluator_property |
Set a property on the evaluator's node struct (FStateTreeEvaluatorBase-level). Params: assetPath, nodeId, propertyName, value |
add_global_task |
Add a global task to the StateTree (tree-level). Params: assetPath, structType (must derive from FStateTreeTaskBase), instanceProperties? |
remove_global_task |
Remove a global task by node ID. Params: assetPath, nodeId |
set_global_task_instance_property |
Set a property on a global task's instance data. Params: assetPath, nodeId, propertyName, value |
set_global_task_property |
Set a property on a global task's node struct (FStateTreeTaskBase-level). Params: assetPath, nodeId, propertyName, value |
list_colors |
List all color palette entries for a StateTree. Params: assetPath |
add_color |
Add a new color to the StateTree palette. Params: assetPath, displayName, color? (FLinearColor string e.g. '(R=1.0,G=0.0,B=0.0,A=1.0)') |
list_state_parameters |
List parameters defined on a state. Params: assetPath, stateId |
add_state_parameter |
Add a parameter to a state's property bag. Rejects fixed-layout (linked) states. Params: assetPath, stateId, paramName, paramType (Bool\\|Int32\\|Int64\\|Float\\|Double\\|Name\\|String\\|Text) |
remove_state_parameter |
Remove a parameter from a state's property bag by name. Rejects fixed-layout (linked) states. Params: assetPath, stateId, paramName |
set_state_parameter |
Set the value of an existing state parameter. On fixed-layout states, also marks the parameter as overridden. Params: assetPath, stateId, paramName, value |
set_root_parameters |
Define root parameters (property bag). Params: assetPath, parameters[] ({name, type}) where type is float\\|int32\\|bool\\|string\\|name\\|double |
compile |
Compile a StateTree asset. Returns success, errors[], warnings[]. Params: assetPath |
validate |
Validate a StateTree asset without compiling. Params: assetPath |
plugins¶
Introspect npm-distributed plugins that contribute actions into other categories. Read-only.
| Action | Description |
|---|---|
list |
Every plugin loaded from ue-mcp.yml: name, version, prefix, status, and injected actions |
describe |
Full detail for one plugin including knowledge files and flows. Params: name |