CodeFizz
ToolsDemoDocsRoadmapChangelogPricingFAQ
Get the plugin

Getting Started

  • Introduction
  • Quick Start
  • Requirements
  • Installing the CLI
  • License & Machines

Guides

  • Installing the Plugin
  • The AI Skill
  • CLI vs MCP
  • Multiple Editors
  • How It Works
  • Discovering Commands

Walkthroughs

  • Build a Blueprint with AI
  • Author a Material Graph
  • Create a Niagara System

Reference

  • Reference
  • Niagara
  • PCG
  • Materials
  • StateTree
  • Sequencer
  • Level Actors
  • Project Settings
  • Blueprints
  • Blueprint Structs
  • Enhanced Input
  • Asset Management
  • Bulk Asset Ops
  • Data Assets
  • Object Properties
  • UMG Widgets
  • Data Tables
  • Curves
  • Console Commands
  • Profiling
  • Core
  • Debug

Help

  • FAQ
  • Troubleshooting
  • For AI Agents
DocsReferenceBlueprints

Blueprints

Every Blueprints command in CodeFizz Editor Agent, with parameters and examples.

Loading…
PreviousProject SettingsNextBlueprint Structs
CodeFizz

A drop-in Unreal Engine 5 plugin that exposes the entire editor surface (Blueprints, Materials, Niagara, PCG, StateTree, Insights profiling, and more) over the Model Context Protocol. Connect Claude Code, Cursor, VS Code, or any MCP-compatible client and let your AI build inside the engine.

Product

  • Features
  • Docs
  • Tools
  • Demo
  • Roadmap
  • Changelog
  • Pricing
  • FAQ

Resources

  • Install guide
  • Discord
  • YouTube
  • Open-source edition
  • Manage subscription

Legal

  • Refund Policy
  • Privacy Policy
  • Terms of Service

© 2026 CodeFizz. All rights reserved.

CodeFizz Editor Agent is a CodeFizz product. Payments processed by Polar Software, Inc. (Polar), the Merchant of Record.

51 commands. Each shows its parameters and an example, and has a copyable deep link, so you (or an AI agent) can jump straight to one.

search_parent_classes

Search for classes usable as Blueprint parents

Searches the engine and project class hierarchy for classes that can be used as Blueprint parents. Use this before create_blueprint to find the correct parent class name. Returns class names, module, and whether they are C++ or Blueprint-based.

ParameterTypeRequiredDescription
filterstringYesSearch filter
max_resultsintNoMaximum results
include_blueprint_classesboolNoInclude BP classes
example
  cfa search_parent_classes --filter "Actor" --max-results 10
  cfa search_parent_classes --filter "MassProcessor" --include-blueprint-classes=false
search_types

Search types by keyword for variables/pins (top-N)

Searches the loaded type system by keyword and kind, ranked by relevance, returning only the top-N matches so the result stays context-friendly instead of dumping thousands of types. Use it to find the exact name/path to pass as type-path when creating a variable or wiring a pin. kind selects what to search: class (any UObject class), actor (AActor subclasses), component (UActorComponent subclasses), interface, struct, or enum.

ParameterTypeRequiredDescription
filterstringYesKeyword to match against type name
kindstringNoclass|actor|component|interface|struct|enum
max_resultsintNoMaximum results (1-100)
include_blueprintboolNoInclude Blueprint-generated types
example
  cfa search_types --filter "Actor" --kind "actor" --max-results 30
  cfa search_types --filter "Vector" --kind "struct"
  cfa search_types --filter "Collision" --kind "enum"
create_blueprint

Create a Blueprint from any parent class

Creates a new Blueprint asset at the specified content path with the given parent class. The parent class can be a C++ class short name, a prefixed name, or a full Blueprint asset path. Use search_parent_classes first if you are unsure of the exact parent class name.

ParameterTypeRequiredDescription
namestringYesBlueprint name
pathstringNoContent path
parent_classstringNoParent class
example
  cfa create_blueprint --name "BP_ConveyorSplitter" --path "/Game/Blueprints/Logistics" --parent-class "InteractableActor"
  cfa create_blueprint --name "BP_MinerT2" --parent-class "MinerActor"
export_blueprint

Export a Blueprint as complete reflection-grounded JSON

Exports a Blueprint into a complete, reflection-grounded JSON document (class origin + ancestry, compile status, and full variables with default+current values, metadata, flags, and replication) written to a uniquely-named file under the project's Saved/CodeFizzEditorAgent/Exports folder. Returns the file path so the model can read it like source. Scope with inheritance/values.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
sectionsstringNoComma list: variables,graphs,components,widget_tree,interfaces,timelines,callables,event_dispatchers (empty = all)
inheritancestringNoown | inherited | all
valuesstringNodefault | current | both
graphstringNoOnly this named graph (empty = all)
nodestringNoOnly this node by NodeGuid (empty = all)
objectstringNoOnly this component by name (empty = all)
callablestringNocallables section: only this function/event by name (empty = all)
callable_kindstringNocallables section: function | event | all (empty = all)
depthstringNosummary | full | exact (exact adds T3D blob)
pageintNoPage index when page_size > 0
page_sizeintNoNodes per graph page (0 = all); export emits a pagination block when paged
example
  cfa export_blueprint --blueprint-path "/Game/CFATest/WBP_CFADemo"
  cfa export_blueprint --blueprint-path "/Game/CFATest/WBP_CFADemo" --inheritance all --values both
export_object

Export any UObject/asset/struct as reflection-grounded JSON

Exports any UObject, asset, or struct via reflection: class origin + ancestry, a reflection_complete honesty flag (false for heavy bulk-data assets like meshes/textures whose binary payload is not reflected), and the full UPROPERTY values. For a UScriptStruct or UUserDefinedStruct it also emits the field schema (GUID-normalized names, cpp types, defaults). When the object is an actor (pass its full level path), it also emits the full live component hierarchy (incl. per-instance components absent from the CDO), or use export_actor to target a placed actor by its outliner label. Writes to Saved/CodeFizzEditorAgent/Exports and returns the path. Use path to deep-query a single property.

ParameterTypeRequiredDescription
objectstringYesAsset/object/struct path
pathstringNoDeep-query a single property by dotted path
filterstringNoLower-case substring filter on property names
depthstringNosummary (no values) | full
example
  cfa export_object --object "/Game/Meshes/SM_Rock.SM_Rock"
  cfa export_object --object "/Game/Data/S_MyStruct.S_MyStruct"
  cfa export_object --object "/Game/Data/DA_Config.DA_Config" --path "MaxCount"
