Tools Reference

Blueprint AI registers 25+ tools that AI agents can call to read, create, and modify Unreal Engine assets. Tools are executed on the game thread and logged to Saved/Logs/AIK_ToolAudit.log.

Tool Execution Model

All tool calls are dispatched to the Unreal game thread for safety. When called from the MCP server (which runs on an HTTP background thread), execution is automatically forwarded via AsyncTask(ENamedThreads::GameThread, ...). A configurable timeout (default 60s) prevents long-running tools from blocking the agent indefinitely.

Tool Registry

Tools are registered at module startup in FBAIToolToolRegistry::RegisterBuiltInTools(). Each tool inherits from FBAIToolToolBase and implements Execute(Args). You can disable individual tools globally or per-profile in Settings.

Scripting

execute_python

Execute arbitrary Python scripts inside the Unreal Editor Python environment. Provides access to 1000+ UE Python APIs for asset creation, manipulation, editor automation, and bulk operations. This is the most powerful and flexible tool.

Arguments: script (string)

Reading & Introspection

read_file

Read an asset's contents with deep introspection. For Blueprints, this includes full graph structure, node details, pin connections, variables, components, functions, and events. Also reads C++ source files, data tables, and other text-based assets.

Arguments: name (string), path? (string), graph? (string)

find_node

Search for nodes within a Blueprint graph by name, type, or property. Returns matching node GUIDs and details. Use this before editing to locate specific nodes.

Arguments: asset (string), query (string), graph? (string)

read_logs

Read the Unreal Engine output log or compile a Blueprint and return compiler errors/warnings. Supports filtering by category and log level.

Arguments: operation ('read_log' | 'compile_blueprint'), asset? (string)

screenshot

Capture a screenshot of the level viewport or an asset editor viewport. Supports camera positioning for level captures. Returns a base64-encoded image for vision-capable models.

Arguments: target ('viewport' | 'asset_editor'), asset? (string), camera? (object)

Blueprint Editing

edit_blueprint

Create and modify Blueprint assets. Operations include adding/removing components, variables, functions, event dispatchers, interface implementations, and widget hierarchy manipulation. Also supports Animation Blueprint state machine editing.

Arguments: name (string), operation (string), ... operation-specific args

edit_graph

Edit Blueprint event graphs and function graphs. Add nodes, create connections between pins, set default values, remove nodes, and rewire logic. Supports live preview for Material graphs.

Arguments: asset (string), operation (string), graph? (string), ... operation-specific args

configure_asset

Set properties on any asset using dot-notation paths. Supports targeting specific graph nodes by GUID. Useful for configuring assets that don't have dedicated editing tools.

Arguments: asset_path (string), property (string), value (any)

Data Structures

edit_data_structure

Create and edit UStruct and UEnum assets. Add, remove, or rename fields in user-defined structs, and add/remove entries in user-defined enums. Not available through Python.

Arguments: asset (string), operation (string), ... operation-specific args

Animation

edit_ik_rig

Edit IK Rig assets for inverse kinematics. Add/remove goals, solvers, bone chains, and retarget chains. Supports Full Body IK and CCDIK solver configurations.

Arguments: asset (string), operation (string), ...

edit_ik_retargeter

Edit IK Retargeter assets for animation retargeting between skeletons. Configure source/target IK rigs, chain mappings, and global settings.

Arguments: asset (string), operation (string), ...

edit_pose_search

Edit Pose Search databases for Motion Matching. Add/remove animation sequences, configure search settings, schema channels, and pose features.

Arguments: asset (string), operation (string), ...

edit_montage

Edit Animation Montage assets. Manage sections, notifies, blend settings, slot assignments, and section sequencing for cinematic and gameplay animations.

Arguments: asset (string), operation (string), ...

edit_anim_sequence

Edit Animation Sequence assets. Add/remove notifies, curves, sync markers. Configure additive animation settings, root motion, and compression options.

Arguments: asset (string), operation (string), ...

edit_blend_space

Edit BlendSpace and BlendSpace1D assets. Add/remove sample points, configure axis ranges, blending parameters for locomotion and aim offsets.

Arguments: asset (string), operation (string), ...

edit_skeleton

Edit Skeleton assets. Manage sockets, virtual bones, retarget sources, animation slots, curves, and blend profiles for character rigs.

Arguments: asset (string), operation (string), ...

edit_control_rig

Edit Control Rig assets. Modify the rig hierarchy (bones, nulls, controls) and RigVM graph (add/connect/remove nodes for procedural rigging logic).

Arguments: asset (string), operation (string), ...

AI & Behavior

edit_behavior_tree

Edit Behavior Tree and Blackboard assets. Add/remove tasks, decorators, services, composites, and blackboard keys for AI decision-making logic.

Arguments: asset (string), operation (string), ...

edit_state_tree

Edit StateTree assets for hierarchical state machines. Manage states, transitions, tasks, evaluators, and linked sub-trees.

Arguments: asset (string), operation (string), ...

VFX & Materials

edit_niagara

Edit Niagara System and Emitter assets. Add/remove modules, set parameter values, configure emitter properties, renderers, and simulation stages.

Arguments: asset (string), operation (string), ...

Cinematics

edit_sequencer

Edit Level Sequence assets for cinematics. Add/remove tracks, set keyframes, manage bindings to actors, configure camera cuts, and control playback ranges.

Arguments: asset (string), operation (string), ...

Physics

edit_physics_asset

Edit Physics Asset (PhAT) assets. Add/remove physics bodies, configure collision shapes (spheres, capsules, boxes), set up constraints between bones, and manage collision profiles for ragdoll physics.

Arguments: asset (string), operation (string), ...

Input

edit_enhanced_input

Edit Enhanced Input assets. Create and configure InputAction assets (value types, triggers, modifiers) and InputMappingContext assets (action bindings, key mappings).

Arguments: asset (string), operation (string), ...

Content Generation

generate_image

Generate an image from a text prompt using an OpenRouter vision model. The resulting image is automatically imported as a Texture2D asset. Requires an OpenRouter API key.

Arguments: prompt (string), destination_path? (string), asset_name? (string), model? (string)

generate_3d_model

Generate a 3D model from a text prompt using the Meshy API. Supports text-to-3D, image-to-3D, and multi-image-to-3D workflows. The GLB file is downloaded and imported as a StaticMesh. Requires a Meshy API key.

Arguments: prompt (string), art_style? (string), destination_path? (string), ...

Extending with Custom Tools

To add a custom tool, create a subclass of FBAIToolToolBase, implement GetName(), GetDescription(), GetInputSchema(), and Execute(), then register it with FBAIToolToolRegistry::Get().Register(MakeShared<YourTool>()).