CodeFizz
ToolsDemoDocsBlogRoadmapChangelogPricingCompareFAQ
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
  • The Editor Chat Panel
  • Image Generation (OpenRouter)

Walkthroughs

  • Build a Blueprint with AI
  • Author a Material Graph
  • Create a Niagara System
  • Rig a Character with AI
  • Build an Animation Blueprint
  • Build Sound with AI
  • Build a Modular Character
  • Grow a Tree with AI
  • Build a Gameplay Ability System
  • Generate a Landscape with AI
  • Work with World Partition

Reference

  • Reference
  • Audio
  • Mutable
  • Control Rig
  • Niagara
  • PCG
  • Procedural Vegetation
  • Materials
  • Gameplay Ability System
  • World Building
  • Behavior Trees
  • Environment Queries
  • StateTree
  • Sequencer
  • Level Actors
  • Project Settings
  • Blueprints
  • Blueprint Structs and Enums
  • Enhanced Input
  • Asset Management
  • Bulk Asset Ops
  • Data Assets
  • Object Properties
  • UMG Widgets
  • Data Tables
  • Curves
  • Retargeting
  • Skeletal Meshes
  • Animation
  • Chooser Tables
  • UAF (Animation Framework)
  • Console Commands
  • Revision Control and Asset Diff
  • Profiling
  • Image Generation
  • Core
  • Debug
  • Mass Entity (ECS)

Help

  • FAQ
  • Troubleshooting
  • For AI Agents
  • Fix: Plugin failed to load, module could not be loaded (GetLastError 126)
  • Fix: bridge unreachable, editor not responding
  • Fix: cfa targeted the wrong Unreal editor
  • Fix: the CodeFizz panel does not show Active
  • Fix: Unknown command, or plugin version mismatch after an update
DocsReferenceSequencer

Sequencer

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

Loading…
PreviousStateTreeNextLevel Actors
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
  • Blog
  • Demo
  • Roadmap
  • Changelog
  • Pricing
  • Compare
  • 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.

220 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_level_sequence

Create a new Level Sequence asset

ParameterTypeRequiredDescription
asset_pathstringYesContent path, e.g. /Game/Cine/Shot010
forceboolNoOverwrite if it already exists
fpsfloatNoDisplay rate FPS (e.g. 30, 24, 60)
display_rate_numeratorintNoExact display rate numerator
display_rate_denominatorintNoExact display rate denominator
open_level_sequence

Open a Level Sequence in the Sequencer editor

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
get_sequence_info

Read timeline settings + binding/track counts

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
set_playback_range

Set the playback range (frames or seconds)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
start_framefloatNoStart in display-rate frames
end_framefloatNoEnd in display-rate frames
duration_framesfloatNoDuration in frames (overrides end_frame)
start_secondsfloatNoStart in seconds
end_secondsfloatNoEnd in seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
set_display_rate

Set the display rate / FPS

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
fpsfloatNoFrames per second
numeratorintNoExact rate numerator
denominatorintNoExact rate denominator
set_tick_resolution

Set the tick resolution (migrating)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
fpsfloatNoTicks per second
numeratorintNoExact rate numerator
denominatorintNoExact rate denominator
add_possessable

Bind an existing level actor as a possessable

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
actor_namestringYesLabel or name of the level actor
add_spawnable_from_class

Add a spawnable binding from a class

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
class_namestringYesClass (short or /Script/...) e.g. PointLight
namestringNoOptional display name for the binding
add_spawnable_from_actor

Add a spawnable binding from a level actor template

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
actor_namestringYesLabel or name of the level actor
namestringNoOptional display name for the binding
list_bindings

List bindings (possessables + spawnables), filterable by type/name

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
type_filterstringNoSubstring filter on bound-object class (e.g. Light, SkeletalMesh, Camera)
name_filterstringNoSubstring filter on binding display name
max_resultsintNoMax bindings to return (0 = all)
rename_binding

Rename a binding by GUID

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID from list_bindings
namestringYesNew display name
remove_binding

Remove a binding by GUID

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID from list_bindings
convert_to_spawnable

Convert a possessable binding to spawnable

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID from list_bindings
convert_to_possessable

Convert a spawnable binding to possessable

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID from list_bindings
list_track_types

List available track classes (reflection)

ParameterTypeRequiredDescription
filterstringNoCase-insensitive substring on class name
max_resultsintNoMax results (0 = all)
list_tracks

List tracks on a binding (or root tracks)

eval_disabled is only present when the track is evaluation-disabled, and muted only when the track is muted, so an ordinary track carries neither. Mute is read-only for now, and reported on UE 5.7 and 5.8 only: 5.6 stores it as outliner node-path strings that need the Sequencer view model.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root/master tracks
filterstringNoSubstring filter on the track class or display name
max_resultsintNoMax tracks to return (0 = all); reports truncated
add_track

Add an object-bound track to a binding

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID from list_bindings
track_typestringYesTrack class, e.g. MovieScene3DTransformTrack
add_root_track

Add a root/master track (camera cut, audio...)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
track_typestringYesRoot track class, e.g. MovieSceneCameraCutTrack
remove_track

Remove a track by index

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
add_section

Add a section to a track

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
start_framefloatNoStart in display-rate frames
end_framefloatNoEnd in display-rate frames
start_secondsfloatNoStart in seconds (with use_seconds)
end_secondsfloatNoEnd in seconds (with use_seconds)
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
row_indexintNoRow index (default 0)
list_sections

List sections on a track (display-rate frames; reports ease_in/ease_out and blend_type when set)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
filterstringNoSubstring filter on the section class name
max_resultsintNoMax sections to return (0 = all); reports truncated
set_section_range

Set a section's range (frames or seconds)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
start_framefloatNoStart in display-rate frames; omit to keep the current start
end_framefloatNoEnd in display-rate frames; omit to keep the current end
start_secondsfloatNoStart in seconds (with use_seconds); omit to keep the current start
end_secondsfloatNoEnd in seconds (with use_seconds); omit to keep the current end
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
remove_section

Remove a section by index

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
set_track_property

Set a property on a track (universal writer)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
propertystringYesProperty name or path; [N] index, [-] append and [Key] map rows work (see set_object_property)
valuejsonYesNew value (JSON)
set_section_property

Set a property on a section (universal writer)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
propertystringYesProperty name or path; [N] index, [-] append and [Key] map rows work (see set_object_property)
valuejsonYesNew value (JSON)
list_channels

List a section's animatable channels

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
filterstringNoSubstring filter on the channel name
max_resultsintNoMax channels to return (0 = all); reports truncated
add_key

Add a keyframe to a channel

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
channelstringYesChannel name from list_channels, e.g. Location.X
valuejsonYesKey value (number/bool)
framefloatNoTime in display-rate frames
secondsfloatNoTime in seconds (with use_seconds)
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
interpolationstringNoauto | cubic | linear | constant (float/double)
list_keys

List keys on a channel (compact: time + value, one shared interp)

Each key is {time, value} in the requested time_unit. The interpolation shared by most keys is reported once as the result's interp field, and only the keys that differ from it carry their own interp; cubic is the engine default, so an all-cubic channel reports no interp at all. Defaults to 30 keys; page a baked curve with --offset. The result carries offset, total_matched and truncated.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
channelstringYesChannel name from list_channels; a property track's single channel also answers to Value
max_resultsintNoMax keys to return (default 30, 0 = all); reports truncated
offsetintNoKeys to skip before collecting, for paging
time_unitstringNoUnit the key times are reported in: frames (default) | ticks | seconds
remove_key

Remove a key from a channel by index or by frame

Give --frame (survives the index shift a prior removal causes) or --key-index. Frame wins when both are set.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
channelstringYesChannel name from list_channels
key_indexintNoKey index from list_keys (used when --frame is omitted)
framefloatNoDelete the key at this frame (alternative to key_index)
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoUnit for --frame: frames (default) | ticks | seconds
set_channel_default

Set or clear a channel's default value

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
channelstringYesChannel name from list_channels
valuejsonNoDefault value (number/bool); omit with --remove-default
remove_defaultboolNoClear the channel's default value instead of setting one
add_transform_keys

DEPRECATED: use add_keys. Key location/rotation/scale on a transform section in one call

Deprecated. It forwards to add_keys with the Location/Rotation/Scale channels; call add_keys directly for anything else.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID of the transform-track owner
track_indexintYes3D transform track index
section_indexintYesSection index
framefloatNoTime in display-rate frames
secondsfloatNoTime in seconds (with use_seconds)
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
interpolationstringNoauto | cubic | linear | constant
set_locationboolNoKey location_x/y/z
set_rotationboolNoKey rotation_x/y/z
set_scaleboolNoKey scale_x/y/z
location_xfloatNoLocation X
location_yfloatNoLocation Y
location_zfloatNoLocation Z
rotation_xfloatNoRotation Roll
rotation_yfloatNoRotation Pitch
rotation_zfloatNoRotation Yaw
scale_xfloatNoScale X
scale_yfloatNoScale Y
scale_zfloatNoScale Z
create_camera

Spawn a cine camera and bind it in the sequence

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
namestringNoOptional binding display name
spawnableboolNoCreate as spawnable instead of possessable
add_camera_cut

Add a camera cut to the camera (auto-creates the cut track)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
camera_binding_guidstringYesCamera binding GUID from create_camera
start_framefloatNoCut start in display-rate frames
start_secondsfloatNoCut start in seconds (with use_seconds)
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
render_sequence

Render a Level Sequence to disk via Movie Render Queue (async)

Every override is checked before a render starts: width and height go together, and a bad format or time_unit, or an override the job cannot take, fails with nothing rendered. A Movie Graph job refuses the preset-only overrides (output_dir, format, width/height, fps, file_name_format, use_custom_range, override_existing); a 5.8 Basic-mode queue job is refused.

ParameterTypeRequiredDescription
asset_pathstringNoPath to the Level Sequence
output_dirstringNoAbsolute output directory
formatstringNopng (default), jpg, bmp, exr, prores
widthintNoOutput width px (0 = default)
heightintNoOutput height px (0 = default)
fpsfloatNoCustom output FPS (0 = sequence display rate)
file_name_formatstringNoe.g. {sequence_name}.{frame_number}
use_custom_rangeboolNoRestrict to start_frame..end_frame
start_frameintNoCustom start frame (display rate)
end_frameintNoCustom end frame (display rate)
time_unitstringNoUnit of start_frame/end_frame: frames (default) | ticks | seconds
override_existingboolNoOverwrite existing output. Only sent when passed: a job built from asset_path defaults to true, a queue job or preset keeps its own setting
job_indexintNoRender this Movie Render Queue job (from list_render_queue) instead of building one
preset_pathstringNoMoviePipelinePrimaryConfig asset to seed the job's configuration
render_status

Report Movie Render Queue progress + written files

Lists every render job started this session with its job_id, started/finished state and output file count. Pass --job-id (returned by render_sequence) to get that job's full output file list.

ParameterTypeRequiredDescription
job_idstringNoJob id from render_sequence; omit to list all jobs
example
cfa render_status
cfa render_status --job-id 3f1c9a2b
set_key_value

Set an existing key's value (float/double channel)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index
section_indexintYesSection index
channelstringYesChannel name
key_indexintYesKey index from list_keys
valuefloatYesNew key value
set_key_time

Move an existing key in time

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index
section_indexintYesSection index
channelstringYesChannel name
key_indexintYesKey index
framefloatNoNew time in display-rate frames
secondsfloatNoNew time in seconds (with use_seconds)
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
set_key_interpolation

Set a key's interpolation + tangent mode

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index
section_indexintYesSection index
channelstringYesChannel name
key_indexintYesKey index
interpolationstringYescubic, linear, constant
tangent_modestringNoauto, user, break, smartauto
set_key_tangent