export_asset

Export any graph-bearing asset as reflection-grounded JSON (auto-dispatch)

Exports any asset by detecting its type and routing to the right serializer: Blueprints (incl Widget & Anim Blueprints) get the full reflection envelope; Materials / Material Functions / Material Instances get the expression graph (with Desc/Guid, input channel masks, comment nodes, named-reroute linkage, parameters) or the instance override delta; PCG graphs get the whole Details panel, graph parameters, and every node with its enabled/debug state; anything else falls through to the universal object export. Writes to Saved/CodeFizzEditorAgent/Exports and returns the path. The blueprint scope flags (sections/inheritance/values/graph/node/object) apply when the asset is a Blueprint.

ParameterTypeRequiredDescription
assetstringYesAsset path (material, PCG graph, blueprint, or any object)
depthstringNosummary | full | exact (exact adds T3D blob for blueprint/anim graphs)
filterstringNoLower-case substring filter on property names (object fallback)
sectionsstringNoBlueprint only, comma list: variables,graphs,components,widget_tree,interfaces,timelines,callables,event_dispatchers (empty = all)
inheritancestringNoBlueprint only, own | inherited | all
valuesstringNoBlueprint only, default | current | both
graphstringNoOnly this named graph (empty = all)
nodestringNoOnly this node by NodeGuid (empty = all)
objectstringNoBlueprint only, only this component by name (empty = all)
callablestringNoBlueprint only, callables section: only this function/event by name (empty = all)
callable_kindstringNoBlueprint only, callables section: function | event | all (empty = all)
pageintNoPage index when page_size > 0
page_sizeintNoNodes per graph/PCG page (0 = all); export emits a pagination block when paged
include_inheritedboolNoMaterial instance only, also list parameters left at the parent value (default false = overridden-only). Base materials always export full settings.
example
  cfa export_asset --asset "/Game/Materials/M_Master.M_Master"
  cfa export_asset --asset "/Game/PCG/PCG_Test.PCG_Test"
  cfa export_asset --asset "/Game/Characters/Anims/ABP_Unarmed.ABP_Unarmed" --graph "AnimGraph"
export_actor

Export a placed level actor + its full component hierarchy as JSON

Exports a placed level actor (by its outliner label or object name) into a reflection-grounded JSON document: class origin + ancestry, the actor's UPROPERTY values, AND the full live component hierarchy, each component with its class, source (native/scs/ucs/instance), live attach parent + socket, is_root flag, and property values. Captures per-instance components added to just this actor via the Details panel, which never exist on the CDO. Works for any actor: Blueprint instances, native actors, anything placed. Writes to Saved/CodeFizzEditorAgent/Exports and returns the path.

ParameterTypeRequiredDescription
actorstringYesPlaced actor outliner label or object name
depthstringNosummary (no values) | full
filterstringNoLower-case substring filter on property names
example
  cfa export_actor --actor "BP_EnemySpawner2"
  cfa export_actor --actor "LiveInspectActor" --depth summary
add_component_to_blueprint

Add a component to a Blueprint or a placed actor

Adds a component of the specified class to a component hierarchy. Target either a Blueprint class with --blueprint-path (edits the SCS, affects all instances) OR a single placed level actor with --actor (adds a per-instance component, saved with that actor). Same command, the target decides; the instance path uses the editor's own subobject backend so it registers, attaches, and persists exactly like the Details-panel + Add.

ParameterTypeRequiredDescription
blueprint_pathstringNoBlueprint asset path (edits the class/SCS). Provide this OR --actor.
actorstringNoPlaced actor label or name (adds a per-instance component). Provide this OR --blueprint-path.
component_classstringYesComponent class name
component_namestringNoComponent name
attach_parentstringNoAttach under this existing component (by editor or object name) instead of as a root. Enables deeper hierarchies.
attach_socketstringNoSocket on the attach_parent to attach to (optional; Blueprint target)
propertiesjsonNoOptional object map of initial property values for the new template (e.g. {"StaticMesh":"/Engine/BasicShapes/Cube.Cube"}).
example
  cfa add_component_to_blueprint --blueprint-path "/Game/Blueprints/BP_Smelter" --component-class "StaticMeshComponent" --component-name "OutputMesh"
  cfa add_component_to_blueprint --actor "BP_EnemySpawner2" --component-class "StaticMeshComponent" --component-name "Marker" --attach-parent "SpawnBox"
set_blueprint_component_property

Set a property on a Blueprint's component template

Writes a property on a component TEMPLATE inside a Blueprint (the components in the Components panel) so it persists on the class and shows on all instances. Handles SCS components (added in the editor) and native C++ components, set_blueprint_class_defaults cannot reach SCS templates because they live on the SCS node, not the CDO. Pass one property_path + value, or a batch 'properties' object. Object-ref values (mesh/material assets) take a content path. Recompiles so existing placed instances reinstance and pick up the new default.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
component_namestringYesComponent name (as shown in the Components panel)
property_pathstringNoDotted/indexed property path (with --value for a single write)
valuejsonNoJSON value for property_path (number, bool, string, object, array; content path for asset refs)
propertiesjsonNoObject map of path -> value for a batch write (instead of property_path/value)
example
  cfa set_blueprint_component_property --blueprint-path "/Game/AI/BP_Enemy" --component-name "VisMarker" --property-path "StaticMesh" --value '"/Engine/BasicShapes/Cylinder.Cylinder"'
  cfa set_blueprint_component_property --blueprint-path "/Game/AI/BP_Enemy" --component-name "Mesh" --properties '{"Mobility":"Movable","CastShadow":false}'
delete_component

Delete a component from a Blueprint or a placed actor

Removes a component from a component hierarchy. Target a Blueprint class with --blueprint-path (removes the SCS node, promoting its children to the parent, affects all instances) OR a single placed actor with --actor (removes the per-instance component). Native/inherited components declared in C++ cannot be deleted here.

ParameterTypeRequiredDescription
blueprint_pathstringNoBlueprint asset path. Provide this OR --actor.
actorstringNoPlaced actor label or name. Provide this OR --blueprint-path.
component_namestringYesComponent to delete
example
  cfa delete_component --blueprint-path "/Game/Blueprints/BP_Smelter" --component-name "OutputMesh"
  cfa delete_component --actor "BP_EnemySpawner2" --component-name "Marker"
reparent_component

Move a component under a new parent (or to root)

