Add Cutscene System to your Roblox project in one command. Requires Node 18+ and a Roblox project — run robloxui init first if you don't have one yet. See the docs.
bashnpx robloxui add cutscene-systemFirst time? Start with the documentation.
import { Cutscene System } from "./src/client/ui/components/cutscene-system";local CutsceneService = require(script.Parent.CutsceneService)
local cs = CutsceneService.new()
cs.onSubtitle = function(text) letterbox:SetSubtitle(text) end
cs:Load({ { time = 0, type = "letterbox", payload = true }, { time = 1, type = "subtitle", payload = "Long ago..." } })
cs:Play()Timeline-driven cinematic director. CutsceneService loads an ordered cue list (camera/subtitle/letterbox at scheduled times), plays via task.delay, and supports Skip(). Letterbox component animates black bars with TweenService and shows subtitles. Bind onCamera/onSubtitle/onLetterbox handlers to drive your scene.
by RobloxUI Team
| Author | RobloxUI Team |
| Framework | Roblox-TS + React-Luau |
| Category | Systems |
| Dependencies | @rbxts/react |
| Theme Tokens |
| colors.primary, colors.primaryLight, colors.primaryDark, colors.secondary, colors.secondaryLight, colors.secondaryDark, colors.accent, colors.accentLight, colors.accentDark, colors.bg, colors.bgSecondary, colors.bgTertiary, colors.surface, colors.border, colors.borderLight, colors.glow, colors.text, colors.textPrimary, colors.textSecondary, colors.textMuted, colors.success, colors.successLight, colors.error, colors.errorLight, colors.warning, colors.info, colors.gold, colors.goldLight, gradients.primary, gradients.gold, gradients.health, gradients.mana, gradients.purple, gradients.card, gradients.surface, gradients.surfaceLight, spacing.3xs, spacing.2xs, spacing.xs, spacing.sm, spacing.md, spacing.lg, spacing.xl, radius.sm, radius.md, radius.lg, radius.xl |
| Last Updated | July 31, 2026 |