Set a key's tangents (arrive/leave + weights)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index
section_indexintYesSection index
channelstringYesChannel name
key_indexintYesKey index
arrive_tangentfloatNoArrive tangent slope
leave_tangentfloatNoLeave tangent slope
arrive_weightfloatNoArrive tangent weight
leave_weightfloatNoLeave tangent weight
weight_modestringNonone, arrive, leave, both
set_channel_extrapolation

Set channel pre/post-infinity extrapolation (looping)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index
section_indexintYesSection index
channelstringYesChannel name
prestringNocycle, cycleoffset, oscillate, linear, constant, none
poststringNocycle, cycleoffset, oscillate, linear, constant, none
copy_keys

Read a channel's keys into a portable payload

Returns {time, value, interp} keys in the requested time_unit. Feed the keys array to paste_keys.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
channelstringYesChannel name from list_channels
start_framefloatNoFirst frame to copy (inclusive); omit for all
end_framefloatNoLast frame to copy (inclusive); omit for all
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
max_resultsintNoMax keys to return (0 = all)
paste_keys

Write a copy_keys payload onto a channel at an offset

keys is the array from copy_keys. Refuses a type-incompatible paste (float payload onto a bool channel).

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
channelstringYesDestination channel name
keysjsonYesArray of {time, value, interp} from copy_keys
channel_kindstringNoSource kind from copy_keys, for the compatibility check
frame_offsetfloatNoFrames added to every pasted key time
modestringNomerge (default) | replace (clear the channel first)
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
offset_keys

Shift every key on a channel (or section) by a delta

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
channelstringNoChannel name; omit to offset every channel
deltafloatYesSigned amount to shift keys by
move_sectionboolNoAlso move the section bounds by the delta
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
retime_keys

Move keys explicitly, or scale a range about a pivot

Give key_frames + new_frames to remap named keys, or scale + pivot to stretch every key.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
channelstringYesChannel name from list_channels
key_framesjsonNoSource frames to move (array); pairs with new_frames
new_framesjsonNoDestination frames (array); same length as key_frames
scalefloatNoScale factor about pivot (when key_frames is omitted)
pivotfloatNoPivot frame the scale is applied about
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
reduce_keys

Key reduction / curve optimise within a tolerance

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
channelstringNoChannel name; omit to reduce every channel
tolerancefloatNoMax deviation when dropping a key (default 0.001)
start_framefloatNoFirst frame of the range; omit for whole channel
end_framefloatNoLast frame of the range; omit for whole channel
auto_set_interpolationboolNoRecompute interpolation after reduction
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
tween_keys

Blend selected keys with one of the editor's blend tools

Runs the editor's own blend maths on the keys at the given frames. Keys next to each other blend as one range, against the key before and the key after that range. mode: neighbor (toward the key before for a negative amount, after for a positive one), tween (between the two outer keys; 0 is halfway), push_pull (toward or away from the straight line between the outer keys), relative (shift the whole range), ease (as neighbor, on an S curve), smooth_rough (average out or sharpen against each key's own neighbours).

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
channelstringYesChannel name from list_channels
framesjsonYesFrames of the keys to tween (array)
amountfloatYesBlend -1..1
modestringNoneighbor (default) | tween | push_pull | relative | ease | smooth_rough
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
key_all_at_frame

Key every channel of a binding at one frame (current value)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID whose tracks are keyed
framefloatYesFrame to key every channel at
channel_filterstringNoSubstring filter on channel name; omit for all
interpolationstringNocubic (default) | linear | constant
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
bake_channel_keys

Sample a channel per frame over a range and write keys

With write false the samples are returned instead of written. Sampling steps one display frame.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
channelstringYesChannel name from list_channels
start_framefloatYesFirst frame to sample (inclusive)
end_framefloatYesLast frame to sample (inclusive)
writeboolNoWrite samples as keys (default true); false returns them
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
max_resultsintNoMax samples to return when write is false (0 = all)
set_track_mute

Mute or unmute a track or one of its rows (headless)

Writes the outliner mute marker (a decoration on 5.7+, a node-path string on 5.6, echoed as node_path) and mirrors it into the saved eval-disabled flag, which is what muting in the Sequencer produces.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index from list_tracks
row_indexintNoRow index to target one row; omit for the whole track
mutedboolYestrue to mute, false to unmute
set_track_solo

Solo or unsolo a track or one of its rows (headless)

Writes the outliner solo marker. The other tracks are silenced by the Sequencer while it evaluates; use set_track_eval_disabled for a saved, headless disable.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index from list_tracks
row_indexintNoRow index to target one row; omit for the whole track
soloedboolYestrue to solo, false to unsolo
set_track_eval_disabled

Disable or enable evaluation of a track or row (saved; not mute)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index from list_tracks
row_indexintNoRow index to target one row; omit for the whole track
disabledboolYestrue to disable evaluation
list_outliner_state

Mute/solo/eval-disabled/colour/sort/lock state per binding, track, row and section

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
filterstringNoSubstring filter on binding name, track class or display name
max_resultsintNoMax tracks to return (0 = all)
set_section_flags

Set a section's active, locked, row, colour, pre-roll and post-roll

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
activeboolNoActive flag
lockedboolNoLocked flag (unlock is applied first, lock last)
row_indexintNoMove the section to this row
colorjsonNoColour: [r,g,b(,a)] 0-255 or 0-1, {r,g,b,a}, or (R=,G=,B=,A=)
pre_roll_framesintNoPre-roll in frames
post_roll_framesintNoPost-roll in frames
set_track_color

Set a track's colour tint

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index from list_tracks
colorjsonYesColour: [r,g,b(,a)] 0-255 or 0-1, {r,g,b,a}, or (R=,G=,B=,A=)
set_track_display_name

Rename a track or one of its rows

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index from list_tracks
row_indexintNoRow index for a per-row name; omit for the track name
namestringYesNew display name
set_track_sorting

Set a track's sort order among its siblings

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index from list_tracks
orderintYesSort order
set_binding_sorting

Set a binding's sort order among its siblings

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID from list_bindings
orderintYesSort order
add_child_folder

Create a folder nested under another folder

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
parent_folder_pathstringYesParent folder path (Parent/Child) from list_sequence_folders
namestringYesNew folder name (made unique among siblings)
colorjsonNoOptional colour
rename_sequence_folder

Rename a sequence folder

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
folder_pathstringYesFolder path (Parent/Child) from list_sequence_folders
namestringYesNew folder name
set_folder_color

Set a sequence folder's colour

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
folder_pathstringYesFolder path (Parent/Child)
colorjsonYesColour: [r,g,b(,a)] 0-255 or 0-1, {r,g,b,a}, or (R=,G=,B=,A=)
remove_from_folder

Unlink a binding or root track from a folder

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
folder_pathstringYesFolder path (Parent/Child)
binding_guidstringNoBinding GUID to unlink
track_indexintNoRoot track index to unlink
remove_sequence_folder

Remove a folder (its contents return to the root)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
folder_pathstringYesFolder path (Parent/Child)
recursiveboolNoAllow removing a folder that still holds items
sequencer_select

Set the Sequencer selection (window-gated)

Opens the sequence in the Sequencer if needed. Channel and key selection are not exposed.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
kindstringYestracks | sections | bindings | folders | none
binding_guidstringNoBinding GUID; omit for a root track
track_indexintNoSingle track (tracks) or the owning track (sections)
track_indicesjsonNoTrack indices array (tracks)
section_indicesjsonNoSection indices array (sections)
binding_guidsjsonNoBinding GUIDs array (bindings)
folder_pathsjsonNoFolder paths array (folders)
sequencer_get_selection

Read the Sequencer selection (window-gated)

ParameterTypeRequiredDescription
asset_pathstringNoLevel Sequence to open first; omit to read whatever is open
max_resultsintNoMax items per category (0 = all)
sequencer_playback

Drive the open Sequencer: play, pause, play_to, speed, loop, lock (window-gated)

ParameterTypeRequiredDescription
asset_pathstringNoLevel Sequence to open first; omit to drive whatever is open
actionstringYesplay | pause | play_to | set_speed | set_loop | force_update | lock | unlock
framefloatNoplay_to: target frame
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
speedfloatNoset_speed: playback speed multiplier
loop_modestringNoset_loop: none | loop | selection_range
sequencer_window_status

Current/focused sequence, playing, speed, loop, lock and camera-cut lock of the open Sequencer

ParameterTypeRequiredDescription
asset_pathstringNoLevel Sequence to open first; omit to report whatever is open
add_subsequence_on_row

Add a sub-sequence on a given row of the existing shot track

Reuses the first cinematic shot track (else sub track); creates a shot track only when none exists.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
sub_sequence_pathstringYesLevel Sequence to embed
row_indexintYesRow to place the section on
start_framefloatNoStart time
start_secondsfloatNoStart in seconds (with use_seconds)
duration_framesfloatNoDuration in time_unit (0 = sub length)
hierarchical_biasintNoHierarchical bias (omit = unchanged/default)
time_scalefloatNoFixed play rate, e.g. 0.5 or 2
can_loopboolNoLoop the sub-sequence inside its section
start_offsetfloatNoStart offset into the sub-sequence
end_offsetfloatNoEnd offset (looping)
first_loop_offsetfloatNoFirst-loop start offset (looping)
shot_namestringNoCinematic shot display name
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
set_subsequence_params

Set a sub-section's bias, time scale, loop, offsets, sequence or shot name

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
track_indexintYesRoot track index
section_indexintYesSection index
binding_guidstringNoBinding GUID when the sub track is bound
sub_sequence_pathstringNoReplace the embedded sequence
hierarchical_biasintNoHierarchical bias (omit = unchanged/default)
time_scalefloatNoFixed play rate, e.g. 0.5 or 2
can_loopboolNoLoop the sub-sequence inside its section
start_offsetfloatNoStart offset into the sub-sequence
end_offsetfloatNoEnd offset (looping)
first_loop_offsetfloatNoFirst-loop start offset (looping)
shot_namestringNoCinematic shot display name
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
set_shot_display_name

Rename a cinematic shot section

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
track_indexintYesRoot track index
section_indexintYesSection index
namestringYesNew shot name
list_sub_sequences

Sub-sequence/shot sections with ranges, bias, time scale and loop settings

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
recurseboolNoRecurse into the embedded sequences
filterstringNoSubstring filter on shot name or sub-sequence path
max_resultsintNoMax entries (0 = all)
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
list_camera_cuts

Camera cuts with binding, range, ease, lock-previous, plus track blend settings and gaps

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
filterstringNoSubstring filter on camera name or guid
max_resultsintNoMax cuts (0 = all)
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
set_camera_cut

Retarget, retime, ease or lock-previous one camera cut

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
section_indexintYesCut section index from list_camera_cuts
camera_binding_guidstringNoCamera binding to cut to
start_framefloatNoNew start
end_framefloatNoNew end (exclusive)
ease_in_framesfloatNoBlend in length (needs track can_blend)
ease_out_framesfloatNoBlend out length
lock_previous_cameraboolNoLock the previous camera during the blend
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
set_camera_cut_track

Camera cut track settings: can_blend, auto-manage sections, rearrange

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
can_blendboolNoAllow blending between cuts
auto_manage_sectionsboolNoLet the track auto-arrange cut ranges
rearrangeboolNoRearrange all cuts now
remove_camera_cut

Remove one camera cut

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
section_indexintYesCut section index
set_spawnable_template

Edit the spawnable's template actor (any property, any component)