Reparents a component to a different parent, or back to the root when new_parent is empty. Target a Blueprint class with --blueprint-path OR a placed actor with --actor. Use this to restructure a component hierarchy after the fact. Native/inherited components (declared in C++ or a parent Blueprint) cannot be reparented, their attachment is fixed in code.

ParameterTypeRequiredDescription
blueprint_pathstringNoBlueprint asset path. Provide this OR --actor.
actorstringNoPlaced actor label or name. Provide this OR --blueprint-path.
component_namestringYesComponent to reparent
new_parentstringNoNew parent component name (empty = back to the root)
attach_socketstringNoSocket on the new parent to attach to (optional; Blueprint target)
example
  cfa reparent_component --blueprint-path "/Game/CFADemo/BP_SentryTurret" --component-name "Muzzle" --new-parent "Arm"
  cfa reparent_component --actor "BP_EnemySpawner2" --component-name "Marker" --new-parent "SpawnBox"
set_root_component

Make a scene component the root

Promotes a scene component to be the root, nesting any previous top-level scene roots beneath it. Target a Blueprint class with --blueprint-path OR a placed actor with --actor. The target must be a scene component (not a bare ActorComponent).

ParameterTypeRequiredDescription
blueprint_pathstringNoBlueprint asset path. Provide this OR --actor.
actorstringNoPlaced actor label or name. Provide this OR --blueprint-path.
component_namestringYesScene component to make the root
example
  cfa set_root_component --blueprint-path "/Game/CFADemo/BP_SentryTurret" --component-name "Base"
  cfa set_root_component --actor "BP_EnemySpawner2" --component-name "Marker"
compile_blueprint

Compile a Blueprint

Compiles a Blueprint and reports any errors or warnings. Always compile after making structural changes such as adding nodes, variables, functions, or modifying the graph. Returns compilation status and any diagnostic messages.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
example
  cfa compile_blueprint --blueprint-path "/Game/Blueprints/BP_ConveyorSplitter"
read_blueprint_content

Read complete BP: graph, functions, variables, components

Reads the complete structure of a Blueprint including its event graph, functions, variables, components, and interfaces. This is a large operation that returns comprehensive data. Use the include flags to limit output to only the sections you need.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
include_event_graphboolNoInclude event graph
include_functionsboolNoInclude functions
include_variablesboolNoInclude variables
include_componentsboolNoInclude components
include_interfacesboolNoInclude interfaces
example
  cfa read_blueprint_content --blueprint-path "/Game/Blueprints/BP_Manufacturer"
  cfa read_blueprint_content --blueprint-path "/Game/Blueprints/BP_Miner" --include-functions=false --include-variables=false
analyze_blueprint_graph

Analyze a graph (nodes, connections, execution flow)

Performs a detailed analysis of a Blueprint graph, including node inventory, pin connections, and execution flow tracing. Use this to understand how a Blueprint works before modifying it, or to debug execution paths. Defaults to the EventGraph but can target any named graph.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
graph_namestringNoGraph name
include_node_detailsboolNoInclude node details
include_pin_connectionsboolNoInclude pin connections
trace_execution_flowboolNoTrace execution flow
example
  cfa analyze_blueprint_graph --blueprint-path "/Game/Blueprints/BP_Smelter"
  cfa analyze_blueprint_graph --blueprint-path "/Game/Blueprints/BP_Miner" --graph-name "ProcessOre" --trace-execution-flow=true
create_blueprint_variable

Create a variable in a Blueprint

Creates a new variable in a Blueprint of ANY type, then applies any of the full designer property set in the same call. variable-type is the kind: bool, byte, int, int64, float, double, name, string, text, struct, enum, object, class, softobject, softclass, or interface (plus legacy vector/rotator/transform). For struct/enum/object/class/softobject/softclass/interface, pass type-path with the type name or path (use search_types to find it). Wrap in a container with --container array|set|map; map needs map-value-type (+ map-value-path). Every checkbox/field from the variable Details panel is settable here or via set_blueprint_variable_properties: instance-editable, blueprint-read-only, private, expose-on-spawn, expose-to-cinematics, show-3d-widget, category, tooltip, slider/value ranges, replication, and the advanced flags (config/transient/save-game/advanced-display/deprecated).

example
  cfa create_blueprint_variable --blueprint-path "/Game/Blueprints/BP_Smelter" --variable-name "ProcessingSpeed" --variable-type "float" --category "Production" --instance-editable=true --slider-min "0" --slider-max "10"
  cfa create_blueprint_variable --blueprint-path "/Game/B/BP_X" --variable-name "Target" --variable-type "object" --type-path "Actor"
  cfa create_blueprint_variable --blueprint-path "/Game/B/BP_X" --variable-name "Health" --variable-type "float" --replication "repnotify"
  cfa create_blueprint_variable --blueprint-path "/Game/B/BP_X" --variable-name "Items" --variable-type "struct" --type-path "Vector" --container "array"
create_local_variable

Create a function-local variable

