[RELEASED] Dialogue System for Unity - easy conversations, quests, and more!

–Studio ZA/UM, developer of 2019 Game of the Year Disco Elysium,
made with the Dialogue System for Unity

The Dialogue System is a proven, complete solution for interactive conversations, designed from the ground up with a polished user interface system, cutscene sequences (camera shots, animation, etc.), node-based visual conversation editor, dynamic state, and more, with easy integration into your existing gameplay framework.

You can find the Dialogue System in RPGs, adventure games, shooters, visual novels, and many other genres. In business and industry, the Dialogue System features in corporate training applications, procedural law simulations, and other serious games.

Available on the Asset Store!

Try out the Evaluation Version for free

1383790--96722--$f01 Editor.jpg

1383790--96723--$f02 UIs.jpg

1383790--96726--$f03 Cutscenes.jpg

1383790--96725--$f04 2D and 3D and more.jpg

Requires Unity 4.6.5 or higher.

Ultra-Quick Start

Features:
Editor:

  • Visual, node-based editor
  • Optional compact outline-based editor perfect for large conversations
  • Edit-time conversation player for quick testing
  • Importers for Chat Mapper, articy:draft, Arcweave, Celtx, Twine, Ink, CSV, and Neverwinter Nights
  • Built-in localization support, or use Unity Localization package or i2 Localization

Engine:

  • No scripting required
  • Dynamic, branching conversation trees
  • Barks and gameplay alerts
  • Cutscenes (voice acting, audio, animation, camerawork, etc.)
  • Quick Time Events (QTEs)
  • Quest system
  • NPC status relationship system
  • Easy language localization
  • Save/load without scripting
  • Optional Lua scripting and variable system supports sophisticated dialogue conditions
  • Comprehensive documentation and tutorials

Runtime UIs:

  • GUI-independent; works with all GUI systems

  • Built-in support for the Unity UI, Unity GUI, NGUI, TextMesh Pro, and others

  • Modular interfaces: swap in your own UI or cutscene system

  • Several beautiful, fully-customizable UI skins

  • Detailed sci-fi environment & animated model

  • Works in 2D, 3D, VR, and AR

Integration:
Provides general-purpose integration components for any framework, plus custom components for drop-in integration into:

  • Cinemachine & Timeline

  • Action-RPG Starter Kit

  • Adventure Creator

  • AI Tree

  • Arcweave

  • articy:draft

  • Bolt

  • Celtx

  • FMOD

  • ICode

  • Animator Timeline Editor

  • Behavior Designer

  • Compass Navigator Pro

  • Core GameKit

  • Corgi Platformer Engine

  • Customizable Sci-fi Holo Interface

  • Easy Save

  • Emerald AI

  • FaceFX

  • Feel

  • KGFMapSystem

  • Lively Chat Bubbles

  • Look Animator

  • Love/Hate

  • I2 Localization

  • Ink

  • Inventory Engine

  • Inventory Pro

  • Localization Package

  • Master Audio

  • Now We’re Talking

  • Opsive Ultimate Character Controllers

  • Opsive Ultimate Inventory System

  • ORK Framework

  • PlayMaker

  • plyGame

  • Quest Machine

  • RPG Builder

  • Realistic FPS Prefab

  • RelationsInspector

  • Rogo LipSync

  • RPG Kit

  • RT-Voice

  • SALSA with RandomEyes

  • S-Inventory

  • SLATE Cinematic Sequencer

  • SoulLink

  • Speech Recognition System

  • Super Text Mesh

  • Opsive Character Controllers

  • Opsive Ultimate Inventory System

  • Text Animator

  • Top-Down RPG Starter Kit

  • Twine

  • Ultimate Notification System

  • uMMORPG

  • uRPG

  • uSurvival

  • uSequencer Cutscene Creator

  • Visual Scripting

  • Yarn Spinner

  • Wwise

For Programmers:

  • Includes complete, thoroughly documented & optimized C# source code
  • Designed to be easily extended without modifying source – lots of event hooks!
  • Full API reference

Tested on standalone, web, mobile, and consoles.

Links:

Change History:
Version 2.2.46:
Core:

  • Changed: If Dialogue Manager’s Allow Alerts During Conversations is UNticked, now queues alerts during conversations for when conversation ends.
  • Improved: Conversation dropdowns (e.g., Dialogue System Trigger) now have Open button to quickly open conversation in Dialogue Editor.
  • Improved: Dialogue Editor Watches tab now shows active conversations with buttons to jump to conversation in editor.
  • Improved: Added option to remove synced content from other databases when breaking sync connection.
  • Improved: Usable.overrideName, Usable.overrideUseMessage, and Selector/ProximitySelector.defaultUseMessage are now virtual properties.
  • Improved: StandardDialogueUI.CloseAfterPanelsAreClosed is now virtual.
  • Improved: Added InputDeviceManager.cursorLockMode if you want to change default cursor lock mode from Locked to Confined.
  • Improved: Added Misc section to Lua “…” wizards containing relevant built-in Lua functions.
  • Improved: Added no repeat option to RandomizeNextEntry() sequencer command and Lua function.
  • Fixed: SetContinueMode(original) sequencer command.
  • Fixed: StandardUISubtitlePanel.ShowContinueButton() when other process delays continue button and block input duration is set.
  • Fixed: Updated Tools.StripTextMeshProTags to strip , , , , , and .
  • Fixed: Removed temporary debug log line from StandardUIQuestLogWindow that was inadvertently left in.
  • Fixed: SaveSystem.saveDataApplied is now still invoked even if scene has no savers.
  • Fixed: DialogueLua.SetVariable() and IncrementOnDestroy now observew Assignment.MonitoredVariables.
  • Changed: Release of sequencer camera now only waits 1 frame plus end of frame to allow active required commands to finish instead of 2 frames.

Third Party Support:

  • Adventure Creator: Lua action now uses “…” wizard.

  • articy:draft:

  • Added “Reorder IDs” option.

  • Fixed importer translation of “///”.

  • Custom Conditions property content now properly goes into dialogue entry’s Conditions field.

  • Instruction nodes followed by input pin condition now import a buffer node between to delay evaluation until instruction code has run.

  • Cinemachine: Updated integration for Unity 6 (Cinemachine 3) compatibility.

  • i2 Localization: DialogueSystemUseI2Language component now has option to use custom field (e.g., Articy Id) for dialogue entry terms.

  • Ink: Added Lua(x) function.

  • Input System: Monitors InputSystem.onDeviceChange. No need to configure Joystick/Keyboard inputs To Watch.

  • Playmaker: Added Add/SubtractFsmFloat/Int() Lua functions.

  • SALSA Lipsync Suite: SALSA components can now be on subject’s child GameObjects.

  • Text Animator: Updated to support typewriter skip ahead without animating skipped characters. Requires Text Animator 2.1.2+.

  • Timeline: Improved preview text for Timeline-controlled conversations; added ability to override dialogue UI.

  • Yarn: Added <> command to append sequences to previous line.

Version 2.2.45:
Core:

  • Improved: Added Allow Custom Actor Panels checkbox to Standard Dialogue UI component.
  • Improved: Exposed Dialogue System Trigger > Stop Conversation On Trigger Exit > Margin To Allow Trigger Exit to inspector.
  • Improved: Standard Dialogue UI’s allowDialogueActorCustomPanels now applies to menu panels in addition to subtitle panels.
  • Improved: Added StandardDialogueUI.ShowActorInPanel() method.
  • Fixed: SetPanel(actor, panel, immediate) now initializes portraits even if actor wasn’t previously in another panel.
  • Fixed: Assignment.VariableChanged() event is now called after variable has been changed to new value.
  • Fixed: StandardUISubtitleControls.SetTypewriterSpeed() didn’t set speed.
  • Fixed: StandardUISubtitlePanel > Add Speaker Name was added to display but not recorded in accumulatedText.
  • Fixed: Added “Main” checkboxes to Item and Location templates in Dialogue Editor.

Third Party Support:

  • Adventure Creator: Updated for 1.80 and AC’s new asmdefs.
  • Arcweave: Fixed build issue.
  • articy:draft: Updated articy 3.x localization importer addon with some bug fixes.
  • Compass Navigator Pro 2: Added integration.
  • RPG Builder: Now sets player’s Display Name field so you can use that instead of rpgGetPlayerName() if you prefer.

Older Release Notes

Please post any feedback here or email support (at) pixelcrushers (dot) com.

1383790--96727--$ds_logo_128x128.png

4 Likes

Thank you to everyone who’s picked up a copy of the Dialogue System for Unity already! Please don’t hesitate to email or PM me with any questions or suggestions for the development roadmap.

I haven’t received any requests for Chat Mapper discount codes. Perhaps the notice was tucked too deep in the original post. As a reminder:

Through April 2014, email me your invoice number for a 10% discount code good for any single Chat Mapper license!

1 Like

Version 1.0.6 was just submitted to the Asset Store!

New Features:

  • NGUI 3.x support.
  • Additional cutscene sequence commands for controlling Mecanim characters.

Other Notes:

  • If you’re using Urban Brain Studios’ Chat Mapper versions 1.6.0 - 1.6.1.0, please upgrade to version 1.6.1.1 to fix an XML export bug.
  • Chat Mapper 1.6.x introduces several great new features, including data validation. Unfortunately this means the Dialogue System can no longer repurpose the built-in Video File field for cutscene sequences. The Dialogue System now uses a custom field named Sequence. See the 1.0.6 Release Notes for more details.