Works on the 5.6+ custom-binding template and on legacy spawnables. Changing the actor class is not supported. A property that cannot be set fails the whole call and nothing changes.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesSpawnable binding GUID
propertystringNoProperty name or dotted path on the template (pair with value)
valuejsonNoValue for property
component_namestringNoSet on this component of the template actor instead
propertiesjsonNoObject of property -> value applied together
set_spawnable_ownership

Spawn ownership, continuous respawn and net-addressable name of a spawnable

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesSpawnable binding GUID
ownershipstringNoinner_sequence | root_sequence | external
continuously_respawnboolNoRespawn continuously
net_addressableboolNoGive the spawned actor a net-addressable name
set_custom_binding

Convert a binding to a custom binding class (headless)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding to convert
binding_classstringYese.g. MovieSceneSpawnableActorBinding, MovieSceneReplaceableActorBinding, MovieSceneReplaceableDirectorBlueprintBinding
binding_indexintNoBinding index (default 0)
list_custom_bindings

Custom binding class and properties per binding

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_classstringNoClass-name substring filter
filterstringNoSubstring filter on name or class
max_resultsintNoMax entries (0 = all)
list_binding_tags

Every binding tag and the bindings it marks

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
filterstringNoSubstring filter on tag
max_resultsintNoMax tags (0 = all)
remove_binding_tag

Unregister a binding tag sequence-wide

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
tagstringYesTag name from list_binding_tags
repair_bindings

Find (and optionally prune) possessable references that no longer resolve

Returns findings with a verdict. Repair removes invalid object references and fixes up the possessed class; it never deletes a binding.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoOnly this possessable
dry_runboolNoReport only (default true); pass --dry-run=false to repair
get_director_blueprint

Report the sequence's director Blueprint and its functions

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
createboolNoCreate the director Blueprint when missing
set_condition

Put a condition on a section, track or track row (native on 5.6/5.7/5.8)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
scopestringYessection | track | track_row
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index
section_indexintNoSection index (scope section)
row_indexintNoRow index (scope track_row)
condition_classstringYese.g. MovieScenePlatformCondition, MovieSceneScalabilityCondition, MovieSceneGroupCondition, MovieSceneDirectorBlueprintCondition
propertiesjsonNoObject of condition property -> value
invertboolNoInvert the condition
get_condition

Read the condition on a section, track or track row

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
scopestringYessection | track | track_row
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index
section_indexintNoSection index (scope section)
row_indexintNoRow index (scope track_row)
clear_condition

Remove the condition from a section, track or track row

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
scopestringYessection | track | track_row
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index
section_indexintNoSection index (scope section)
row_indexintNoRow index (scope track_row)
add_event_key

Key an event bound to a director-Blueprint endpoint, with payload values

Only trigger sections carry per-frame keys. Creates the director Blueprint endpoint headlessly through the Sequencer scripting library.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesEvent track index
section_indexintYesEvent trigger section index
function_namestringYesUFUNCTION name on the target class (e.g. SetActorHiddenInGame)
bound_objectstringNoLevel actor label/name to call on; default: the section's bound object, else the director Blueprint
framefloatYesFrame to key at
secondsfloatNoTime in seconds (with use_seconds)
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
payloadjsonNoObject of pin name -> value, one per function parameter
call_in_editorboolNoEndpoint callable in editor (default true)
compileboolNoCompile the director Blueprint afterwards (default true)
copy_sections

Copy sections into a portable payload (also lands on the OS clipboard)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index
section_indicesjsonNoSection indices array (default all)
paste_sections

Paste a copy_sections payload onto a track at a frame

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
payloadstringYesText from copy_sections
binding_guidstringNoBinding GUID; omit for a root track
track_indexintNoTarget track index
track_indicesjsonNoTarget track indices array (with row_indices)
row_indexintNoRow to paste onto (default 0)
row_indicesjsonNoRow per target track
framefloatNoPaste time
time_unitstringNoframes (default) | ticks | seconds
use_secondsboolNoDEPRECATED alias for --time-unit seconds
copy_tracks

Copy tracks into a portable payload (also lands on the OS clipboard)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for a root track
track_indicesjsonNoTrack indices array (default all of the binding / root)
paste_tracks

Paste a copy_tracks payload into a sequence (bound tracks need a target binding)

Bound tracks paste only onto the given binding and replace a same-class, same-name track there; root and camera-cut tracks go to the target root.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
payloadstringYesText from copy_tracks
binding_guidstringNoTarget binding for bound tracks; omit for root tracks
parent_folder_pathstringNoFolder (Parent/Child) to put pasted root tracks in
add_dynamic_binding_resolver

Create a director-Blueprint resolver function for a binding (dynamic binding)

Converts the binding to a director-Blueprint custom binding when needed, creates the function endpoint with Call In Editor set, and wires it as the resolver.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesPossessable binding GUID
function_namestringNoFunction name (default <BindingName>_DynamicBinding)
binding_indexintNoBinding reference index (default 0)
spawnableboolNoUse the spawnable director-Blueprint binding class
with_resolve_paramsboolNoAdd the ResolveParams input pin (default true)
payloadjsonNoObject of pin name -> value
compileboolNoCompile the director Blueprint afterwards (default true)
set_dynamic_binding

Point a binding's dynamic binding at an existing director-Blueprint function

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID (must carry a director-Blueprint binding)
binding_indexintNoBinding reference index (default 0)
function_namestringYesExisting function graph in the director Blueprint
resolve_params_pinstringNoInput pin of type MovieSceneDynamicBindingResolveParams to use
payloadjsonNoObject of pin name -> value
compileboolNoCompile afterwards (default true)
add_condition_endpoint

Put a director-Blueprint condition on a section, track or row and create its function

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
scopestringYessection | track | track_row
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index
section_indexintNoSection index (scope section)
row_indexintNoRow index (scope track_row)
function_namestringNoFunction name (default EvaluateCondition)
invertboolNoInvert the condition
compileboolNoCompile afterwards (default true)
export_sequence_fbx

Export a Level Sequence to FBX (headless)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
output_pathstringYesFBX file path; relative paths land under Saved/CodeFizzEditorAgent/Exports
root_sequence_pathstringNoRoot sequence when exporting a sub-sequence
binding_guidsjsonNoBinding GUIDs array (default all)
track_indicesjsonNoRoot track indices array to include
optionsjsonNoObject of UFbxExportOption properties (engine defaults when omitted)
import_sequence_fbx

Import an FBX onto a Level Sequence's bindings (headless, no dialog)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
input_pathstringYesFBX file path
binding_guidsjsonNoBinding GUIDs array (default all)
settingsjsonNoObject of import settings: bMatchByNameOnly, bForceFrontXAxis, bConvertSceneUnit, ImportUniformScale, bCreateCameras, bReplaceTransformTrack, bReduceKeys, ReduceKeysTolerance
export_anim_sequence

Bake a binding's animation to an AnimSequence asset

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID
anim_sequence_pathstringYesAsset path for the AnimSequence
create_linkboolNoLink the AnimSequence to the sequence afterwards
overwriteboolNoReplace an existing asset
frame_ratestringNoTarget rate, e.g. 30 or 30000/1001 (default: the sequence display rate)
optionsjsonNoObject of UAnimSeqExportOption properties (bExportMorphTargets, bRecordInWorldSpace, WarmUpFrames...)
export_anim_sequence_async

Bake to an AnimSequence after a delay (5.7+), letting spawnables settle first

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID
anim_sequence_pathstringYesAsset path for the AnimSequence
create_linkboolNoLink afterwards
overwriteboolNoReplace an existing asset
frame_ratestringNoTarget rate (default: display rate)
delay_secondsfloatNoSeconds to wait before exporting (0 = export now)
optionsjsonNoObject of UAnimSeqExportOption properties (bExportMorphTargets, bRecordInWorldSpace, WarmUpFrames...)
link_anim_sequence

Link an existing AnimSequence to a binding

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID
anim_sequence_pathstringYesAnimSequence asset path
optionsjsonNoObject of UAnimSeqExportOption properties (bExportMorphTargets, bRecordInWorldSpace, WarmUpFrames...)
list_linked_anim_sequences

Linked AnimSequences of a sequence, or the sequence an AnimSequence links to

ParameterTypeRequiredDescription
asset_pathstringNoLevel Sequence path (one of asset_path / anim_sequence_path)
anim_sequence_pathstringNoAnimSequence asset path
filterstringNoSubstring filter on paths
max_resultsintNoMax links (0 = all)
clear_linked_anim_sequences

Drop every AnimSequence link from a sequence

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
import_fbx_to_control_rig

Import an FBX onto a binding's Control Rig track channels

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID
input_pathstringYesFBX file path
control_namesjsonNoControl names array to import onto (default all)
settingsjsonNoObject of UMovieSceneUserImportFBXControlRigSettings properties
export_fbx_from_control_rig

Export a binding's Control Rig track channels to FBX

Uses the rig track's section-to-key (engine API); the reply reports which track and section were exported.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID
output_pathstringYesFBX file path
control_namesjsonNoControl names array to export (default all)
settingsjsonNoObject of UMovieSceneUserExportFBXControlRigSettings properties
list_render_queue

Jobs in the Movie Render Queue with config mode, presets and shots

ParameterTypeRequiredDescription
filterstringNoSubstring filter on job name, sequence or map
max_resultsintNoMax jobs (0 = all)
add_render_job

Add a render job for a Level Sequence to the Movie Render Queue

ParameterTypeRequiredDescription
asset_pathstringYesLevel Sequence path
mapstringNoMap asset path (default: the open editor world)
job_namestringNoJob name
authorstringNoAuthor
commentstringNoComment
enabledboolNoEnabled (default true)
preset_pathstringNoMoviePipelinePrimaryConfig asset to apply
remove_render_job

Remove a job from the Movie Render Queue

ParameterTypeRequiredDescription
job_indexintYesJob position from list_render_queue
duplicate_render_job

Duplicate a job in the Movie Render Queue

ParameterTypeRequiredDescription
job_indexintYesJob position from list_render_queue
set_render_job_config

Assign a preset, a graph preset, a config mode or setting values to a job

Settings are tried on a throwaway instance first: an unknown key, a bad value, an abstract or shot-only setting class, or a config_mode that cannot apply fails before the job changes.

ParameterTypeRequiredDescription
job_indexintYesJob position from list_render_queue
preset_pathstringNoMoviePipelinePrimaryConfig asset
graph_preset_pathstringNoMovieGraphConfig asset
config_modestringNo5.8 only: preset | graph | basic
setting_classstringNoSetting class to edit, e.g. MoviePipelineOutputSetting
settingsjsonNoObject of setting properties -> value (needs setting_class)
set_render_shot

Enable/disable a shot or give it an override config or graph preset

ParameterTypeRequiredDescription
job_indexintYesJob position from list_render_queue
shot_indexintYesShot position in the job
enabledboolNoRender this shot
shot_config_pathstringNoMoviePipelineShotConfig asset
graph_preset_pathstringNoMovieGraphConfig asset
save_render_queue

Save the Movie Render Queue as an asset and/or a manifest file

ParameterTypeRequiredDescription
asset_pathstringNoMoviePipelineQueue asset path to create or overwrite
manifest_pathstringNoManifest (.utxt) file path
load_render_queue

Replace the Movie Render Queue from a queue asset or a manifest file

ParameterTypeRequiredDescription
asset_pathstringNoMoviePipelineQueue asset path
manifest_pathstringNoManifest (.utxt) file path
cancel_render

Cancel the active render (editor queue and CLI-started renders)

list_render_presets

Primary, shot and graph render config assets in the project

ParameterTypeRequiredDescription
kindstringNoprimary | shot | graph | all (default all)
filterstringNoSubstring filter on path
max_resultsintNoMax presets (0 = all)
start_take_recording