Creates a variable LOCAL to a single function (the same thing the editor's 'Local Variable' section makes). A local variable can only live inside a function, pass function-name to say which one. It is an error (NOT a silent fall-back to a member variable) if function-name is the event graph, a macro, or an unknown function; that guard makes the local-vs-global distinction impossible to get wrong. variable-type and the type-path/container/map params work exactly like create_blueprint_variable. For a Blueprint-wide member variable use create_blueprint_variable instead.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
function_namestringYesFunction to add the local to (locals are function-scoped only; the event graph / macros / unknown names are rejected)
variable_namestringYesLocal variable name
variable_typestringYesType kind (bool/int/float/double/int64/byte/name/string/text/struct/enum/object/class/softobject/softclass/interface)
type_pathstringNoClass/struct/enum name or path (for struct/enum/object/class/soft*/interface)
containerstringNoContainer: none|array|set|map
is_referenceboolNoPass by reference
map_value_typestringNoMap value kind (when container=map)
map_value_pathstringNoMap value class/struct/enum (when container=map)
default_valuestringNoDefault value
example
  cfa create_local_variable --blueprint-path "/Game/B/BP_X" --function-name "ApplyDamage" --variable-name "Remaining" --variable-type "float"
  cfa create_local_variable --blueprint-path "/Game/B/BP_X" --function-name "BuildList" --variable-name "Items" --variable-type "struct" --type-path "Vector" --container "array"
get_blueprint_variable_details

Inspect variable(s) in a Blueprint

Returns detailed information about one or all variables in a Blueprint, including type, default value, category, replication settings, and tooltip. Omit variable-name to list all variables.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
variable_namestringNoVariable name (empty = all)
example
  cfa get_blueprint_variable_details --blueprint-path "/Game/Blueprints/BP_Smelter" --variable-name "ProcessingSpeed"
  cfa get_blueprint_variable_details --blueprint-path "/Game/Blueprints/BP_Manufacturer"
set_blueprint_variable_properties

Modify variable properties (full Details panel)

Modifies any property of an existing Blueprint variable: rename (var-name), retype (var-type + type-path/container), friendly-name, default-value, category, tooltip, and every Details-panel checkbox/field - instance-editable, blueprint-read-only, private, expose-on-spawn, expose-to-cinematics, show-3d-widget, slider/value ranges, units, replication (none|replicated|repnotify, repnotify auto-creates the OnRep_ function), replication-condition, and the advanced flags config/transient/save-game/advanced-display/deprecated (+ deprecation-message). Only specified fields change. Each write goes through the engine's own setters so it propagates to child Blueprints exactly like editing in the Details panel.

example
  cfa set_blueprint_variable_properties --blueprint-path "/Game/Blueprints/BP_Smelter" --variable-name "Speed" --var-name "ProcessingSpeed" --category "Production"
  cfa set_blueprint_variable_properties --blueprint-path "/Game/Blueprints/BP_PowerPole" --variable-name "Health" --replication "repnotify" --instance-editable=true
  cfa set_blueprint_variable_properties --blueprint-path "/Game/B/BP_X" --variable-name "Speed" --slider-min "0" --slider-max "100" --advanced-display=true
delete_blueprint_variable

Delete a variable from a Blueprint

Removes a member variable from a Blueprint by name. The engine also reconstructs any Get/Set nodes that referenced it, so the graph keeps no dangling member references, then the Blueprint is recompiled and the real result reported.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
variable_namestringYesVariable name to delete
example
  cfa delete_blueprint_variable --blueprint-path "/Game/Blueprints/BP_Smelter" --variable-name "UnusedFlag"
reparent_blueprint

Change a Blueprint's parent class

Changes a Blueprint's parent class (the editor's Reparent Blueprint action): assigns the new parent, refreshes all nodes and recompiles, reporting real compile diagnostics. Compile errors usually mean nodes referenced members that only existed on the old parent. Widget Blueprints use reparent_widget_blueprint instead.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
new_parent_classstringYesNew parent: class name or Blueprint asset path
example
  cfa reparent_blueprint --blueprint-path "/Game/Blueprints/BP_Turret" --new-parent-class "BP_BuildingBase"
create_blueprint_function_library

Create a Blueprint Function Library asset

Creates a Blueprint Function Library (BPTYPE_FunctionLibrary). Add functions with create_blueprint_function (pure/const/category settable at creation or later via set_function_properties); library functions compile as static and are callable from ANY blueprint with build_blueprint_graph kind=call and class=<LibraryName>_C.

ParameterTypeRequiredDescription
namestringYesLibrary asset name (e.g. BFL_MathHelpers)
pathstringNoContent path
saveboolNoSave the asset immediately
example
  cfa create_blueprint_function_library --name "BFL_MathHelpers" --path "/Game/Blueprints/Libraries"
set_function_properties

Set Details-panel properties on any blueprint function

Sets function properties on ANY blueprint function (class, library, or interface implementation): --pure/--const/--exec flags, --access (public/protected/private), --category, --tooltip, --keywords. For everything else pass --metadata with a JSON object whose keys are FKismetUserDeclaredFunctionMetadata UPROPERTY names (CompactNodeTitle, bCallInEditor, bThreadSafe, bIsDeprecated, DeprecationMessage, InstanceTitleColor...), applied via reflection, so any engine metadata field works. Recompiles and reports diagnostics.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
function_namestringYesFunction name
pureboolNoBlueprint Pure (no exec pins)
constboolNoConst function
execboolNoExec (console-callable) function
accessstringNoAccess specifier: public|protected|private
categorystringNoMy Blueprint category (use | for subcategories)
tooltipstringNoFunction tooltip/description
keywordsstringNoPalette search keywords
metadatajsonNoJSON object of FKismetUserDeclaredFunctionMetadata fields (reflection-applied)
example
  cfa set_function_properties --blueprint-path "/Game/Blueprints/BFL_MathHelpers" --function-name "SumRange" --pure=true --category "Math|Ranges"
  cfa set_function_properties --blueprint-path "/Game/Blueprints/BP_Turret" --function-name "GetStatus" --const=true --access "protected" --metadata '{"CompactNodeTitle":"STATUS","bCallInEditor":true}'
create_blueprint_interface

Create a Blueprint Interface asset

Creates a Blueprint Interface asset (BPTYPE_Interface). Add functions to it with create_blueprint_function (+ add_function_input/add_function_output), then implement it on a class with implement_blueprint_interface.

ParameterTypeRequiredDescription
namestringYesInterface asset name (e.g. BPI_Damageable)
pathstringNoContent path
saveboolNoSave the asset immediately
example
  cfa create_blueprint_interface --name "BPI_Damageable" --path "/Game/Blueprints/Interfaces"
implement_blueprint_interface

Implement an interface on a Blueprint class

Adds an interface (Blueprint Interface asset or native UInterface class) to a Blueprint's Implemented Interfaces. Interface functions WITH outputs become function graphs automatically (target them with build_blueprint_graph --graph-name); functions WITHOUT outputs are placed as event nodes via build_blueprint_graph kind=interface_event. The response lists each function's placement.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
interfacestringYesInterface asset path (/Game/...) or native interface class name
compileboolNoCompile after implementing
example
  cfa implement_blueprint_interface --blueprint-path "/Game/Blueprints/BP_Turret" --interface "/Game/Blueprints/Interfaces/BPI_Damageable"
remove_blueprint_interface

Remove an implemented interface from a Blueprint

Removes an interface from a Blueprint's Implemented Interfaces and recompiles. Pass --preserve-functions to keep the interface's function graphs as normal blueprint functions instead of deleting them.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
interfacestringYesInterface asset path or native interface class name
preserve_functionsboolNoKeep function graphs as normal functions
example
  cfa remove_blueprint_interface --blueprint-path "/Game/Blueprints/BP_Turret" --interface "BPI_Damageable" --preserve-functions=true
list_blueprint_interfaces

List a Blueprint's implemented interfaces

