A downloadable tool for Windows, macOS, and Linux

Buy Now$9.99 USD or more

An easy to use but powerful tool for creating branching dialogues for games.

Works with Unity, Unreal 4, Godot, Construct 3, GameMaker Studio 2 and many more!

Now available on STEAM!

A powerful (but easy to use) branching dialogue editor designed for story-driven games like RPGs and Visual Novels.

Create complex non-linear data structures in minutes, no programming experience required!

The editor was created for non-programmers. It is easy to understand and navigate. It is also fast and lightweight - it runs smoothly even on less powerful PCs.

The editor includes a characters database and local variables database (strings, integers, booleans). They are incredibly helpful in organising the dialogue and keeping track of player's progress.

Change the dialogue language by selecting it from a drop-down menu. There are no limits for the amount of languages you can use.

Export your dialogue with one click to an easy to read JSON text file, which can be imported into most modern game engines and frameworks

Example file: Download an example exported file from the bottom of this page.

Read more about JSON: https://en.wikipedia.org/wiki/JSON#Example

Available nodes:


Support this software to help further development!

All updates will be released for free for owners of the editor.

More from radmatt:

Any questions? Contact me: radmattsoftware at gmail.com


PlatformsWindows, macOS, Linux
Rated 4.1 out of 5 stars
(23 total ratings)
GenreRole Playing, Visual Novel
Made withGodot
Tagsbranching-dialogue, dialogue, Godot, Narrative, Nonlinear, Story Rich, tool, Unity
Average sessionA few seconds
InputsKeyboard, Mouse


Buy Now$9.99 USD or more

In order to download this tool you must purchase it at or above the minimum price of $9.99 USD. Your purchase comes with a Steam key. You will get access to the following files:

DD_Windows_3.2.4.zip 32 MB
DD_Linux_3.2.4.zip 34 MB
DD_Mac_3.2.4.zip 29 MB

Download demo

Example dialogue files.zip 7 kB
Dialogue Designer Documentation.pdf 728 kB
4K fix files.zip 2 kB
example_dialogue_exported.json 7 kB

Development log

View all posts


Log in with itch.io to leave a comment.

Viewing most recent comments 5 to 44 of 100 · Next page · Last page

Great application. Are there any plans for HiDPI support on MacOS and Linux? I ask because its really small to read on my X1 laptop compared to my PC.


There was an update posted awhile back with a few suggestions on how to scale up the interface: https://radmatt.itch.io/dialogue-designer/devlog/156541/4k-resolution-fix-interf...


When will steam keys be available again? And will there be a fix for M1 Macs?

PLEASE, make the UI on OSX scalable. I'm on MacBook with a 13'3 inch display and right now it looks like it's permanently set to size 4 or 6. Currently, on OSX at least, this app is impossible to be worked with. *I'm working on it through Steam if it means anything.


There seems to be a new issue on Mac that is not related to permissions. I am running MacOS 12.4 on Intel CPU.


yes I am having the same issue. MacOS 12.4, but mine is not intel but M1 Pro.


Can confirm this issue on macOS 12.3 with Intel Mac

(1 edit)

Can still confirm. MacOS 12.5.1 Intel.
Also, the steam keys are empty.

3.2.4 has introduced a fairly annoying bug where the individual node collision boxes don't line up with what's visible on the screen. This can make it really difficult to link nodes depending on the zoom level. I've tried this on multiple PCs with different display ratios and resolutions. Hopefully we'll see another update at some point that'll fix this.

I would like to use Dialogue Designer to structure the entire course of the game.

The things I would really like in Dialogue Designer would be project tabs and duplicating nodes preserving their size.

Really great product! It was very straight forward to implement in Construct 3 and works beautifully.

The one feature I would love to see is that the 'Execute' block also had a dropdown-menu with predefined code samples/function names as local variables have.


Is the project abandoned? This software is great but needs to be polished a lot. Unfortunately there were no updates in almost a year and @radmatt is sadly ignoring all requests.

If no updates are planned, would you consider making DialogueDisgner an open source?



there are some updates planned for DialogueDesigner in the near future. Recently I've been busy with my other app but I will soon come back to this one. 

I apologize if I seem to be ignoring requests, I'm just busy and usually miss them. 

