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
  • Rig a Character with AI
  • Build an Animation Blueprint

Reference

  • Reference
  • Control Rig
  • 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
  • Animation
  • Console Commands
  • Profiling
  • Core
  • Debug

Help

  • FAQ
  • Troubleshooting
  • For AI Agents
DocsReferenceAnimation

Animation

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

Loading…
PreviousCurvesNextConsole Commands
CodeFizz

A drop-in Unreal Engine 5 plugin that exposes the entire editor surface (Blueprints, Materials, Niagara, PCG, StateTree, Control Rig, 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.

45 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.

create_anim_blueprint

Create an Animation Blueprint

Creates an Animation Blueprint bound to a Skeleton, through the engine's own AnimBlueprintFactory so the skeleton lands on the blueprint and on both generated classes. Without that the asset looks correct and fails to compile. Pass --template for a skeleton-agnostic template Animation Blueprint, in which case --skeleton is not needed. The new asset already has an AnimGraph, so add_anim_state_machine works immediately.

ParameterTypeRequiredDescription
namestringYesAsset name
pathstringNoContent folder
skeletonstringNoSkeleton asset path (required unless --template)
parent_classstringNoParent class, must derive from AnimInstance
templateboolNoCreate a skeleton-agnostic template Animation Blueprint
preview_meshstringNoSkeletal Mesh to preview with
example
cfa create_anim_blueprint --name ABP_Hero --path /Game/Characters/Hero --skeleton /Game/Characters/Hero/SK_Hero_Skeleton
cfa create_anim_blueprint --name ABP_Shared --path /Game/Animations --template
get_anim_blueprint_info

Read an Animation Blueprint's identity and graph tree

Returns the target skeleton, parent class, template flag, preview mesh, implemented interfaces and the full graph tree with a slash path and kind for every graph. Use depth=summary to skip the tree.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
depthstringNosummary | full
example
cfa get_anim_blueprint_info --blueprint-path /Game/Characters/Hero/ABP_Hero
list_anim_graphs

List every graph in an Animation Blueprint

Lists every graph with its slash path, kind (anim, state_machine, state, transition, conduit, blendspace, custom_transition) and node count. The path is what every other command takes to address that graph, including the blueprint graph commands: pass it as --function-name to add_blueprint_node, or as --graph to export_graph. Kind comes from the graph's class, never its name, so a state called "Transition" is still reported as a state.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
filterstringNoCase-insensitive substring filter on the path
kindstringNoanim | state_machine | state | transition | conduit | blendspace | custom_transition | other
max_resultsintNoMaximum graphs to return
example
cfa list_anim_graphs --blueprint-path /Game/Characters/Hero/ABP_Hero
cfa list_anim_graphs --blueprint-path /Game/Characters/Hero/ABP_Hero --kind state --filter locomotion
add_anim_state_machine

Add a state machine to an anim graph

Places a state machine node and builds its nested graph and entry node, exactly as dropping one from the anim graph context menu does. Returns the graph path of the new state machine, which is what add_anim_state takes.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
graphstringNoAnim graph to place it in
namestringNoName for the state machine
pos_xintNoNode X position
pos_yintNoNode Y position
example
cfa add_anim_state_machine --blueprint-path /Game/Characters/Hero/ABP_Hero --name Locomotion --pos-x -400
add_anim_state

Add a state, conduit or alias to a state machine

Adds a state and creates its bound anim graph, so its Output Animation Pose node exists straight away. Fill the state by pointing the blueprint graph commands at the returned graph_path. Conduits are pass-through junctions with a rule but no pose; aliases stand in for one or more other states so a single transition can serve all of them, and become a global alias when aliased_states is omitted.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
graphstringYesState machine graph path, e.g. AnimGraph/Locomotion
namestringYesName for the new state
kindstringNostate | conduit | alias
aliased_statesstringNoAlias only: comma-separated state names. Omit for a global alias
entryboolNoMake this the entry state
pos_xintNoNode X position
pos_yintNoNode Y position
example
cfa add_anim_state --blueprint-path /Game/Characters/Hero/ABP_Hero --graph AnimGraph/Locomotion --name Idle --entry
cfa add_anim_state --blueprint-path /Game/Characters/Hero/ABP_Hero --graph AnimGraph/Locomotion --name AnyLocomotion --kind alias --aliased-states "Idle,Run"
add_anim_transition

Connect two states with a transition

Creates the transition node and wires it through the engine's own CreateConnections, which clears any stale link first. Pass --rule-variable to bind the rule to a bool variable on the Animation Blueprint in one step, the same wiring you get by dragging that variable into the rule graph; add --rule-inverted to route it through a NOT. For anything more involved, author the returned graph_path with the blueprint graph commands.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
graphstringYesState machine graph path
fromstringYesSource state name
tostringYesTarget state name
crossfade_durationfloatNoBlend time in seconds; engine default when omitted
bidirectionalboolNoAlso allow the reverse direction
rule_variablestringNoBool variable on the Animation Blueprint to drive the rule
rule_invertedboolNoInvert the bound rule variable through a NOT
example
cfa add_anim_transition --blueprint-path /Game/Characters/Hero/ABP_Hero --graph AnimGraph/Locomotion --from Idle --to Run --rule-variable bIsMoving --crossfade-duration 0.15
cfa add_anim_transition --blueprint-path /Game/Characters/Hero/ABP_Hero --graph AnimGraph/Locomotion --from Run --to Idle --rule-variable bIsMoving --rule-inverted
set_anim_entry_state

Point a state machine's entry at a state

Rewires the state machine's entry node to the named state, replacing whatever it pointed at. A state machine with no entry connection compiles but never plays anything.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
graphstringYesState machine graph path
statestringYesState to enter first
example
cfa set_anim_entry_state --blueprint-path /Game/Characters/Hero/ABP_Hero --graph AnimGraph/Locomotion --state Idle
get_anim_state_machine

Read a state machine's states and transitions

Returns the entry state, every state, conduit and alias, and every transition with its blend settings and rule graph path. This is the verification counterpart to the add_anim_* commands: read it back and check the wiring is what you asked for, rather than trusting the success reply.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
graphstringYesState machine graph path
depthstringNosummary | full
example
cfa get_anim_state_machine --blueprint-path /Game/Characters/Hero/ABP_Hero --graph AnimGraph/Locomotion
remove_anim_state

Remove a state, conduit or alias

Removes the state along with every transition attached to it, and tears down its bound graph. Reports how many transitions went with it.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
graphstringYesState machine graph path
namestringYesState, conduit or alias to remove
example
cfa remove_anim_state --blueprint-path /Game/Characters/Hero/ABP_Hero --graph AnimGraph/Locomotion --name Crouch
remove_anim_transition

Remove the transition between two states

Removes the transition running from one state to another, leaving both states in place.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
graphstringYesState machine graph path
fromstringYesSource state name
tostringYesTarget state name
example
cfa remove_anim_transition --blueprint-path /Game/Characters/Hero/ABP_Hero --graph AnimGraph/Locomotion --from Idle --to Run
set_anim_transition_property

Set a property on a transition

Sets any reflected property on the transition node: CrossfadeDuration, PriorityOrder, BlendMode, CustomBlendCurve, bDisabled, Bidirectional, bAutomaticRuleBasedOnSequencePlayerInState, AutomaticRuleTriggerTime, SyncGroupNameToRequireValidMarkersRule and so on. Some settings only exist from a given engine version (MinTimeBeforeReentry and bAllowInertializationForSelfTransitions from 5.7, bOnlyEvaluateWhenActive from 5.8); asking for one on an older engine names the version it arrived in rather than reporting a generic miss.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
graphstringYesState machine graph path
fromstringYesSource state name
tostringYesTarget state name
propertystringYesProperty name on the transition node
valuestringYesNew value in Unreal's import text form
example
cfa set_anim_transition_property --blueprint-path /Game/Characters/Hero/ABP_Hero --graph AnimGraph/Locomotion --from Idle --to Run --property PriorityOrder --value 2
cfa set_anim_transition_property --blueprint-path /Game/Characters/Hero/ABP_Hero --graph AnimGraph/Locomotion --from Idle --to Run --property BlendMode --value Cubic
set_anim_node_pin_exposure

Expose or hide an anim node property as a pin

Drives the PinOptions section of an anim node's details panel. ShowPinForProperties is a fixed-size array, so a generic property write cannot add entries to it; this is the supported route. Omit --property to list every property the node can toggle along with its current state. The node is reconstructed afterwards, because the pin only appears or disappears on reconstruction.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
graphstringYesGraph path holding the node
node_idstringYesNodeGuid of the anim graph node
propertystringNoProperty to toggle. Omit to list what can be toggled
showboolNoTrue exposes the pin, false hides it
example
cfa set_anim_node_pin_exposure --blueprint-path /Game/Characters/Hero/ABP_Hero --graph "AnimGraph/Locomotion/Idle" --node-id CF7FF6BE --property PlayRate
bind_anim_node_function

Bind a function to an anim node event slot

Sets one of the node's function bindings: On State Entry, On State Exit, On Update, On Become Relevant, On Initial Update and so on. Omit --binding to list the slots the node offers with what is currently bound. Omit --function and a function is created from the slot's own prototype signature, marked thread safe when the prototype is, which is what the Create Binding button does. Slots are discovered by reflection, so a node class that gains one in a later engine shows up without a code change.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
graphstringYesGraph path holding the node
node_idstringYesNodeGuid of the anim graph node
bindingstringNoSlot to set. Omit to list the slots
functionstringNoExisting function to bind. Omit to create one from the prototype
clearboolNoClear the binding instead of setting it
example
cfa bind_anim_node_function --blueprint-path /Game/Characters/Hero/ABP_Hero --graph "AnimGraph/Locomotion/Idle" --node-id 862C7992 --binding StateEntryFunction
add_anim_layer

Add an animation layer to an Animation Blueprint

Creates an animation layer graph, the same as Add Animation Layer in the editor's My Blueprint panel. Fill it with the blueprint graph commands using the returned graph path.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
namestringYesName for the layer
example
cfa add_anim_layer --blueprint-path /Game/Characters/Hero/ABP_Hero --name UpperBody
validate_anim_blueprint

Check an Animation Blueprint and return a verdict

Returns pass, pass_with_warnings or fail with the reasons. Checks the skeleton is set unless the asset is a template, that every state machine has states and an entry connection, that transitions have both endpoints, and that states feed their output pose. Compiles first by default and folds the compiler's own errors and warnings into the verdict.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
compileboolNoCompile before checking
example
cfa validate_anim_blueprint --blueprint-path /Game/Characters/Hero/ABP_Hero
create_blend_space

Create a blend space or aim offset

Creates a 1D or 2D blend space, or an aim offset of either dimension, through the engine's own factory. An aim offset is not a blend space with a flag set: its class is what drives mesh-space rotation blending, so the kind is the whole decision and cannot be changed afterwards.

ParameterTypeRequiredDescription
namestringYesAsset name
pathstringNoContent folder
skeletonstringYesSkeleton asset path
kindstringNoblendspace_1d | blendspace_2d | aim_offset_1d | aim_offset_2d
preview_meshstringNoSkeletal Mesh to preview with
example
cfa create_blend_space --name BS_Locomotion --path /Game/Characters/Hero --skeleton /Game/Characters/Hero/SK_Hero_Skeleton --kind blendspace_2d
cfa create_blend_space --name AO_Aim --path /Game/Characters/Hero --skeleton /Game/Characters/Hero/SK_Hero_Skeleton --kind aim_offset_2d
set_blend_space_axis

Configure a blend space axis

Sets an axis label, range, grid divisions, snapping and input wrapping. Use wrap_input for angular axes such as Direction so -180 and 180 meet. The blend space is resampled afterwards, because changing the range moves every sample's grid position and without the rebuild the asset keeps blending against the old layout while the details panel looks right.

ParameterTypeRequiredDescription
blend_space_pathstringYesBlend space path
axisstringNox | y
display_namestringNoAxis label shown in the editor
minfloatNoMinimum axis value
maxfloatNoMaximum axis value
grid_divisionsintNoGrid divisions, at least 1
snap_to_gridboolNoSnap samples to the grid
wrap_inputboolNoWrap the input, for angular axes
example
cfa set_blend_space_axis --blend-space-path /Game/Characters/Hero/BS_Locomotion --axis x --display-name Direction --min -180 --max 180 --grid-divisions 8 --wrap-input
cfa set_blend_space_axis --blend-space-path /Game/Characters/Hero/BS_Locomotion --axis y --display-name Speed --min 0 --max 600
add_blend_space_sample

Place an animation in a blend space

Adds an Anim Sequence at a position. The position is checked against the engine's own rules first, so a point outside the axis range or too close to an existing sample comes back as an error naming the ranges rather than a silent no-op. Set the axes with set_blend_space_axis before adding samples, since the ranges decide what is accepted.

ParameterTypeRequiredDescription
blend_space_pathstringYesBlend space path
animationstringYesAnim Sequence path
xfloatNoPosition on the X axis
yfloatNoPosition on the Y axis, ignored by 1D
rate_scalefloatNoPlay rate scale for this sample
mirrorboolNoPlay this sample mirrored
example
cfa add_blend_space_sample --blend-space-path /Game/Characters/Hero/BS_Locomotion --animation /Game/Characters/Hero/Anims/Idle --x 0 --y 0
remove_blend_space_sample

Remove a blend space sample

Removes the sample at an index, as reported by get_blend_space, and resamples the blend space.

ParameterTypeRequiredDescription
blend_space_pathstringYesBlend space path
indexintYesSample index from get_blend_space
example
cfa remove_blend_space_sample --blend-space-path /Game/Characters/Hero/BS_Locomotion --index 2
get_blend_space

Read a blend space

Returns the kind, skeleton, both axes and every sample with its position, rate scale and mirror flag. This is the verification counterpart to the add and set commands: read it back rather than trusting the success reply.

ParameterTypeRequiredDescription
blend_space_pathstringYesBlend space path
example
cfa get_blend_space --blend-space-path /Game/Characters/Hero/BS_Locomotion
create_anim_montage

Create an Animation Montage

Creates a montage through the engine's own factory. Pass --animation and the montage starts with that sequence in its first slot, its length set and a starting section made, which is what the content browser's Create Montage does. Pass only --skeleton for an empty montage to fill with add_montage_slot and add_montage_segment.

ParameterTypeRequiredDescription
namestringYesAsset name
pathstringNoContent folder
animationstringNoSource Anim Sequence; its skeleton is used when skeleton is omitted
skeletonstringNoSkeleton path, required when no source animation is given
preview_meshstringNoSkeletal Mesh to preview with
example
cfa create_anim_montage --name AM_Attack --path /Game/Characters/Hero --animation /Game/Characters/Hero/Anims/Attack01
add_montage_slot

Add a slot track to a montage

Adds an animation slot track. The slot must already exist on the skeleton: the engine accepts an unknown slot name and the montage then never plays through it, so an unregistered name is refused here instead.

ParameterTypeRequiredDescription
montage_pathstringYesMontage path
slotstringYesSlot name registered on the skeleton
example
cfa add_montage_slot --montage-path /Game/Characters/Hero/AM_Attack --slot UpperBody
add_montage_segment

Append an animation to a montage slot

Appends an Anim Sequence to the end of a slot track and extends the montage to fit. The segment's timing is initialised from the sequence itself rather than filled in by hand, so its length and start position are what the montage editor would produce.

ParameterTypeRequiredDescription
montage_pathstringYesMontage path
animationstringYesAnim Sequence path
slotstringNoSlot to append into, defaults to the first
play_ratefloatNoPlay rate for this segment
example
cfa add_montage_segment --montage-path /Game/Characters/Hero/AM_Attack --animation /Game/Characters/Hero/Anims/Attack02 --slot DefaultSlot
add_montage_section

Add a named section to a montage

Adds a section at a time in seconds, optionally chaining to another section so they play in sequence. Sections are what Montage Jump To Section and Play Montage target by name. The start time is applied through the engine's linking API, because the section's own StartTime field is deprecated and writing it reports success while leaving the section at zero.

ParameterTypeRequiredDescription
montage_pathstringYesMontage path
namestringYesSection name
start_timefloatNoStart time in seconds
next_sectionstringNoSection to play after this one
example
cfa add_montage_section --montage-path /Game/Characters/Hero/AM_Attack --name Combo2 --start-time 0.8 --next-section Combo3
get_anim_montage

Read a montage

Returns the skeleton, length, blend in and out times, every slot with its segments, and every section with its start time and chained next section.

ParameterTypeRequiredDescription
montage_pathstringYesMontage path
example
cfa get_anim_montage --montage-path /Game/Characters/Hero/AM_Attack
validate_anim_asset

Check a blend space or montage and return a verdict

Returns pass, pass_with_warnings or fail with the reasons. For blend spaces it checks there are samples, that each has an animation on the right skeleton, and that the axis ranges make sense. For montages it checks there are slots and sections, that the length is non-zero, that every slot is registered on the skeleton, and that no section chains to one that does not exist.

ParameterTypeRequiredDescription
asset_pathstringYesBlend space or montage path
example
cfa validate_anim_asset --asset-path /Game/Characters/Hero/BS_Locomotion
create_anim_layer_interface

Create an Animation Layer Interface

Creates an Animation Layer Interface and declares its layers, one graph per name. Implement it on an Animation Blueprint with implement_blueprint_interface, then drive the layers at runtime with Linked Anim Layer nodes. An interface is skeleton-agnostic by design, so it carries no target skeleton.

ParameterTypeRequiredDescription
namestringYesAsset name
pathstringNoContent folder
layersstringNoComma-separated layer names to declare
example
cfa create_anim_layer_interface --name ALI_Locomotion --path /Game/Characters --layers "FullBody,UpperBody"
build_anim_state_machine

Build a whole state machine in one call

Creates the state machine, every state with its animation already wired to the state's output pose, every transition with its rule, the entry connection, and the link into the anim graph's output. It is one undo step. The whole request is validated before anything is created, so a bad state or a rule variable that is not a bool fails the call without leaving a half-built machine behind. Pass --dry-run to see the plan first.

ParameterTypeRequiredDescription
blueprint_pathstringYesAnimation Blueprint path
graphstringNoAnim graph to place the state machine in
namestringYesName for the state machine
statesstringYesJSON array: name, kind (state|conduit|alias), animation, aliased_states, pos_x, pos_y
transitionsstringNoJSON array: from, to, rule_variable, rule_inverted, crossfade_duration, bidirectional
entrystringNoState to enter first, defaults to the first listed
connect_to_outputboolNoWire the machine's pose into the anim graph output
dry_runboolNoReport the plan without changing anything
example
cfa build_anim_state_machine --blueprint-path /Game/Characters/Hero/ABP_Hero --name Locomotion \
  --states '[{"name":"Idle","animation":"/Game/Anims/Idle"},{"name":"Run","animation":"/Game/Anims/Run"},{"name":"Land","kind":"conduit"}]' \
  --transitions '[{"from":"Idle","to":"Run","rule_variable":"bIsMoving","crossfade_duration":0.15},{"from":"Run","to":"Idle","rule_variable":"bIsMoving","rule_inverted":true}]'
list_anim_notify_classes

List placeable notify and notify-state classes

Lists every concrete AnimNotify and AnimNotifyState class, the engine's own alongside notify Blueprints in your project, discovered from the class hierarchy so nothing is hardcoded. Each entry reports whether it is a point notify or a notify state, which decides whether add_anim_notify needs a duration.

ParameterTypeRequiredDescription
kindstringNonotify | notify_state | all
filterstringNoCase-insensitive substring filter on the class name
max_resultsintNoMaximum classes to return
example
cfa list_anim_notify_classes --kind notify --filter sound
create_anim_notify_class

Create a notify or notify-state Blueprint

Creates a notify Blueprint and places its event nodes so it is ready to fill in: Received_Notify for a point notify, or Received_NotifyBegin, Received_NotifyTick and Received_NotifyEnd for a notify state. Set --notify-name for the label shown on the timeline and --color for its bar colour. Author the event bodies with the blueprint graph commands, then place it with add_anim_notify.

ParameterTypeRequiredDescription
namestringYesAsset name
pathstringNoContent folder
kindstringNonotify (a point event) | notify_state (begin, tick, end)
parent_classstringNoParent class, defaults to AnimNotify or AnimNotifyState
notify_namestringNoLabel shown on the notify in the timeline
colorstringNoTimeline colour as R,G,B or R,G,B,A in 0-255
add_eventsboolNoPlace the event nodes in the graph
example
cfa create_anim_notify_class --name ANS_Invulnerable --path /Game/Characters/Notifies --kind notify_state --notify-name "Invulnerable" --color "255,80,0"
cfa create_anim_notify_class --name AN_Footstep --path /Game/Characters/Notifies --notify-name Footstep
add_anim_notify_track

Add a notify track to an animation

Adds a named notify track to an Anim Sequence or Montage. Tracks are how notifies are grouped in the timeline, and every notify command addresses one by name.

ParameterTypeRequiredDescription
animation_pathstringYesAnim Sequence or Montage path
trackstringYesTrack name
colorstringNoTrack colour as R,G,B or R,G,B,A in 0-255
example
cfa add_anim_notify_track --animation-path /Game/Anims/Attack01 --track Combat --color "0,160,255"
remove_anim_notify_track

Remove a notify track

Removes a notify track from an Anim Sequence or Montage.

ParameterTypeRequiredDescription
animation_pathstringYesAnim Sequence or Montage path
trackstringYesTrack name
example
cfa remove_anim_notify_track --animation-path /Game/Anims/Attack01 --track Combat
add_anim_notify

Place a notify or notify state on an animation

Places a notify at a time on a track. A notify state also needs --duration, and one with no duration never fires its end event, so it is refused. The time (and, for a state, the time plus duration) has to fit inside the animation. Use --properties to set fields on the created notify object in the same call, such as a sound on AnimNotify_PlaySound.

ParameterTypeRequiredDescription
animation_pathstringYesAnim Sequence or Montage path
notify_classstringYesNotify or notify-state class
timefloatNoTime in seconds
trackstringNoNotify track, defaults to the first
durationfloatNoDuration in seconds, required for a notify state
propertiesstringNoJSON object of properties to set on the created notify
example
cfa add_anim_notify --animation-path /Game/Anims/Attack01 --notify-class AnimNotify_PlaySound --time 0.25 --track Combat --properties '{"Sound":"/Game/Audio/Swing"}'
cfa add_anim_notify --animation-path /Game/Anims/Attack01 --notify-class /Game/Characters/Notifies/ANS_Invulnerable.ANS_Invulnerable_C --time 0.1 --duration 0.6
remove_anim_notify

Remove a notify from an animation

Removes a notify by index from get_anim_notifies, or every notify matching a name. The animation's cached notify data is refreshed afterwards, without which the timeline keeps drawing what was removed.

ParameterTypeRequiredDescription
animation_pathstringYesAnim Sequence or Montage path
indexintNoNotify index from get_anim_notifies
namestringNoRemove every notify with this name instead
example
cfa remove_anim_notify --animation-path /Game/Anims/Attack01 --index 2
get_anim_notifies

Read the notifies on an animation

Returns every notify with its index, name, track, time, class and (for a notify state) duration, plus the animation's length and track list. This is the verification counterpart to add_anim_notify.

ParameterTypeRequiredDescription
animation_pathstringYesAnim Sequence or Montage path
trackstringNoOnly notifies on this track
detailsboolNoAlso return each notify's own settings that differ from its class default
example
cfa get_anim_notifies --animation-path /Game/Anims/Attack01
add_anim_sync_marker

Place a sync marker on an Anim Sequence

Adds a sync marker, which is how a blend space or state machine keeps two animations in step, such as matching footfalls between a walk and a run. Sync markers live on Anim Sequences only; a Montage accepts the call and stores nothing, so a Montage is refused.

ParameterTypeRequiredDescription
animation_pathstringYesAnim Sequence path
namestringYesMarker name
timefloatNoTime in seconds
trackstringNoNotify track, defaults to the first
example
cfa add_anim_sync_marker --animation-path /Game/Anims/Walk_Fwd --name LeftFootDown --time 0.15 --track Sync
add_anim_curve

Add a curve to an animation

Adds a float, vector or transform curve. A float curve drives material and morph target values, or anything reading a curve by name from the anim instance. A metadata curve carries a name with no keys, used purely as a tag.

ParameterTypeRequiredDescription
animation_pathstringYesAnim Sequence or Montage path
namestringYesCurve name
curve_typestringNofloat | vector | transform
meta_databoolNoCreate it as a metadata curve
example
cfa add_anim_curve --animation-path /Game/Anims/Attack01 --name AttackWindow
set_anim_curve_key

Set a key on a float curve

Adds or replaces a key at a time on a float curve. The curve must already exist; add_anim_curve creates it. The time has to fall inside the animation.

ParameterTypeRequiredDescription
animation_pathstringYesAnim Sequence or Montage path
namestringYesFloat curve name
timefloatNoTime in seconds
valuefloatNoValue at that time
example
cfa set_anim_curve_key --animation-path /Game/Anims/Attack01 --name AttackWindow --time 0.3 --value 1.0
get_anim_curves

Read an animation's curves and sync markers

Returns the float, vector and transform curve names on the animation, and for an Anim Sequence its sync markers with their times.

ParameterTypeRequiredDescription
animation_pathstringYesAnim Sequence or Montage path
example
cfa get_anim_curves --animation-path /Game/Anims/Attack01
get_anim_slots

Read a skeleton's animation slots and groups

Returns every slot group on the skeleton with the slots in it. Montage slot tracks must name a slot that exists here, or the montage never plays through it.

ParameterTypeRequiredDescription
skeleton_pathstringYesSkeleton path, or an animation whose skeleton to use
example
cfa get_anim_slots --skeleton-path /Game/Characters/Hero/SK_Hero_Skeleton
add_anim_slot

Register an animation slot on a skeleton

Adds a slot and puts it in a group, which is what makes the name usable by montages and Slot nodes in an anim graph. The group must already exist; leave it empty for DefaultGroup.

ParameterTypeRequiredDescription
skeleton_pathstringYesSkeleton path, or an animation whose skeleton to use
slotstringYesSlot name
groupstringNoSlot group, defaults to DefaultGroup
example
cfa add_anim_slot --skeleton-path /Game/Characters/Hero/SK_Hero_Skeleton --slot UpperBody --group DefaultGroup
remove_anim_slot

Remove an animation slot from a skeleton

Removes the slot. Montages and Slot nodes still naming it stop playing through it, so check usage first.

ParameterTypeRequiredDescription
skeleton_pathstringYesSkeleton path, or an animation whose skeleton to use
slotstringYesSlot name
example
cfa remove_anim_slot --skeleton-path /Game/Characters/Hero/SK_Hero_Skeleton --slot UpperBody
rename_anim_slot

Rename an animation slot

Renames a slot on the skeleton, keeping it in its group.

ParameterTypeRequiredDescription
skeleton_pathstringYesSkeleton path, or an animation whose skeleton to use
slotstringYesExisting slot name
new_namestringYesNew slot name
example
cfa rename_anim_slot --skeleton-path /Game/Characters/Hero/SK_Hero_Skeleton --slot UpperBody --new-name TorsoOnly
add_anim_slot_group

Add a slot group to a skeleton

Adds a slot group. Groups decide how slots blend against each other, which is why additive slots live in their own group.

ParameterTypeRequiredDescription
skeleton_pathstringYesSkeleton path, or an animation whose skeleton to use
groupstringYesSlot group name
example
cfa add_anim_slot_group --skeleton-path /Game/Characters/Hero/SK_Hero_Skeleton --group CombatGroup
remove_anim_slot_group

Remove a slot group from a skeleton

Removes a slot group. DefaultGroup cannot be removed, since every slot needs a group to fall back to.

ParameterTypeRequiredDescription
skeleton_pathstringYesSkeleton path, or an animation whose skeleton to use
groupstringYesSlot group name
example
cfa remove_anim_slot_group --skeleton-path /Game/Characters/Hero/SK_Hero_Skeleton --group CombatGroup