Lists the Blueprint's directly implemented interfaces with each interface function's placement: 'event' (place with build_blueprint_graph kind=interface_event) or 'function_graph' (the graph already exists; target it with --graph-name).

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
example
  cfa list_blueprint_interfaces --blueprint-path "/Game/Blueprints/BP_Turret"
create_blueprint_function

Create a new function in a Blueprint

Creates a new function graph in a Blueprint with the specified name and optional return type. The function starts with an entry node and can be extended with add_function_input, add_function_output, and add_blueprint_node. Defaults to void return type.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
function_namestringYesFunction name
return_typestringNoReturn type
pureboolNoBlueprint Pure (no exec pins)
constboolNoConst function
accessstringNoAccess specifier: public|protected|private
categorystringNoMy Blueprint category (use | for subcategories)
tooltipstringNoFunction tooltip/description
metadatajsonNoJSON object of FKismetUserDeclaredFunctionMetadata fields (reflection-applied)
example
  cfa create_blueprint_function --blueprint-path "/Game/Blueprints/BP_Manufacturer" --function-name "CalculateEfficiency" --return-type "Float"
  cfa create_blueprint_function --blueprint-path "/Game/Blueprints/BP_Smelter" --function-name "ResetProductionCycle"
override_blueprint_function

Override a parent-class function or event (My Blueprint > Override)

Implements a parent-class BlueprintImplementableEvent/BlueprintNativeEvent in a Blueprint, exactly like the editor's My Blueprint > Override menu. Void events are placed as an event node in the event graph; functions with return values (e.g. StateTree's ReceiveTestCondition, ReceiveGetScore) become an override function graph with entry/result nodes pre-populated from the parent signature. Wire logic into it afterwards with build_blueprint_graph using the function name as graph target. On an unknown name the error lists the overridable candidates.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
function_namestringYesParent function/event name to override
example
  cfa override_blueprint_function --blueprint-path "/Game/AI/BPC_CanSeePlayer" --function-name "ReceiveTestCondition"
  cfa override_blueprint_function --blueprint-path "/Game/AI/BPT_Roam" --function-name "ReceiveLatentEnterState"
create_event_graph

Create a new event graph in a Blueprint

