Tools Reference
Blueprint Stack registers 48 tools that AI agents can call to read, create, and modify Unreal Engine assets.
Tools execute on the game thread with a configurable timeout (default 60s) and can be enabled/disabled individually or via capability profiles.
# 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 of 60 seconds prevents long-running tools from blocking agents indefinitely.
# Tool Registry
Tools register at module startup via FBSToolRegistry category methods (e.g. RegisterBlueprintTools(), RegisterAnimationTools()). Each tool is defined as an FBSToolDef with an FBSToolHandler delegate. Individual tools can be disabled globally or per-profile in Settings.
# Blueprint
edit_blueprint_structureAdd/remove variables, functions, components, event dispatchers, interface implementations.
edit_blueprint_graphModify graphs - add/remove/connect nodes, set pin values (event graphs, function graphs, macros).
find_blueprint_nodesSearch graphs by title, class name, or comment text.
compile_blueprintCompile and return errors/warnings.
save_assetSave an asset to disk.
# Animation
edit_animation_sequenceAdd/remove notifies, curves, sync markers.
edit_skeletal_mesh_socketsCreate/modify/remove skeletal mesh sockets.
edit_animation_montageEdit montages - sections, slot name, blend times, notifies.
edit_blend_spaceModify axis settings and animation samples.
edit_skeletonEdit virtual bones and bone listing.
edit_physics_assetManage physics bodies and constraints.
edit_ik_rigAdd/remove solvers and goals.
edit_ik_retargeterSource/target skeleton and chain mappings.
edit_control_rigModify controls, hierarchy, RigVM graph.
# Data & Structure
edit_data_structureAdd/remove/rename struct fields and enum values.
read_assetRead metadata, graph contents, class info, variables, functions, components.
configure_assetGeneric property editor - get/set/list properties on any loaded asset.
# Material & VFX
edit_materialAdd expression nodes, set parameters, connect pins, set texture parameters.
edit_niagara_systemModify particle system parameters, add/remove modules.
# AI & Gameplay Systems
edit_behavior_treeAdd/modify tasks, decorators, services, composites.
edit_gameplay_abilitySet properties, add/remove gameplay tags (GAS).
edit_state_treeEdit hierarchical state machines.
edit_enhanced_inputEdit InputActions and InputMappingContexts.
# Pose & Sequencer
edit_pose_searchEdit Pose Search database assets for motion matching.
edit_sequencerEdit Level Sequences - list tracks, set playback range, manage folders.
# Level
list_actorsList actors with filtering by class, tag, name, folder.
spawn_actorSpawn from class or Blueprint path.
delete_actorDelete by label or path.
transform_actorGet/set location, rotation, scale.
get_actor_propertiesRead class, components, tags, properties.
set_actor_propertiesSet properties on actors.
duplicate_actorDuplicate with optional position offset.
select_actorsSelect by label or class.
edit_world_settingsGet/set world settings.
# Data Table
edit_data_tableList/get/add/remove/update rows and cells.
# Utility
execute_pythonRun Python via PythonScriptPlugin.
read_fileRead from project directory (sandboxed).
write_fileWrite/append text files.
read_output_logRead recent Output Log entries.
capture_viewportScreenshot as base64 PNG.
list_assetsSearch asset registry by path/type/name.
explore_projectSearch files, source code, assets.
get_project_infoProject name, engine version, directories, settings, plugins.
manage_assetsCreate/rename/duplicate/delete/move assets.
get_asset_referencesFind what references an asset or vice versa.
# Generation
generate_imageDALL-E / gpt-image-1 - generates images and imports as Texture2D.
generate_3d_modelMeshy AI - generates GLB models and imports as static meshes.
# Play
play_in_editorStart/stop/query PIE sessions.
# Custom Tool Extension
To add a custom tool, define an FBSToolDef with a name, description, and JSON input schema, then bind an FBSToolHandler delegate and register it:
ToolRegistry.RegisterTool(MyToolDef, MyToolHandler)