Start a headless Take Recorder take (the Sequencer window is not opened)

Needs the Takes plugin enabled in the project.

ParameterTypeRequiredDescription
actorsjsonNoLevel actor labels/names array to record (or use add_take_source first)
slatestringNoSlate name (default Scene_1)
take_numberintNoTake number (0 = next free)
countdownfloatNoCountdown seconds (default 0)
asset_pathstringNoExisting Level Sequence to record into; omit to record a new take asset
reduce_keysboolNoReduce keys on the recorded actors
stop_take_recording

Stop the active take and report the recorded sequence

cancel_take_recording

Cancel the active take

take_recorder_status

Take Recorder plugin/enabled/recording state and the pending sources

add_take_source

Add actor (or other) sources to the pending take

ParameterTypeRequiredDescription
actorsjsonNoLevel actor labels/names array
source_classstringNoSource class, e.g. TakeRecorderActorSource, TakeRecorderAudioInputSource
reduce_keysboolNoReduce keys for actor sources
list_take_sources

Pending take sources

ParameterTypeRequiredDescription
filterstringNoSubstring filter on class or target
max_resultsintNoMax sources (0 = all)
list_takes

Recorded takes for a slate

ParameterTypeRequiredDescription
slatestringYesSlate name
take_numberintNoSpecific take (0 = all)
filterstringNoSubstring filter on path
max_resultsintNoMax takes (0 = all)
set_section_easing

Set section ease-in/out (fade) length

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index
section_indexintYesSection index
ease_in_framesfloatNoEase-in length in time_unit units (0 = none)
ease_out_framesfloatNoEase-out length in time_unit units (0 = none)
time_unitstringNoUnit of the ease lengths: frames (default) | ticks | seconds
set_section_blend_type

Set section blend type (additive layering)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for root track
track_indexintYesTrack index
section_indexintYesSection index
blend_typestringYesabsolute, additive, relative, additivefrombase
add_audio

Add a sound on a master audio track

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
sound_pathstringYesPath to a Sound asset
start_framefloatNoStart in display-rate frames
start_secondsfloatNoStart in seconds (with use_seconds)
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
add_subsequence

Add a sub-sequence (shot) on a cinematic shot track

ParameterTypeRequiredDescription
asset_pathstringYesPath to the master Level Sequence
sub_sequence_pathstringYesPath to the sub Level Sequence
start_framefloatNoStart in display-rate frames
start_secondsfloatNoStart in seconds (with use_seconds)
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
duration_framesfloatNoDuration in frames (0 = sub-sequence length)
row_indexintNoRow to place the section on (default 0)
hierarchical_biasintNoHierarchical bias (omit = unchanged/default)
time_scalefloatNoFixed play rate, e.g. 0.5 or 2
can_loopboolNoLoop the sub-sequence inside its section
start_offsetfloatNoStart offset into the sub-sequence
end_offsetfloatNoEnd offset (looping)
first_loop_offsetfloatNoFirst-loop start offset (looping)
shot_namestringNoCinematic shot display name
add_event_section

Add an event track section (repeater/trigger)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for a root event track
event_typestringNorepeater (default) or trigger
add_timewarp

Add a time-warp track with a fixed play rate

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
play_ratefloatNoFixed play rate (0.5=half, 2.0=double)
add_marked_frame

Add a timeline marker

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
framefloatNoMarker time in display-rate frames
secondsfloatNoMarker time in seconds (with use_seconds)
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
labelstringNoMarker label
commentstringNoMarker comment
list_marked_frames

List timeline markers

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
filterstringNoSubstring filter on the marker label or comment
max_resultsintNoMax markers to return (0 = all); reports truncated
time_unitstringNoUnit echoed in the result: frames (default) | ticks | seconds
remove_marked_frame

Remove a timeline marker by index

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
indexintYesMarker index from list_marked_frames
add_folder

Add a root folder (organization)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
namestringYesFolder name
color_rintNoFolder color R 0-255
color_gintNoFolder color G 0-255
color_bintNoFolder color B 0-255
parent_folder_pathstringNoParent folder path (Parent/Child) to nest under; omit for a root folder
list_sequence_folders

List root folders

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
filterstringNoSubstring filter on the folder name
max_resultsintNoMax folders to return (0 = all); reports truncated
add_to_folder

Add a binding or root track to a folder

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
folder_namestringYesTarget folder name
binding_guidstringNoBinding GUID to add
track_indexintNoRoot track index to add (if no binding_guid)
set_evaluation_type

Set evaluation type (framelocked/withsubframes)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
evaluation_typestringYesframelocked or withsubframes
tag_binding

Add a tag to a binding

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID
tagstringYesTag name
untag_binding

Remove a tag from a binding

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID
tagstringYesTag name
get_binding

Deep report for one binding: tracks, sections, channels (filterable), optional keys

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID from list_bindings
channel_filterstringNoSubstring filter on channel names (e.g. Location, Location.X, Intensity)
include_keysboolNoInclude each channel's keyframes (compact: time + value); each channel reports the interpolation shared by most of its keys once as interp (omitted when cubic) and only differing keys carry their own interp; keyless channels are listed by name under empty_channels
max_resultsintNoMax channels across all tracks/sections (0 = all); reports truncated
max_keys_per_channelintNoMax keys per channel with --include-keys (default 3, 0 = all); a shared 30-key budget caps the whole reply. Each channel reports key_count and truncated, the reply reports keys_truncated
evaluate_channels

Evaluate channel value(s) at a frame/time (e.g. Location.X at frame 500)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
channel_filterstringNoSubstring filter on channel names (empty = all)
framefloatNoEvaluation time in display-rate frames
secondsfloatNoEvaluation time in seconds (with use_seconds)
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
set_playhead

Move the Sequencer timeline bar to a frame/time (sequence must be open)

ParameterTypeRequiredDescription
asset_pathstringNoSequence expected to be open (optional check)
framefloatNoTime in frames (local = display rate, global = tick)
secondsfloatNoTime in seconds (with use_seconds)
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
spacestringNolocal (display rate, default) or global (tick)
get_playhead

Read the Sequencer playhead position (sequence must be open)

ParameterTypeRequiredDescription
asset_pathstringNoSequence expected to be open (optional check)
time_unitstringNoframes (display rate, default) | ticks | seconds
set_playback_state

Play or pause the open Sequencer

ParameterTypeRequiredDescription
statestringYesplay or pause
list_animatable_properties

List keyable properties of a binding's object/component (discover what you can animate)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding whose object's keyable properties to list
class_namestringNoInspect a class directly (e.g. PointLightComponent)
component_namestringNoFor an actor binding, inspect this owned component's class
filterstringNoSubstring filter on property name/type
max_resultsintNoMax properties (0 = all)
include_componentsboolNoAlso list the actor's components + keyable counts
possess_component

Possess an actor's component as a child binding (needed to animate LightColor/Intensity)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID of the owning actor
component_namestringNoComponent object name (e.g. LightComponent0)
component_classstringNoComponent class to match if name omitted (e.g. PointLightComponent)
add_property_track

Add a property track bound to a property (auto-picks track class); enables color/intensity/etc.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID (possess the COMPONENT for component props)
property_namestringYesProperty leaf name, e.g. LightColor, Intensity
property_pathstringNoPath from the bound object (defaults to property_name)
track_typestringNoTrack class override; omit to auto-pick from property type
add_sectionboolNoAlso add a section over the playback range (default true)
add_keys

Batch-add keys to multiple channels of a section in ONE call

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID; omit for a root track
track_indexintYesTrack index from list_tracks
section_indexintYesSection index from list_sections
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
interpolationstringNoDefault interp: auto, linear, constant
channelsjsonYes[{"channel":"Color.R"|0,"keys":[{"time":f,"value":v,"interp":"auto"}]}] (color = linear 0-1)
validate_sequence

Verdict for a whole sequence: broken bindings, dead sections, missing assets, compile state

Returns verdict = pass | pass_with_warnings | fail plus a findings array (code, severity, message, target). Errors (fail): broken_possessable, null_spawnable_template, missing_subsequence, missing_control_rig_class, compiled_data_invalid. Warnings (pass_with_warnings): empty_track, section_outside_playback_range, overlapping_sections, camera_cut_gap, unbound_event_endpoint, compiled_data_dirty. counts_by_code is always complete; only the findings list is capped by --max-results.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
checksstringlistNoSubset of: bindings, spawnables, tracks, sections, camera_cuts, subsequences, control_rig, events, compiled (default all)
recurse_subsequencesboolNoAlso validate the sequences referenced by sub-sequence sections
filterstringNoSubstring filter on the finding code, message or target
max_resultsintNoMax findings to return (0 = all); reports truncated
example
cfa validate_sequence /Game/Cine/Shot010
cfa validate_sequence /Game/Cine/Master --recurse-subsequences --checks bindings,sections
evaluate_sequence

Scrub a headless player to a frame and read back what the bindings actually evaluate to

Creates a transient Level Sequence player in the editor world, scrubs it to the requested time, and reports each bound object's name, class, world transform and any properties you ask for. The player, its actor and any spawned spawnables are destroyed before the call returns, so nothing is left in the level or the undo buffer. This is how you prove a key moved something: evaluate the same binding at two frames and compare.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
framefloatYesTime to scrub to, in time_unit units
time_unitstringNoframes (display rate, default) | ticks | seconds
binding_guidstringlistNoBindings to read (repeatable); omit for all bindings
propertiesstringlistNoProperty paths to read off each bound object, e.g. Intensity, RelativeLocation.X
bonesstringlistNoBone names to read in COMPONENT space off each bound skeletal mesh - how you prove a rig key moved a bone
controlsboolNoAlso read each Control Rig track's control values, evaluated from the section channels at this frame
filterstringNoSubstring filter on the bound object's name or class
max_resultsintNoMax bound objects to return (0 = all); reports truncated
example
cfa evaluate_sequence --asset-path /Game/Cine/Shot010 --frame 0
cfa evaluate_sequence --asset-path /Game/Cine/Shot010 --frame 2.5 --time-unit seconds --properties Intensity,LightColor
add_skeletal_animation

Add an animation to a skeletal-mesh binding; loops to fill the section by default

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID of the skeletal mesh actor/component
animationstringYesAnimSequence asset path
framefloatNoStart in display-rate frames
secondsfloatNoStart in seconds (with use_seconds)
use_secondsboolNoDEPRECATED alias for --time-unit seconds
time_unitstringNoframes (display rate, default) | ticks | seconds
loopboolNoExtend the section past the clip so it auto-loops (default true)
end_framefloatNoSection end in frames (0 = sequence playback end)
end_secondsfloatNoSection end in seconds (with use_seconds; 0 = playback end)
list_control_rigs

Control Rig tracks on a sequence, with their rig class and priority

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
filterstringNoSubstring filter on the track or rig class name
max_resultsintNoMax tracks to return (0 = all); reports truncated
list_rig_controls

The channel map: every control's channel indices, kinds, labels and mask state

This is the command that tells you how to address a rig channel. Never use the channel NAME: a Position control is Ctrl.X on UE 5.6 and Ctrl.Location.X on 5.7/5.8. Use control_name plus the channel index reported here. Index order is fixed per control type: float = [value], vector2d = [x,y], position/scale = [x,y,z], rotator = [roll,pitch,yaw], transform_no_scale = location xyz + rotation roll/pitch/yaw, transform and euler_transform = those nine with scale xyz last.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
filterstringNoSubstring filter on the control name
max_resultsintNoMax controls to return (0 = all); reports truncated
example
cfa list_rig_controls --asset-path /Game/Cine/Shot010 --track-index 0
add_control_rig_track

Add a Control Rig track + section to a binding, headless

