Conduit 1.6.3 — Getting started

This release is an editor-only MCP plugin for Unreal Engine 5.8 on Windows (Win64), with 95 tools. It is not included in cooked games and has no runtime network replication. A compatible MCP client and any model subscription are obtained separately.

Install and connect

  1. Install the Fab plugin for UE 5.8 through the Epic Games Launcher. For a source installation, copy the AgentConduit folder into YourProject/Plugins/, install the UE 5.8 Windows C++ toolchain, generate project files, and build the Development Editor target. For a Blueprint-only source project, add a C++ class first.
  2. Open the project and enable AgentConduit in Edit > Plugins. Restart the editor if requested. The engine dependencies GameplayAbilities, PythonScriptPlugin, EnhancedInput, StateTree, PropertyBindingUtils and PCG must be enabled. They ship with Unreal Engine; no separate asset purchase is required.
  3. In Output Log, look for the AgentConduit server startup message. Connect one editor at a time: the endpoint is http://127.0.0.1:30010/mcp. A second editor using this port cannot host another server.
  4. Configure a local MCP client with the HTTP endpoint. The bundled claude-mcp-config.example.json gives the configuration shape. Claude Code also accepts claude mcp add --transport http agentconduit http://127.0.0.1:30010/mcp. Other clients may use different configuration keys; choose their HTTP/Streamable HTTP transport and the same URL.
  5. Ask the client to list the available tools, then call list_actors to inspect the current level. Tool names, descriptions, required arguments and JSON schemas are available through tools/list. The complete parameter reference is in Tools.md.

Enable only the operations you need

Project Settings > Plugins > AgentConduit contains three independent switches, all off by default:

An optional Auth Token requires clients to send Authorization: Bearer YOUR_TOKEN. Leave it empty only when you intend unauthenticated local access. Keep the endpoint local; do not forward it to the internet. Console and Python access have the permissions of your editor process. Typed authoring uses undo transactions, but arbitrary execution, file saving and asset imports are not a universal rollback system. Save and use source control before substantial changes.

Example project

Download the ConduitExample UE 5.8 project ZIP. It references AgentConduit but does not contain a copy of the plugin. Install the plugin first, then open ConduitExample.uproject and its example map. Its README gives a short inspect, transform, undo and Blueprint workflow. The project uses only engine primitives and original demonstration content.

For your own scene, ask the client to inspect selected actors, move one actor using set_actor_transform, inspect it again, then use the editor's Undo command. Read the returned result after every call. Compile authored Blueprints and test them in PIE before saving. Consult animation authoring scope for animation authoring limitations.

Troubleshooting and extending tools

Developers can add a tool by implementing IMCPTool for read-only operations or FMutatingMCPTool for gated structural edits, defining its JSON input schema and registering it in MCPCoreModule.cpp. Rebuild and restart the editor after changing registrations. Test the new operation, its error paths and undo behavior before using it on production assets.

Online documentation: https://conduit.unrealtools.com/docs

Support: https://conduit.unrealtools.com


Complete 95-tool reference

Auto-generated by Scripts/Generate-ToolReference.ps1 from the tool headers. Do not edit by hand.

AgentConduit exposes 95 tools over the MCP endpoint at http://127.0.0.1:30010/mcp . Write/mutating tools require the safety gates in Project Settings > Plugins > AgentConduit.

