SF
STS Forge

Sequencer

Level Sequencer verbs: seq-list-tracks, seq-add-track, seq-add-section, seq-add-key, seq-set-range.

Back to AI Guide

Verbs for creating and editing LevelSequence assets: listing tracks, adding tracks and sections, inserting keyframes, and setting playback ranges.


seq-list-tracks#

List all tracks in a LevelSequence.

Category: Read (focused)

Arg Required Description
-asset= Yes LevelSequence asset path

Examples:

-verb=seq-list-tracks -asset=/Game/Cinematics/LS_Intro

seq-add-track#

Add a track to a LevelSequence.

Category: Write (sequencer)

Arg Required Description
-asset= Yes LevelSequence asset path
-type= Yes Track type: Float, Bool, Transform, Event, Audio, SkeletalAnimation, CameraCut
-binding= No Object binding name (bind the track to a specific object in the sequence)

Examples:

-verb=seq-add-track -asset=/Game/Cinematics/LS_Intro -type=CameraCut
-verb=seq-add-track -asset=/Game/Cinematics/LS_Intro -type=Transform -binding=CameraActor
-verb=seq-add-track -asset=/Game/Cinematics/LS_Intro -type=Float -binding=PointLight

Notes:

  • CameraCut tracks do not take a -binding= because they reference camera actors via sections/keys, not a direct object binding.
  • Transform and Float tracks typically bind to a specific actor so the sequencer knows which object's property to animate.

seq-add-section#

Add a section (time range) to a track.

Category: Write (sequencer)

Arg Required Description
-asset= Yes LevelSequence asset path
-track= Yes Track index (integer, 0-based from seq-list-tracks output)
-startframe= Yes Section start frame
-endframe= Yes Section end frame

Examples:

-verb=seq-add-section -asset=/Game/Cinematics/LS_Intro -track=0 -startframe=0 -endframe=150
-verb=seq-add-section -asset=/Game/Cinematics/LS_Intro -track=1 -startframe=0 -endframe=300

Notes:

  • Frame numbers use the sequence's display rate (typically 30 fps). A section from frame 0 to 150 at 30 fps spans 5 seconds.

seq-add-key#

Add a keyframe to a section.

Category: Write (sequencer)

Arg Required Description
-asset= Yes LevelSequence asset path
-track= Yes Track index (integer, 0-based)
-frame= Yes Frame number
-value= Yes Keyframe value (parsed as string, same as UE property text format)
-section= No Section index within the track (defaults to 0)
-channel= No Channel index within the section (defaults to 0). Transform tracks use channels 0-8: Location X/Y/Z (0-2), Rotation X/Y/Z (3-5), Scale X/Y/Z (6-8).

Examples:

-verb=seq-add-key -asset=/Game/Cinematics/LS_Intro -track=0 -frame=0 -value="(X=0,Y=0,Z=200)"
-verb=seq-add-key -asset=/Game/Cinematics/LS_Intro -track=0 -frame=150 -value="(X=500,Y=0,Z=200)"
-verb=seq-add-key -asset=/Game/Cinematics/LS_Intro -track=1 -frame=0 -value=0.0 -channel=0
-verb=seq-add-key -asset=/Game/Cinematics/LS_Intro -track=1 -frame=90 -value=1.0 -channel=0

Notes:

  • For Transform tracks, the -value= can be a full struct (X=...,Y=...,Z=...) when setting all components at once, or a single float when targeting a specific -channel=.
  • For Float tracks, -value= is a single numeric value.
  • For Bool tracks, -value= is true or false.

seq-set-range#

Set the playback range of a LevelSequence.

Category: Write (sequencer)

Arg Required Description
-asset= Yes LevelSequence asset path
-startframe= Yes Start frame
-endframe= Yes End frame

Examples:

-verb=seq-set-range -asset=/Game/Cinematics/LS_Intro -startframe=0 -endframe=300

Notes:

  • This sets the working range shown in the Sequencer editor and used as the default playback bounds.

Practical example: camera fly-through sequence#

Create a LevelSequence with a CameraCut track and a Transform track that moves a camera from one position to another over 5 seconds (150 frames at 30 fps).