Builds the track the way the engine does but without the editor side effects: no DismissAllMenus, no Control Rig edit mode forced on in the level viewport. The section's blend type is left to the engine (first section Absolute, later ones Additive). Name the rig with exactly one of control_rig_asset_path (a Control Rig Blueprint) or control_rig_class (an engine rig class, e.g. FKControlRig). An FK rig takes its controls from the bound skeletal mesh, which is what set_control_rig_apply_mode and load-anim workflows need.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID from list_bindings
control_rig_asset_pathstringNoControl Rig Blueprint asset, e.g. /Game/Rigs/CR_Hero (exactly one of control_rig_asset_path / control_rig_class)
control_rig_classstringNoEngine Control Rig class, e.g. FKControlRig or /Script/ControlRig.FKControlRig
layeredboolNoCreate the rig in layered/additive mode (needs a Backwards Solve event)
track_namestringNoDisplay name for the new track; a name another rig track on this binding already uses gets the engine's _1 / _2 suffix
example
cfa add_control_rig_track --asset-path /Game/Cine/Shot010 --binding-guid <guid> --control-rig-class FKControlRig
add_control_rig_key

Key one control at one frame

Pass a typed value for the whole control, or channel_index plus a plain number for one channel. Value shapes: float/bool/int = a bare value; vector2d = {x,y}; position/scale = {x,y,z}; rotator = {roll,pitch,yaw}; transform/euler_transform = {location:{x,y,z},rotation:{roll,pitch,yaw},scale:{x,y,z}}; transform_no_scale drops the scale block. A flat array of numbers in channel order also works. Components you leave out are not keyed.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
control_namestringYesControl name from list_rig_controls
channel_indexintNoChannel index inside the control's slice; -1 keys the whole control
valuejsonYesTyped value for the control, or a number when channel_index is set
framefloatYesKey time in time_unit units
time_unitstringNoframes (display rate, default) | ticks | seconds
interpolationstringNoauto, cubic, linear, constant
example
cfa add_control_rig_key --asset-path /Game/Cine/Shot010 --track-index 0 --control-name Hand_L_ctrl --frame 30 --value '{"location":{"x":50}}'
add_control_rig_keys

Batch: N controls x M frames on a rig section in ONE call and one undo step

keys is [{control_name, channel_index?, interpolation?, frames:[...], values:[...]}]. frames and values must be the same length; each value uses the same shapes as add_control_rig_key. Every entry is validated before anything is written, so a bad control name late in the batch cannot leave a half-applied edit.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
keysjsonYes[{control_name, channel_index?, frames:[], values:[]}]
time_unitstringNoframes (display rate, default) | ticks | seconds
interpolationstringNoDefault interpolation: auto, cubic, linear, constant
example
cfa add_control_rig_keys --asset-path /Game/Cine/Shot010 --track-index 0 --keys '[{"control_name":"Hand_L_ctrl","frames":[0,30],"values":[{"location":{"x":0}},{"location":{"x":50}}]}]'
list_control_rig_keys

Read a rig section's keys back per control and channel

Reports total_keys - every key on every channel of the section, unaffected by max_results truncation, max_keys or channel_index - plus controls_with_keys, the names that carry them. max_keys caps the keys each channel returns (default 30); every channel reports its own key_count and truncated, so a capped read is never mistaken for a short one.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
control_namestringNoControl name; omit to read every keyed control
channel_indexintNoChannel index inside the control's slice; -1 reads every channel
max_keysintNoMax keys per channel (0 = all); each channel reports key_count and truncated
time_unitstringNoframes (display rate, default) | ticks | seconds
filterstringNoSubstring filter on the control name
max_resultsintNoMax channels to return (0 = all); reports truncated
remove_control_rig_keys

Delete a control's keys, all of them or inside a frame range

Naming start_frame or end_frame restricts the delete to that range. Without either bound every key goes.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
control_namestringYesControl name from list_rig_controls
channel_indexintNoChannel index inside the control's slice; -1 clears every channel
use_rangeboolNoForce the range on with neither bound named, so 0..0 is honoured; naming either bound already implies it
start_framefloatNoRange start in time_unit units; naming it turns the range on
end_framefloatNoRange end in time_unit units; naming it turns the range on
time_unitstringNoframes (display rate, default) | ticks | seconds
set_control_rig_control_default

Set a control's channel defaults - the value it holds with no keys

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
control_namestringYesControl name from list_rig_controls
channel_indexintNoChannel index inside the control's slice; -1 sets the whole control
valuejsonYesSame value shapes as add_control_rig_key
set_control_rig_controls_mask

Show or hide controls on a rig section

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
control_namesstringlistNoControls to show or hide (repeatable)
visibleboolNoTrue shows the controls, false hides them
allboolNoApply to every control on the section
set_control_rig_apply_mode

Set an FK Control Rig track's apply mode

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
modestringYesreplace | additive | direct
set_control_rig_priority

Set a Control Rig track's evaluation priority order

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
priorityintNoPriority order; lower evaluates first
rename_control_rig_channels

Repoint a track's channels at renamed rig controls

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
old_namesstringlistYesExisting control names (repeatable)
new_namesstringlistYesNew control names, one per old name; each must exist on the rig
add_control_rig_anim_layer

Add an anim layer for some controls of a rig track

Makes a new animation layer that holds the named controls (the Anim Layers panel's + button). The first layer of a sequence also makes the base layer, so the new layer is index 1. A new layer is Additive with weight 1; --name, --weight and --type change that in the same call. The named controls are left selected on the rig. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
control_namesstringlistYesControls the layer animates
namestringNoLayer name
weightfloatNoLayer weight, 0..1
typestringNoAdditive | Override
example
cfa add_control_rig_anim_layer --asset-path /Game/Cine/Shot010 --track-index 0 --control-names hand_l_ctrl,hand_r_ctrl --name Hands
remove_control_rig_anim_layer

Delete one anim layer and its sections

Deletes the layer at --index with the sections it owns. Layer 0 is the base layer and is never deleted; collapse_control_rig_anim_layers flattens every layer into one. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
indexintYesLayer index from list_control_rig_anim_layers
example
cfa remove_control_rig_anim_layer --asset-path /Game/Cine/Shot010 --index 2
duplicate_control_rig_anim_layer

Copy one anim layer with its keys

Copies the layer at --index and replies with the new layer. The base layer and a layer with no controls are not copied. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
indexintYesLayer index from list_control_rig_anim_layers
example
cfa duplicate_control_rig_anim_layer --asset-path /Game/Cine/Shot010 --index 1
merge_control_rig_anim_layers

Merge two or more anim layers into the lowest one

Merges the named layers onto the one with the lowest index and removes the others. --key-mode KeysOnly (default) merges on the frames that carry keys; AllFrames bakes every --frame-increment frames and can --reduce-keys after. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
indicesstringlistYesLayer indices to merge, at least two
key_modestringNoKeysOnly | AllFrames
frame_incrementintNoWith AllFrames: bake every N frames
reduce_keysboolNoWith AllFrames: reduce keys after the merge
tolerancefloatNoWith reduce_keys: tolerance in percent
example
cfa merge_control_rig_anim_layers --asset-path /Game/Cine/Shot010 --indices 1,2
set_control_rig_anim_layer

Change an anim layer: name, weight, type, mute, lock, key target, controls

Changes only what you pass. --active=false mutes the layer, --locked=true locks it, --keyed makes it the layer that takes new keys, --type switches Additive / Override. --add-controls and --remove-controls change which controls of a rig track the layer holds (give --track-index for them). A locked layer refuses every other change, so an unlock is applied first and a lock last, and the command fails with the reason when the engine did not take a value. list_control_rig_anim_layers reads the result back. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
indexintYesLayer index from list_control_rig_anim_layers
namestringNoLayer name
weightfloatNoLayer weight, 0..1
typestringNoAdditive | Override
activeboolNoFalse mutes the layer
lockedboolNoTrue locks the layer
keyedboolNoTrue makes this the layer that takes new keys
binding_guidstringNoBinding GUID of the rig track, for add_controls / remove_controls
track_indexintNoRig track index, for add_controls / remove_controls
add_controlsstringlistNoControls to put on the layer
remove_controlsstringlistNoControls to take off the layer
example
cfa set_control_rig_anim_layer --asset-path /Game/Cine/Shot010 --index 1 --weight 0.5 --name Offset
reorder_control_rig_anim_layer

Move an anim layer to another index (UE 5.8+)

Moves the layer at --index to --new-index. The base layer stays at 0. UE 5.6 and 5.7 have no layer reorder, and the command says so there. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
indexintYesLayer to move
new_indexintYesIndex it gets
example
cfa reorder_control_rig_anim_layer --asset-path /Game/Cine/Shot010 --index 3 --new-index 1
get_control_rig_world_transform

Read controls in WORLD space at given frames

Evaluates the sequence at each frame and returns the world transform of each control: location, rotation and scale as the viewport shows them, after parents, spaces, constraints and layers. list_control_rig_keys gives the LOCAL keyed values. The rig must be bound to an actor in the open level. At most 500 samples (controls x frames) in one call. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
control_namesstringlistYesControls to read
framesjsonYesArray of times, in time_unit units
time_unitstringNoframes (display rate, default) | ticks | seconds
example
cfa get_control_rig_world_transform --asset-path /Game/Cine/Shot010 --track-index 0 --control-names hand_l_ctrl --frames '[0,12,24]'
set_control_rig_world_transform

Key a control at a WORLD transform on given frames

Keys the control so it sits at a world transform, whatever its parent or space is at that frame: the engine works out the local value. --transform is one transform for every frame; --transforms is an array with one for each frame. The reply reads the control back and gives the largest distance from the transform asked for; verdict pass_with_warnings means a limit, a constraint or a later layer holds the control off it. On the frame of a space key the engine also keys the tick before it, so the control does not jump there. The rig must be bound to an actor in the open level. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
control_namestringYesControl to key
framesjsonYesArray of times, in time_unit units
transformjsonNoOne world transform {location, rotation, scale} for every frame
transformsjsonNoArray of world transforms, one for each frame
time_unitstringNoframes (display rate, default) | ticks | seconds
example
cfa set_control_rig_world_transform --asset-path /Game/Cine/Shot010 --track-index 0 --control-name hand_l_ctrl --frames '[0,24]' --transform '{"location":[50,0,120]}'
move_control_rig_space_key

Move one space key of a control to another frame

Moves the space key at --frame to --new-frame. A frame that has a space key already is refused. No transform key is moved with it, so the control can jump at the new frame.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track
control_namestringYesControl name from list_control_rig_space_keys
framefloatYesFrame of the key to move
new_framefloatYesFrame the key moves to
time_unitstringNoframes (display rate, default) | ticks | seconds
example
cfa move_control_rig_space_key --asset-path /Game/Cine/Shot010 --track-index 0 --control-name hand_l_ctrl --frame 10 --new-frame 14
move_constraint_key

Move one activation key of a timeline constraint to another frame

Moves the activation key at --frame to --new-frame. A frame that has a key already is refused. No transform key is changed: run compensate_timeline_constraint after if the child must not jump.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track
constraint_namestringYesConstraint name from list_timeline_constraints
framefloatYesFrame of the key to move
new_framefloatYesFrame the key moves to
time_unitstringNoframes (display rate, default) | ticks | seconds
example
cfa move_constraint_key --asset-path /Game/Cine/Shot010 --track-index 0 --constraint-name Parent_hand_l_ctrl --frame 10 --new-frame 14
compensate_control_rig_space

Add the transform keys that stop a control jumping at a space key

The editor's own space compensation at --frame, or at every space key with --all: it copies the control's world pose AT the space key onto the tick before it, so the control does not jump there. Use it for a space key that was put on a frame the control is keyed on already (a raw add_control_rig_space_key, or a moved space key). It is only right when the control has a transform key at the frame of the space key; the command refuses a space key that has none, because the copy would make a new jump. add_control_rig_space_key --compensate and set_control_rig_world_transform need no compensation after them. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
framefloatNoFrame of the space key to compensate
allboolNoCompensate at every space key of the rig
time_unitstringNoframes (display rate, default) | ticks | seconds
example
cfa compensate_control_rig_space --asset-path /Game/Cine/Shot010 --track-index 0 --all
compensate_timeline_constraint

Add the transform keys that stop a constrained control jumping at an activation key

Runs the editor's own constraint compensation at --frame, or at every activation key with --all, so the child keeps its place when the constraint turns on or off. set_constraint_active_key, move and remove do not compensate on their own. Only transform constraints are compensated. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track
constraint_namestringYesConstraint name from list_timeline_constraints
framefloatNoFrame of the activation key to compensate
allboolNoCompensate at every activation key
time_unitstringNoframes (display rate, default) | ticks | seconds
example
cfa compensate_timeline_constraint --asset-path /Game/Cine/Shot010 --track-index 0 --constraint-name Parent_hand_l_ctrl --all
bake_timeline_constraint

Bake a timeline constraint into plain keys on the child

Writes the motion the constraint gives the child as transform keys, then keys the constraint off over the baked range. --frames names the frames; with none, the ranges where the constraint is active are baked. Only transform constraints are baked. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track
constraint_namestringYesConstraint name from list_timeline_constraints
framesjsonNoArray of frames to bake; empty = the active ranges
time_unitstringNoframes (display rate, default) | ticks | seconds
example
cfa bake_timeline_constraint --asset-path /Game/Cine/Shot010 --track-index 0 --constraint-name Parent_hand_l_ctrl
list_control_rig_anim_layers

Read the sequence's Control Rig anim layers (index, name, weight, type, controls)

Read-only and purely reflective: UAnimLayers is a private engine class stored as asset user data on the Level Sequence. Returns has_anim_layers=false and an empty list when the sequence has none - it never creates the layer container the way the engine's own getter does.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
filterstringNoSubstring filter on the layer name
max_resultsintNoMax layers to return (0 = all); reports truncated
max_controlsintNoMax control names listed for each layer (0 = all); control_count always gives the total
select_control_rig_controls

Select controls of a rig track

Sets which controls of a Sequencer rig are selected. --mode replace (default) clears the selection on every rig of the sequence first, add keeps it, remove takes the named controls off. --clear selects nothing. --mirrored replace moves the selection to the controls on the other side (hand_l to hand_r), --mirrored add keeps both sides; the left and right name parts come from the project's Control Rig pose mirror settings. --pose-path selects the controls a pose asset holds. --frame moves the level viewport camera to the selected controls (the Animation mode's Frame Selection; it opens the sequence and turns the mode on) and replies camera_location and camera_moved. Works with the sequence closed. get_control_rig_selection reads the result.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
control_namesstringlistNoControls to select, add or take off
modestringNoreplace (default) | add | remove
clearboolNoSelect nothing on every rig of the sequence
mirroredstringNonone (default) | replace | add
pose_pathstringNoPose asset whose controls join the names given
frameboolNoMove the level viewport camera to the selected controls
example
cfa select_control_rig_controls --asset-path /Game/Cine/Shot010 --track-index 0 --control-names hand_l_ctrl --mirrored add
get_control_rig_selection

