Skip to content

4.6 Typewriting Function

BDC_Patrick edited this page Feb 14, 2026 · 3 revisions

Dialog Typewriting

Image Info
Dialog Typewriting Node Initiates a typewriting effect on the specified text with customizable reveal modes and timing.
Description

The Dialog Typewriting Node is an asynchronous Blueprint action that processes a text string and reveals it over time. This node is specifically designed to work with the BDC Dialog System, handling rich text decorators and custom commands like <wait X> automatically.

You can choose between different reveal modes, such as per-character (Glyph), per-word, or per-sentence. It also allows for fine-tuned control over the speed of the revelation, including extra pauses after punctuation marks to make the dialogue feel more natural.

Being an asynchronous node, it provides an Update output that fires for every step of the reveal process, allowing you to update your UI in real-time. The Finished output triggers once the entire text has been revealed and the processed text is complete.

In- and Outputs

Name Type Description
InText Text The full text to be processed and revealed. Supports rich text tags and Dialog Commands.
Mode Enum Define the granularity of the reveal:
Glyph: Reveals character by character.
Word: Reveals word by word.
Sentence: Reveals sentence by sentence.
delayPerUpdate Float The base delay (in seconds) between each reveal step. Default is 0.05s.
delayAfterFullstop Float Additional delay (in seconds) added after punctuation marks like . ? ! ;.
delayFinished Float Extra delay (in seconds) after the text is fully revealed before calling the Finished output.
Update Execution pin triggered at each step of the reveal. It passes out the current progress and partial text.
Finished Execution pin triggered when the typewriting effect is complete.

Delegate Outputs

Both Update and Finished outputs provide the following data pins:

Name Type Description
OutText Text The text string containing all currently revealed characters and necessary closing tags.
CurrentGlyph Integer The index of the last revealed character (ignoring rich text tags).
GlyphsLeft Integer The number of characters remaining to be revealed.
GlyphsTotal Integer The total character count of the processed text.

The <wait X> command can be placed anywhere in the InText to introduce a pause of X seconds at that specific position during the typewriting process.
Example: "One moment... <wait 2.0> Okay, let's go!"

Punctuation detection for delayAfterFullstop automatically handles: . ? ! ;

Documentation Index

I. What is the Dialog Backend?
II. Setting up
III. Binding UI
IV. The Subsystem
V. The Components
VI. Dispatchers
VII. Others

Demo available: Demo Page

Clone this wiki locally