Lights, Camera, Verse: Playing Cinematic Sequences
Lights, Camera, Verse: Playing Cinematic Sequences
In Part 1 we animated one mesh. But a real reveal — a vault door grinding open while the camera swoops and the lights flare — is a dozen things moving in sync. You don't hand-code that in Verse. You author it once in Sequencer (UEFN's cinematic timeline), wrap it in a Cinematic Sequence device, and then drive the whole shot from Verse with a couple of calls.

What a Cinematic Sequence device gives you
<!-- section-art:what-a-cinematic-sequence-device-gives-you -->

Reverse Rewind
You build the content of the shot in Sequencer — camera cuts, animated props, lights, fades. The device hands Verse the transport:
Cine.Play() # roll the sequence forward
Cine.PlayReverse() # roll it backward
Cine.Stop() # stop and stay put
# React the moment it finishes (StoppedEvent carries no data):
Cine.StoppedEvent.Subscribe(OnSequenceDone)
Two things make this powerful:
PlayReverse()gives you a perfect rewind for free — no second Sequencer track, no re-authoring. The same cinematic plays backward.StoppedEventfires the instant the sequence stops — at its natural end, or because you calledStop()/GoToEndAndStop(). That's your hook to do something when the show's over.
One setup note: the no-argument Play() / PlayReverse() only work when the device's Plays For option is set to Everyone. (If it's set to a specific instigator, you pass an agent: Cine.Play(SomeAgent) — we'll use that form in the capstone.)
A play/rewind console with a payoff
Here's a drop-in device: one button rolls the cinematic forward, another rewinds it, and when the sequence finishes, a fanfare plays. That fanfare is wired through StoppedEvent — the cinematic literally earns its payoff.
The load-bearing details:
Cine : cinematic_sequence_device— the@editableslot for your Sequencer-authored shot.StoppedEvent.Subscribe(OnSequenceStopped)— noteOnSequenceStoppedtakes no parameters.StoppedEventis alistenable(tuple())— it signals "stopped" with an empty payload, so your handler's signature must match (noagent, nothing).- It fires on every stop. Reach the end naturally → fanfare. Call
Stop()→ fanfare. That's usually what you want for a "show's over" cue, but it's worth knowing so you don't double-trigger.
This device is compile-verified in UEFN 5.8 (the whole project builds clean with it installed). Grab it as 03-device.verse, then wire its slots: your Cinematic Sequence device into Cine, two Buttons into PlayButton/RewindButton, and an Audio Player (set to Heard by Everyone) into Fanfare.
Subscribable, not a callback you poll
<!-- section-art:subscribable-not-a-callback-you-poll -->

Event Subscription
Notice we never check "is the sequence done yet?" in a loop. We subscribe to StoppedEvent once in OnBegin, and Verse calls our handler when it happens. That's the events model the whole engine runs on — a listenable you Subscribe to, exactly like a Button's InteractedWithEvent. Cinematics are just one more thing that broadcasts.
Recap
- Author the shot in Sequencer; wrap it in a Cinematic Sequence device; drive it from Verse.
- Transport is
Play(),PlayReverse(),Stop()— andPlayReverse()is a free, perfect rewind. StoppedEventis alistenable(tuple())— subscribe to it to react when the sequence stops; the handler takes no parameters.- It fires on every stop (natural end or a manual
Stop/GoToEndAndStop). - No-argument
Play()needs the device set to Everyone; otherwise pass anagent.
Next — Part 3: The Director's Chair — we stop just pressing play and start directing: slow-mo, freeze-frame, scrubbing the playhead, and reading the sequence's live position to sync other systems.
Get the complete code — free
You've read the full walkthrough. The complete, copy-paste-ready Verse solution is free for members — sign in to unlock it.
Free with your BrainDead.TV / BrainDeadGuild Discord account. The walkthrough above is always free.
Verse source files
- 01-fragment.verse · fragment
- 03-device.verse · device
Check your understanding
Test yourself with an interactive quiz and track your progress + earn XP — free for members.
Turn this into a guided course
Add UEFN Verse cinematics — cinematic_sequence_device Play/PlayReverse/Stop, StoppedEvent listenable(tuple()), Sequencer, subscribe model to your free study plan — we'll suggest related pages and stitch the lot into one compile-checked, self-guided lesson with worked examples and quizzes.
References
Original tutorial generated by Verse Island from the Verse/UEFN knowledge base, with references to the Epic Games sources above. Code is validated against the knowledge base.