Read which controls of a rig track are selected

The selected controls of one Sequencer rig, the same selection the Anim Outliner shows. Read-only.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
filterstringNoSubstring filter on the control name
max_resultsintNoMax names to return (0 = all); reports truncated
example
cfa get_control_rig_selection --asset-path /Game/Cine/Shot010 --track-index 0
mirror_control_rig_pose

Mirror the pose of some controls to or from the other side

The Animation mode's two mirror tools. --onto selected (default): the named controls take the mirrored pose of their counterparts on the other side. --onto opposite: the counterparts take the mirrored pose of the named controls. A control with no counterpart mirrors onto itself. The engine finds the counterpart by name parts on 5.6 and by mirrored position from 5.7 on; the reply says which. On 5.8 the result is the world-space mirror. On 5.6 and 5.7 the engine mirrors each control's local values with the axes of the project's Control Rig pose mirror settings, so on a rig whose left and right bones have different axes (an FK rig on the mannequin) the result is not the world-space mirror; a second mirror gives the start pose back. For a world-space place on those engines, read it with get_control_rig_world_transform and key the counterpart with set_control_rig_world_transform. --key (default true) keys the result at --frame. The reply lists the controls that changed; verdict pass_with_warnings means nothing changed. The selection is put back after the call. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
control_namesstringlistYesControls the mirror starts from
ontostringNoselected (default) | opposite
keyboolNoKey the result at the frame
frameintNoDisplay-rate frame to work at; default the playhead
example
cfa mirror_control_rig_pose --asset-path /Game/Cine/Shot010 --track-index 0 --control-names hand_l_ctrl --onto opposite --frame 24
reset_control_rig_controls

Put controls back to their default values

The Animation mode's Zero Transforms: the named controls, or every control with --all, go back to their default (initial) values. --include-channels (default true) also resets animation channels. --key (default true) keys the result at --frame. --invert-input-pose is the tool for a layered rig: it goes to the input pose. The reply lists the controls that changed and any control that is not at its default after the reset. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
control_namesstringlistNoControls to reset; give this or all
allboolNoReset every control of the rig
include_channelsboolNoAlso reset animation channels
keyboolNoKey the result at the frame
invert_input_poseboolNoLayered rig: go to the input pose
frameintNoDisplay-rate frame to work at; default the playhead
example
cfa reset_control_rig_controls --asset-path /Game/Cine/Shot010 --track-index 0 --control-names hand_l_ctrl,hand_r_ctrl --frame 0
tween_control_rig

Key controls between their key before and their key after

The Animation mode's Tween slider for the named controls at --frame: --value -1 is the pose of the key before the frame, 1 the pose of the key after it, 0 halfway. It keys the result at the frame. A control needs a key before and a key after the frame; verdict pass_with_warnings means nothing changed. tween_keys works on the keys of any channel; this one works on whole controls at one frame. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
control_namesstringlistYesControls to tween
valuefloatYes-1 = the key before, 1 = the key after, 0 = halfway
frameintNoDisplay-rate frame to work at; default the playhead
example
cfa tween_control_rig --asset-path /Game/Cine/Shot010 --track-index 0 --control-names hand_l_ctrl --value=-0.5 --frame 12
replace_control_rig

Change the rig of a Control Rig track and keep its keys

Puts another Control Rig on the track: give exactly one of --control-rig-asset-path or --control-rig-class. Sections and keys stay; a control keeps its keys when the new rig has a control with the same name, and the new controls get channels. The reply counts both. A track that still has its old rig's default name takes the new rig's name. The same class is refused: refresh_control_rig_track is the command for a recompiled rig. Works with the sequence closed. Check the result with validate_control_rig_track.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
control_rig_asset_pathstringNoControl Rig Blueprint the track changes to
control_rig_classstringNoNative rig class the track changes to, e.g. FKControlRig
example
cfa replace_control_rig --asset-path /Game/Cine/Shot010 --binding-guid <guid> --track-index 0 --control-rig-asset-path /Game/Rigs/CR_Hero_v2
create_control_rig_pose

Save the pose of a Sequencer rig as a pose asset