Any plans for an update? Would love to see multiple zoom levels and the ability to change variables/characters names

(2 edits)

Hi, Matt! Love the tool so far. I got some feedback and ideas that could be cool.

I agree with the post before me regarding translators. Would love to be able to mark a language as "Default" or "Reference" and have a secondary window pop up next to the text window showing the reference language if some other language is being edited.

It would also be nice to be able to embed keywords like "Characters" in the text  like [Characters=Interacted Character] and have them highlighted in a separate "parsed" window (so you know you've written it correctly). If that were to be implemented, being able to add custom categories with keywords like "Items" or "Locations" would also be a great plus!


Starting to stack up a bit, but any plans on creating a switch statement node for variables?


It's been a while since the last update, but I have a small suggestion that would be pretty easy to implement and add greatly to QoL - that being a toggle option between the last two languages selected. Would be nice for our poor translators to switch between the base language and the target language with the press of a button rather than having to use the drop-down menu in the corner each time.



There is a new update planned after GridlessDB comes out. I'll add your request to the to-do list. 


Would it be possible to add a feature to duplicate multiple nodes at once? For what I've see it's only possible to duplicade one node at a time.

(3 edits) (-1)

Hi Matt,

Great software!  I want to make a few requests:

1. It would be great if the files knew their own name.  For example if i save a file as foo.json but then externally edit it as bar.json and re-open.  When I save it still wants to save itself as foo.json.  I think it should just associate itself with whatever it's file is actually named in the file system.

2. Similar issue with folders. Having a base project folder is a bit odd.  It would be better to just have a save dialogue pop up where you can choose a folder in your file system (similar to most other software).  When you open the file back up it should know where it is located in your file system and want to save itself there by default (file > save).  I have a lot of dialogue files and it gets hard to organize having to sit them all in the same base project folder.

3.  Do we really need a 'save' and an 'export'?  I get that export doesnt include the graph stuff used in the program itself but its really not saving you much to not have the graph included in your json.  json files are really small to begin with.  if someone is really upset about the size they can always go into the file and strip the graph info out of there.

--- Basically you should have a save, and save as option (just like most other software) ---

4. Global list of characters and variables please :)

Is there any chance to change the Charactername by language?

For example a NPC is called "Mystery Man" in english but "Mysteriöser Mann" in german.

Hey Radmatt!
I want to see if this is right for me, but the JSON example link you have isn't working.  I just get a blank page.

You can download example dialogue files from the bottom of the page and open them in f.e Visual Studio Code (make sure to have a json beautifier addon). I also recommend Json Formatter Pro from windows store.

(2 edits) (+1)

It is very intuitive to build dialogue, and I plan to use it in really big projects, but have a lot to things to improve:

(Current version is 3.2.1, using in GMS 2)


- The horizontal bar isn't working

- The purple baloon that shows the text of Show Message boxes flicks when changing zoom

- Don't know about other languages and engines, but in GMS you can't name variables inside a struct with numbers, like in Chance Branch and Random Branch (i hade to split strings to use it properly)

- I use a notebook, and the program doesn't accept when I use for example Ctrl + Alt + W (that would write "?"), and it's REALLY BAD having to use Ctrl + F Ctrl + V EVERY TIME

Missing features(something really basic): 