Tool Description
add_blueprint_cast_node Adds a Cast node to the event graph (e.g. cast an overlap's OtherActor to a specific class before using it). Args: 'blueprint' (asset path), 'target_class' (the class to cast to — native name or Blueprint class path ending _C). Returns the node id and pins (Object in, As out, Cast Failed exec).
add_blueprint_component Adds a component to a Blueprint's component hierarchy (SimpleConstructionScript). Args: 'blueprint' (asset path), 'component_class' (e.g. "StaticMeshComponent", "PointLightComponent"), 'name' (the new component's variable name). Recompiles the Blueprint.
add_blueprint_event_node Adds an event node to a Blueprint's event graph. Args: 'blueprint' (asset path), 'event_name' (e.g. "ReceiveBeginPlay", "ReceiveTick", or any name when 'custom' is true), optional 'custom' (bool, default false — true makes a Custom Event), optional 'target_class' (for overrides; defaults to the Blueprint's parent). Returns the node id and pin names.
add_blueprint_flow_node Adds a control-flow node to the event graph. Args: 'blueprint' (asset path), 'type' = "branch" (if/else) or "sequence" (run pins in order). Returns the node id and pins. For a Branch, set its 'Condition' input via connect_blueprint_pins or set_node_pin_default.
add_blueprint_function_node Adds a function-call node to a Blueprint's event graph. Args: 'blueprint' (asset path), 'function' (function name, e.g. "PrintString", "SetActorLocation"), optional 'target_class' (class declaring the function, e.g. "KismetSystemLibrary"; defaults to the Blueprint's own class hierarchy). Returns the node id and pin names.
add_blueprint_input_action_node Adds an Enhanced Input action event node to the event graph, so an Input Action drives Blueprint logic. Args: 'blueprint' (asset path — usually a Pawn/Character/PlayerController), 'action' (Input Action asset path). Returns the node id and its trigger pins (Triggered, Started, Completed, …, plus ActionValue). Pair with add_input_mapping to bind keys.
add_blueprint_variable Adds a member variable to a Blueprint. Args: 'blueprint' (asset path), 'name', 'type' (one of: bool, byte, int, int64, float, string, name, text, vector, rotator, transform, color; or a class/struct path for object references), optional 'is_array' (default false), optional 'default_value' (Unreal text form). Recompiles the Blueprint.
add_blueprint_variable_node Adds a variable node to the event graph. Args: 'blueprint' (asset path), 'variable' (an existing variable name), optional 'mode' = "get" (default) or "set". Returns the node id and pins so you can wire it with connect_blueprint_pins.
add_component Adds a component to a level actor instance. Args: 'component_class' (e.g. "PointLightComponent", "AudioComponent", "BoxComponent"), 'name', optional 'actor_label' (else uses the selection). Scene components attach to the actor's root. Set its properties with set_actor_property (use the component name).
add_input_mapping Maps a key to an Input Action in an Enhanced Input Mapping Context. Args: 'context' (Input Mapping Context asset path), 'action' (Input Action asset path), 'key' (e.g. "W", "SpaceBar", "Gamepad_FaceButton_Bottom", "LeftMouseButton"). Create the IA/IMC assets with create_asset (class "InputAction" / "InputMappingContext"). Saves the context.
add_widget Adds a widget to a Widget Blueprint's tree. Args: 'widget_blueprint' (asset path), 'widget_class' (e.g. "Button", "TextBlock", "Image", "VerticalBox"), 'name', optional 'parent' (name of an existing panel widget to nest under; defaults to the root panel). Recompiles the Blueprint.
anim_graph_add_node Adds a node to an Animation Blueprint's AnimGraph. Args: 'anim_blueprint' (path), 'node_type' one of "StateMachine" | "BlendSpacePlayer" | "SequencePlayer" | "Slot" | "VariableGet", optional 'asset' (a BlendSpace path for BlendSpacePlayer, or an AnimSequence path for SequencePlayer), optional 'variable' (member variable name for VariableGet), optional 'slot_name' (montage slot for Slot nodes, default "DefaultSlot"), optional 'state' (a state node id from anim_sm_add_state — adds the node inside that state's pose graph instead of the main AnimGraph), optional 'pos_x'/'pos_y'. Returns the node id (GUID) and its pins. The output-pose node already exists — reference it as "root".
anim_graph_connect Connects two pins in an Animation Blueprint's AnimGraph. Args: 'anim_blueprint', 'from_node' and 'to_node' (each a node id from anim_graph_add_node, or "root" for the output-pose node), 'from_pin' and 'to_pin' (pin names; the output pose pin is "Pose", the Result node's input is "Result", BlendSpace axis inputs are "X"/"Y"), optional 'state' (a state node id — connect inside that state's pose graph). Wire a player's "Pose" into root "Result", and a Speed VariableGet into the player's "X".
anim_graph_describe Lists the structure of an Animation Blueprint's AnimGraph so you can edit it idempotently. Args: 'anim_blueprint' (path), optional 'state' (a state node id or name — describe that state's pose graph instead of the main AnimGraph). Returns each node's id, type and pins, its outgoing pin links (the actual wiring), and any assigned BlendSpace/slot name; for a StateMachine node it also lists its states and transitions (with ids). Read-only.
anim_sm_add_state Adds a state to a state machine in an Animation Blueprint. Args: 'anim_blueprint', 'state_machine' (a StateMachine node id or its name), 'name' (state name), optional 'entry' (bool — make this the machine's initial/default state by wiring the entry node to it), optional 'pos_x'/'pos_y'. Returns the state node id. Author the state's pose with anim_graph_add_node/anim_graph_connect using 'state' = this id (wire a player's "Pose" into "root").
anim_sm_add_transition Adds a transition between two states in a state machine. Args: 'anim_blueprint', 'state_machine' (node id or name), 'from_state' and 'to_state' (state node ids or names), optional 'blend_time' (crossfade seconds, default 0.2). Returns the transition id — set its rule with anim_sm_set_transition_rule (a transition with no rule never fires).
anim_sm_set_transition_rule Sets a transition's rule (the condition that fires it). Args: 'anim_blueprint', 'transition' (id from anim_sm_add_transition), then either a single condition — 'variable' (member variable name), 'comparison' one of ">" "<" ">=" "<=" "==" "!=" (numeric) or "bool" (use a boolean variable directly), 'value' (number to compare against) — or a compound rule via 'conditions' (an array of {variable, comparison, value}) combined by 'logic' = "AND" (default) or "OR" (e.g. Speed > 10 AND !IsFalling). Builds the rule graph and recompiles; replaces any existing rule wiring.
array_op Edits an array property. Root: 'asset' (path) or 'actor_label'. 'path' (required) = the array property (may itself be nested, e.g. "LevelUpInformation"). 'op' (required): 'add' (append empty), 'add_n' (append 'count' empties), 'remove' (at 'index'), 'clear', or 'size' (resize to 'count'). For assets, 'save' (default true). Requires editor mutations. Then set elements with set_property_path.
batch Runs several tool calls in order in a single request (fewer round-trips for bulk work). Args: 'calls' (array of objects, each { "tool": name, "arguments": { ... } }), optional 'stop_on_error' (default false — continue past failures). Returns a numbered per-call result summary. Each sub-call still enforces its own safety gate. Image results are noted, not embedded.
checkout_asset Makes an asset writable for saving: clears its read-only flag and (if source control is enabled) checks it out via the active provider. Use before save_asset when a save silently returns false. Arg: 'asset' (path, e.g. "/Game/Blueprints/BP_Foo").
compare_to_reference Compares the current viewport against a reference image. Args: 'reference' (required, image file path on disk), 'height' (composite height in px, default 400). Returns the two images side-by-side (reference left, current right) plus a rough pixel-similarity percentage.
compile_blueprint Compiles a Blueprint asset and reports the resulting status (errors/warnings). Args: 'blueprint' (asset path). Call this after structural edits to validate the Blueprint.
connect_blueprint_pins Connects two Blueprint node pins. Args: 'blueprint' (asset path), 'from_node' and 'to_node' (node ids from add_blueprint_*_node), 'from_pin' (an output pin name, e.g. "then") and 'to_pin' (an input pin name, e.g. "execute"). Use "then"/"execute" for exec flow. Recompiles the Blueprint.
create_anim_blueprint Creates an Animation Blueprint asset bound to a skeleton (its AnimGraph is seeded automatically). Args: 'name', 'path' (content folder, e.g. "/Game/Animation"), 'skeleton' (USkeleton asset path), optional 'parent_class' (a UAnimInstance subclass — native class name or asset path; default UAnimInstance), optional 'save' (default true). Author its Event Graph with the add_blueprint_* node tools, then bind it with set_anim_class.
create_asset Creates a new asset and saves it. Args: 'class' (required, asset class name or /Script path, e.g. "LevelUpInfo", "CurveTable", "DataAsset"), 'path' (required, content folder, e.g. "/Game/Blueprints/AbilitySystem/Data"), 'name' (required, asset name e.g. "DA_LevelUpInfo"), 'save' (bool, default true). Then use set_asset_property to populate it. Best for UDataAsset subclasses and CurveTables; Blueprints/Materials need their own factories. Requires editor mutations enabled.
create_blendspace Creates a BlendSpace (1D or 2D) for locomotion. Args: 'name', 'path', 'skeleton' (USkeleton path), optional 'type' ("1D" default, or "2D"), 'axis_x' {name,min,max,grid} and (2D only) 'axis_y', and 'samples' — an array of {anim: , x: , y: }. Samples outside the axis range, or whose animation uses a different skeleton, are rejected (and reported). Optional 'smoothing' (target-weight interpolation speed/sec; 0 = instant) and 'save' (default true). Drive it from an AnimGraph BlendSpacePlayer node or reference it directly.
create_blueprint Creates a new Blueprint class asset from a parent class (default Actor). Args: 'name', 'path' (content folder, e.g. "/Game/Blueprints"), optional 'parent_class' (native class name or asset path, default "Actor"), optional 'save' (default true). Use add_blueprint_component / add_blueprint_variable / compile_blueprint to flesh it out, or execute_python for node-graph logic.
create_font Creates a runtime UFont asset from imported UFontFace assets (UMG TextBlocks need a UFont, not a FontFace; the Python API can't build the composite). Args: 'name' (required, e.g. "F_ChakraPetch"), 'path' (required content folder, e.g. "/Game/Assets/Fonts/Cyberpunk"), 'faces' (required array of {"typeface": , "fontface": }), 'save' (bool, default true). In UMG, set the TextBlock Font's FontObject to the created UFont and TypefaceFontName to one of the typeface names. Requires editor mutations enabled.
create_pcg_graph
create_state_tree Creates (or rebuilds) a StateTree asset, adds states/tasks/transitions/bindings, compiles and saves it. Args: 'path' (asset path, e.g. "/Game/AI/ST_Wander"), 'schema' (schema class, e.g. "MassStateTreeSchema"), 'states' (array of {name, tasks:[{struct, properties?}], transitions:[{trigger, type, to?}], children?}), 'bindings' (array of {source_state, source_task, source_path, target_state, target_task, target_path}). Task structs are resolved by name (e.g. "MassZoneGraphFindWanderTarget") or "/Script/Module.Struct" path. Transition triggers: OnStateCompleted|OnStateSucceeded|OnStateFailed|OnTick; types: GotoState|NextState|Succeeded|Failed. Property values are UE import-text strings (or plain numbers/bools).
create_widget_blueprint Creates a UMG Widget Blueprint (game UI/HUD) with a root Canvas Panel. Args: 'name', 'path' (e.g. "/Game/UI"), optional 'parent_class' (default "UserWidget"), optional 'save' (default true). Add widgets with add_widget.
delete_actor Deletes actors from the current level. Provide 'actor_label' (exact label; may match several), 'name_contains' (delete every outliner actor whose label contains this substring), or neither to delete the current selection. Undoable. Requires editor mutations to be enabled.
describe_state_tree Describes a StateTree asset: its schema, state hierarchy, tasks (with set properties), transitions, property bindings, and last compile status. Args: 'path' (asset path).
describe_widget Lists the full widget tree of a UMG Widget Blueprint so you can edit it precisely. Args: 'widget_blueprint' (asset path). Returns each widget indented by nesting, with its name, class, and — for widgets inside a panel — its layout slot type and editable slot properties (anchors, offsets, alignment, padding, size, fill). Read-only; pair with add_widget / set_widget_property.
drop_to_ground Drops the selected actor(s) (or 'actor_label', or 'name_contains') straight down so their lowest point rests on the first surface below. Undoable. Requires editor mutations to be enabled.
duplicate_actor Duplicates the selected actor (or 'actor_label'). Args: 'offset' {x,y,z} applied per copy, 'count' (number of copies, default 1). Great for repeating buildings/props. Undoable. Requires editor mutations enabled.
exec_console_command Runs an Unreal console command and returns its console output (e.g. "stat fps", "r.ScreenPercentage 50", "show Collision", "DumpConsoleCommands"). Targets the running game when in play mode, otherwise the editor world. Output the command writes via UE_LOG (rather than to the console) appears in get_output_log instead. Requires 'Allow Console Commands' to be enabled in project settings.
execute_python Executes a Python script in Unreal's embedded interpreter (the unreal module is available) and returns captured stdout/stderr and the final expression's value. Use this for anything without a dedicated tool — asset edits, reflection, bulk operations. Multi-line scripts are supported. Runs inside one undo transaction. Requires 'Allow Python Execution' to be enabled and the Python Editor Script Plugin.
focus_camera_on_actor Aims the perspective viewport at the selected actor (or 'actor_label'), framing it using its bounds. Optional 'distance' (multiplier of the actor's size, default 2.5) and 'yaw'/'pitch' for the viewing angle in degrees.
get_ability_system Dumps an actor's GAS state — attributes (base+current), active gameplay effects, granted abilities, owned gameplay tags. Reads the running PIE world if present, else the editor world. Args: 'actor' (name/label substring) OR 'player' (bool — use player pawn 0).
get_actor_bounds Returns the world-space bounding box of the selected actor (or 'actor_label'): center, full size (x/y/z), min/max corners, and the pivot offset (geometry center minus actor location). Use to size and align meshes whose pivots are off-center.
get_actor_details Returns transform, attachment, tags, and components for the selected actor(s) in the Unreal editor. Pass 'actor_label' to inspect a specific actor by its World Outliner label instead of the selection.
get_actor_property Reads a property value from the selected actor or 'actor_label'. With 'property', returns that value; without it, lists all editor-visible properties and their values. Optional 'component' targets a named component instead of the actor.
get_asset_properties Reads an asset's properties by reflection. Args: 'asset' (required, asset path, e.g. a UDataAsset), optional 'property' (a single property name; if omitted, lists all editor-visible properties and values).
get_cvar Reads a console variable's current value and help text. Args: 'name' (e.g. "r.ScreenPercentage"). Read-only.
get_last_crash Returns the most recent crash report from /Saved/Crashes: the error message, the parsed callstack (symbol + file:line where available), and a tail of the crash log. Optional arg 'log_tail_lines' (default 40, max 400). Reports 'no crashes found' if the Crashes dir is empty.
get_material_params Lists a material's editable parameters and current values. Source: 'material' (asset path), or 'actor_label' (+ optional 'component', 'slot') to read the material on a mesh component slot. Use before set_material_param to learn the real parameter names.
get_output_log Returns recent Unreal editor log lines (newest last). Optional args: 'count' (default 100, max 1000), 'contains' (substring filter), and 'min_verbosity' (one of all|display|warning|error; default all).
get_selected_actors Returns the labels and classes of the actors currently selected in the Unreal editor viewport.
import_asset Imports a source file from disk into the project. Args: 'source' (a file path, e.g. an .fbx/.png/.wav), 'destination' (content folder, e.g. "/Game/Meshes"), optional 'name', optional 'replace' (default false), optional 'save' (default true). Returns the imported asset path(s). Requires 'Allow Editor Mutations'.
import_landscape Imports a 16-bit grayscale heightmap file (.png or .r16) into a new Landscape actor in the current editor level. Args: 'heightmap_path' (absolute path, required); optional 'location' {x,y,z} cm, 'scale' {x,y,z} (default {100,100,100}; x/y = cm per landscape quad, z where 100 => 512m of uint16 range), 'label', and 'flip_y' (bool, default false — set true if the terrain imports mirrored north/south). Component sizing is chosen automatically to encompass the heightmap. Undoable. Requires editor mutations enabled.
inject_input Injects input into the running PIE game viewport. Arg 'actions': an ordered array of {type} steps — type "key": {key:"Enter"|"W"|..., event:"press"|"release"|"click"(default)}; type "mouse": {button:"left"|"right"|"middle", event:"press"|"release"|"click"(default), x,y:optional viewport pixels}; type "move": {x,y viewport pixels}. Routes through the game viewport (Enhanced Input + PlayerController cursor). NOTE: Slate/UMG drag-drop capture is not fully emulated — keyboard actions and world clicks/click-to-move work; test UMG drags manually. Requires PIE running.
list_actors Lists actors in the current editor level with a class-count summary, mirroring the World Outliner. Optional filters: 'name_filter' (substring of the label), 'class_filter' (substring of the class name, e.g. "Light" or "Fog"), and 'limit' (default 200, max 1000).
list_assets Searches the project's Asset Registry. Optional filters: 'class_filter' (asset type, e.g. "StaticMesh", "Material", "Blueprint", "SkeletalMesh"), 'name_filter' (substring of the asset name), 'path' (content path to search under, default "/Game"), and 'limit' (default 100, max 1000). Returns object paths usable with spawn_actor / set_actor_property.
load_level Opens an existing level asset for editing, replacing the current level. Args: 'path' (e.g. "/Game/Maps/MyLevel"). Requires 'Allow Editor Mutations'. Not undoable.
new_level Creates a new blank level and opens it for editing, replacing the current level. Optional 'path' (e.g. "/Game/Maps/MyLevel") saves the new level to that asset. Requires 'Allow Editor Mutations'. Not undoable.
pcg_add_component
pcg_add_node
pcg_connect
pcg_describe_graph
pcg_generate
pcg_set_node_property
render_widget Renders a Widget Blueprint (UMG) to a PNG image so the agent can SEE the UI (take_screenshot can't — it only captures the 3D viewport, not Slate/UMG). Args: 'widget_blueprint' (asset path), optional 'live' (bool), 'width', 'height', 'max_width' (downscale, default 1280, max 4096). Default renders the STATIC design (fresh instance, no controller bound). With 'live'=true, captures the LIVE in-viewport instance during Play In Editor (real runtime/bound data, defaults to the game viewport resolution) — use this to debug the actual on-screen HUD.
save_asset Saves an asset to disk, persisting any in-memory edits (e.g. after add_blueprint_node / add_blueprint_variable, which only mark the asset dirty). Args: 'asset' (asset path).
save_level Saves the current editor level to disk, persisting the scene. Takes no arguments.
scatter_actors Scatters StaticMeshActors over an area. Args: 'meshes' (array of static mesh paths, picked at random per instance), 'count', 'center' {x,y,z}, 'extent' {x,y} (half-size of the scatter box), 'scale_min'/'scale_max' (uniform scale range, default 1), 'random_yaw' (bool, default true), 'align_to_ground' (bool, default true), 'label_prefix' (default 'Scatter'). Undoable. Requires editor mutations enabled.
screenshot_game Captures the running Play-In-Editor game viewport (gameplay camera + UMG HUD + debug draws) as a PNG. Errors if PIE is not running (use start_play_in_editor first). Optional arg 'max_width' (default 1280, max 4096).
set_actor_folder Files actors into a World Outliner folder. Args: 'folder' (required, e.g. "AgentConduit/Buildings"; empty string moves to root), and either 'actor_label' (exact) or 'name_contains' (substring) to choose actors.
set_actor_pose Sets a skeletal mesh actor's pose from an AnimSequence. Args: 'animation' (required, AnimSequence asset path), optional 'time' (seconds into the anim to freeze on, default 0), 'play' (bool, loop instead of freezing). Use to give mannequins a natural pose. Undoable. Requires editor mutations enabled.
set_actor_property Sets a property (by name, via reflection) on the selected actor or 'actor_label'. Args: 'property' (required), 'value' (required; string/number/boolean map directly, struct types take Unreal text form e.g. "(X=1,Y=2,Z=3)"), optional 'component' to target a named component instead of the actor. Undoable. Requires editor mutations to be enabled.
set_actor_transform Sets world location, rotation, and/or scale of the selected actor (or 'actor_label'). Each of 'location' {x,y,z}, 'rotation' {pitch,yaw,roll}, 'scale' {x,y,z} is optional; provide at least one. Omitted axes keep their current value. Undoable in the editor. Requires editor mutations to be enabled.
set_anim_class Assigns an Animation Blueprint to a SkeletalMeshComponent. Args: 'anim_class' (an AnimBlueprint asset path, or a UAnimInstance class path), optional 'component' (component name; defaults to the first SkeletalMeshComponent), and a target: either 'target' (a Blueprint asset path — sets the component template's Anim Class and recompiles) or 'actor_label' / the current viewport selection (a level actor instance — calls SetAnimInstanceClass live). Save the owning asset/level afterwards to persist.
set_asset_property Sets a property on an asset (e.g. a UDataAsset) by reflection. Args: 'asset' (required, path), 'property' (required), 'value' (required; string/number/boolean map directly, struct types take Unreal text form), 'save' (bool, default true — writes the .uasset to disk). Requires editor mutations enabled. Note: DataTables are not edited this way — they need row-level editing.
set_blueprint_default Sets a default property on a Blueprint's CDO and recompiles. Args: 'blueprint' (required, BP asset path, e.g. "/Game/.../BP_AuraPlayerState.BP_AuraPlayerState"), 'property' (required), 'value' (required; string/number/boolean or asset path for object refs), 'save' (default true). Requires editor mutations enabled.
set_component_property Sets a property on a named component of a level actor. Args: 'component' (the component name, e.g. "PointLight"), 'property' (dotted path, e.g. "Intensity", "LightColor", "Sound"), 'value' (string/number/bool, or an asset path for object references like a Sound/Texture), optional 'actor_label' (else uses the selection). Use add_component to create the component first.
set_curve_table_row Sets a row of a CurveTable to a rich curve of keys. Args: 'curve_table' (required, path), 'row' (required, row name e.g. "XP_Bruiser"), 'keys' (required, array of {x,y} points, e.g. [{"x":1,"y":0},{"x":2,"y":100}] for level→XP), 'interp' ("linear"|"constant"|"cubic", default linear), 'save' (default true). Replaces the row if it exists. Requires editor mutations enabled.
set_cvar Sets a console variable. Args: 'name', 'value'. Requires 'Allow Console Commands'.
set_game_mode Sets the GameMode for the current level (World Settings override). Args: 'game_mode' (a GameMode class — native name or Blueprint class path ending in _C). Configure its DefaultPawn/PlayerController/HUD via set_blueprint_default on the GameMode Blueprint. Saves via save_level.
set_material Sets a material on a mesh component of the selected actor (or 'actor_label'). Args: 'material' (required, asset path), 'slot' (material index, default 0), optional 'component' (mesh component name; defaults to the actor's first mesh component). Undoable. Requires editor mutations to be enabled.
set_material_param Tunes the material on a mesh component by creating a dynamic instance and setting parameters. Args: 'actor_label' (or selection), optional 'component' and 'slot' (default 0), 'scalar_params' (object of name->number, e.g. tiling/roughness), 'vector_params' (object of name->{r,g,b,a}, e.g. tint). Use get_material_params first for the real names. Undoable. Requires editor mutations enabled.
set_physics Configures physics/collision on an actor's primitive component(s). Args: optional 'simulate' (bool — enable rigid-body physics), optional 'collision_preset' (e.g. "BlockAll", "OverlapAllDynamic", "PhysicsActor", "NoCollision"), optional 'actor_label' (else selection). Provide at least one of 'simulate'/'collision_preset'.
set_pin_default Sets the default (literal) value on an unconnected INPUT pin of a Blueprint node — e.g. drop an asset onto a SystemTemplate/Sound pin, or set a number/bool/enum/string. Args: 'blueprint' (asset path), 'node' (node id from add_blueprint_*_node), 'pin' (input pin name), 'value' (for object/class pins: an asset or class path, or "None" to clear; otherwise the literal text). Fails if the pin is connected. Recompiles the Blueprint.
set_postprocess Adjusts global post-processing (creates an unbound PostProcessVolume if needed). Optional: 'exposure' (EV compensation, e.g. -2 to darken a blown-out shot), 'saturation' (1=neutral), 'contrast' (1=neutral), 'bloom' (intensity), 'vignette' (0-1), 'temperature' (white temp Kelvin, ~6500 neutral). Undoable. Requires editor mutations to be enabled.
set_property_path Sets a value at a nested property path. Root: 'asset' (asset path) or 'actor_label'. 'path' (required) navigates struct members, array indices, and TMap keys-by-name, e.g. "LevelUpInformation[1].LevelUpRequirement" or "CharacterClassInformation[Bruiser].XPReward.Value". Note: maps are keyed by NAME ([Bruiser]), not by ordinal ([0]). 'value' (required; string/number/boolean or Unreal text form). For assets, 'save' (default true). Requires editor mutations enabled.
set_selection Sets the editor selection. Args: 'actor_label' (select actors with this label), 'name_contains' (select all outliner actors whose label contains this substring), or neither to clear the selection (useful to remove the move-gizmo before a screenshot).
set_static_mesh Sets the Static Mesh on an actor's StaticMeshComponent (so a spawned StaticMeshActor shows geometry). Args: 'mesh' (Static Mesh asset path), optional 'actor_label' (else uses the selection), optional 'component' (a specific StaticMeshComponent name). Applies to all matched actors.
set_viewport_camera Aims the active level-editor perspective viewport. Optional 'location' {x,y,z}, 'rotation' {pitch,yaw,roll}, and 'fov' (degrees). Omitted values keep their current setting. Use before take_screenshot to frame a shot.
set_widget_property Sets a property on a widget inside a Widget Blueprint. Args: 'widget_blueprint' (asset path), 'widget' (the widget's name, e.g. "Title"), 'property' (dotted path, e.g. "Text", "Font.Size", "ColorAndOpacity.SpecifiedColor"), 'value' (string/number/bool or Unreal text form). Optional 'target' = "widget" (default) or "slot" to edit the layout slot (anchors/position/padding). Optional 'save' (default true). Recompiles the Blueprint.
spawn_actor Spawns an actor into the current editor level. 'class' (required) is a native class name (e.g. "StaticMeshActor", "PointLight") or a Blueprint class path (e.g. "/Game/.../BP_Foo.BP_Foo_C"). Optional 'location' {x,y,z}, 'rotation' {pitch,yaw,roll}, and 'label'. Undoable. Requires editor mutations to be enabled.
spawn_decal Spawns a decal projecting a material onto surfaces. Args: 'material' (required, decal material path), 'location' {x,y,z}, 'rotation' {pitch,yaw,roll} (default projects downward onto the ground), 'size' {x,y,z} (projection box half-extents, default 256/512/512), 'label'. Undoable. Requires editor mutations enabled.
spawn_instanced_mesh
start_play_in_editor Starts a Play-In-Editor (PIE) session in the active level. PIE runs game logic and initializes over the next frame(s), so this returns once the start is requested; confirm with a follow-up tool (e.g. take_screenshot). No-op if already playing. Requires 'Allow Editor Mutations' to be enabled.
stop_play_in_editor Stops the active Play-In-Editor (PIE) session and returns to editing. No-op if not currently playing. Takes no arguments.
take_screenshot Captures the active editor viewport and returns it as a PNG image. Optional 'max_width' (default 1280, max 4096) downscales large captures to keep the payload small.
trigger_live_coding Hot-patches changed C++ function BODIES into the running editor via Live Coding (no restart). Blocks until the compile finishes and reports the result. Does NOT apply reflection changes (new/changed UCLASS/UPROPERTY/UFUNCTION or new files) — those still need a full rebuild + restart.

Animation authoring scope

The animation tools target classic state-machine and blendspace locomotion. Create an Animation Blueprint for your skeleton, add states and transitions, configure their rules, connect pose nodes, and assign the class to your character or skeletal mesh.

Use anim_graph_describe to inspect existing nodes and wiring before editing. Read each tool's exact arguments in the reference above, compile after authoring, and verify movement in Play in Editor.

Motion Matching / Pose Search authoring, Control Rig and IK graphs, montage authoring and aim offsets are outside this toolset's supported authoring scope. Supply compatible skeletons and animation assets separately.