curl -X POST http://localhost:7850/baa/v1/batch \
  -H "Content-Type: application/json" \
  -d '{
    "defaultAsset": "/Game/Cinematics/LS_CameraFlythrough",
    "operations": [
      {
        "verb": "seq-set-range",
        "args": { "startframe": "0", "endframe": "150" },
        "id": "range"
      },
      {
        "verb": "seq-add-track",
        "args": { "type": "Transform", "binding": "CameraActor" },
        "id": "camTrack"
      },
      {
        "verb": "seq-add-section",
        "args": { "track": "$camTrack.trackIndex", "startframe": "0", "endframe": "150" },
        "id": "camSection"
      },
      {
        "verb": "seq-add-key",
        "args": {
          "track": "$camTrack.trackIndex",
          "frame": "0",
          "value": "(X=0,Y=0,Z=200)",
          "section": "0"
        }
      },
      {
        "verb": "seq-add-key",
        "args": {
          "track": "$camTrack.trackIndex",
          "frame": "75",
          "value": "(X=250,Y=100,Z=250)",
          "section": "0"
        }
      },
      {
        "verb": "seq-add-key",
        "args": {
          "track": "$camTrack.trackIndex",
          "frame": "150",
          "value": "(X=500,Y=0,Z=200)",
          "section": "0"
        }
      },
      {
        "verb": "save"
      }
    ]
  }'

Using commandlet (no HTTP server)#

# Step 1: Set playback range
"C:\Unreal\UE571Source\Engine\Binaries\Win64\UnrealEditor-Cmd.exe" \
  "C:\Unreal\ProjectLeyline\CombatDemo\CombatDemo.uproject" \
  -run=BlueprintAIAssistant \
  -verb=seq-set-range \
  -asset=/Game/Cinematics/LS_CameraFlythrough \
  -startframe=0 -endframe=150 \
  -nullrhi -nosplash -nosound -unattended

# Step 2: Add transform track bound to camera
"C:\Unreal\UE571Source\Engine\Binaries\Win64\UnrealEditor-Cmd.exe" \
  "C:\Unreal\ProjectLeyline\CombatDemo\CombatDemo.uproject" \
  -run=BlueprintAIAssistant \
  -verb=seq-add-track \
  -asset=/Game/Cinematics/LS_CameraFlythrough \
  -type=Transform -binding=CameraActor \
  -nullrhi -nosplash -nosound -unattended

# Step 3: Add section spanning full range
"C:\Unreal\UE571Source\Engine\Binaries\Win64\UnrealEditor-Cmd.exe" \
  "C:\Unreal\ProjectLeyline\CombatDemo\CombatDemo.uproject" \
  -run=BlueprintAIAssistant \
  -verb=seq-add-section \
  -asset=/Game/Cinematics/LS_CameraFlythrough \
  -track=0 -startframe=0 -endframe=150 \
  -nullrhi -nosplash -nosound -unattended

# Step 4: Add start keyframe
"C:\Unreal\UE571Source\Engine\Binaries\Win64\UnrealEditor-Cmd.exe" \
  "C:\Unreal\ProjectLeyline\CombatDemo\CombatDemo.uproject" \
  -run=BlueprintAIAssistant \
  -verb=seq-add-key \
  -asset=/Game/Cinematics/LS_CameraFlythrough \
  -track=0 -frame=0 -value="(X=0,Y=0,Z=200)" \
  -save \
  -nullrhi -nosplash -nosound -unattended

Note: For the commandlet approach, prefer using the batch verb with a JSON manifest file instead of multiple separate launches. Each commandlet launch loads the full editor (30-60 seconds), so batching saves significant time.


Tips#

  • List tracks first. Before adding sections or keys, run seq-list-tracks to see existing track indices and types.
  • Use batch for multi-step operations. Building a sequence typically involves multiple verbs (add track, add section, add keys). Batch them to avoid repeated editor startup costs.
  • Frame numbers use display rate. The default display rate is typically 30 fps. Frame 150 = 5 seconds at 30 fps.
  • Channel indices for Transform tracks. Channels 0-2 are Location X/Y/Z, channels 3-5 are Rotation X/Y/Z, channels 6-8 are Scale X/Y/Z.
  • Save after writes. Sequencer write verbs modify the asset in memory. Use -save on the last verb or add a separate save operation to persist changes to disk.