Creates a new event graph (a secondary ubergraph page) in a Blueprint, the same thing the editor's GRAPHS '+' button does. A Blueprint can hold any number of event graphs; the default is 'EventGraph'. The new graph starts empty; add events and nodes to it with build_blueprint_graph by passing graph-name. The name must be unique across all of the Blueprint's graphs (functions, event graphs, macros).

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
graph_namestringYesName for the new event graph (unique among the blueprint's graphs)
example
  cfa create_event_graph --blueprint-path "/Game/B/BP_X" --graph-name "CombatEvents"
  cfa build_blueprint_graph --json '{"blueprint_path":"/Game/B/BP_X","graph_name":"CombatEvents","nodes":[{"ref":"e","kind":"custom_event","name":"OnHit"}]}'
rename_event_graph

Rename an event graph in a Blueprint

Renames an event graph (ubergraph page). Errors if the target isn't an event graph (use rename_function for a function) or if the new name collides with another of the Blueprint's graphs.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
graph_namestringYesCurrent event graph name
new_graph_namestringYesNew event graph name (unique among the blueprint's graphs)
example
  cfa rename_event_graph --blueprint-path "/Game/B/BP_X" --graph-name "NewEventGraph" --new-graph-name "CombatEvents"
delete_event_graph

Delete an event graph from a Blueprint

Deletes an event graph (ubergraph page) and all its nodes. Errors if the target isn't an event graph (use delete_blueprint_function for a function) or if it is the Blueprint's only event graph (a Blueprint must keep at least one).

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
graph_namestringYesEvent graph name to delete (cannot be the only event graph)
example
  cfa delete_event_graph --blueprint-path "/Game/B/BP_X" --graph-name "CombatEvents"
get_blueprint_function_details

Inspect function(s) with graph

Returns detailed information about one or all functions in a Blueprint, including parameters, return type, and optionally the full graph with nodes and connections. Omit function-name to list all functions. Useful for understanding a Blueprint's API before modifying it.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
function_namestringNoFunction name (empty = all)
include_graphboolNoInclude graph details
example
  cfa get_blueprint_function_details --blueprint-path "/Game/Blueprints/BP_Manufacturer" --function-name "CalculateEfficiency"
  cfa get_blueprint_function_details --blueprint-path "/Game/Blueprints/BP_Smelter" --include-graph=false
add_function_input

Add input parameter to a function

Adds an input parameter to an existing Blueprint function. Supports all UE types including primitives, structs, objects, and arrays. The parameter appears as an output pin on the function's entry node.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
function_namestringYesFunction name
param_namestringYesParameter name
param_typestringYesParameter type. A bare class name (e.g. Actor) makes an object-reference pin; use --param-kind class for a TSubclassOf pin
param_kindstringNoDisambiguate the type: object | class | struct | enum | softobject | softclass | interface (with --param-type as the type name)
type_pathstringNoExplicit type name/path for the kind (defaults to --param-type)
is_arrayboolNoIs array type
example
  cfa add_function_input --blueprint-path "/Game/Blueprints/BP_Manufacturer" --function-name "SetRecipe" --param-name "RecipeData" --param-type "FRecipeData"
  cfa add_function_input --blueprint-path "/Game/Blueprints/BP_Storage" --function-name "AddItems" --param-name "Items" --param-type "FStorageSlot" --is-array=true
add_function_output

Add output parameter to a function

Adds an output parameter to an existing Blueprint function. The parameter appears as an input pin on the function's return node. Multiple outputs create a struct-like return with named fields.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
function_namestringYesFunction name
param_namestringYesParameter name
param_typestringYesParameter type. A bare class name (e.g. Actor) makes an object-reference pin; use --param-kind class for a TSubclassOf pin
param_kindstringNoDisambiguate the type: object | class | struct | enum | softobject | softclass | interface (with --param-type as the type name)
type_pathstringNoExplicit type name/path for the kind (defaults to --param-type)
is_arrayboolNoIs array type
example
  cfa add_function_output --blueprint-path "/Game/Blueprints/BP_Manufacturer" --function-name "GetProductionStats" --param-name "ItemsPerMinute" --param-type "Float"
  cfa add_function_output --blueprint-path "/Game/CFADemo/BP_SentryTurret" --function-name "FindNearestEnemy" --param-name "Nearest" --param-type "Actor"
delete_blueprint_function

Delete a function from a Blueprint

Deletes a function and its entire graph from a Blueprint. This is destructive and cannot be undone. Any calls to this function from other graphs will become broken nodes. Check references before deleting.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
function_namestringYesFunction name
example
  cfa delete_blueprint_function --blueprint-path "/Game/Blueprints/BP_Smelter" --function-name "OldCalculation"
rename_blueprint_function

Rename a function

Renames a function within a Blueprint. This updates the function graph name but does not automatically update call sites in other graphs or Blueprints. Compile the Blueprint afterward to verify all references resolve correctly.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
old_function_namestringYesCurrent function name
new_function_namestringYesNew function name
example
  cfa rename_blueprint_function --blueprint-path "/Game/Blueprints/BP_Manufacturer" --old-function-name "CalcSpeed" --new-function-name "CalculateProcessingSpeed"
create_event_dispatcher

Add an event dispatcher (multicast delegate) to a Blueprint

Adds an Event Dispatcher (multicast delegate variable) to ANY Blueprint - the same thing the editor's 'Add Event Dispatcher' button creates. Works on actor/component/widget/object Blueprints alike. Pass optional inputs[] of {name,type[,type_path][,container]} to define the dispatcher's parameter signature (same type schema as a function/custom-event input - primitives, struct/object with type_path, array/set/map with container). Once created (and compiled), fire or bind it inside a graph with build_blueprint_graph kinds: call_dispatcher (broadcast), bind_dispatcher / assign_dispatcher (assign auto-creates a matching custom event), unbind_dispatcher, clear_dispatcher - each takes 'dispatcher' (this name) plus optional 'target_class' to reach a dispatcher on another Blueprint.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
namestringYesEvent dispatcher name
inputsstringNoJSON array of signature params [{name,type,type_path,container}] (prefer --json)
example
  cfa create_event_dispatcher --blueprint-path "/Game/B/BP_Spawner" --name "OnVehicleSpawned"
  # with a typed signature (an int count + a spawned Actor)
  cfa create_event_dispatcher --json '{"blueprint_path":"/Game/B/BP_Spawner","name":"OnVehicleSpawned","inputs":[{"name":"Count","type":"int"},{"name":"Spawned","type":"object","type_path":"/Script/Engine.Actor"}]}'
search_nodes

Search ANY placeable node by keyword (top-N)

Searches every placeable Blueprint node/action the right-click context menu can offer - engine and project functions, macros (incl. custom macro libraries), casts, struct break/make, events, variable get/set, and custom K2 nodes - via the engine's BlueprintActionDatabase. Ranked by relevance and capped to top-N. For CONTEXT-SENSITIVE results matching the editor, pass blueprint-path (+ optional graph-name) so only nodes valid in that graph survive (the real Event Tick, not a latent variant). Pass from-class (e.g. StaticMeshComponent) to scope to that class's members so 'Get World Location' resolves to the component's version. Each result has a node_id for add_blueprint_node / build_blueprint_graph. Pass --with-pins (needs --blueprint-path) to also get each node's real pin names/types inline, so you never have to guess pin names like Vector_Distance V1/V2 or call describe_node separately.

ParameterTypeRequiredDescription
filterstringYesKeyword matched against the node menu title
blueprint_pathstringNoContext blueprint (enables editor-accurate filtering; required for --with-pins)
graph_namestringNoContext graph (default EventGraph)
from_classstringNoScope to this class's members (e.g. StaticMeshComponent)
categorystringNoOptional category substring filter
max_resultsintNoMaximum results (1-100)
with_pinsboolNoAlso return each node's pins (name/dir/type) inline - needs --blueprint-path
example
  cfa search_nodes --filter "Get World Location" --blueprint-path "/Game/B/BP_X" --from-class "StaticMeshComponent"
  cfa search_nodes --filter "Event Tick" --blueprint-path "/Game/B/BP_X"
  cfa search_nodes --filter "Vector Distance" --blueprint-path "/Game/B/BP_X" --with-pins
  cfa search_nodes --filter "Make Vector" --max-results 5
describe_node

List a node's pins (name/dir/type) WITHOUT placing it

Spawns a node into a throwaway transient graph and returns its pins (name, direction, type) so you know the real pin names before wiring connections in build_blueprint_graph - no more build-then-read-back to discover names like ForEach 'LoopBody' or Vector_Distance 'V1'/'V2'. Pass a node_id from search_nodes, or class+function for a library call. blueprint_path is optional for a class+function library lookup (a transient context is used); it is only required for a node_id lookup.

ParameterTypeRequiredDescription
blueprint_pathstringNoContext Blueprint (the node is spawned transiently against it). Optional for class+function; required for a node_id lookup.
node_idstringNoNode id from search_nodes
classstringNoLibrary/owning class for a call node (with --function)
functionstringNoFunction name for a call node (with --class)
example
  cfa describe_node --class "KismetMathLibrary" --function "Vector_Distance"
  cfa describe_node --blueprint-path "/Game/B/BP_X" --node-id "<id from search_nodes>"
build_blueprint_graph

Build a whole graph fragment at once (nodes + connections)

Builds a Blueprint graph fragment in ONE atomic call (like build_material_graph): spawns every node in 'nodes' and wires every link in 'connections', then compiles once. Each node has a caller-chosen 'ref' and a 'kind': event (id=BeginPlay/Tick -> the real actor event), custom_event (name + optional inputs[] of {name,type} + replication "server"/"multicast"/"client" with optional reliable flag - the standard multiplayer RPC pattern), var_get / var_set (id=variable or component name; add target_class e.g. BP_X_C to read/write a variable on a WIRED target object instead of self - the node gains a 'self' target pin), call (class+function, e.g. KismetMathLibrary / Multiply_DoubleDouble - use for the promotable math operators the action DB can't spawn standalone), bound_event (widget=the variable name + event=the delegate, e.g. a Button's OnClicked - the widget must be a variable; the same node the UMG editor's event '+' makes), call_dispatcher / bind_dispatcher / assign_dispatcher / unbind_dispatcher / clear_dispatcher (fire or bind an event dispatcher made with create_event_dispatcher: 'dispatcher'=its name; assign_dispatcher auto-creates a matching custom event wired to the bind; add 'target_class' e.g. BP_X_C to reach a dispatcher on another Blueprint via a target pin), interface_call (interface + function: a K2Node_Message that calls the interface function on ANY wired object, safe no-op when the target doesn't implement it), interface_event (interface + function: the override event for an implemented interface's void function - run implement_blueprint_interface first; return-value functions are function graphs instead, target them with graph_name), or node_id (id from search_nodes, for any function/macro/cast/struct/pure node). Optional clear_graph wipes the target graph first for idempotent rebuilds. Connections use from_ref/from_pin -> to_ref/to_pin and are validated by the K2 schema (autocast inserted automatically). A wildcard container node (MakeArray/MakeSet/MakeMap) resolves its type from whatever typed pin you wire it to - and when you have no concrete pin to anchor to, set "element_type" on the node spec (e.g. "string", "int", or an object class; add "value_type" for a map) and it is typed directly, so a standalone MakeArray no longer fails with 'type is undetermined'. Returns node_map (ref -> NodeGuid) for surgical follow-up edits. Layout is automatic: OMIT pos_x/pos_y and the engine arranges ONLY the new nodes cleanly (straight pin-aligned exec wires, clustered data inputs, reroute knots for long/crossing wires) without disturbing existing nodes, set positions only for manual control. Pass the whole payload via --json.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
function_namestringNoTarget function graph (omit for the default EventGraph)
graph_namestringNoTarget ANY named graph, a function, a secondary event graph (create_event_graph), or a macro (omit for the default EventGraph)
clear_graphboolNoWipe the target graph first (idempotent rebuild)
auto_layoutboolNoAuto-arrange the newly-spawned nodes, leave ON (default) and DO NOT pass pos_x/pos_y; the engine arranges them cleanly for you. It lays exec nodes left-to-right with straight, pin-aligned wires, places each node's pure/data inputs in a tidy cluster (sized from the real node widgets, not guesses), reroutes long or node-crossing wires through stacked knot lanes (loops routed above), and puts each independent chain (BeginPlay vs Tick) in its own band, anchored clear of existing content, existing nodes are NEVER moved. It turns OFF automatically only if you supply pos_x/pos_y on any node (then your coordinates win, for manual control); an explicit true/false always overrides.
rollback_on_errorboolNoAtomic build: on any spawn/connection/compile error the whole fragment rolls back, so a retry starts clean (no duplicate nodes). Pass false to keep partial results.
nodesstringNoJSON array of node specs (prefer --json for full payload)
connectionsstringNoJSON array of connection specs (prefer --json)
example
  cfa build_blueprint_graph --json '{"blueprint_path":"/Game/B/BP_X","nodes":[{"ref":"tick","kind":"event","id":"Tick"},{"ref":"mesh","kind":"var_get","id":"WanderMesh","pos_y":200}],"connections":[]}'
  # widget button click -> print (widget must be a variable: set bIsVariable then compile first)
  cfa build_blueprint_graph --json '{"blueprint_path":"/Game/UI/WBP_Menu","nodes":[{"ref":"e","kind":"bound_event","widget":"PlayButton","event":"OnClicked"},{"ref":"p","kind":"call","class":"KismetSystemLibrary","function":"PrintString","pin_defaults":{"InString":"Play!"}}],"connections":[{"from_ref":"e","from_pin":"then","to_ref":"p","to_pin":"execute"}]}'
  # broadcast an event dispatcher from BeginPlay (create it first with create_event_dispatcher)
  cfa build_blueprint_graph --json '{"blueprint_path":"/Game/B/BP_Spawner","nodes":[{"ref":"bp","kind":"event","id":"BeginPlay"},{"ref":"call","kind":"call_dispatcher","dispatcher":"OnVehicleSpawned"}],"connections":[{"from_ref":"bp","from_pin":"then","to_ref":"call","to_pin":"execute"}]}'
arrange_blueprint_graph

Auto-arrange a whole graph (straight exec spines, clustered inputs, reroute knots)

Re-arranges the WHOLE graph with the full auto-layout engine: exec nodes left-to-right with straight, pin-aligned wires, each node's pure/data inputs in a clean cluster sized from the real node widgets, and long or node-crossing wires rerouted through stacked knot lanes (loops routed above). Connectivity is preserved (it only repositions and adds reroute knots) and re-running is idempotent. Use it to tidy a hand-built or messy graph; for newly-added nodes you normally DON'T need it, build_blueprint_graph already auto-lays-out just the new nodes. Targets the EventGraph by default; pass function_name (or graph_name) for a function/macro graph.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
function_namestringNoFunction/macro graph name (omit for EventGraph)
graph_namestringNoAlternative graph name (if not a function)
example
  cfa arrange_blueprint_graph --blueprint-path /Game/UI/WBP_Menu
  cfa arrange_blueprint_graph --blueprint-path /Game/UI/WBP_Menu --function-name RefreshValue
set_pin_default

Set one input pin's default literal on a placed node

Surgically sets the default value of a single input pin on an already-placed node, by node GUID (from add_blueprint_node / build_blueprint_graph / analyze_blueprint_graph) and pin name. A number/bool/string sets the pin literal; an asset path on an object/class pin loads the asset and sets it as the pin's default object. Use function-name to target a node inside a function graph.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
node_idstringYesNode GUID
pin_namestringYesInput pin name
valuestringNoLiteral value or asset path
function_namestringNoFunction graph context
example
  cfa set_pin_default --blueprint-path "/Game/B/BP_X" --node-id "ABC123" --pin-name "ErrorTolerance" --value "50"
  cfa set_pin_default --blueprint-path "/Game/B/BP_X" --node-id "DEF456" --pin-name "Mesh" --value "/Game/Meshes/SM_Cube.SM_Cube"
break_node_link

Break links on a node pin (disconnect)

Breaks links on a pin, by node GUID + pin-name. Breaks ALL links on the pin, or only the one link to target-node-id/target-pin-name when both are given. The inverse of connect_nodes. Use function-name to target a node inside a function/macro graph.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
node_idstringYesNode GUID
pin_namestringYesPin name to break links on
target_node_idstringNoBreak only the link to this node GUID (with target_pin_name)
target_pin_namestringNoTarget pin name for a single-link break
function_namestringNoFunction graph context
example
  cfa break_node_link --blueprint-path "/Game/B/BP_X" --node-id "ABC123" --pin-name "then"
  cfa break_node_link --blueprint-path "/Game/B/BP_X" --node-id "ABC123" --pin-name "then" --target-node-id "DEF456" --target-pin-name "execute"
insert_node_in_exec

Splice an existing node into an exec link

Inserts an already-placed node into an existing execution link: breaks from-node's from-pin -> its current target, then wires from-pin -> insert-in-pin and insert-out-pin -> that target, preserving downstream execution. Ideal for adding logic into an existing chain (e.g. into BeginPlay) without rebuilding it. Defaults: from-pin 'then', insert-in-pin 'execute', insert-out-pin 'then'.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
from_node_idstringYesGUID of the node whose exec output we splice after
insert_node_idstringYesGUID of the already-placed node to insert
from_pinstringNoExec output pin on from-node (default 'then')
insert_in_pinstringNoExec input pin on the inserted node (default 'execute')
insert_out_pinstringNoExec output pin on the inserted node (default 'then')
function_namestringNoFunction graph context
example
  cfa insert_node_in_exec --blueprint-path "/Game/B/BP_X" --from-node-id "EVENT_GUID" --insert-node-id "NODE_GUID"
add_blueprint_node

Add a node to a Blueprint graph

Adds a node to a Blueprint's event graph or function graph. Two ways: pass node-id (from search_nodes) to spawn ANY node the editor can place - any function/macro/cast/struct-op/custom node; or pass node-type for a built-in convenience type (Branch, CallFunction, Print, DynamicCast, VariableGet/Set, MakeArray, etc.). Use function-name to target a function graph. Returns the new node's GUID for connect_blueprint_nodes.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
node_idstringNoAction id from search_nodes (spawns ANY node)
node_typestringNoBuilt-in convenience type (Branch, CallFunction, Print, etc.)
pos_xfloatNoX position
pos_yfloatNoY position
event_typestringNoEvent type
function_namestringNoFunction name context
messagestringNoMessage (for Print nodes)
variable_namestringNoVariable name
target_functionstringNoTarget function
target_blueprintstringNoTarget blueprint
example
  cfa add_blueprint_node --blueprint-path "/Game/B/BP_X" --node-id "A1B2C3..." --pos-x 400 --pos-y 200
  cfa add_blueprint_node --blueprint-path "/Game/Blueprints/BP_Smelter" --node-type "Branch" --pos-x 400 --pos-y 200
connect_blueprint_nodes

Wire two nodes together

Creates a connection between an output pin on one node and an input pin on another. Use node GUIDs from add_blueprint_node or read_blueprint_content. Pin names must match exactly (e.g., "then" for execution, "ReturnValue" for outputs). Use the function-name parameter when connecting nodes inside a function graph.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
source_node_idstringYesSource node GUID
source_pin_namestringYesSource pin name
target_node_idstringYesTarget node GUID
target_pin_namestringYesTarget pin name
function_namestringNoFunction graph context
example
  cfa connect_blueprint_nodes --blueprint-path "/Game/Blueprints/BP_Smelter" --source-node-id "ABC123" --source-pin-name "then" --target-node-id "DEF456" --target-pin-name "execute"
  cfa connect_blueprint_nodes --blueprint-path "/Game/Blueprints/BP_Miner" --source-node-id "ABC123" --source-pin-name "ReturnValue" --target-node-id "DEF456" --target-pin-name "Condition" --function-name "CheckPower"
delete_blueprint_node

Delete a node by GUID

Deletes a single node from a Blueprint graph by its GUID. All connections to and from the node are automatically removed. Use read_blueprint_content or analyze_blueprint_graph to find node GUIDs. Specify function-name to target nodes inside a function graph.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
node_idstringYesNode GUID
function_namestringNoFunction graph context
example
  cfa delete_blueprint_node --blueprint-path "/Game/Blueprints/BP_Smelter" --node-id "ABC123DEF456"
  cfa delete_blueprint_node --blueprint-path "/Game/Blueprints/BP_Miner" --node-id "ABC123DEF456" --function-name "ProcessOre"
set_blueprint_node_property

Set node property or perform semantic editing

Sets a property on a Blueprint node or performs a semantic editing action. Supports direct property assignment (property-name + property-value) and semantic actions like add_pin, remove_pin, set_enum_type, change_pin_type, and set_function_reference. Use analyze_blueprint_graph to discover available properties on a node.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path
node_idstringYesNode GUID
actionstringNoSemantic action (add_pin, set_enum_type, etc.)
property_namestringNoProperty name
property_valuestringNoProperty value
pin_namestringNoPin name
pin_typestringNoPin type
enum_typestringNoEnum type
target_functionstringNoTarget function
target_classstringNoTarget class
event_typestringNoEvent type
function_namestringNoFunction context
example
  cfa set_blueprint_node_property --blueprint-path "/Game/Blueprints/BP_Smelter" --node-id "ABC123" --property-name "DefaultValue" --property-value "100.0"
  cfa set_blueprint_node_property --blueprint-path "/Game/Blueprints/BP_Miner" --node-id "DEF456" --action "set_enum_type" --enum-type "EResourceType"
get_blueprint_class_defaults

Read a Blueprint class's default (CDO) property values

Returns the Class Default Object property values for a Blueprint, every default a new instance starts with (C++ and Blueprint-declared). Thin alias of describe_object with the target pre-pointed at the Blueprint CDO. Use filter to narrow and include_inherited to walk the parent chain.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path (resolves to its CDO)
filterstringNoCase-insensitive substring matched against property paths
categorystringNoExact UPROPERTY Category match (sub-categories use '|')
max_resultsintNoMax property entries to return
cursorintNoPagination offset, entries to skip
include_inheritedboolNoWalk the full inheritance chain
include_metadataboolNoEmit full metadata blobs (false = values only)
example
  cfa get_blueprint_class_defaults --blueprint-path "/Game/UI/Styles/BP_TacticalButtonStyle"
  cfa get_blueprint_class_defaults --blueprint-path "/Game/Blueprints/BP_Miner" --filter "power"
set_blueprint_class_defaults

Set default property values on a Blueprint's class (CDO)

Sets default property values on a Blueprint's generated class (its CDO) - the Class Defaults panel. A convenience alias of set_object_property targeting the Blueprint CDO; changes propagate to non-overridden instances. Use property_path + value for one, or a properties map for a batch.

ParameterTypeRequiredDescription
blueprint_pathstringYesBlueprint asset path (resolves to its CDO)
property_pathstringNoDotted/indexed property path (with --value for a single write)
valuejsonNoValue to set at property_path (any JSON type)
propertiesjsonNoObject map of path -> value for batch writes
example
  cfa set_blueprint_class_defaults --blueprint-path "/Game/CFADemo/BP_SentryTurret" --property-path "FireRate" --value 0.5
  cfa set_blueprint_class_defaults --blueprint-path "/Game/CFADemo/BP_SentryTurret" --properties '{"FireRate":0.5,"Ammo":12}'