Skip to main content

Tracks and Subjects

Adding a track​

Click + Add Track and pick a type. If the Explorer selection fits that type, the new track adopts it as its subject and takes its name: select a door, add an Instance track, and you get a track called after the door, already bound to it. With a folder selected in the track list, the track is added inside that folder.

TrackSubjectSections it takes
InstanceAny instance you assign, or a spawnableProperty, Particle Emit, Audio, custom
Cameraworkspace.CurrentCamera, found automaticallyProperty, custom
Global AudioAn AudioPlayer it creates when the sequence playsAudio
RigA rigged Model; Animation sections get its Animator, created if missingAnimation, Property
EmptyNoneSections that need no subject, and Subsequence
SubsequenceNone; its sections play other sequencesSubsequence
FadeA full-screen overlay it createsFade, Property
Time DilationNone; it scales the sequence clockTimeScale
FolderNone; it holds other tracksNone

Which sections a track offers depends on its subject: the menu only lists types whose declared subject class the subject satisfies. A Particle Emit section, for example, appears for a track bound to a ParticleEmitter.

A Camera track takes control of the camera while it plays, so the editor reminds you to disable custom camera systems for its duration. See Camera handoff for how a game does that.

A Global Audio track's Asset Id sets the sound to play, and Use Legacy Sound swaps the AudioPlayer for a Sound.

The track menu​

Right-click a track row, or the track's name, for its menu:

  • Assign Selection as Subject binds the selected instance to the track.
  • Subject Preset... turns the track's subject into a preset.
  • Clear Subject unbinds it.
  • Make Spawnable from Selection copies the selection into the sequence as a spawnable.
  • Promote to Binding... gives the subject a public name scripts can fill in. See Bindings.
  • Add ... Section adds a section of that type at the playhead.
  • Rename, Track Color..., Reset Color, Duplicate Track..., Move Up, Move Down, and Move to Folder... organize the list.
  • Evaluation Phase cycles between the type's default, Heartbeat, and Render step. See Evaluation phase.
  • Select Subject in Explorer and Delete Track.

Every one of these is a single undo step.

Assigning subjects​

Select an instance in the Explorer and choose Assign Selection as Subject, or use the button of the same name in the Inspector. The subject is stored as a path under the sequence's root, and the instance is stamped with an id. If the instance is later renamed or moved somewhere else under the root, Flow finds it again by that id.

A subject has to sit under the sequence root, because the root is what retargeting moves. If you pick one outside it, the editor offers to re-root the sequence to the closest common ancestor of the old root and the new instance. The dialog names the new root and how many tracks it will rewrite; accepting moves the root and assigns the subject in one undo step, and no existing subject loses its binding.

Containers​

If you assign an instance inside a subject that another track already binds as a container, the new track binds relative to that container. A chandelier bound as one container can have a track for each of its twelve arms, and retargeting the chandelier binding retargets all of them. Mark a promoted binding as a container with the Container checkbox in the Inspector.

Promoting a subject to a binding​

A directly assigned subject always means the same instance. When it should change from play to play, choose Promote to Binding... and give it a public name:

Flow:Play("DoorOpen", { Bindings = { Door = touchedDoor } })

The assigned instance stays as the preview target in the editor. Promoted bindings are listed under Public Bindings in the Inspector when no track is selected. Most sequences need only one or two; everything else can stay directly assigned.

Spawnables​

A spawnable subject is cloned from a template stored in the sequence's own Templates folder each time the sequence plays, and destroyed when it stops. Because the template travels with the sequence, a spawnable needs no binding and works in any place the sequence is copied to. Instance and Rig tracks can be spawnable: select the instance to use as the template and choose Make Spawnable from Selection.

Subject presets​

Some subjects don't exist while you are authoring, most often the player's own character. A subject preset produces the subject on each client when the sequence plays. Choose Subject Preset... in the track menu, or the Kind dropdown in the Inspector's Subject section.

Flow ships four:

PresetPlays against
LocalPlayerCharacterR15 / R6A copy of the local player's character
RandomFriendCharacterR15 / R6A copy of a random friend of the local player who is in the server

Each builds a fresh model at a fixed rig type, so an animation authored for R15 always plays on R15. The player's real character is never moved or animated; by default it is hidden while the copy plays, and the Hide the live character while it plays checkbox turns that off. A random friend falls back to any other player, and then to Roblox's own account, so the preset always resolves to something.

In the editor, a grey stand-in rig takes the subject's place. You animate, key, and preview against it. To place the subject, drag the stand-in where you want it and click Use Stand-in's Position. Converting a track that was already bound to a real model keeps that model's position.

A preset binding is also a container: assign a part inside the stand-in, such as its HumanoidRootPart or a hand, and that track will find the same part inside the real character at play time. The stand-in itself can't be assigned to a track, because it doesn't exist when the game runs.

To write your own preset, see Subject presets.

Folders​

A Folder track groups other tracks. Drag tracks onto it, or use Move to Folder... or the Folder dropdown in the Inspector. Turning a folder off with its checkbox turns off everything inside it, in the editor and in game. Deleting a folder that still holds tracks asks whether to delete them too or keep them where the folder was.

Track color​

Every track type has a default color. Track Color... picks a different one for the track's stripe and its sections, which helps tell similar tracks apart. The color is saved with the sequence and shared with collaborators, and has no effect on playback.

Evaluation phase​

Tracks update either on Heartbeat, after physics, or on the render step, just before the camera updates. Camera and Fade tracks default to the render step; everything else to Heartbeat.

If a camera follows a subject animated on Heartbeat, it reads the subject's position a frame late, which shows as jitter. Switching the subject's track to the render step fixes it. Writes from tracks in different phases are not ordered by the track list, so the editor warns when two of them write the same property.