Version 1.0.7 was submitted to the Asset Store!

Changes:

  • Fixed a conversion error with Chat Mapper 1.6 group nodes.
  • Fixed a bug with Dialog[ ].SimStatus conditions.

Do you know if this is works with Realistic FPS Prefab?

If it did, you’d save me a great deal of time :slight_smile:

I don’t see why not. I built it for a first/third-person Mass Effect style project. But I’ll confirm and let you know soon!

Thanks! :slight_smile:

The Dialogue System for Unity works fine with Realistic FPS Prefab. Here’s a proof of concept that took all of 5-10 minutes: Unity Web Player | FPS Prefab Sandbox Test. (Sorry it’s a 35 MB load; the sample scene that comes with the Realistic FPS Prefab is kind of big.)

If you run up to the first robot on the path, it will automatically start a conversation.

You’ll probably want to pause the FPS action during conversations. You can use the Set Enabled On Dialogue Event component to disable FPS components when the conversation starts and re-enable them when the conversation ends. The included demo scene does this with a simple third-person controller. That’s just one way, of course. It’s really up to you how you want it to work. And I’m here if you need assistance to get it working just the way you want.

More-detailed video tutorials are coming over the next few days, too.

Hi Tony,

Demo works great for a first try :slight_smile:

How well does the Quest System work?

Cant wait to get my hands on this tool :slight_smile:

-Sean

Hi Sean,

The quest system is complete and will also be getting additional features in an upcoming release.

Please feel free to peruse the quest system documentation at: http://www.pixelcrushers.com/dialogue_system/manual/html/quest_log_system.html

And try out the quest logs in the Sci Fi and Fantasy demos. The source Chat Mapper project for the Fantasy demo is on the demo page. You can look through it in Chat Mapper to see how the quests were written.

Hi Tony,

Sorry, I mean as in, how well does the Quest System work in the FPS Prefab? :stuck_out_tongue:

Its vital it works, as it’ll be the main source of missions, where in exploring the city, you pick up quests, complete them, and gain rewards from them.

It will also drive the story forward.

-Sean

I’ll put together a proof of concept using the Realistic FPS Prefab tomorrow morning and post the link here.

Cool Thanks for the Help :slight_smile:

Remind me to send you a pack of cookies :stuck_out_tongue:

Now to learn and relearn the Dialogue instructions!

I just used the same link: Unity Web Player | FPS Prefab Sandbox Test

1391005--71446--$Realistic FPS Demo small.png

I added a quest. The Esc key brings up a main menu borrowed from the feature demo, from which you can view the quest log.

I used the Set Enabled On Dialogue Event component to “pause” the FPS action during conversations.

I also wrote two very short scripts to give the Dialogue System access to the internal state of the FPS scene.

This script removes a weapon when you give it away during dialogue (called by a sequencer command in the dialogue):

public class AddRemoveWeapon : MonoBehaviour {
	
	public WeaponBehavior weapon;
	
	public void RemoveWeapon() {
		weapon.haveWeapon = false;
		weapon.gameObject.SetActive(false);
	}

}

This script is used to tell the Dialogue System that you’ve picked up an item:

public class LuaOnPickUpItem : MonoBehaviour {
	
	public string luaCode;
	
	public void PickUpItem() {
		Lua.Run(luaCode);
	}

}

Are you a Wizard? lol

I love it. Thanks :slight_smile:

Cant wait to try this out on Monday :slight_smile:

1 Like

Great! Let me know if you have any questions. I’m always happy to help!

I just posted an integration package for the Realistic FPS Prefab to the customer download section of our website. (The prerequisites are the Dialogue System and Azuline Studios’ Realistic FPS Prefab.)

If you’ve purchased the Dialogue System for Unity and would like access to the download section or the promotional 10% discount code we’ve arranged with Urban Brain Studios (the makers of Chat Mapper), please contact me with your invoice number!

  1. Is Daikon Forge GUI supported? It’s much faster and easier then NGUI :slight_smile:
  2. About save game functionality, if I have Dialogue System do I still need tools such as “Easy Save 2”?
  3. Does Chat Mapper need its own license?
  4. What about localisation options?

I know chat mapper needs its own license. Its worth it tho…imho best tool for composing multiple choice dialogues out there. The best is, you can TEST the dialogues directly in chat mapper until they do what you want. When you dont go for multiple choice stuff you dont need chat mapper I think.

Hallo! Interesting looking package!

Do you guys support or look to support Articy Draft .xml export in the future?