Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

bevy_speech_bubbles

A dialog kit for Bevy: world-space speech and thought balloons that float over their speakers, a conversation graph with a runtime, paced barks, and a skinnable screen dialog box. Balloons are quads in the scene rather than a UI layer, so they hold a world position, can be hidden behind a wall, and turn to face the camera.

Add it

cargo add bevy_speech_bubbles

The README has a quick start that is compiled on every cargo test. Your game names the camera balloons face with a marker component, and loads its own font.

What it gives you

  • Balloons (build_bubble, track_bubbles, BalloonSkin, BalloonScale), including pixel-perfect ones (balloons).
  • A DialogueScript of Line and Choice nodes, loaded from RON or any serde format, strict about unknown keys, and checked by validate_script (conversations).
  • A runtime driven by StartConversation, ChoicePicked and ConversationEnded, with DialogueNodeEntered for effects, and two presenters: balloons or the dialog box.
  • Barks with BarkSettings pacing, and a 9-sliced DialogSkin with portrait, name tag and typewriter.

Use it in the Cauldron

The Cauldron takes this crate behind its bevy_speech_bubbles feature and keeps a project’s dialogue as the crate’s own DialogueScript in family/bevy_speech_bubbles.ron, with barks as Vec<Bark>. family_set writes them and runs validate_script before anything is saved, so a dangling next or a missing start node is refused with nothing written. dialogue_preview walks one path through a conversation, taking the options you name at each choice, and answers with the lines said, where the walk stopped and which nodes no path reaches, without changing a file. People placed with bevy_society speak these lines.