Makes a Control Rig Pose asset (the pose library's asset) from the pose the rig has at --frame: every animatable control, or only --control-names. --pose-path is the new asset; a path that exists is refused. The pose holds each control's value and local transform. Paste it with paste_control_rig_pose, read it with get_control_rig_pose. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
pose_pathstringYesContent path of the new pose asset, e.g. /Game/Poses/P_Wave
control_namesstringlistNoControls to save; default every animatable control
frameintNoDisplay-rate frame to work at; default the playhead
example
cfa create_control_rig_pose --asset-path /Game/Cine/Shot010 --track-index 0 --pose-path /Game/Poses/P_Wave --frame 24
paste_control_rig_pose

Paste a pose asset onto a Sequencer rig

The pose library's Paste Pose at --frame. With no --control-names it pastes onto the controls of the pose (their counterparts with --mirror); with names, only onto those. --key (default true) keys the result. --mirror pastes the mirrored pose (see mirror_control_rig_pose for what mirror means on each engine). --additive adds the pose on top of the pose the rig has. --blend 0..1 is the library's blend slider: 0 is the pose the rig has now, 1 the pose of the asset. The reply lists the controls that changed; verdict pass_with_warnings means nothing changed. The selection is put back after the call. Needs the Level Sequence open in a Sequencer window; the command opens it when it can.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the rig track; omit for a root track
track_indexintYesTrack index from list_control_rigs
pose_pathstringYesPose asset to paste
control_namesstringlistNoControls to paste onto; default the controls of the pose
keyboolNoKey the result at the frame
mirrorboolNoPaste the mirrored pose
additiveboolNoAdd the pose on top of the pose the rig has
blendfloatNo0 = the pose the rig has now, 1 = the pose of the asset
frameintNoDisplay-rate frame to work at; default the playhead
example
cfa paste_control_rig_pose --asset-path /Game/Cine/Shot010 --track-index 0 --pose-path /Game/Poses/P_Wave --frame 48 --blend 0.5
get_control_rig_pose

Read the controls a pose asset holds

Lists the controls of a Control Rig Pose asset: name, control type, and the local transform (location, rotation, scale to three decimals) or the value of a bool, float or integer control. Read-only.

ParameterTypeRequiredDescription
pose_pathstringYesPose asset to read
filterstringNoSubstring filter on the control name
max_resultsintNoMax controls to return (0 = all); reports truncated
example
cfa get_control_rig_pose --pose-path /Game/Poses/P_Wave --filter hand
rename_control_rig_pose_control

Rename one control inside a pose asset

Changes the control name a pose asset stores, so the pose fits a rig whose control was renamed. A name the pose does not hold is answered with the nearest names; a new name the pose holds already is refused.

ParameterTypeRequiredDescription
pose_pathstringYesPose asset to change
control_namestringYesControl name the pose holds now
new_namestringYesName it gets
example
cfa rename_control_rig_pose_control --pose-path /Game/Poses/P_Wave --control-name hand_l_ctrl --new-name hand_left_ctrl
get_control_rig_track_settings

Read the rig settings of a Control Rig track: the public variables of its rig

Lists each public variable of the track's rig with its type, the value the rig has now, and stored_on_track (the track keeps a value for it). These are the values of the track editor's Recreate Control Rig With New Settings. A rig with no public variable gives an empty list and a note. Read-only.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
example
cfa get_control_rig_track_settings --asset-path /Game/Seq/LS_Shot --binding-guid <guid> --track-index 0
set_control_rig_track_settings

Set public variables of a track's rig and build the rig again with them

The track editor's Recreate Control Rig With New Settings. settings is a JSON object of public variable name to value. The track stores the values, the rig runs its construction again with them, and the sections build their channels again. The reply has the settings read back from the rig, controls_before/after, keys_before/after and a verdict. UE 5.7 and 5.8 keep the keys of the controls that stay; UE 5.6 clears every key of the track, and the reply says so with pass_with_warnings. A name that is not a public variable is answered with the names; a value of the wrong type is refused and nothing changes.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
settingsjsonYesJSON object: public variable name to value
example
cfa set_control_rig_track_settings --asset-path /Game/Seq/LS_Shot --binding-guid <guid> --track-index 0 --settings '{"FingerCount":4}'
get_control_rig_rotation_orders

Read the rotation order each control uses on a Control Rig track

Lists the animatable controls that have rotation channels with order (the euler order the keys of the track are in: XYZ... ZYX, or default for the plain rotator order), rig_setting (the preferred rotation order of the rig) and differs_from_rig_setting. The engine keeps the two the same when it sees the rig construct; when they differ, sync_control_rig_rotation_orders converts the keys. Read-only.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
only_changedboolNoOnly the controls with an order on the track or in the rig
filterstringNoSubstring filter on the control name
max_resultsintNoMax controls to return (0 = all); reports truncated
example
cfa get_control_rig_rotation_orders --asset-path /Game/Seq/LS_Shot --binding-guid <guid> --track-index 0 --only-changed
sync_control_rig_rotation_orders

Convert the rotation keys of a track to the rotation order the rig has now

The engine keeps the euler order of a track the same as the preferred rotation order of the rig: it converts the keys after a construction of the track's rig. When a rig is compiled while its sequence is loaded and Sequencer is closed, the track can keep the old order. Then the rig reads the old keys in the new order: the pose is wrong, and get_control_rig_rotation_orders shows differs_from_rig_setting. This command runs the engine's conversion now for every control that differs. The pose on each key is the pose that was keyed; frames between keys can differ, because another euler order interpolates another way. The reply lists converted (control, was, order), keys_before/after and a verdict. To give a control another order, set it in the rig asset (set_rig_control_settings with bUsePreferredRotationOrder and PreferredRotationOrder), compile, then run this.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
example
cfa sync_control_rig_rotation_orders --asset-path /Game/Seq/LS_Shot --binding-guid <guid> --track-index 0
list_control_rig_selection_sets

List the selection sets of a Level Sequence (UE 5.7+)

The sets of the Animation mode's Selection Sets panel: name, guid, row, color, controls, and actors when the set has any. A control of a set over several rigs reads ActorLabel:control. Opens the sequence in Sequencer. UE 5.6 has no selection sets and says so. Read-only.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
filterstringNoSubstring filter on the set name
max_resultsintNoMax sets to return (0 = all); reports truncated
example
cfa list_control_rig_selection_sets --asset-path /Game/Seq/LS_Shot
create_control_rig_selection_set

Make a selection set from controls of a rig track, or mirror a set (UE 5.7+)

Makes a set of the Selection Sets panel. With control_names the controls of the rig track become the Sequencer selection and the engine builds the set from it, with the mirror name of each control. With mirror_of the engine makes the mirrored set of an existing one. name and color are set after. The Sequencer selection changes.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
namestringNoName of the new set (default: the name the engine gives)
control_namesstringlistNoControls of the set (repeatable)
binding_guidstringNoBinding GUID that owns the rig track of the controls; omit for a root track
track_indexintNoRig track of the controls, from list_control_rigs
mirror_ofstringNoName or guid of a set to mirror, in place of control_names
colorjsonNoColour: [r,g,b(,a)] 0-255 or 0-1, {r,g,b,a}, or (R=,G=,B=,A=)
example
cfa create_control_rig_selection_set --asset-path /Game/Seq/LS_Shot --binding-guid <guid> --track-index 0 --name Arm_L --control-names hand_l_ctrl --control-names lowerarm_l_ctrl
set_control_rig_selection_set

Rename a selection set, change its colour or row, add or remove controls (UE 5.7+)

set is the name or the guid of the set; two sets with one name need the guid. add_control_names and remove_control_names work on the rig track that binding_guid and track_index name; a control the set has already is not added twice. The reply is the set read back.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
setstringYesName or guid of the set
new_namestringNoNew name of the set
colorjsonNoColour: [r,g,b(,a)] 0-255 or 0-1, {r,g,b,a}, or (R=,G=,B=,A=)
rowintNoNew row of the set in the panel; -1 leaves it
add_control_namesstringlistNoControls to add (repeatable)
remove_control_namesstringlistNoControls to take out (repeatable)
binding_guidstringNoBinding GUID that owns the rig track of the controls; omit for a root track
track_indexintNoRig track of the controls, from list_control_rigs
example
cfa set_control_rig_selection_set --asset-path /Game/Seq/LS_Shot --set Arm_L --new-name LeftArm --add-control-names clavicle_l_ctrl --binding-guid <guid>
remove_control_rig_selection_set

Remove one selection set, or all of them (UE 5.7+)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
setstringNoName or guid of the set to remove
allboolNoRemove every set of the sequence
example
cfa remove_control_rig_selection_set --asset-path /Game/Seq/LS_Shot --set Arm_L
apply_control_rig_selection_set

Use a selection set: select, deselect, show, hide, isolate, show all or key its controls (UE 5.7+)

Runs one action of the Selection Sets panel on every rig of the open sequence that has controls of the set. select and deselect take --mirror, --add and --toggle. show, hide, isolate, show_all and key need the Animation editor mode, which is on while Sequencer has a sequence with a Control Rig track open. The reply has the controls that are selected after the action, per rig track, and keys_added.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
setstringYesName or guid of the set
actionstringYesselect, deselect, show, hide, isolate, show_all or key
mirrorboolNoAct on the mirrored controls of the set
addboolNoselect: keep the current selection and add the set
toggleboolNoselect: toggle each control of the set
example
cfa apply_control_rig_selection_set --asset-path /Game/Seq/LS_Shot --set Arm_L --action select
validate_control_rig_track

Verdict for the rig tracks: rig class resolvable, every control has channels, mask consistent

Returns verdict = pass | pass_with_warnings | fail plus findings (code, severity, target, message). Errors: missing_control_rig_class, no_sections, wrong_section_class, control_without_channels. Errors also: space_key_missing_element, constraint_unresolved, constraint_handles_unresolved. Warnings: masked_control_has_keys, orphan_channel_map_entry, all_controls_masked, constraint_never_keyed.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintNoTrack index; -1 checks every Control Rig track
filterstringNoSubstring filter on the finding code or target
max_resultsintNoMax findings to return (0 = all); reports truncated
add_control_rig_space_key

Key a space switch on a rig control (world, default parent, another control, or a bone)

space_type world and default_parent need no target; control and bone need space_target. world keys the WorldSpace sentinel, default_parent keys Parent with no element, and a control or bone target keys ControlRig with that element - even when it is the control's own parent. The space channel is created on first use. The FIRST space key also sets the space for every frame before it, so one key alone switches the whole timeline; key the old space on an earlier frame to keep it. Without --compensate only the space key is written and the control jumps at the switch. --compensate keys the space the way the space picker does: the control keeps its world pose across the switch (it needs the sequence open in Sequencer).

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
control_namestringYesControl name from list_rig_controls
space_typestringYesworld | default_parent | control | bone
space_targetstringNoElement name; required for space_type control or bone
framefloatYesKey time in time_unit units
time_unitstringNoframes (display rate, default) | ticks | seconds
compensateboolNoKey the space the way the space picker does: the control keeps its world pose across the switch (needs the sequence open in Sequencer)
example
cfa add_control_rig_space_key --asset-path /Game/Cine/Shot010 --track-index 0 --control-name Hand_L_ctrl --space-type world --frame 30
list_control_rig_space_keys

Space keys per control: keyed frames, the unique space list, and the resulting intervals

Epic exposes no space read at all. Each control reports its keys (frame + space), the unique spaces it ever switches to with whether each still resolves, and the frame intervals each space covers.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
control_namestringNoControl name; omit to read every control with a space channel
time_unitstringNoframes (display rate, default) | ticks | seconds
filterstringNoSubstring filter on the control name
max_resultsintNoMax controls to return (0 = all); reports truncated
example
cfa list_control_rig_space_keys --asset-path /Game/Cine/Shot010 --track-index 0
remove_control_rig_space_key

Delete one space key from a control's space channel

Deletes by time, never by value: only the key at that exact frame goes, reported as keys_removed. The editor's own space delete compensates the surrounding transform keys. This one does not - the compensation path needs an open Sequencer. The output says so on every call.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
control_namestringYesControl name from list_control_rig_space_keys
framefloatYesFrame of the space key to delete, in time_unit units
time_unitstringNoframes (display rate, default) | ticks | seconds
example
cfa remove_control_rig_space_key --asset-path /Game/Cine/Shot010 --track-index 0 --control-name Hand_L_ctrl --frame 30
add_timeline_constraint

Constrain a rig control or actor to another, with an activation channel on the rig section

Child and parent are each either a rig control on the track (child_control_name / parent_control_name) or an actor binding (child_binding_guid / parent_binding_guid). The constraint is registered on the world's constraints manager and its activation channel is added to the section, so it can be keyed with set_constraint_active_key. No automatic compensation is applied.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
constraint_typestringYesparent | position | rotation | scale | look_at
child_control_namestringNoChild rig control name
child_binding_guidstringNoBinding GUID of the child actor, when the child is not a rig control
parent_control_namestringNoParent rig control name on the same rig
parent_binding_guidstringNoBinding GUID of the parent actor, when the parent is not a rig control
maintain_offsetboolNoKeep the current relative offset
example
cfa add_timeline_constraint --asset-path /Game/Cine/Shot010 --track-index 0 --constraint-type parent --child-control-name Hand_L_ctrl --parent-binding-guid <guid>
list_timeline_constraints

Constraints on a rig section: name, type, child, parent, and their activation keys

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
time_unitstringNoframes (display rate, default) | ticks | seconds
filterstringNoSubstring filter on the constraint name or type
max_resultsintNoMax constraints to return (0 = all); reports truncated
example
cfa list_timeline_constraints --asset-path /Game/Cine/Shot010 --track-index 0
set_constraint_active_key

Key a timeline constraint on or off at a frame

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
constraint_namestringYesConstraint name from list_timeline_constraints
activeboolNoWhether the constraint is active from this key on
framefloatYesKey time in time_unit units
time_unitstringNoframes (display rate, default) | ticks | seconds
example
cfa set_constraint_active_key --asset-path /Game/Cine/Shot010 --track-index 0 --constraint-name ParentConstraint --active --frame 30
remove_constraint_key

Delete one constraint activation key

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
constraint_namestringYesConstraint name from list_timeline_constraints
framefloatYesFrame of the activation key to delete, in time_unit units
time_unitstringNoframes (display rate, default) | ticks | seconds
example
cfa remove_constraint_key --asset-path /Game/Cine/Shot010 --track-index 0 --constraint-name ParentConstraint --frame 30
load_anim_into_control_rig

Bake an AnimSequence onto a Control Rig section, headless

Needs a Skeletal Mesh Component the engine baker can sample: the rig's bound component, or the actor behind binding_guid. anim_start and anim_end are frames of the SOURCE animation, not the timeline. Reports the section key count before and after.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
animationstringYesPath to the AnimSequence to bake onto the rig
start_framefloatNoWhere on the timeline the animation starts, in time_unit units
time_unitstringNoframes (display rate, default) | ticks | seconds
use_custom_anim_rangeboolNoRestrict the source to anim_start..anim_end
anim_startfloatNoFirst source frame; needs use_custom_anim_range
anim_endfloatNoLast source frame; needs use_custom_anim_range
reset_controlsboolNoReset every control to its default before baking
key_reduceboolNoRun key reduction after baking
tolerancefloatNoKey reduction tolerance
interpolationstringNosmart_auto (default), auto, linear, constant
onto_selectedboolNoBake onto the editor's selected controls only
example
cfa load_anim_into_control_rig --asset-path /Game/Cine/Shot010 --track-index 0 --animation /Game/Anims/AS_Run
bake_to_control_rig

Bake a skeletal binding's animation onto a new Control Rig track (needs an open Sequencer)

The engine function behind this crashes when no Level Sequence is open, so the sequence is opened first and the command refuses with requires_sequencer_window rather than calling in blind. Name the rig with exactly one of control_rig_asset_path or control_rig_class; control_rig_class FKControlRig is the editor's "Bake To FK Control Rig". The bake is destructive to the binding's existing Control Rig tracks. On UE 5.8 the engine removes every Control Rig track on the binding and adds a fresh one; on 5.6 and 5.7 it keeps them, mutes their sections and reuses the first one for the new rig. The binding's skeletal animation track survives either way, but 5.8 disables the whole track while 5.6 and 5.7 only mute its sections. removed_tracks lists the rig tracks (by object identity) that were there before and are gone after, replaced_tracks counts how many came back with the same name and rig class, which is what a same-class re-bake on 5.8 looks like. animation_track_state reports present / disabled / muted / removed / none as observed, so expect disabled on 5.8 where 5.6 and 5.7 say muted. When tracks were removed the reply carries a warning saying their keys went with them. The engine always renames the baked track to the rig class name, so the reply puts track_name back, or the name of the one rig track that was there before when you pass none.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID of the skeletal mesh actor to bake from
control_rig_asset_pathstringNoControl Rig Blueprint asset to bake onto (exactly one of control_rig_asset_path / control_rig_class)
control_rig_classstringNoEngine Control Rig class to bake onto, e.g. FKControlRig
reduce_keysboolNoRun key reduction after baking
track_namestringNoName for the baked track; without it the single track that was there before keeps its name
tolerancefloatNoKey reduction tolerance
reset_controlsboolNoReset every control to its default before baking
example
cfa bake_to_control_rig --asset-path /Game/Cine/Shot010 --binding-guid <guid> --control-rig-class FKControlRig
export_control_rig_to_anim_sequence

Export a binding's animation back out to an AnimSequence (needs an open Sequencer)

The reverse bake Epic never exposed to the CLI. The destination AnimSequence is created against the binding's skeleton when it does not exist yet.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringYesBinding GUID of the skeletal mesh actor to export
anim_sequence_pathstringYesDestination AnimSequence path; created when missing
create_linkboolNoStore a bidirectional link between the sequence and the AnimSequence
frame_ratestringNoSampling rate for the exported AnimSequence, e.g. 24 or 30000/1001; defaults to the sequence's display rate
overwriteboolNoDelete and rebuild the destination AnimSequence when it already holds animation at a different frame rate
example
cfa export_control_rig_to_anim_sequence --asset-path /Game/Cine/Shot010 --binding-guid <guid> --anim-sequence-path /Game/Anims/AS_Take01
smart_reduce_control_rig

Key reduction tuned for rig channels (needs an open Sequencer)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
section_indexintNoSection index on the track (default 0)
tolerance_percentagefloatNoTolerance as a percentage of the value range, 0 to 100
sample_ratefloatNoSampling rate used to compare against the tolerance
example
cfa smart_reduce_control_rig --asset-path /Game/Cine/Shot010 --track-index 0 --tolerance-percentage 5
snap_control_rig

Snap controls onto an actor or another control over a frame range (needs an open Sequencer)

Name the target with exactly one of target_control_name, target_binding_guid or target_actor_name. A key is written per frame across the interval.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
control_namesstringlistYesControls to snap
target_binding_guidstringNoBinding GUID of the actor to snap onto
target_actor_namestringNoLevel actor name to snap onto
target_control_namestringNoControl on the same rig to snap onto
start_framefloatYesFirst frame of the snap interval, in time_unit units
end_framefloatYesLast frame of the snap interval, in time_unit units
time_unitstringNoframes (display rate, default) | ticks | seconds
keep_offsetboolNoKeep the current offset instead of snapping exactly
snap_positionboolNoSnap position
snap_rotationboolNoSnap rotation
snap_scaleboolNoSnap scale
bake_all_framesboolNoSnap on every frame of the interval; off by default, which snaps only on frames that already carry keys on the control or on the target
frame_incrementintNoFrame step when bake_all_frames is on
example
cfa snap_control_rig --asset-path /Game/Cine/Shot010 --track-index 0 --control-names Hand_L_ctrl --target-actor-name Prop_Sword --start-frame 0 --end-frame 60
collapse_control_rig_anim_layers

Flatten every section and layer on a rig track into one (needs an open Sequencer)

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
key_reduceboolNoRun key reduction after collapsing
tolerancefloatNoKey reduction tolerance
example
cfa collapse_control_rig_anim_layers --asset-path /Game/Cine/Shot010 --track-index 0
bake_control_rig_space

Bake space switches into plain keys over a range (needs an open Sequencer)

space_type world and default_parent need no target; control and bone need space_target. Every space key inside the range is deleted, and the control is rewritten in the target space. The engine bakes smart by default: it writes transform values only at frames that ALREADY carry a transform key (plus the frames of any parent control that was driving a space), so a range with no transform keys gains none. It does not sample per frame, and reduce_keys/tolerance apply only to the engine's per-frame mode, which this command does not use. Expect space_keys_after to drop to 0 or 1 (a compensation key at start_frame) while transform_keys_after stays put.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
control_namesstringlistYesControls whose space switches are baked into keys
space_typestringNoworld | default_parent (default) | control | bone
space_targetstringNoElement name; required for space_type control or bone
start_framefloatYesFirst frame of the bake range, in time_unit units
end_framefloatYesLast frame of the bake range, in time_unit units
time_unitstringNoframes (display rate, default) | ticks | seconds
reduce_keysboolNoRun key reduction after baking
tolerancefloatNoKey reduction tolerance
example
cfa bake_control_rig_space --asset-path /Game/Cine/Shot010 --track-index 0 --control-names Hand_L_ctrl --space-type world --start-frame 0 --end-frame 60
set_control_rig_layered_mode

Toggle a rig track between layered/additive and absolute (needs an open Sequencer)

A rig can only be layered when it has a Backwards Solve event; the command says so when it cannot.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
layeredboolNoTrue for layered/additive, false for absolute
example
cfa set_control_rig_layered_mode --asset-path /Game/Cine/Shot010 --track-index 0 --layered
refresh_control_rig_track

Rebuild a rig track's instance against the blueprint's current compiled class, keeping the keys

A track holds a live rig instance of whatever class the blueprint had when the track was made. Recompiling the blueprint outside an open Sequencer leaves that instance on the old class, so it still reports the old controls and the old event set, which is why a freshly added Backwards Solve does not enable layered mode. This re-instances the rig the way the editor reinstancer does and reports what changed. Channels and keys are kept.

ParameterTypeRequiredDescription
asset_pathstringYesPath to the Level Sequence
binding_guidstringNoBinding GUID that owns the track; omit for a root track
track_indexintYesTrack index from list_control_rigs
example
cfa refresh_control_rig_track --asset-path /Game/Cine/Shot010 --track-index 0
list_mixer_layers

Layers of an Animation Mixer track (UE 5.8+, MovieSceneAnimMixer plugin)

ParameterTypeRequiredDescription
asset_pathstringYesLevel sequence asset path
binding_guidstringNoBinding GUID owning the track (omit for root tracks)
track_indexintYesMixer track index (create one with add_track --track-type MovieSceneAnimationMixerTrack)
filterstringNoSubstring filter on layer name
max_resultsintNoMax layers (0 = all)
add_mixer_layer

Append or insert a layer on an Animation Mixer track (UE 5.8+)

ParameterTypeRequiredDescription
asset_pathstringYesLevel sequence asset path
binding_guidstringNoBinding GUID owning the track
track_indexintYesMixer track index
indexintNoInsert position (omit or -1 = append)
set_mixer_layer_name

Rename a mixer layer (UE 5.8+)

ParameterTypeRequiredDescription
asset_pathstringYesLevel sequence asset path
binding_guidstringNoBinding GUID owning the track
track_indexintYesMixer track index
layer_indexintYesLayer index
namestringYesNew display name
add_mixer_animation

Put an animation sequence on a mixer layer (UE 5.8+); overlapping sections on one layer auto-create a crossfade transition

ParameterTypeRequiredDescription
asset_pathstringYesLevel sequence asset path
binding_guidstringNoBinding GUID owning the track
track_indexintYesMixer track index
layer_indexintYesLayer index (must exist and hold no child track)
animationstringYesAnimSequence asset path
start_framefloatYesStart time in time_unit
time_unitstringNoframes (default), seconds or ticks
add_mixer_child_track

Put a child track (e.g. MovieSceneControlRigParameterTrack) on an empty mixer layer (UE 5.8+)

ParameterTypeRequiredDescription
asset_pathstringYesLevel sequence asset path
binding_guidstringNoBinding GUID owning the track (default: the mixer track's own binding)
track_indexintYesMixer track index
layer_indexintYesLayer index (must be empty)
track_classstringYesChild track class name
list_mixer_transitions

Transitions on an Animation Mixer track (UE 5.8+)

ParameterTypeRequiredDescription
asset_pathstringYesLevel sequence asset path
binding_guidstringNoBinding GUID owning the track
track_indexintYesMixer track index
section_indexintNoOnly transitions touching this section (-1 = all)
to_section_indexintNoWith section_index: only the transition between the two (-1 = ignore)
filterstringNoSubstring filter on class/display name
max_resultsintNoMax transitions (0 = all)
set_mixer_transition_type

Change a transition's class, e.g. MovieSceneAnimInertialDeadBlendTransitionSection (UE 5.8+)

ParameterTypeRequiredDescription
asset_pathstringYesLevel sequence asset path
binding_guidstringNoBinding GUID owning the track
track_indexintYesMixer track index
transition_indexintYesIndex from list_mixer_transitions
transition_classstringYesTransition class name
list_decorations

Decorations on a track, section or mixer layer plus the compatible classes (UE 5.8+)

ParameterTypeRequiredDescription
asset_pathstringYesLevel sequence asset path
targetstringYestrack, section or layer
binding_guidstringNoBinding GUID owning the track
track_indexintYesTrack index
section_indexintNoSection index (target=section)
layer_indexintNoMixer layer index (target=layer)
filterstringNoSubstring filter on class name
max_resultsintNoMax decorations (0 = all)
add_decoration

Add a decoration (weight, mask, mirroring, root motion target...) to a track, section or mixer layer (UE 5.8+)

ParameterTypeRequiredDescription
asset_pathstringYesLevel sequence asset path
targetstringYestrack, section or layer
binding_guidstringNoBinding GUID owning the track
track_indexintYesTrack index
section_indexintNoSection index (target=section)
layer_indexintNoMixer layer index (target=layer)
decoration_classstringYesDecoration class name (see list_decorations compatible_classes)
remove_decoration

Remove a decoration from a track, section or mixer layer (UE 5.8+)

ParameterTypeRequiredDescription
asset_pathstringYesLevel sequence asset path
targetstringYestrack, section or layer
binding_guidstringNoBinding GUID owning the track
track_indexintYesTrack index
section_indexintNoSection index (target=section)
layer_indexintNoMixer layer index (target=layer)
decoration_classstringYesDecoration class name
set_mixer_layer_weight

Set a mixer layer's weight as a default or a key (UE 5.8+); creates the Layer Weight decoration and its section on demand

ParameterTypeRequiredDescription
asset_pathstringYesLevel sequence asset path
binding_guidstringNoBinding GUID owning the track
track_indexintYesMixer track index
layer_indexintYesLayer index
weightfloatYesWeight 0..1
framefloatNoKey time in time_unit (omit = set the default value)
time_unitstringNoframes (default), seconds or ticks
validate_mixer_track

Verdict on an Animation Mixer track: layers, section/child-track exclusivity, transitions (UE 5.8+)

ParameterTypeRequiredDescription
asset_pathstringYesLevel sequence asset path
binding_guidstringNoBinding GUID owning the track
track_indexintYesMixer track index