Libretto¶
Libretto is an Unreal Engine plugin for writing branching dialogue, generating playable Sequencer cutscenes from it, and playing those dialogues at runtime (staged, over-the-shoulder 3C, or full cinematic). The Dialogue is first and foremost a data container, so it can also drive documents, diegetic UI, or any system that needs structured, localized, conditional text (see Reading dialogues in 2D interfaces).
What's included¶
Libretto ships as one plugin (plus an optional audio extension):
| Plugin | What it is |
|---|---|
| Libretto | The plugin itself — the Dialogue Editor, sequence generation, the runtime, and ready-made showcase content (example dialogues, characters, stages, cameras, barks, and a playable demo map). This is all you need to author, generate and play your own dialogues. |
| LibrettoWwise | Optional separate extension that routes dialogue audio through Audiokinetic Wwise. See Wwise. |
Follow along with the examples
This documentation uses the showcase content for its walkthroughs and screenshots
(D_NPCExample, D_ObservedScene, D_Barks, the L_LibrettoTutorial map…). It ships with
the plugin — no extra install needed.
Requirements¶
- Unreal Engine 5.8.
- No third-party account is required to get started. Cloud text-to-speech (ElevenLabs) is optional and needs your own API token; the local MSVoice provider works offline on Windows.
Install¶
- Install the Libretto plugin into your project's
Plugins/folder (or from Fab), enable it in Edit ▸ Plugins, and restart the editor. - (Optional) Add LibrettoWwise if your project uses Wwise for audio — see Wwise.
Quick start¶
- Create a Dialogue — right-click in the Content Browser ▸ Dialogue, name it
D_MyScene, and open it. See Dialogue Editor. - Add characters — add the characters taking part; each character Blueprint implements the
LBRDialogueCharacterinterface. See Characters. - Write lines — add
Text,ChoiceandReplylines to build the branching flow. See Line types. - Generate — from the Dialogue toolbar, generate the sequences (and optionally audio via TTS). See Generation.
- Play — drop a Dialogue Instance in your level and start it, or call one of the
StartDialogue*entry points. See Runtime.
New to the concepts?
Read Core concepts first for the mental model (Dialogue, Subdialogue, line, sequence, instance, stage) before diving into the reference pages.
Documentation map¶
| Area | Pages |
|---|---|
| Authoring | Dialogue Editor · Choice widgets · Subtitles · Intangible characters |
| Generation | Overview · Camera rules · Text to speech · Recording · Custom track generators |
| Runtime | Playing dialogues · Reading dialogues in 2D interfaces · Priorities |
| Data & logic | GPVars · Conditions · Gameplay tag flags · Dynamic tags |
| Content | Random barks · Localization & import/export |
| Extensions | Wwise (LibrettoWwise) |
| Reference | Blueprint API · Settings · Changelog |