A downloadable tool for Windows, macOS, and Linux


A simple branching dialogue editor.

Write game dialogue in an easy to read language and export it for use in your game.

If you're using this with Godot then you might want to use my all-in-one addon instead.


  • Export to Godot Resource for use with my SayWhat Godot addon
  • Export to a translation CSV.
  • Export as JSON for general use (or with my SayWhat NPM)
  • Export as HTML for a quick self-contained branching narrative.

Writing Dialogue

Nodes and basic dialogue

All dialogue exists within nodes. Node titles are lines that begin with a "#".

Dialogue is usually in the format of <character name>: <what they say>

Jump to a node using a "goto" line and its title.


Conditional lines begin with "if", "elif" (else if), or "else". Conditional bodies are any lines tabbed in below them. You can nest condition inside other blocks.


Mutation lines are how you affect the state of your game. At runtime SayWhat will request properties and methods from your game state.

Update properties with "set" lines.

Run functions with "do" lines.


Use response lines to give the player a choice in what happens.

Response lines begin with "- " followed by the prompt text. Responses can either have a tabbed body on the following lines or a "goto" statement. Responses can also have conditions defined within "[" and "]".


When writing dialogue you have the option to add manual translation keys inline or just using the line itself as its own key.

When exporting, if a manual translation key exists on a line it will be used as the value for exported "text" property for the line, otherwise the dialogue or response prompt will be used as the key.

Manual keys are in the form of [TR:SOME_KEY] where SOME_KEY is your actual translation key. 

If you have a duplicate key with non-duplicate content then you will see an error for that line.

Making SayWhat


Any dialogue you write or export is yours to use however you like.

PlatformsWindows, macOS, Linux
Rated 4.8 out of 5 stars
(5 total ratings)
AuthorNathan Hoad
Made withGodot
Tagsdialogue, editor, Godot, javascript


SayWhat-win-4.3.0.zip 15 MB
SayWhat-linux-4.3.0.zip 15 MB
SayWhat-mac-4.3.0.zip 27 MB

Install instructions


SayWhat is not currently a signed binary so you'll need to jump through a couple of hoops to get past the macOS Gatekeeper.

If you're using it with Godot, you might want to just use my all-in-one addon.

Follow the instructions here: https://docs.godotengine.org/en/3.4/tutorials/export/running_on_mac.html

Development log

View all posts