Search Unity

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

Discussion in 'Assets and Asset Store' started by TonyLi, Oct 12, 2013.

  1. Irishall

    Irishall

    Joined:
    Dec 9, 2016
    Posts:
    16
    It works perfectly! Thank you for your support.
     
    TonyLi likes this.
  2. GTBrother

    GTBrother

    Joined:
    May 29, 2017
    Posts:
    7
    Hey Tony! I'm just starting with Dialogue System. Once trying to follow your tutorial for the Quests, the quest doesn't get actived. I go to press E to talk, then the NPC gives the introduction but I'm not getting the possibility to continue with the branch, it just close the conversation. Any idea of what I could try to check?
     

    Attached Files:

  3. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Hi! Thanks for using the Dialogue System!

    In the "Sure! I'll help you" node, remove the Conditions, and configure the Script to set the quest active:

    upload_2021-6-14_8-10-27.png

    The Conditions field blocks off nodes if the conditions are false. In your screenshot, since the quest is not yet active, the conditions are false, so it blocks off the "Sure! I'll help you" node. Instead, you want the Script field to set the quest state to active.
     
  4. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Lake in Xbox Summer Game Demo Fest & Steam Next Fest

    Lake, the wholesome game generating a lot of buzz at E3, has a demo available to play right now on Xbox in Microsoft's Summer Game Demo Fest. You can play it on PC tomorrow in Steam's Next Fest. Lake is made by a small team using the Dialogue System for Unity.



    The Kickstarter darling RPG Black Book, also made with the Dialogue System for Unity, is in Microsoft's Xbox Summer Game Demo Fest, too!

     
  5. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Dialogue System 2.2.18 Released!

    Version 2.2.18 is now live on the Asset Store!

    Release Notes:
    Core:
    • Added: Subtitle panel visibility option 'Until Superceded Or Actor Change'.
    • Added: Localization Tools Window.
    • Added: DialogueManager.standardDialogueUI convenience property.
    • Improved: Optimized SetPortrait() sequencer command image loading.
    • Improved: Exposed ConversationView.dialogueUI property. (Assigning closes current UI and opens assigned one.)
    • Improved: Added Scrollbar Enabler field to StandardUISubtitlePanel to improve scrolling to bottom without typewriter effect.
    • Fixed: Bug when overriding actor subtitle panel with default panel.
    • Fixed: Double-click node to quick edit text issue when canvas was scrolled.
    • Fixed: Sequence //comments were not parsed properly in some situations.
    • Fixed: QTE() sequencer command with text variable incorrectly wrapped result in extra quotes.
    • Fixed: Input Device Manager could report error using new Input System with disabled domain reloading.
    • Fixed: Assigning a Text Table asset to a string field would unnecessarily add a UILocalizationManager GameObject at design time if the scene didn't already have one.
    Third Party Support:
    • i2 Localization: Added option to send translations of all languages or only specific language (or none) to i2 asset; DialogueSystemUseI2Language (runtime) now handles extra info options.
    • Ink: Added InkSaver; fixed bug when mixing Ink conversations with non-Ink conversations that would skip Sequences in non-Ink conversations.
    • LivelyChatBubbles: Added LCBContinueButton script for continue button fast forward functionality.
     
  6. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    upload_2021-6-22_8-27-6.png

    The Dialogue System for Unity is 50% off in the Asset Store's Smash Hit Summer Low Poly Sale!

    Seen in low poly games such as Lake, Ova Magica, Grimsfield, Pebble Witch, Stars Die, and many many more. And of course in plenty of high poly and 2D games.

    It's the easy way to add interactive dialogue, barks, and quests to your game, using the built-in editor or importing from articy:draft, Chat Mapper, Twine, Ink, CSV, and other formats. YarnSpinner and Celtx import capability are also in development! If anyone's interested in joining the beta tests for YarnSpinner or Celtx import, please PM me.
     
  7. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Plot of the Druid on Kickstarter

    Yakir Israel's Kickstarter campaign for Plot of the Druid, a point-and-click adventure made with the Dialogue System for Unity, is now live. If you're a fan of classic adventure games such as Monkey Island and Day of the Tentacle, check it out!

     
  8. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Steam Next Fest Ends Today

    The Steam Next Fest ends today. You still have time to play demos of some notable Dialogue System-powered games, including the very popular Lake:



    Reminder: The Dialogue System is on sale for 50% off right now in the Smash Hit Summer Low Poly Sale.
     
  9. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Backtrace / IGDA Inclusivity Game Jam

    upload_2021-6-24_9-1-31.png


    Are you participating in the Inclusivity Game Jam hosted by Backtrace and the International Game Developers Association?

    It starts tomorrow at 3 PM EDT, and the grand prize is a PS5. There are only 94 sign-ups at the time of this post, so your odds are pretty good.

    If you're participating in the jam, consider using the Dialogue System for Unity, which is 50% off right now in the Asset Store's Summer Sale. Some examples of games under the broad topic of inclusivity that use the Dialogue System are LGBT-friendly titles such as Fuzzy Ghost's Pebble Witch and Claudia's Ova Magica, Jordan Sparks' Games for Social Change thesis An/Other, and Mografi's appropriate-for-the-whole-family game Jenny LeClue - Detectivu.

    Good luck on the jam, and have fun!
     
    Last edited: Jun 26, 2021
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Ablune Games' The Spirit and The Mouse

    Check out The Spirit and The Mouse, a beautiful game being made with the Dialogue System for Unity:


    You can subscribe to Ablune's newsletter for exclusive content at: https://thespiritandthemouse.com/

    The Dialogue System is currently on sale for 50% off in the Smash Hit Summer Sale.
     
  11. Tiagojdferreira

    Tiagojdferreira

    Joined:
    Jun 5, 2016
    Posts:
    1
    Has anyone used this with ink?
    I can see from the docs that it is possible to use ink with the dialogue system, but I wanted to know how well they both work together (do you need a lot of glue code and have opposing philosophies or do they have nice synergy). What advantages are there to using the dialogue system instead of using ink directly with the unity plugin?
     
    Last edited: Jun 27, 2021
  12. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Please feel free to try the Dialogue System's evaluation version. The Dialogue System provides things the Ink plugin doesn't: a robust dialogue UI system, interaction and triggers, cutscene system, etc. Ink is quite different from other formats that the Dialogue System imports, so the Dialogue System allows Ink to run the data model, and it primarily acts as a front-end.
     
  13. SOSolacex

    SOSolacex

    Joined:
    Jan 10, 2018
    Posts:
    121
    Hey Tony!
    Quick question in regards to scene portals; do I have to make sure my Player object + Camera don't disappear upon loading or should I add duplicates on all the scenes?

    Using Opsive UIS and UCC, I am not sure how to correctly make sure the inventory correctly transitions to the other scene and such.

    I checked the save system for opsive demo (I am aware that isn't a necessary asset), and see that the player object and camera will be in both scenes, however when using that method I'll get errors about my camera being destroyed and such.
     
  14. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Hi @SOSolacex - Separate Player + Camera in each scene. What error do you see? Please select it in the Console, press Ctrl+C to copy it to the clipboard, then paste it into a reply.
     
  15. Xavier78

    Xavier78

    Joined:
    Oct 13, 2013
    Posts:
    41
    Hi! I am having an error related to the dialog system, and hopefully someone can help.


    Code (CSharp):
    1. An infinite import loop has been detected. The following Assets were imported multiple times, but no changes to them have been detected. Please check if any custom code is trying to import them:
    2. Assets/Packages_External/Plugins/Pixel Crushers/Dialogue System/Scripts/Editor/Inspectors/Triggers/Legacy/AlertTriggerEditor.cs - (Force Reimport)
     
  16. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Hi - Please try removing the Dialogue System and reimporting it. If it works properly when you import it into its original location (Assets / Plugins) then use care when moving it to another folder. For example, if you move it into a new custom folder you've created and you create an asmdef file, make sure the asmdef doesn't have a loop. If it doesn't work properly when you import the Dialogue System into its original location, first make sure it imports and works properly in a new, empty project. If so, then check any custom post processors you may have in your existing project.
     
    Last edited: Jun 28, 2021
  17. halo_of_the_sun

    halo_of_the_sun

    Joined:
    Sep 17, 2017
    Posts:
    64
    Hey all, having two simple issues but they are driving me crazy...

    1. I'm using the New Input System in Unity (USE_NEW_INPUT) and can't seem to link it to the 'Submit Button' to progress the conversation (in my case the main button is labelled 'Use' which I'm trying to link to it)
    2. The second is adding audio to specific lines, I have dialog written but can't seem to find the space to drop the audio file on it in the dialog window.

    Sorry if these questions seem super basic, but they seem to have me stuck while I'm learning the dialog system.
     
  18. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Hi,
    The Dialogue System's Standard Dialogue UI uses plain old Unity UI, which means it uses the Unity UI EventSystem. Make sure your EventSystem GameObject is set up for the new Input System package and that its Submit input is set to your 'Use' action. (New Input System Tutorial)

    Put the audio file in a Resources folder (it can be in a subfolder) or make it an addressable. Then drop it into the dialogue entry node's Sequence field.

    For more details and options, including using entrytags so you don't have to drag and drop an audio file for every single dialogue entry node, see the Cutscene Sequences Tutorials.
     
  19. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Dialogue System 50% Off in Back 2D Asset Store Sale

    The Dialogue System for Unity is 50% off in the Smash Hit Summer Back 2D Asset Store Sale. Seen in 2D favorites such as Jenny LeClue, Crossing Souls, Gestalt: Steam & Cinder, Suzerain, The Last Door, Deathbulge & too many more great games to mention.

     
  20. halo_of_the_sun

    halo_of_the_sun

    Joined:
    Sep 17, 2017
    Posts:
    64
    Thanks, I'm going through the video and am at the point where I'm adding DemoInputRegistration.cs to the Dialog Manager, I want to replace 'DemoInputControls' with my personal 'PlayerControls' but it doesn't seem to connect (Error CS0246: The type or namespace name 'PlayerControls' could not be found (are you missing a using directive or an assembly reference?))

    The Audio works great now, thank you!
     
    Last edited: Jun 29, 2021
  21. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692

    If your PlayerControls.cs script is located outside of the Plugins folder, move your input registration script outside of Plugins, too. Unity compiles all scripts inside the Plugins folder first, without any visibility to scripts that are outside of Plugins.

    Glad to help!
     
  22. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Tip: You can group conversation nodes:

    upload_2021-6-29_11-9-9.png

    To create a group, click-drag an area of the canvas. When releasing the mouse button, hold down the Ctrl key.

    Left-click on a group's heading to edit its properties in the Inspector view, or right-click for a context menu.
     
  23. Xavier78

    Xavier78

    Joined:
    Oct 13, 2013
    Posts:
    41
    Thank you so much, seems to have been Bolt causing issues in my project(assuming it was causing this as well).
     
    TonyLi likes this.
  24. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Game Spotlight: Vivarium

    One of the many great-looking 2D games being made with the Dialogue System for Unity is Vivarium:

    upload_2021-7-1_8-48-35.png

    The still image above doesn't do it justice. Follow Vivarium_Dev on Twitter to see the beautiful cel animation in motion.

    Reminder: The Dialogue System for Unity is 50% off right now in the Back 2D Asset Store Sale.
     
  25. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
  26. SOSolacex

    SOSolacex

    Joined:
    Jan 10, 2018
    Posts:
    121
    Sorry for the late reply. The error was gone after I tried a few other things.
    However, I've got an other issue.

    I've got a dialogue system trigger that starts another conversation upon "conversation end".
    However, it for some reason disconnects my UCC camera from my player and I have no clue why.

    The same conversation works fine when using "on trigger enter" or any of the other options, however the combination of "on conversation end" and start conversation simply causes the aforementioned issue and I am not sure what to do about it.
     
  27. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Hi - Please try the attached patch.
     

    Attached Files:

    SOSolacex likes this.
  28. SOSolacex

    SOSolacex

    Joined:
    Jan 10, 2018
    Posts:
    121
    Works! Thank you!
     
  29. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Glad to help! I'll send an updated integration package to Opsive with this update soon.
     
  30. SOSolacex

    SOSolacex

    Joined:
    Jan 10, 2018
    Posts:
    121
    I actually think it broke something in regards to OpenShop() though.
    It might be coincidence but my shop used to work before but unfortunately now it doesn't.
     
  31. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Is the Scripting Define Symbol UIS still set?

    (I've finished work for the night, but I'll check back first thing in the morning if that doesn't resolve the issue.)
     
  32. SOSolacex

    SOSolacex

    Joined:
    Jan 10, 2018
    Posts:
    121
    Yeah.
    It stopped working all of a sudden. Not sure what could be causing this issue.
     
  33. SOSolacex

    SOSolacex

    Joined:
    Jan 10, 2018
    Posts:
    121
    Looks like I needed to update both my Dialogue and First person controller asset after getting your updated script; it works fine now!
     
    TonyLi likes this.
  34. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    GRUNND On Kickstarter

    The 2D, Twin Peaks-inspired, Kafkaesque narrative game GRUNND, made with the Dialogue System for Unity, just started its Kickstarter and was given the staff's Projects We Love stamp. If you like story-driven adventure games, you can back GRUNND here:

    GRUNND On Kickstarter



    Reminder: The Dialogue System is currently 50% off in the Back 2D Asset Store Summer Sale.
     
  35. halo_of_the_sun

    halo_of_the_sun

    Joined:
    Sep 17, 2017
    Posts:
    64
    Maybe a bit too unrelated to DM...but do you know how to add the input system (in my case PlayerControls) to the EventSystem?

    Capture.JPG
     
  36. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Hi - If you want to use your own input actions instead of DefaultUIActions, assign it to the Actions Asset field:

    upload_2021-7-4_9-20-21.png
     
  37. halo_of_the_sun

    halo_of_the_sun

    Joined:
    Sep 17, 2017
    Posts:
    64
    Is there a way for me to have the PlayerControls input separate from 'Input System UI Input Module'? As in use both simultaneously with the EventSystem
     
  38. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Yes. You can use the DefaultUIActions for the EventSystem and your own PlayerControls for your own gameplay input. Technically you can also enable the built-in Input Manager input backend, but I recommend using one input system or the other, not both.
     
  39. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    upload_2021-7-5_13-18-48.png

    The Dialogue System for Unity is 50% off in the Back 2D Asset Store Sale, which ends today. You've seen it in 2D games such as Jenny LeClue - Detectivu, Crossing Souls, The Last Door, Suzerain, Dwerve, and many, many more!

    Love/Hate -- the relationship, emotion, and personality simulator -- is also 50% off.
     
  40. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    I feel remiss by neglecting to mention two other 2D games that use the Dialogue System and are also running Kickstarter campaigns right now:

    Plot of the Druid on Kickstarter
    upload_2021-7-5_13-48-45.jpeg

    GRUNND on Kickstarter


    They're two very different point-and-click narrative adventure games. If you like adventure games, check them out. And if you want to make your own, you can get the Dialogue System for 50% off right now.
     

    Attached Files:

  41. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Dialogue System for Unity 50% Off

    If you missed the 2D sale, you're still in luck! The Dialogue System is 50% off in the Return To 3D Sale this week.

    As seen in 3D games such as Disco Elysium, Lake, The Way of Wrath, City of the Shroud, Skinwalker Hunt, Beyond Mankind, Elmarion, Space Cats Tactics, and many more.

    upload_2021-7-6_9-4-34.png

    Get the Dialogue System on the Asset Store. Love/Hate is also 50% off.
     
  42. Sigma266

    Sigma266

    Joined:
    Mar 25, 2017
    Posts:
    99
    Hello, Tony.
    So I made my own SendMessage() command and called it SM(). It's the exactly the same code, but shorter. The reason is that SM is shorter and makes it a much smaller waste of time to type every time.
    The problem now is that I don't know how to make it work on a sequence. It works fine on a Dialogue System Trigger object, but when typed out on a sequence it just doesn't do anything, unlike SendMessage().
     
  43. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Hi @Sigma266 - Try this script:

    Code (csharp):
    1. using System;
    2. using UnityEngine;
    3. namespace PixelCrushers.DialogueSystem.SequencerCommands
    4. {
    5.     public class SequencerCommandSM : SequencerCommand
    6.     {
    7.         private void Awake()
    8.         {
    9.             string methodName = GetParameter(0);
    10.             string arg = GetParameter(1);
    11.             string subjectArg = GetParameter(2);
    12.             bool everyone = string.Equals(subjectArg, "everyone", StringComparison.OrdinalIgnoreCase);
    13.             Transform subject = everyone ? DialogueManager.instance.transform : GetSubject(subjectArg, speaker);
    14.             bool broadcast = string.Equals(GetParameter(3), "broadcast", StringComparison.OrdinalIgnoreCase);
    15.             if (DialogueDebug.logInfo) Debug.Log(string.Format("{0}: Sequencer: {1}({2}, {3}, {4}, {5})", new System.Object[] { DialogueDebug.Prefix, "SM", methodName, arg, subject, GetParameter(3) }));
    16.             if ((subject == null) && DialogueDebug.logWarnings) Debug.LogWarning(string.Format("{0}: Sequencer: {1}() command: subject is null.", new System.Object[] { DialogueDebug.Prefix, "SM" }));
    17.             if (string.IsNullOrEmpty(methodName) && DialogueDebug.logWarnings) Debug.LogWarning(string.Format("{0}: Sequencer: {1}() command: message is blank.", new System.Object[] { DialogueDebug.Prefix, "SM" }));
    18.             if (subject != null && !string.IsNullOrEmpty(methodName))
    19.             {
    20.                 if (everyone)
    21.                 {
    22.                     Tools.SendMessageToEveryone(methodName, arg);
    23.                 }
    24.                 else if (broadcast)
    25.                 {
    26.                     subject.BroadcastMessage(methodName, arg, SendMessageOptions.DontRequireReceiver);
    27.                 }
    28.                 else
    29.                 {
    30.                     subject.SendMessage(methodName, arg, SendMessageOptions.DontRequireReceiver);
    31.                 }
    32.             }
    33.             Stop();
    34.         }
    35.     }
    36. }

    Also, to avoid typing, you can use the "+" menu:

    upload_2021-7-6_13-34-54.png
     
    Sigma266 likes this.
  44. Sigma266

    Sigma266

    Joined:
    Mar 25, 2017
    Posts:
    99
    OH MAN, thank you so much, it works perfectly!
    I have one more question! Is there a way to add more parameters to the command? Within this script.
     
  45. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    SM() is a wrapper for Unity's SendMessage() method, which only accepts one parameter.

    You may instead want to write a custom sequencer command that accepts multiple parameters.
     
  46. Sigma266

    Sigma266

    Joined:
    Mar 25, 2017
    Posts:
    99
    I understand. Thanks a lot for the assistance!
     
  47. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Glad to help! You can use the starter script SequencerCommandTemplate.cs to write your custom sequencer command. It has commented instructions.
     
    Sigma266 likes this.
  48. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Steam Sale Ends Tomorrow - Dialogue System-Powered Games On Sale

    The Steam Summer Sale ends tomorrow at 10 AM PDT. If you seek inspiration for what you can do with the Dialogue System, you can get your hands on lots of games that use it, including:
    upload_2021-7-7_22-11-13.png
    and many more!

    The Dialogue System is currently 50% off in the Asset Store's Return To 3D Summer Sale.
     
  49. halo_of_the_sun

    halo_of_the_sun

    Joined:
    Sep 17, 2017
    Posts:
    64
    While I work away on the Input stuff: Is there a way to have 'Submit' respond to a key of my choosing? Like the 'E' key. The system is already working great with controller, just want to get it a bit more sorted out with keyboard/mouse
     
  50. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,692
    Hi - You can set up your own InputActions asset with the inputs defined on the EventSystem's InputSystemUIInputModule (Point, Click, Move, Submit, etc.). Bind the gamepad 'A' button and the keyboard 'E' key to Submit:

    upload_2021-7-8_8-34-45.png

    Then assign your InputActions asset to the InputSystemUIInputModule and set the inputs (your own Point, Click, Move, Submit, etc.).

    Tip: If you haven't got too far in your own InputActions asset, you can duplicate Packages > Input System > InputSystem > Plugins > PlayerInput > DefaultInputActions to use it as a starting point to save time. I don't recommend directly modifying DefaultInputActions since it could get overwritten if you update the Input System package.