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

Thank you!It works!
I tried deleted a “ .data” file had a same name with DialogueManager and this file is at Corgi Eengin‘s MMData fold.I think this is a save data file.So are they the same function?

If you’re using Corgi, it has its own save system. The Dialogue System can work with Corgi’s save system if you want (see the integration guide) or you can continue to use the Dialogue System’s save system like you currently are.

1 Like

Dialogue System + Game Kit Controller Integration

Two Cubes Studio (the makers of Game Kit Controller) just released an integration video showing how to use the Dialogue System for Unity with their popular controller:

You can get Game Kit Controller on the Asset Store.

1 Like

Dialogue System 2.2.30 Released

Version 2.2.30 is now live on the Asset Store!

This version adds integration with More Mountains’ Feel. It also updates integrations for the several third party assets, including Adventure Creator and the latest versions of More Mountains’ Corgi Engine and TopDown Engine.

Release Notes

Core:

  • Fixed: When exiting play mode with Time Scale set to zero while Dialogue Editor window was open, Time Scale could remain zero.
  • Fixed: No longer reports null texture error on conversation group boxes if user removed Editor Default Resources folder.
  • Fixed: Issue with AudioWait() sequencer command and complex audio clip filenames; issue stopping audio in certain Unity versions when using Addressables.
  • Improved: Added DialogueLua.GetAllVariables() method.
  • Improved: DialogueManager.GetLocalizedText now checks UILocalizationManager tables if Localization Settings text table doesn’t have field.
  • Improved: Subtitle text set to prepend actor name now doesn’t add speaker name if name is blank.
  • Addressables: Removed restriction that asset name and key must match.
  • Localization Package: Fix for locale change.

Third Party Support:

  • Adventure Creator: Added AC actions for Relationship & Status Functions.
  • Arcweave: Jumpers can now cross conversations; now uses element’s outputs list for order of connections; space character no longer required in [SEQUENCE:xxx] tag.
  • articy: Flow Fragment conversations now apply Flow Fragment’s custom Sequence field (if present) to node’s Sequence.
  • Celtx: Fixed menu item that enables Celtx Gem 3 importer.
  • Corgi Engine: Updated integration for version 7.6.
  • Feel: Added integration.
  • PlayMaker: Added Get Variable Type action; Get All Lua Elements action now has option to get all elements named in database or all including runtime-created elements.
  • Text Animator for Unity: Added support for Typed sequencer message, computing {{end}} based on TextAnimatorPlayer duration.
  • TopDown Engine: Updated integration for version 3.
2 Likes

Dialogue System for Unity – Indie Innovation Sale

Right now, you can get the Dialogue System for Unity on sale in the Asset Store’s Indie Innovation Sale.

Use coupon code INSPIRE2022 to get 5% off when you spend over $100, 10% off when you spend over $175, and 15% off when you spend over $250.*

Hey @TonyLi , I’m working on an idea that basically involves NPCs having conversations on their own–more similar to barks. Think Oblivion.

Anyway, the wrinkle is that I want them to adapt to include multiple NPCs joining or leaving in the middle of a conversation, not just a pair (and for that matter I’m interested in regular conversations with the player that have the same ability, but that’s down the road).

My current method of doing this involves creating conversation “hotspots” and having NPCs in a certain range join the “hotspot” if they pass an RNG check. Periodically there’s another RNG check and they may leave the hotspot to do something else.

This feels pretty far outside of the bounds of traditional Dialogue System usage, but is this something you have a method of handling? My current idea is to continue to handle the “conversation” myself, but maybe implement Dialogue System Barks (hopefully with audio) through code. The hotspot might assign barks to characters randomly (roughly following one another in their topic and dialogue act).

I took a quick look at the Bark Tutorial, but didn’t see anything there or elsewhere for generating individual barks (with associated world space GUI and VO) on the fly through code. Is that in the documentation anywhere?

Hi @EternalAmbiguity - Technically you can bark arbitrary strings with VO using the C# method DialogueManager.BarkString():

DialogueManager.BarkString("Hello, friend!", someNPC, characterBeingAddressed, "AudioWait(hello)");

But it might be easier to write the lines of dialogue in the Dialogue System and run it as a conversation using overhead bubble subtitle panels. (See How To: Overhead Conversation Bubble Text for UI setup.) It’s easy to specify different characters for the primary actor and conversant. Let’s say you use generic actors named NPC1 and NPC2 as the conversation’s actor and conversant, respectively. If you want Ann to speak NPC1’s lines and Bob to speak NPC2’s lines, specify them in DialogueManager.StartConversation() (or on the Dialogue System Trigger component if you don’t want to write any code):

DialogueManager.StartConversation("Some Conversation", Ann, Bob);

Additional characters require an extra step. Let’s say you write generic actor NPC3 into the conversation, where NPC3 is not the primary actor or conversant.

