Blueprints
Every Blueprints command in CodeFizz Editor Agent, with parameters and examples.
Every Blueprints command in CodeFizz Editor Agent, with parameters and examples.
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_classesSearch 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | Yes | Search filter |
| max_results | int | No | Maximum results |
| include_blueprint_classes | bool | No | Include BP classes |
cfa search_parent_classes --filter "Actor" --max-results 10
cfa search_parent_classes --filter "MassProcessor" --include-blueprint-classes=falsesearch_typesSearch 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | Yes | Keyword to match against type name |
| kind | string | No | class|actor|component|interface|struct|enum |
| max_results | int | No | Maximum results (1-100) |
| include_blueprint | bool | No | Include Blueprint-generated types |
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_blueprintCreate 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Blueprint name |
| path | string | No | Content path |
| parent_class | string | No | Parent class |
cfa create_blueprint --name "BP_ConveyorSplitter" --path "/Game/Blueprints/Logistics" --parent-class "InteractableActor"
cfa create_blueprint --name "BP_MinerT2" --parent-class "MinerActor"export_blueprintExport 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| sections | string | No | Comma list: variables,graphs,components,widget_tree,interfaces,timelines,callables,event_dispatchers (empty = all) |
| inheritance | string | No | own | inherited | all |
| values | string | No | default | current | both |
| graph | string | No | Only this named graph (empty = all) |
| node | string | No | Only this node by NodeGuid (empty = all) |
| object | string | No | Only this component by name (empty = all) |
| callable | string | No | callables section: only this function/event by name (empty = all) |
| callable_kind | string | No | callables section: function | event | all (empty = all) |
| depth | string | No | summary | full | exact (exact adds T3D blob) |
| page | int | No | Page index when page_size > 0 |
| page_size | int | No | Nodes per graph page (0 = all); export emits a pagination block when paged |
cfa export_blueprint --blueprint-path "/Game/CFATest/WBP_CFADemo"
cfa export_blueprint --blueprint-path "/Game/CFATest/WBP_CFADemo" --inheritance all --values bothexport_objectExport 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| object | string | Yes | Asset/object/struct path |
| path | string | No | Deep-query a single property by dotted path |
| filter | string | No | Lower-case substring filter on property names |
| depth | string | No | summary (no values) | full |
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_assetExport 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset | string | Yes | Asset path (material, PCG graph, blueprint, or any object) |
| depth | string | No | summary | full | exact (exact adds T3D blob for blueprint/anim graphs) |
| filter | string | No | Lower-case substring filter on property names (object fallback) |
| sections | string | No | Blueprint only, comma list: variables,graphs,components,widget_tree,interfaces,timelines,callables,event_dispatchers (empty = all) |
| inheritance | string | No | Blueprint only, own | inherited | all |
| values | string | No | Blueprint only, default | current | both |
| graph | string | No | Only this named graph (empty = all) |
| node | string | No | Only this node by NodeGuid (empty = all) |
| object | string | No | Blueprint only, only this component by name (empty = all) |
| callable | string | No | Blueprint only, callables section: only this function/event by name (empty = all) |
| callable_kind | string | No | Blueprint only, callables section: function | event | all (empty = all) |
| page | int | No | Page index when page_size > 0 |
| page_size | int | No | Nodes per graph/PCG page (0 = all); export emits a pagination block when paged |
| include_inherited | bool | No | Material instance only, also list parameters left at the parent value (default false = overridden-only). Base materials always export full settings. |
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_actorExport 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| actor | string | Yes | Placed actor outliner label or object name |
| depth | string | No | summary (no values) | full |
| filter | string | No | Lower-case substring filter on property names |
cfa export_actor --actor "BP_EnemySpawner2"
cfa export_actor --actor "LiveInspectActor" --depth summaryadd_component_to_blueprintAdd 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | No | Blueprint asset path (edits the class/SCS). Provide this OR --actor. |
| actor | string | No | Placed actor label or name (adds a per-instance component). Provide this OR --blueprint-path. |
| component_class | string | Yes | Component class name |
| component_name | string | No | Component name |
| attach_parent | string | No | Attach under this existing component (by editor or object name) instead of as a root. Enables deeper hierarchies. |
| attach_socket | string | No | Socket on the attach_parent to attach to (optional; Blueprint target) |
| properties | json | No | Optional object map of initial property values for the new template (e.g. {"StaticMesh":"/Engine/BasicShapes/Cube.Cube"}). |
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_propertySet 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| component_name | string | Yes | Component name (as shown in the Components panel) |
| property_path | string | No | Dotted/indexed property path (with --value for a single write) |
| value | json | No | JSON value for property_path (number, bool, string, object, array; content path for asset refs) |
| properties | json | No | Object map of path -> value for a batch write (instead of property_path/value) |
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_componentDelete 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | No | Blueprint asset path. Provide this OR --actor. |
| actor | string | No | Placed actor label or name. Provide this OR --blueprint-path. |
| component_name | string | Yes | Component to delete |
cfa delete_component --blueprint-path "/Game/Blueprints/BP_Smelter" --component-name "OutputMesh"
cfa delete_component --actor "BP_EnemySpawner2" --component-name "Marker"reparent_componentMove 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | No | Blueprint asset path. Provide this OR --actor. |
| actor | string | No | Placed actor label or name. Provide this OR --blueprint-path. |
| component_name | string | Yes | Component to reparent |
| new_parent | string | No | New parent component name (empty = back to the root) |
| attach_socket | string | No | Socket on the new parent to attach to (optional; Blueprint target) |
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_componentMake 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).
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | No | Blueprint asset path. Provide this OR --actor. |
| actor | string | No | Placed actor label or name. Provide this OR --blueprint-path. |
| component_name | string | Yes | Scene component to make the root |
cfa set_root_component --blueprint-path "/Game/CFADemo/BP_SentryTurret" --component-name "Base"
cfa set_root_component --actor "BP_EnemySpawner2" --component-name "Marker"compile_blueprintCompile 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
cfa compile_blueprint --blueprint-path "/Game/Blueprints/BP_ConveyorSplitter"read_blueprint_contentRead 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| include_event_graph | bool | No | Include event graph |
| include_functions | bool | No | Include functions |
| include_variables | bool | No | Include variables |
| include_components | bool | No | Include components |
| include_interfaces | bool | No | Include interfaces |
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=falseanalyze_blueprint_graphAnalyze 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| graph_name | string | No | Graph name |
| include_node_details | bool | No | Include node details |
| include_pin_connections | bool | No | Include pin connections |
| trace_execution_flow | bool | No | Trace execution flow |
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=truecreate_blueprint_variableCreate 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).
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_variableCreate 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| function_name | string | Yes | Function to add the local to (locals are function-scoped only; the event graph / macros / unknown names are rejected) |
| variable_name | string | Yes | Local variable name |
| variable_type | string | Yes | Type kind (bool/int/float/double/int64/byte/name/string/text/struct/enum/object/class/softobject/softclass/interface) |
| type_path | string | No | Class/struct/enum name or path (for struct/enum/object/class/soft*/interface) |
| container | string | No | Container: none|array|set|map |
| is_reference | bool | No | Pass by reference |
| map_value_type | string | No | Map value kind (when container=map) |
| map_value_path | string | No | Map value class/struct/enum (when container=map) |
| default_value | string | No | Default value |
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_detailsInspect 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| variable_name | string | No | Variable name (empty = all) |
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_propertiesModify 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.
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=truedelete_blueprint_variableDelete 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| variable_name | string | Yes | Variable name to delete |
cfa delete_blueprint_variable --blueprint-path "/Game/Blueprints/BP_Smelter" --variable-name "UnusedFlag"reparent_blueprintChange 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| new_parent_class | string | Yes | New parent: class name or Blueprint asset path |
cfa reparent_blueprint --blueprint-path "/Game/Blueprints/BP_Turret" --new-parent-class "BP_BuildingBase"create_blueprint_function_libraryCreate 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Library asset name (e.g. BFL_MathHelpers) |
| path | string | No | Content path |
| save | bool | No | Save the asset immediately |
cfa create_blueprint_function_library --name "BFL_MathHelpers" --path "/Game/Blueprints/Libraries"set_function_propertiesSet 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| function_name | string | Yes | Function name |
| pure | bool | No | Blueprint Pure (no exec pins) |
| const | bool | No | Const function |
| exec | bool | No | Exec (console-callable) function |
| access | string | No | Access specifier: public|protected|private |
| category | string | No | My Blueprint category (use | for subcategories) |
| tooltip | string | No | Function tooltip/description |
| keywords | string | No | Palette search keywords |
| metadata | json | No | JSON object of FKismetUserDeclaredFunctionMetadata fields (reflection-applied) |
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_interfaceCreate 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Interface asset name (e.g. BPI_Damageable) |
| path | string | No | Content path |
| save | bool | No | Save the asset immediately |
cfa create_blueprint_interface --name "BPI_Damageable" --path "/Game/Blueprints/Interfaces"implement_blueprint_interfaceImplement 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| interface | string | Yes | Interface asset path (/Game/...) or native interface class name |
| compile | bool | No | Compile after implementing |
cfa implement_blueprint_interface --blueprint-path "/Game/Blueprints/BP_Turret" --interface "/Game/Blueprints/Interfaces/BPI_Damageable"remove_blueprint_interfaceRemove 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| interface | string | Yes | Interface asset path or native interface class name |
| preserve_functions | bool | No | Keep function graphs as normal functions |
cfa remove_blueprint_interface --blueprint-path "/Game/Blueprints/BP_Turret" --interface "BPI_Damageable" --preserve-functions=truelist_blueprint_interfacesList 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).
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
cfa list_blueprint_interfaces --blueprint-path "/Game/Blueprints/BP_Turret"create_blueprint_functionCreate 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| function_name | string | Yes | Function name |
| return_type | string | No | Return type |
| pure | bool | No | Blueprint Pure (no exec pins) |
| const | bool | No | Const function |
| access | string | No | Access specifier: public|protected|private |
| category | string | No | My Blueprint category (use | for subcategories) |
| tooltip | string | No | Function tooltip/description |
| metadata | json | No | JSON object of FKismetUserDeclaredFunctionMetadata fields (reflection-applied) |
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_functionOverride 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| function_name | string | Yes | Parent function/event name to override |
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_graphCreate 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).
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| graph_name | string | Yes | Name for the new event graph (unique among the blueprint's graphs) |
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_graphRename 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| graph_name | string | Yes | Current event graph name |
| new_graph_name | string | Yes | New event graph name (unique among the blueprint's graphs) |
cfa rename_event_graph --blueprint-path "/Game/B/BP_X" --graph-name "NewEventGraph" --new-graph-name "CombatEvents"delete_event_graphDelete 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).
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| graph_name | string | Yes | Event graph name to delete (cannot be the only event graph) |
cfa delete_event_graph --blueprint-path "/Game/B/BP_X" --graph-name "CombatEvents"get_blueprint_function_detailsInspect 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| function_name | string | No | Function name (empty = all) |
| include_graph | bool | No | Include graph details |
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=falseadd_function_inputAdd 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| function_name | string | Yes | Function name |
| param_name | string | Yes | Parameter name |
| param_type | string | Yes | Parameter type. A bare class name (e.g. Actor) makes an object-reference pin; use --param-kind class for a TSubclassOf pin |
| param_kind | string | No | Disambiguate the type: object | class | struct | enum | softobject | softclass | interface (with --param-type as the type name) |
| type_path | string | No | Explicit type name/path for the kind (defaults to --param-type) |
| is_array | bool | No | Is array type |
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=trueadd_function_outputAdd 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| function_name | string | Yes | Function name |
| param_name | string | Yes | Parameter name |
| param_type | string | Yes | Parameter type. A bare class name (e.g. Actor) makes an object-reference pin; use --param-kind class for a TSubclassOf pin |
| param_kind | string | No | Disambiguate the type: object | class | struct | enum | softobject | softclass | interface (with --param-type as the type name) |
| type_path | string | No | Explicit type name/path for the kind (defaults to --param-type) |
| is_array | bool | No | Is array type |
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_functionDelete 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| function_name | string | Yes | Function name |
cfa delete_blueprint_function --blueprint-path "/Game/Blueprints/BP_Smelter" --function-name "OldCalculation"rename_blueprint_functionRename 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| old_function_name | string | Yes | Current function name |
| new_function_name | string | Yes | New function name |
cfa rename_blueprint_function --blueprint-path "/Game/Blueprints/BP_Manufacturer" --old-function-name "CalcSpeed" --new-function-name "CalculateProcessingSpeed"create_event_dispatcherAdd 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| name | string | Yes | Event dispatcher name |
| inputs | string | No | JSON array of signature params [{name,type,type_path,container}] (prefer --json) |
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_nodesSearch 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | Yes | Keyword matched against the node menu title |
| blueprint_path | string | No | Context blueprint (enables editor-accurate filtering; required for --with-pins) |
| graph_name | string | No | Context graph (default EventGraph) |
| from_class | string | No | Scope to this class's members (e.g. StaticMeshComponent) |
| category | string | No | Optional category substring filter |
| max_results | int | No | Maximum results (1-100) |
| with_pins | bool | No | Also return each node's pins (name/dir/type) inline - needs --blueprint-path |
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 5describe_nodeList 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | No | Context Blueprint (the node is spawned transiently against it). Optional for class+function; required for a node_id lookup. |
| node_id | string | No | Node id from search_nodes |
| class | string | No | Library/owning class for a call node (with --function) |
| function | string | No | Function name for a call node (with --class) |
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_graphBuild 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| function_name | string | No | Target function graph (omit for the default EventGraph) |
| graph_name | string | No | Target ANY named graph, a function, a secondary event graph (create_event_graph), or a macro (omit for the default EventGraph) |
| clear_graph | bool | No | Wipe the target graph first (idempotent rebuild) |
| auto_layout | bool | No | Auto-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_error | bool | No | Atomic 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. |
| nodes | string | No | JSON array of node specs (prefer --json for full payload) |
| connections | string | No | JSON array of connection specs (prefer --json) |
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_graphAuto-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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| function_name | string | No | Function/macro graph name (omit for EventGraph) |
| graph_name | string | No | Alternative graph name (if not a function) |
cfa arrange_blueprint_graph --blueprint-path /Game/UI/WBP_Menu
cfa arrange_blueprint_graph --blueprint-path /Game/UI/WBP_Menu --function-name RefreshValueset_pin_defaultSet 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| node_id | string | Yes | Node GUID |
| pin_name | string | Yes | Input pin name |
| value | string | No | Literal value or asset path |
| function_name | string | No | Function graph context |
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_linkBreak 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| node_id | string | Yes | Node GUID |
| pin_name | string | Yes | Pin name to break links on |
| target_node_id | string | No | Break only the link to this node GUID (with target_pin_name) |
| target_pin_name | string | No | Target pin name for a single-link break |
| function_name | string | No | Function graph context |
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_execSplice 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'.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| from_node_id | string | Yes | GUID of the node whose exec output we splice after |
| insert_node_id | string | Yes | GUID of the already-placed node to insert |
| from_pin | string | No | Exec output pin on from-node (default 'then') |
| insert_in_pin | string | No | Exec input pin on the inserted node (default 'execute') |
| insert_out_pin | string | No | Exec output pin on the inserted node (default 'then') |
| function_name | string | No | Function graph context |
cfa insert_node_in_exec --blueprint-path "/Game/B/BP_X" --from-node-id "EVENT_GUID" --insert-node-id "NODE_GUID"add_blueprint_nodeAdd 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| node_id | string | No | Action id from search_nodes (spawns ANY node) |
| node_type | string | No | Built-in convenience type (Branch, CallFunction, Print, etc.) |
| pos_x | float | No | X position |
| pos_y | float | No | Y position |
| event_type | string | No | Event type |
| function_name | string | No | Function name context |
| message | string | No | Message (for Print nodes) |
| variable_name | string | No | Variable name |
| target_function | string | No | Target function |
| target_blueprint | string | No | Target blueprint |
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 200connect_blueprint_nodesWire 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| source_node_id | string | Yes | Source node GUID |
| source_pin_name | string | Yes | Source pin name |
| target_node_id | string | Yes | Target node GUID |
| target_pin_name | string | Yes | Target pin name |
| function_name | string | No | Function graph context |
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_nodeDelete 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| node_id | string | Yes | Node GUID |
| function_name | string | No | Function graph context |
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_propertySet 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path |
| node_id | string | Yes | Node GUID |
| action | string | No | Semantic action (add_pin, set_enum_type, etc.) |
| property_name | string | No | Property name |
| property_value | string | No | Property value |
| pin_name | string | No | Pin name |
| pin_type | string | No | Pin type |
| enum_type | string | No | Enum type |
| target_function | string | No | Target function |
| target_class | string | No | Target class |
| event_type | string | No | Event type |
| function_name | string | No | Function context |
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_defaultsRead 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path (resolves to its CDO) |
| filter | string | No | Case-insensitive substring matched against property paths |
| category | string | No | Exact UPROPERTY Category match (sub-categories use '|') |
| max_results | int | No | Max property entries to return |
| cursor | int | No | Pagination offset, entries to skip |
| include_inherited | bool | No | Walk the full inheritance chain |
| include_metadata | bool | No | Emit full metadata blobs (false = values only) |
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_defaultsSet 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
| blueprint_path | string | Yes | Blueprint asset path (resolves to its CDO) |
| property_path | string | No | Dotted/indexed property path (with --value for a single write) |
| value | json | No | Value to set at property_path (any JSON type) |
| properties | json | No | Object map of path -> value for batch writes |
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}'