Copyright © 2025-2026 Candy ArtsVN Bubbles Mode
VN Bubbles mode displays the spoken text inside a speech bubble on the speaker's VN bust, for Visual Novels. There is no portrait or speaker label.
VN Bubbles is an Alternate mode: never assign it yourself. The Engine switches a Line from Bubbles mode to VN Bubbles mode when:
- vn_mode is enabled in the Engine, and
- the Engine has a VN scene (busts_path in ui_elements_paths).
The speech bubble is the node named speech_bubbles_name inside the speaker's bust. If the speaker has no bust on screen, or their bust has no speech bubble, the Line is displayed in the bubbles_exempt_mode instead.
VN Bubbles mode uses the same settings as Bubbles mode (the bubbles_ settings and their overrides).
Note: The Godot Editor may print this error when it loads a scene containing a speech bubble or a bark bubble: Path to node is invalid: 'SubViewport'. (or 'BarkBubble/SubViewport' for a bark scene).
It's caused by the Godot editor loading the speech/bark bubbles ViewportTextures before Subviewports.
Everything works correctly: you can ignore it. |
| Setting | Purpose |
| vn_mode | Enable VN mode: Lines in Bubbles mode switch to VN Bubbles mode. |
| bubbles_exempt_mode | The Dialogue Mode to use when the speaker has no bust on screen, or their bust has no speech bubble. |
| bubbles_text_bbcode | BBCode tags wrapped around the spoken text. Write the opening tags only: the Engine adds the closing tags. |
| bubbles_end_of_line_string | The end-of-line string before advancing to the next Line. |
| bubbles_advance_string | The end-of-line string after advancing to the next Line. |
| lexicon_bubbles_mode | Enable Lexicon formatting in the spoken text. |
| writing_speed | Typewriter speed, in characters per second. 0 displays the whole Line at once. |
| continue_fast_speed | Typewriter speed while the speed-up input is held. |
| continue_slow_speed | Typewriter speed while the slow-down input is held. |
| sync_write_speed_voice | Match the typewriter's speed to the voice file's length. The synchronization is lost if the player accelerates or slows down the writing. |
| auto_advance | Seconds to wait before automatically advancing to the next Line. -1: Disable (manual advance only). 0: Advance immediately when writing is finished. |
| auto_advance_per_character | Seconds added to auto_advance for each character the Line displays (e.g. 0.05 adds 5 seconds to a 100-character Line). Ignored when auto_advance is -1. |
| enable_voice | Play voice files or TTS for Spoken Lines. |
| await_voice_playback | Disable advancing until voice playback has finished. |
| text_to_speech | Text-To-Speech: "Off": Don't use Text-To-Speech. "Simple": Use the spoken text (without BBCode tags) for Text-To-Speech. "Advanced": Use the _TTS Variation for Text-To-Speech. Additional TTS modes are created in the tts() hook function (Tts.gd). |
| tts_advanced_fallback | The TTS mode to use instead of "Advanced" when a Line has no "_TTS" Variation. Without TTS modes of your own, the only values are "Simple" and "Off". |
| llm_mode | Query an LLM to write the text to display. |
| write_dialogue_history | Log Spoken Lines in the Dialogue History. |
| Setting | Purpose |
| speech_bubbles_name | The name (or path) of the speech bubble inside each bust node. |
| Setting | Overrides |
| text_bbcode | bubbles_text_bbcode |
| end_of_line_string | bubbles_end_of_line_string |
| advance_string | bubbles_advance_string |
| lexicon_mode | lexicon_bubbles_mode |
| writing_speed | writing_speed |
| continue_fast_speed | continue_fast_speed |
| continue_slow_speed | continue_slow_speed |
| sync_write_speed_voice | sync_write_speed_voice |
| auto_advance | auto_advance |
| auto_advance_per_character | auto_advance_per_character |
| enable_voice | enable_voice |
| await_voice_playback | await_voice_playback |
| text_to_speech | text_to_speech |
| tts_advanced_fallback | tts_advanced_fallback |
| llm_mode | llm_mode |
| write_dialogue_history | write_dialogue_history |
| Setting | Purpose |
| x_offset | The bubble's offset on the X axis. |
| y_offset | The bubble's offset on the Y axis. |
| z_offset | The bubble's offset on the Z axis (3D only). |
| max_width | The maximum width the bubble can reach. |
| text_width_margin | Extra space on each side of the text. |
| default_z | The bubble's Z-order (2D only). |
| Property | Overrides |
| BubblesExemptMode | bubbles_exempt_mode |
| BubblesTextBBCode | bubbles_text_bbcode |
| BubblesEndOfLineString | bubbles_end_of_line_string |
| BubblesAdvanceString | bubbles_advance_string |
| LexiconBubblesMode | lexicon_bubbles_mode |
| DialogueMode | dialogue_mode |
| WritingSpeed | writing_speed |
| ContinueFastSpeed | continue_fast_speed |
| ContinueSlowSpeed | continue_slow_speed |
| SyncWriteSpeedVoice | sync_write_speed_voice |
| AutoAdvance | auto_advance |
| AutoAdvancePerCharacter | auto_advance_per_character |
| EnableVoice | enable_voice |
| AwaitVoicePlayback | await_voice_playback |
| TTS | text_to_speech |
| TTSAdvancedFallback | tts_advanced_fallback |
| LLM | llm_mode |
| WriteDialogueHistory | write_dialogue_history |
| Key | Overrides |
| Bubbles_Exempt_Mode | bubbles_exempt_mode |
| Text_BBCode | bubbles_text_bbcode |
| End_Of_Line_String | bubbles_end_of_line_string |
| Advance_String | bubbles_advance_string |
| Lexicon_Mode | lexicon_bubbles_mode |
| Dialogue_Mode | dialogue_mode |
| Writing_Speed | writing_speed |
| Continue_Fast_Speed | continue_fast_speed |
| Continue_Slow_Speed | continue_slow_speed |
| Sync_Write_Speed_Voice | sync_write_speed_voice |
| Auto_Advance | auto_advance |
| Auto_Advance_Per_Character | auto_advance_per_character |
| Enable_Voice | enable_voice |
| Await_Voice_Playback | await_voice_playback |
| TTS | text_to_speech |
| TTS_Advanced_Fallback | tts_advanced_fallback |
| LLM | llm_mode |
| Write_Dialogue_History | write_dialogue_history |