If you want Ann to speak NPC1’s lines, Bob to speak NPC2’s lines, and Carl to speak NPC3’s lines, use CharacterInfo.RegisterActorTransform() first:

CharacterInfo.RegisterActorTransform("NPC3", Carl);
DialogueManager.StartConversation("Some Conversation", Ann, Bob);
1 Like

Thanks a ton!

The main issue that makes a conversation more difficult is that I want the conversations to be systemic and based on higher-level ideas like, again, dialogue acts (here’s a place with a list of a few). My far-flung goal is an actual sort of cognitive model with things like grounding and actual exchange of information, but in the interim the dialogue acts can offer a simple way to have non-deterministic but still logical conversations that develop in real time.

Got it. In that case, yes, barks might be the way to go unless you can build the conversation at runtime just before playing it. If so, see this page for a description of how to build the conversation at runtime.

1 Like

Hello Tony.

I have a question about barks

is possible continue a bark? One node dialogue and after other dialogue node. I tried to did, but only bark the first node dialogue appear.
Thanks

8338074--1096260--imagen_2022-08-04_173050132.png

Barks are single, one-off lines. They always bark only the first node in a conversation tree. You can link multiple nodes from . Depending on how you set up your trigger, each bark can choose one at random or in order.

8338266--1096299--upload_2022-8-4_18-54-54.png

If you want to play more than one line, use a conversation:

8338266--1096302--upload_2022-8-4_18-55-42.png

You can make the conversation use bark UIs by adding an Override Dialogue UI and Bark Dialogue UI to the barker. Or you can make it use overhead bubble subtitle panels: How To: Set Up Overhead Conversation Bubble Text

1 Like

New ChardiTronic Tutorial In Spanish, New Games, Idea Innovation Sale

Spanish Language Dialogue System Tutorial by ChardiTronic

Spanish streamer ChardiTronic just released a nice Dialogue System tutorial. It covers conversations, quests, interaction, and even language localization:

New Games

To inspire you, here are some recently-released and announced games that use the Dialogue System:

Indie dev Xiri just released the solo-developed Moonyolk for free on itch.io:

8339967--1096599--upload_2022-8-5_10-49-0.png

Zaltick Games just released the trailer for their really fun-looking action game Adventure Kitty: Drill Buster:

Bohemian Pulp’s Steam page for Let Bions Be Bygones, being published by Microprose, recently opened for wishlists:

Dialogue System on Sale

8339967--1096602--upload_2022-8-5_10-57-5.jpeg

The Dialogue System is currently on sale in the Asset Store!

Dialogue System for Unity, Quest Machine, and Love/Hate on Sale

8348766--1098477--upload_2022-8-9_9-32-56.png

The Dialogue System, Quest Machine, and Love/Hate are all on sale in the Asset Store’s Indie Innovation Sale!

They all integrate nicely with each other. Here’s the first video in the integration tutorial series:

Use coupon code SPEEDUP2022 to get 5% off when you spend over $100, 10% off when you spend over $175, and 15% off when you spend over $250.

Forever Ago - Development & Reveal Trailer

Check out the development and reveal trailer for Third Shift’s Forever Ago, being made with the Dialogue System for Unity and published by Annapurna Interactive:

8352108--1099056--upload_2022-8-10_10-55-21.png

The Dialogue System, Quest Machine, and Love/Hate are all on sale right now in the Asset Store’s Indie Innovation Sale.

Hey. I’m working on the comic-style rework of the dialogues. I’m facing a problem where when the dialogue text is "[auto] "(like in the choices, and in some other places) it creates an empty dialogue box

Here is the screenshot of the dialogue tree:

Hi - You may need to adjust the custom script that I sent you to use the currentMenuText property instead of MenuText, or otherwise adjust it to work the way you want.

Hey, I can’t find a “MenuText” property in the script you sent me, can you tell me what script and where?

Hi - Disregard. It doesn’t need to use menu text. In the example scene I sent you, the Dialogue Manager is set up like this:

8360289--1100643--upload_2022-8-13_14-17-18.png

I tested it with this [auto] and it seems to work correctly:

8360289--1100646--upload_2022-8-13_14-18-14.png

It didn’t work at all for me. I had all the checks already except “Always force response menu”, when I turned that one on too I suddenly started having choices(response menus) where they weren’t supposed to me, but the problem with "[auto] " stayed the same. I think it happens when it’s only "[auto] ", not when it’s part of other dialogue text like on your screenshot

Hi - If you don’t want response menu choices to show as subtitle boxes, UNtick Always Force response menu again, and tick Subtitle Settings > Skip Subtitle After Response Menu. I just PM’ed you another example scene to try to understand what the issue is. Please compare it to your setup and let me know what the difference is.