Creating Custom Sequencer Tracks in Unreal Engine 5

Table of Contents

Works in Unreal Engine 5. Tested on UE 5.8. Updated October 2026.

Quick answer: a custom Sequencer track needs four C++ classes across two modules:

  1. Track (UMovieSceneTrack, runtime module): the row in Sequencer that holds your sections.
  2. Section (UMovieSceneSection, runtime module): a block on the timeline that stores your data and runs during playback.
  3. Track editor (FMovieSceneTrackEditor, editor module): adds your track to the + Add menu.
  4. Section interface (FSequencerSection, editor module): draws your section in the timeline.

Then register the track editor when your editor module starts.

Before you start

Custom tracks are an advanced C++ topic. You need:

  • a runtime module for the track and section (they ship with your game),
  • an editor module for the track editor and section drawing (editor only).

If your project has only one module, add an editor module first. See how to create a plugin from a module.

Step 1: Add the modules to Build.cs

Runtime module:

				
					PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "MovieScene" });
				
			

Editor module:

				
					PrivateDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "Slate", "SlateCore", "UnrealEd", "MovieScene", "LevelSequence", "Sequencer", "SequencerCore", "YourProject" });
				
			

Step 2: Create the track and section

  • Subclass UMovieSceneNameableTrack for the track. It stores an array of your sections and creates new ones.
  • Subclass UMovieSceneSection for the section. Put the data you want on the timeline here (a message, a color, a sound…).
  • To make the section do something during playback, the section reacts when playback enters and leaves it.

Step 3: Create the track editor and section interface

  • Subclass FMovieSceneTrackEditor. It tells Sequencer which track type it handles, adds a menu entry to + Add, and creates sections when you click.
  • Subclass FSequencerSection to control how each section looks in the timeline (its label and color).

Step 4: Register the track editor

In your editor module’s StartupModule:

				
					ISequencerModule& SequencerModule = FModuleManager::LoadModuleChecked<ISequencerModule>("Sequencer");
DebugMessageTrackEditorHandle = SequencerModule.RegisterTrackEditor(FOnCreateTrackEditor::CreateStatic(&FDebugMessageTrackEditor::CreateTrackEditor));
				
			

And unregister it in ShutdownModule with UnRegisterTrackEditor(DebugMessageTrackEditorHandle).

Step 5: Test it

Build, open a Level Sequence, click + Add, and your track appears in the menu. Add a section, play the sequence, and check it runs.

Animating a property instead?

If you only want to keyframe a property of an object (like a float or color), you may not need a fully custom track. Sequencer can already animate most exposed properties. For your own property types, look at FPropertyTrackEditor, which handles a lot of the work for you.

Common errors

ProblemFix
Track doesn’t appear in + AddThe track editor isn’t registered, or the editor module didn’t load. Check StartupModule runs
Linker errors (LNK2019)A module is missing from Build.cs. See LNK2001 unresolved external symbol
Section does nothing at runtimeThe logic is in the editor module. Playback code must be in the runtime module

This is what we did in our UMG Cinematics plugin.

Related tutorials