A cinematic subtitle manager featuring a character registry, typewriter text effects, color-coded names, and synced voice blips.
Subtitles can be displayed manually or triggered automatically via the Cutscene module. By utilizing the Character Registry, you can define an NPC's display name, text color, and talking sound once, and the system will automatically format all of their lines.
This module expects a specific GUI structure to exist in the player's PlayerGui. Ensure you have the following hierarchy created:
PlayerGui
└─ SubtitleGui (ScreenGui)
└─ SubtitleContainer (Frame)
└─ SubtitleLabel (TextLabel, with RichText enabled)
Global Configuration
Registering Characters
Showing Subtitles & Using Callbacks
| Prop | Type | Default | Description |
|---|---|---|---|
| text | string | "" | The line of dialogue to display. HTML tags are stripped during character counting. |
| character | string | nil | The ID of a pre-registered character to fetch Name, Color, and SoundId from. |
| duration | number | 2 | Time in seconds to keep the subtitle on screen after typing finishes. |
| typewriter | boolean | Config default | Overrides the global UseTypewriter config for this specific line. |
| speaker / speakerColor | string / Color3 | nil | Allows you to bypass the registry and provide a one-off speaker name and color. |
| onComplete | function | nil | Task spawned when the subtitle duration ends and the fade-out begins. |