Copyright © 2025-2026 Candy ArtsVoice Players
Voice Players speak Spoken Lines: they play voice files, and the output of Text-To-Speech.
Unlike other media players, they aren't controlled by commands and have no Access settings: each one belongs to a single UI Element.
- Scripts: Voice_Player.gd (AudioStreamPlayer), Voice_Player_2D.gd (AudioStreamPlayer2D), Voice_Player_3D.gd (AudioStreamPlayer3D)
- Updates: the scripts are 'unsafe' (see Customizing UI Elements, on the UI page)
- Files: see Voice and Media Files
- Dialogue Box, Subtitles and Chat_Channel: an AudioStreamPlayer, with Voice_Player.gd.
- Speech and bark bubbles: an AudioStreamPlayer2D or AudioStreamPlayer3D, with Voice_Player_2D.gd or Voice_Player_3D.gd, so the voice is emitted from the bubble's position.
| Setting | Purpose |
| default_voice_extension | Extension added to voice files named without one, for the Lines this player speaks. Leave empty to use the Engine's. |
| Hook | Called |
| x_playback_starting() | Right before voice playback starts. |
| x_playback_started() | Right after voice playback has started. |
[[line values], [Variation values]]. See UI Elements for how hook functions work.
In Voice mode, the Voice Player runs the Line by itself, since no UI Element displays it. There, a third hook function is called on it: x_speech_advance(), when the Line is advanced by the player or by auto-advance. It receives the same arguments. In the other Dialogue Modes, x_speech_advance() is called on the UI Element that displays the Line (see Speech Display).