Continuity — Overview
What It Is
Continuity is an editor-only plugin that layers a complete production workflow on top of UE5's native Sequencer. It does not fork or replace Sequencer — every feature attaches through official extension points: ISequencerModule for toolbar and filter-bar injection, UToolMenus for menu entries, and Slate docking for the Sequence Browser panel. This means Continuity upgrades any project that uses Level Sequences for cinematic work without changing how Sequencer itself operates.
The plugin has no runtime component. It compiles as a single editor module (ContinuityEditor) and contributes nothing to packaged builds. All configuration lives in Project Settings, and all persistent state is either stored in the Level Sequence assets themselves or written to disk as sidecar files alongside rendered output.
Module Layout
Continuity ships as one module.
| Module | Type | Description |
|---|---|---|
ContinuityEditor | Editor | All features — browser, toolbar, filters, handles, exporters |
The module loads at PostEngineInit phase so that Sequencer and UToolMenus are both fully initialized before Continuity registers its extensions. There is no separate runtime or client module.
Sequence Browser
The Sequence Browser is a dockable Slate panel that reads the currently open level's Level Sequences and presents them in a three-level tree: Act, Scene, Shot. The hierarchy is derived entirely from each sequence's asset name using delimiter and token patterns configured in Project Settings > Plugins > Continuity > Naming Conventions.
For example, with the default pattern ACT{A}_SC{SS}_SH{SSS}:
ACT1groups all sequences whose names begin withACT1ACT1_SC01groups all shots in that sceneACT1_SC01_SH010is a leaf shot node
Each row in the tree displays the sequence's duration in seconds, its total frame count at the sequence's tick resolution, and in/out points if working range markers have been set. Double-clicking any row opens that sequence in the active Sequencer tab. Right-clicking exposes context actions including Rename (which updates the asset name and propagates the token change), Duplicate, and Add to Render Queue.
Note
The browser reflects the level's world. It does not scan the Content Browser. Sequences must be present as level sub-sequences or as independent assets associated with the open level to appear in the tree.
Toolbar Extensions
Continuity injects a contiguous group of buttons into Sequencer's native toolbar. All buttons are registered via ISequencerModule::RegisterToolBarExtension and respect the native toolbar's layout so they dock flush with Sequencer's own controls.
| Button | Action |
|---|---|
| Mark In | Sets the working range start to the current playhead position |
| Mark Out | Sets the working range end to the current playhead position |
| Lock Range | Toggles the playback range lock so scrubbing cannot move markers |
| Jump to Camera Cut (Prev) | Moves the playhead to the previous camera cut section boundary |
| Jump to Camera Cut (Next) | Moves the playhead to the next camera cut section boundary |
| Collapse All | Collapses all expanded track rows in the Sequencer panel |
| Expand All | Expands all collapsed track rows |
| Isolate | Hides all tracks except those currently selected; toggle again to restore |
| Auto-Size | Opens a submenu with Fit Parent to Children and Fit Children to Parent |
| Show Handles | Toggles the visual display of handle overlap regions on all sections |
| Render Shot | Queues the sequence currently open in Sequencer as a Movie Render Queue job using the selected Render Pass Preset |
| Timecode | A read-only display showing the current playhead position as HH:MM:SS:FF |
Handle Manager
Continuity's Handle Manager implements what the codebase calls Option C: when handles are applied to a shot, it extends both the inner sequence's working range and the parent sub-sequence section's overlap region by the configured handle duration. This ensures that the parent timeline sees the pre-roll and post-roll frames without any gap or clip at the cut boundary.
Handle duration is set in frames at Project Settings > Plugins > Continuity > Handle Manager > Handle Frames. The default is 8 frames. Changing this value does not retroactively update existing sequences — use the Apply Handles toolbar action to update all shots in the current hierarchy.
The Show Handles toolbar button toggles a colored overlay on every sub-sequence section that makes the handle region (the overlap beyond the shot's cut-in and cut-out) visible as a distinct color band. This makes it easy to audit which shots have handles applied and which do not.
Render Pipeline
Batch Shot Queuer
The Batch Shot Queuer scans the sequence hierarchy and creates one Movie Render Queue (MRQ) job per shot. It does not reimplement rendering — it constructs UMoviePipelineQueue jobs and hands them to MRQ for execution. Output paths use naming-convention tokens so the rendered files land in an organized folder structure that mirrors the ACT/SCENE/SHOT hierarchy.
Selecting shots before opening the queue dialog restricts queueing to the selection. Without a selection, all shots in the hierarchy are queued.
Render Pass Preset DataAssets
Each Render Pass Preset is a UContinuityRenderPassPreset DataAsset that configures the MRQ settings for a specific delivery scenario.
| Preset | Intended Use |
|---|---|
| Editorial | Fast proxy encode, JPEG compression, half resolution — for internal review cuts |
| Colorist Package | Full EXR sequence with embedded LUT reference — for color grading delivery |
| Full CG | EXR with additional passes: ambient occlusion, cryptomatte, diffuse, specular — for VFX work |
| Proxy | Low-resolution H.264, no alpha — for lightweight review and offline editing |
You can create additional Render Pass Preset DataAssets in the Content Browser to define custom pipelines.
Export Formats
EDL (CMX 3600)
The EDL Exporter writes a CMX 3600 Edit Decision List that describes the assembled cut as a sequence of edit events. Each shot in the hierarchy becomes one event. Timecode values are derived from the sequence's frame rate and working range. Reel names are derived from the shot's naming-convention tokens.
The resulting .edl file is suitable for direct import into DaVinci Resolve for color grading or conform, and into most professional NLEs for timeline reconstruction.
CSV Production Sheets
The CSV Exporter writes a flat production sheet with one row per shot. Four profiles are available:
| Profile | Columns |
|---|---|
| Master | Shot name, duration, frame range, camera, notes, status |
| Colorist | Shot name, frame range, camera, LUT, color notes, status |
| VFX | Shot name, frame range, camera, VFX pass names, complexity, status |
| ShotGrid | Shot name, duration, frame range, camera, ShotGrid-compatible status field |
Warning
CSV export is write-only. Continuity does not import CSV data back into the project. Use ShotGrid, Google Sheets, or your production tracking tool to manage the status columns after export.
Shot Sidecar JSON
When a shot is rendered through the Batch Shot Queuer, Continuity writes a .continuity.json sidecar file alongside the rendered EXR frames. The sidecar records the shot name, frame range, camera actor name, the list of enabled render pass names, and an ISO 8601 timestamp of the render. This file is intended for pipeline scripts that need to correlate rendered files back to their Unreal source sequences.
Integration with Other Plugins
Continuity exposes IContinuityShotProvider, a lightweight IModularFeatures interface that other plugins can query to get information about the currently active shot without taking a hard compile-time dependency on Continuity.
Panoptic (PanopticEditor module) registers a dependency on this interface at startup to populate its monitoring overlay with the current shot name and frame range. If Continuity is not present, Panoptic falls back to showing no shot information — it does not crash.
See API Reference — IContinuityShotProvider for function signatures.