Update Dec 18, 2014: Lately I’ve been working with Studio MDHR on their upcoming title, Cuphead. This is a large project and it’s taking all of my attention right now. Rest assured though, when Cuphead is finished, I’ll be dedicating all of my time back to Dialoguer in order to give it the much needed re-haul I’ve been talking about, as well as adding examples for the new Unity GUI system. This update is going to be huge, and I have big plans for it! I am still 100% supporting Dialoguer, so send me an email at tonycoculuzzi@gmail.com if you need help or have any questions, or post here on the forum and I will help you as soon as I can!
This is Dialoguer, a dialogue creation and management tool that lets you visually create branched and dynamic dialogue for your game and play them back at runtime. It allows you to create dialogues and conversations similar to those of Mass Effect, and Final Fantasy.
Dialoguer provides you with:
- An editor to create branched, dynamic dialogues
- A playback engine with a very easy skinning API, supporting all major UI solutions (the new Unity GUI, the old Unity GUI, NGUI, Daikon Forge, etc.)
Links:
Asset Store Link
Official Website
Documentation
Videos
Images





Dialogue Editor
As you can see, Dialoguer is a visual node-based editor for creating dialogue objects, which can be used in your game. These objects can then be accessed through a dialogue manager, which handles progression of the dialogue object, firing events which you can listen to in order to display the dialogue on screen.
Using Dialoguer
Dialoguer does NOT provide you with the in-game gui. Instead, it gives you access to a number of events that allow you to quickly throw together your own dialogue gui (using Unity GUI, NGUI, etc. It’s meant to be versatile and extensible) which will handle these events accordingly, and display/hide/wait based on what type of node or page is currently being shown/processed. Each event will return the text and metadata for the dialogue, which you can then easily handle on your end to create an in-game dialogue GUI that looks and acts however you want it to.
Dialoguer Variable System
Dialoguer also contains a visual Variable editor, used for creating global and local variables, which you can use specifically in your dialogues, or in your game.
Global variables are accessible in dialogues, and in-game, so you can change them with logic outside the dialogue editor, and allow them to be effected by in-game events. (Got an item, triggered an event) These are accessible by every dialogue.
Local variables however are specific to their dialogue, and can’t be accessed outside of them. These are used for per-dialogue conditions (how many times you’ve picked this option, an answer you’ve chosen for that specific dialogue’s question, etc)
Dialoguer has the following nodes that you can use in your dialogue:
- Text Node - Used for showing a block of text
- Branched Text Node - Used for showing a block of text, with associated selectable choices
- Wait Node - Waits a number of seconds or frames before continuing (optionally close the current window and open another when finished waiting)
- Set Variable Node - Set a local or global variable (Dialoguer variable system)
- Conditional Node - Checks a local or global variable (Dialoguer variable system) and progresses to a branch accordingly
- Send Message Node - Send a GameObject.SendMessage message to the stage, making is super easy to call events on stage, play animations, etc.
Every Text Node and Branched Text Node also has an advanced mode which gives you access to more fields, such as:
- Theme - allows you to choose a theme for the current window, allowing you to use multiple dialogue GUI’s that you’ve created (dialogue, cinematics, “you’ve got an item”, etc)
- Name - allows you to associate a name with that specific page of dialogue
- Portrait - allows you to associate a portrait or avatar with that specific page of dialogue
- Metadata - allows you to associate any other data with that page of dialogue, allowing you to add to the dialogue system however you see fit
- Audio - allows you to play audio with that page of dialogue, with an added audioDelay property
- Window Rect - allows you to choose a specific position and size for that dialogue to be displayed at
Current Features
- Dialogue Editor tool to create your dialogues visually
- Dialoguer class that will allow you an easy way to call, manage and progress your dialogues, firing events that you can listen/react to.
- Local and Global Variables manager
- Exports to an XML file, which can be changed/backed up/copied easily and reloaded
- Parsed string parameters - The ability to display global Dialoguer variables in the text
(using html-like syntax. 0 = Global Boolean at id 0)
Future Planned Features
- UI rehaul, including zooming and selecting multiple nodes
- PlayMaker support. This has been requested by a lot of people, so I’m doing it.
- Importing of other story-engine files (Twine, Articy Draft, etc)
- Localization (Though currently it is very easy to display localized text with the current system)
- Dialoguer Debugger - A way to allow you to change local and global variables on the fly during Play mode
There’s a demo here: Dialoguer Themes/Skins Demo
UPDATE: 21/02/2014
Dialoguer is out now! You can get it on the Asset Store for $30.
Here’s a first look video, or check out the online documentation!