- MORE ZOOM OUT, PLEASE (for what i've read from reviews, it's a really old problem that haven't been solved yet)

- Show Recent files in the "File..." section

Nice things to add:

- Option to minimize boxes

- Switch condition

- Option to search for a text (something like Ctrl + F)

Hello radmatt, 

I've been using DD for renpy for a while now and I've been enjoying it so far, but in the last update the execute nodes of the program don't accept line break (pilcrow) characters anymore to allow multiple lines of code, which bars me from adding code that cannot be executed in separate nodes. 

Personally, I require being able to write various lines of code in the execute nodes, or else my whole project can't work as intended. Considering that, I wanted to ask if you could restore the functionality of using line break characters, or if the execute node can be expanded, like the dialogue nodes, so that you can add various lines of code in each node: That would be an incredibly useful addition.

Thank you.

New version is up (3.2.2). You can now resize the execute node and pressing enter makes a new line.


Absolutely amazing. Thank you very much, this will help me tons with my project!~I wish you a great day.

Hello radmatt!

I have a question, do we really have to create every locales each time we create a file? Let say I have 10 locales, currently, each time I create a new discussion, I have to re-create those 10 locales, which make it unusable for me unfortunately.

That would be nice to have real "project" settings that are available in all new files we create, otherwise I don't see how it could scale to big projects.

Cheers! Looking forward new features.

The new version is up.

Just open up one of your existing files and tick the box.

And don't worry if you delete a locale and the texts in message nodes get deleted. You can just add the same locale ID and the text will appear back up.


Awesome, thank you for this great update!

(1 edit)

I've been using Dialogue Designer for a while now and mostly it's really good. However, I think there really needs to be a field on the nodes to reference audio files.

I'm at a point now in my game where I want to add recorded speech over the text, and being able to reference an audio file directly from the node would be a godsend. All it would need to be is an extra field.

Matt, please add this. I'm willing to discuss the option of paying for you to take some time to do this if necessary.

You can message me over on Twitter under the handle @herrwebster if you want to discuss it further (I don't think we can send messages through Itch).

You should be able to already achieve that using variables. Create a variable named something like "audioFile". Then just set that variable to the name of the audio file you want to play prior to the character's dialogue.

I'm actually releasing a new version soon that will have your requested feature. Hopefully today.

(1 edit)

The new update is up. You can now test it out.

See: https://radmatt.itch.io/dialogue-designer/devlog/216009/version-320-major-perfor...

Awesome job! That's just what DD needed. Downloading now.


Just out of curiosity: With which software / language / engine have you developed this?

What's the basic usage of this tool? I bought it and I'm a little confused. Is each project for a single dialogue sequence? Or is a project suppose to contain all dialogue sequences for an entire game project?

The idea was to make a tool to create manageable, separate dialogue files for dialogue heavy games which require non-linear storytelling. Those files are meant to be connected by an external software, like a game engine or a framework.

Ok so If I'm understanding you correctly, if I'm making an RPG and I have 2 conversations, one between the player and a villager, then one between the player and the final boss, I would make 2 separate dialogue designer projects?

Yes, you would create two separate files. Think of them like they're image files that you edit separately of each other, and then put them together in the game engine.

(1 edit) (+1)

I like this program. Keep up the good work! Wanted to ask if you can implement a better zooming option. I just started with my first dialog and after zooming out I realised that I may only see 2 or 3 dialogs at the same time which is nothing compared with the many dialogs which will be implemented. To move fast to a specific point I would appreciate a much more zoomed out view.

I think I just get the idea that you have a single file for each dialog? :O

(1 edit)

Yeah, the idea is that you'd have one file for each dialogue. It seems to me like the best way to organize conversations.

Hey radmatt,

this tool has been great so far, I just have a question: What do the different speaker types mean? I understand "character" but what are "custom path" and "interacted character" for?

They simply change the value of one of the variables in the final dialogue file. You can interpret them any way you want in your game engine or framework.

Hi there :)

How is it licensed?

(2 edits)

After spending a bit of time with Dialogue Designer, I have to say that I'm very happy with the program. Matt, I'm not sure how active you are in updating Dialogue Designer, but I thought I'd provide some feedback:

Being able to easily duplicate nodes would be a huge quality of life improvement. My suggestion would be ctrl+left click and drag to duplicate a node.

Choices: It would be really useful to be able to change the order of choices by dragging them. As most engines will use the order to loop and display to screen in order, being able to easily change the order would be a big help, as right now it requires deleting choices and rewriting, and relinking. It's a major pain when you realise you need a new choice at the top of the list.

Renaming characters. Currently, any change to a character name requires a new entry, which means that every node they speak on must be manually changed. Ideally, this could be changed at the character panel with changes reflected automatically across nodes. Renaming variables would be a similar improvement, but only if it auto-updated any node references to the changed variable.

Ability to add additional values to nodes would be useful. I'm currently using slide_camera as a boolean checker for animation control, but it would be nice to be able to rename it or add multiple checks.

Start node is not always index 0 which is annoying as you need to loop through the json to find the start block

When removing languages from a project, they are not removed from choice branches.

Overall, I'm really happy with DD. I'm hoping it continues to get the support it deserves.


I got a big problem with this app and just wanna share my experience. DON'T EVER make something that overwrites a file without asking for confirmation.

I did a copy of a .json file and renamed it, but when i opened and made i change on it, i pressed a button to save and he saved on the previous file name... and in a second i just lost a few days of work.

(1 edit) (+1)

For anyone struggling to implement this into Construct 3, I've created an example project that might be useful. Note that it's in the style of my game which is more like an adventure game (inspired by Monkey Island's dialogue system), though it wouldn't be hard to adapt to your needs.


Hopefully it might be useful to someone.

(1 edit)

I’m using dialogue designer for the first time and the strings that connect dialogue boxes don’t seem to be working— the strings connect between some boxes, but other boxes just get dragged around when I try to connect them, or the string comes out of one but doesn’t attach to the other. Is this a common problem?

Answered in email.

[Bug Report] Export Message Texts
Hi radmatt,

I'm using the steam version and I find the "Export Message Texts" could only export partial texts, lots of contents are missing in the exported txt.

If you need any project file to produce it, please let me know!


Yes, it would be helpful if you could send me your file to radmattsoftware@gmail.com


Need free  scroller zooming for scale percentage. 

This software has definitely made managing branching dialog easier.  The JSON output is a bit much so I write a small utility to convert the JSON to INI for use with GM2.


Hi radmatt!

This tool you made is making my life sooo much easier, awesome work mate :)

I was wondering if you planned to create a Discord channel at some point. That way people could gather and help each other using this wonderful piece of software.



The export button which saves the simplified version uses the same filename name as the regular save file.  It would be better if it used a different file name since it's a different format.

I agree with this proposal.

Hi. Another question: Is it possible to use this plugin to create something like that in UE4:

(1 edit)

Hi! I am really newbie in Unreal and I need to produce a conversation system where the user will chat with a 3D character. The 3D character will speak by voice (TTS) and the user will have to respond by text by selecting one of the options. Each response given by the user activates a facial animation on the 3D character and while waiting for the response the 3D character remains in an idle movement (breathing and moving his shoulders). The options chosen by the user will have to generate some metrics based on responses and response time (bar at the bottom of the screen with percentage of confidence / motivation / initiative). I intend to use Reallusion programs to create de characters. Can I use this plugin for this? Could you give me some support to implement it?

I bought dialogue designer and I have made a script with it. But, I’m wanting to do Voice Overs, and I don’t have anything to send the people to read. I could go through, copying and pasting everything, but my script is HUGE, and that would take forever. Would it be possible for you to make a way for me to export my script as a plain text file? It doesn’t have to follow an order or be indented or anything, just all of the messages printed out to a .txt. I am sure I am not the only one out there with the same problem...

See https://radmatt.itch.io/dialogue-designer/devlog/175976/update-309-export-to-txt...

I hope that will help!

There are weird artifacts on OSX when you open a new JSON file. So Open one file, make some changes. Save it, then open a new one and some of the connection lines remain from the old file. If you click file new then open a file they go away which means the screen isnt being cleared properly on the second file opening.

BUG: The comment window does not resize the text field when I expand its size. I'm using de latest version (3.0.8). Please fix it.

Fixed in 3.0.9. See https://radmatt.itch.io/dialogue-designer/devlog/175976/update-309-export-to-txt...


(1 edit)

On mac os im finding the menus extremely small.. is there a way around this?

i guess the issue is it doesnt scale if you use a higher res.. at least i can zoom in on the nodes and stuff

Check out this post: https://radmatt.itch.io/dialogue-designer/devlog/156541/4k-resolution-fix-interf...

does this fix work for mac as well?  are there any shortcuts for saving the file?  a notification to save work before closing the app would be good too 

(1 edit)

also this is possibly a dumb question but im trying to find a hyperlink on that page to download the fix and not seeing anything?  Is it because I'm on mac and the fix isnt available for mac?

Try downloading it from the product main page.

(3 edits)

thanks for the help.. for others trying to correct this on mac you need to go to your app  and right click > show package contents

then go to

contents / MacOS  

drop the override.cfg in there.  option 2 worked fine for me.

@radmatt you should add these things to the app settings if possible.  you designed a great dialogue editor but it needs a bit of love.  I've been trying quite a few of these apps and this is my favorite.  hope you continue to polish and support the project.

Viewing most recent comments 5 to 44 of 100 · Next page · Last page