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. avataris-io

    avataris-io

    Joined:
    Jun 23, 2020
    Posts:
    37
    hey, Tonni!
    Could you please explain little but more detailed how to use it with Addressables? I did all the steps described here, but it's not working. Do I need manually load addressables or somehow register them as Asset Bundels? Didn't find much information about it in the documentation..
    also, is it okay, if I use full path with sleshes, because in addressables path I have sleshes in the name? I don't use entry tags, just path to the audio in the AudioAwait() like this:
    upload_2023-6-12_17-26-28.png

    I have addressable bundle with all audio build.
     
  2. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Hi! You don't need to register your addressables with anything. I think slashes are okay as long as it exactly matches the addressable asset's Key field. Also make sure that you're using the current version of the Dialogue System and that the Welcome Window's USE_ADDRESSABLES checkbox is ticked. More info: How To: Use Addressables to Play Audio Files
     
    Last edited: Jun 12, 2023
    avataris-io likes this.
  3. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Peglin - Apple's Game of the Day

    Congrats to Red Nexus Games! Apple chose Peglin, made with the Dialogue System for Unity, as their Game of the Day.

    upload_2023-6-14_20-53-19.png
     
  4. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Dialogue System 2.2.38 Released

    Version 2.2.38 is now available on the Asset Store!

    This version introduces conversation templates. You can create conversation trees, save them as template files, and then create new conversations using those templates. The Dialogue System ships with a built-in template useful for quest conversations:

    upload_2023-6-14_21-7-57.png

    This feature is extra powerful when used with the Dialogue System Addon for OpenAI's new Dialogue Smith integration which, given a conversation tree with brief prompts in the nodes' title fields, writes the dialogue for you.


    Release Notes:
    Core:
    • CHANGED: Dialogue Manager prefab's Persistent Data Settings > Record Persistent Data On changed to Only Registered GameObjects. Register with PersistentDataManager.RegisterPersistentData().
    • Added: Conversation Templates.
    • Added: Dialogue Editor > Check For Issues foldout: check syntax of dialogue entry Sequences, identify orphan nodes, report missing entrytag audio files.
    • Improved: Dialogue Editor Show menu settings are now saved across editor sessions.
    • Improved: If OverrideDialogueUI component instantiates UI prefab, by default it now keeps prefab in memory for reuse instead of destroying.
    • Improved: ConversationController now sets currentConversationState before InformParticipants when initializing.
    • Improved: Added UIDropdownField wrapper type for UI.Dropdown or TMP_Dropdown.
    • Fixed: Fade(stay) could flash for one frame when first used before running fade.
    • Fixed: Lua parser error with loose 'not' keyword before right term of binary expression such as "x and not y".
    • Fixed: Updated search bar GUI style names for 2022.3.1 change.
    • Fixed: Dialogue Editor Conversations canvas background color is now consistent when zoomed all the way out.
    • Fixed: LocalizeUI issue clearing TMP_Dropdown items.
    Third Party Support:
    • Adventure Creator: Loading saved game restores SimStatus if AdventureCreatorBridge's Include SimStatus is ticked OR Dialogue Manager's Other Settings > Include SimStatus is ticked.
    • Arcweave: Fixed import issues regarding complex if..elseif..else branch nodes & incrementor operations; added support for visits() function [note: ArcweaveLua is now a Saver.]
    • Corgi Engine: Fixed potential null reference issue when Dialogue UI Follows was set to Conversant.
    • Excel: Updated documentation and added example Excel files.
    • PlayMaker: DialogueSystemEventsToPlayMaker methods are now virtual.
    • RPG Builder: Now prevents camera movement when pausing character into dialogue while running and spinning; added rpgOpenTalentTreePanel() Lua function; fixed rpgTeleport() when changing scenes.
    • SALSA: Added ContinueButtonStopTextSyncActor component, subclass of StandardUIContinueButtonFastForward that stops the actor's TextSync lipsync.
    • TopDown Engine: CharacterRun ability is now reset if active when a conversation starts.
    • Yarn: Can now save & load import window configurations.
     
    Last edited: Jun 15, 2023
  5. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Dialogue System Addon 1.0.4 for OpenAI Released

    The Dialogue System Addon is moving to its own thread.

    Notable New Features:
    • This is the first asset to support OpenAI's new GPT-3.5 Turbo 16K model.
    • This is also currently the only asset to support the Dialogue Smith API for branching dialogue generation.
    • Also supports ElevenLabs, Whisper, and DALL-E.

    Release Notes:
    • Changed: Requires Dialogue System 2.2.38+.
    • Added: GPT-3.5 Turbo 16K support.
    • Added: Whisper (OpenAI speech to text transcription) support.
    • Added: Dialogue Smith integration.
    • Added: Runtime Choose-Your-Own-Adventure mode, with optional image and voice narration generation.
    • Improved: Added RuntimeAIConversation.freeformTextInputConversationEnded C# event.
    • Improved: Added microphone speech input option to Runtime Demo scene.
     
  6. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Steam Next Fest Notables - Eternights and While The Iron's Hot

    Several Dialogue System-powered games are in Steam Next Fest right now. Two of note are:

    While The Iron's Hot
    Bontemps Games' pixel art blacksmithing RPG, being published by Humble Games, uses the Dialogue System for Unity and Quest Machine:




    Eternights
    Studio Sai's highly-anticipated dating sim / action RPG, made with the Dialogue System for Unity, is currently in the top 5 most popular games in Steam Next Fest.




    Congratulations to the devs of these and all of the Dialogue System-powered games currently in Steam Next Fest!
     
    avataris-io likes this.
  7. avataris-io

    avataris-io

    Joined:
    Jun 23, 2020
    Posts:
    37
    Thank you very much! My issues were resolved due to the paths in the addressable names.

    I also wanted to inquire if you have a feature like 'search by keywords' in the conversations, or perhaps some other type of search mechanism? I have numerous dialogues and I am looking to categorize them with keywords for quicker search within the database. I imagine this can be achieved by adding new custom fields for conversations or dialogue entries. However, I wanted to confirm with you if there already exists a search or categorization feature for dialogues.

    I have explored various forums, but only found examples where the system switches between dialogues in a hierarchical manner, which is not what I am seeking. If there is a categorization system or search system for dialogues, could you please provide me a link?

    Thanks in advance! I also want to express my satisfaction with your Dialogue System. I appreciate your constant improvements, updates, and the numerous integrations with other assets.
     
    TonyLi likes this.
  8. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Hi! There's no search by keywords, but you can filter the dropdown menu to make it easier to find conversations. For example, the demo database has these conversations:

    upload_2023-6-21_11-43-18.png

    If I enter "enemy" in the filter bar, it only shows conversations whose titles contain "enemy":

    upload_2023-6-21_11-43-30.png

    Another tip: Use forward slashes in conversation titles to group them into submenus. In the screenshot below, the database has conversations "Companions/Private Hart" and "Companions/Sergeant Graves":

    upload_2023-6-21_11-47-33.png
     
    avataris-io likes this.
  9. Spikebor

    Spikebor

    Joined:
    May 30, 2019
    Posts:
    281
    hi bros, new user of the plugin here.
    I want to use the plugin through API only, because I want to support controller where I'll process up/down/confirm/cancel buttons to select/confirm instead of using mouse click.
    Please show me some script examples
    Just start, currently I just stuck at confirm.

    Code (CSharp):
    1.  
    2.                 if (inputs.Confirm) {
    3.                     if (dialogueTrigger) {
    4.                         //start conversation
    5.                         if (!isInConversation)
    6.                         {
    7.                             dialogueTrigger.conversationActor = character.transform;
    8.                             dialogueTrigger.TryStart(character.transform);
    9.                         }
    10.                         else {
    11.                         //confirm current option, proceed to next line of conversation
    12.                             //?
    13.                         }
    14.                     }
    15.                 }else if (inputs.Cancel) {
    16.                     //end conversation
    17.                     if (dialogueTrigger && isInConversation)
    18.                     {
    19.                         DialogueManager.StopAllConversations();
    20.                     }
    21.                 }
    22.  
    for example, how to listen/to receive this message
    OnConversationResponseMenu(Response[] responses)

    Then how to Select a Response, and Confirm selected Response.
     
    Last edited: Jun 26, 2023
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Hi - The Dialogue System's built-in standard dialogue UI has very good controller support. Tick the Dialogue Manager GameObject's Input Device Manager component > Always Auto Focus to always support controller input even if you're using a mouse at the same time. This way it can work smoothly regardless of whether the player is using a joystick controller, mouse, keyboard, or touch device.

    I recommend either using the built-in standard dialogue UI or implementing the C# interface IDialogueUI if you want to provide your own UI code instead.

    Here's a more detailed explanation:

    The Dialogue System is modular. The two main modules are the model and the UI.

    The model handles internal logic. It checks conditions, updates variables, and keeps track of the current position in the conversation tree. It doesn't show anything to the player.

    The UI shows the current position in the conversation tree and handles the player response menu.

    UIs implement a C# interface named IDialogueUI that has a few simple methods such as ShowSubtitle() and ShowResponses().

    The model doesn't communicate directly with any specific UI implementation. It communicates with IDialogueUI. As long as you assign anything that implements IDialogueUI to the Dialogue Manager's Display Settings > Dialogue UI field, the Dialogue System will work happily with it. There is a starter script in the Dialogue System's Templates/Scripts subfolder.

    More info:
    - Manual: Dialogue UIs
    - API Reference: IDialogueUI

    Note that the dialogue UI is used when you've started a conversation.

    To start a conversation, you can use a Dialogue System Trigger component like in your code above, or you can use the C# method DialogueManager.StartConversation().

    More info:
    - API Reference: DialogueManager.StartConversation()

    If I can provide any more info on any of this, please let me know.
     
    Spikebor likes this.
  11. Spikebor

    Spikebor

    Joined:
    May 30, 2019
    Posts:
    281
    Thank you for the explanation.
    What I need right now is knowing when the new responses are shown, so that I can loop through them to Select/Confirm based on how I handle inputs. Sorry for not using your provided inputs.
    So to do that I'm using a very hacky approach. It works though.
    Those ugly code can be clean up if I can subscribe to an event to have current shown Responses[].

    Also I want to show the response box immediately without the fade-in animation.

    Code (CSharp):
    1.          
    2.  
    3.              public override void Setup()
    4.             {
    5.                 base.Setup();
    6.                 tCapture = new TimerSystem.Timer($"{ownerName} Awareness | capture").Interval(interval, Capture);
    7.                 managedTimer = new TimerSystem.ManagedTimers(new TimerSystem.Timer[] { tCapture },null);
    8.  
    9.                 //dialogue events
    10.                 var dialogUI = FindAnyObjectByType<PixelCrushers.DialogueSystem.Wrappers.StandardDialogueUI>();
    11.                 var dialogPanel = dialogUI.GetComponentInChildren<PixelCrushers.DialogueSystem.Wrappers.StandardUIMenuPanel>(true);
    12.                 dialogContentHolder = dialogPanel.transform.FindChildByName("Scroll Content");
    13.                 dialogPanel.onContentChanged.AddListener(DialogueRefreshResponses);
    14.  
    15.                 //DialogueManager.instance.conversationView..OnConversationResponseMenu += OnConversationResponseMenu;
    16.             }
    17.  
    18.             Transform dialogContentHolder;
    19.             void DialogueRefreshResponses() {
    20.                 dialogueResponses = dialogContentHolder.GetComponentsInChildren<UnityEngine.UI.Button>();
    21.                 if (dialogueResponses.Length > 0)
    22.                 {
    23.                     //Debug.Log($"we got {(dialogueResponses.Length - 1).ColorMe(Color.green)} dialogue Responses");
    24.                     currentDialogueResponseId = 0;
    25.                 }
    26.             }
     
  12. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Spikebor likes this.
  13. Spikebor

    Spikebor

    Joined:
    May 30, 2019
    Posts:
    281
    Thank you.
    I've done implement my own IDialogueUI, everything is good,
    the UI is drawn by new Unity UI system, I can select responses.
    Now I only stuck at how to Confirm the selected response and proceed to next dialogue.

    All I do in get Confirm inputs step is just debug the response text (it's the correct text) and set currentResponse.

    Code (CSharp):
    1. if (inputs.Confirm)
    2.                 {
    3.                     Debug.Log($"Confirm response {currentResponse.formattedText.text}");
    4.                     DialogueManager.conversationController.SetCurrentResponse(currentResponse);
    5.                 }
    upload_2023-6-27_2-43-20.png
     
  14. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Hi - When the player selects a response, call:

    Code (csharp):
    1. SelectedResponseHandler(this, new SelectedResponseEventArgs(response));
    (For more info, see line 44 of TemplateDialogueUI.cs)
     
    Spikebor likes this.
  15. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Dwerve Reaches Finals of TapTap Pocket Playfest

    Half Human Games' pixel art tower defense dungeon crawler, Dwerve, made with the Dialogue System for Unity, just made it to the finals of TapTap's Pocket Playfest! If you're a fan, give it a vote.

     
  16. Spikebor

    Spikebor

    Joined:
    May 30, 2019
    Posts:
    281
    Thanks for the help.
    I appreciate the system's modular structure.
    My first try is to find the global events, but turns out everything is local, everything makes sense now.

    I've done implement a simple interaction with my NPC, feeling good.
     
    TonyLi likes this.
  17. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Happy to help! Looks good!
     
    Spikebor likes this.
  18. Spikebor

    Spikebor

    Joined:
    May 30, 2019
    Posts:
    281
    //Edit: I'm stoopid, I have to set condition on both branches. Resolved.
    Hi there, I'm stuck again haha.
    How can I start branching to the branch(2)?
    The second dialogue is for when character just die from fall damage.
    In my death event handling script, I did set:
    DialogueLua.SetVariable("dieFromFallDmg", true);
    This happen when player die, and I did write the value to Lua.
    I even debug the value in my own inspector, it's true (see red text), no typo.
    But in begin Dialogue it still pick the branch(1)

    upload_2023-6-29_1-38-38.png

    upload_2023-6-29_1-35-53.png
     
    Last edited: Jun 28, 2023
  19. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Spikebor likes this.
  20. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Steam Summer Sale Games

    Dozens of games that use the Dialogue System for Unity are in the Steam Summer Sale. Here are just a few:

    Trent Garlipp's touching, wholesome short adventure A Walk With Yiayia:




    Short Sleeve Studio's clever point-and-click adventure Voodoo Detective, featuring a stellar cast of voice actors and live-recorded music by the composer of Monkey Island and Grim Fandango:




    Moonlight Games' haunting pixel art ARPG Hunt the Night:




    And many more. If you like games with good dialogue check them out.
     
  21. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Dialogue System 2.2.38.2 Released

    Version 2.2.38.2 is now live on the Asset Store!

    Release Notes:

    Core:
    • Improved: Updated to handle Unity 2023 API changes.
    • Improved: Auto Arrange now has two vertical arrangement styles to choose from.
    • Improved: Node group creation and resizing tweaks.
    • Improved: Added safety button to prevent accidental editing of conversation <START> nodes.
    • Improved: Added option to make auto-focused response menu button appear selected during block input duration.
    • Improved: Warm Up > Extra now sets subtitle text to blank string when done.
    • Fixed: Center On Current Entry menu option now works with cross-conversation links.
    • Fixed: StandardBarkUI issues when Include Name was ticked and name was blank or no Name Text UI element assigned.
    • Fixed: Subtitle panel Clear Text On Close is now also supported when Wait For Close is ticked.
    • Fixed: When unloading additive scenes, save system now records saver data in scene being unloaded.
    • Fixed: SaveSystem.loadEnded is now invoked even if loadStarted has no listeners.
    • Fixed: Adjusted portrait image positions in VN Template Standard Dialogue UI.
    • Fixed: When showing larger node widths, new conversations now position <START> node properly.
    • Fixed: Improved grid snapping when multiple nodes are selected.
    • Fixed: Dialogue Editor conversation node editor grid lines and link arrows clipping workaround for Unity 2022 bug.

    Third Party Support:
    • Adventure Creator: Fixed packaging error in integration package; now contains action scripts.
    • Arcweave: Added multiplayer support for visits() Lua function; fixed visits() import bug.
    • i2 Localization: Fixed issue working with non-default LanguageSourceAssets.
    • RPG Builder: Log Saves checkbox now logs detailed save info to Console.
    • Text Animator: Updated integration for Text Animator 2.x.
     
  22. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,685
    Don't know why, but I can't update to this. Anyone else having a problem?
     
  23. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Are you logged into your Unity account?

    Do you see an Update button in the Package Manager window?

    upload_2023-7-11_14-39-14.png

    After clicking Update:

    upload_2023-7-11_14-40-7.png
     
  24. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,685
    Yup, logged in and with 2.2.38.1, and no matter how many times I click it doesn't refresh with "Update."

    I'll try exiting and reloading Unity. ("Have you tried turning it off and on?" lol)

    Ah, that worked! It gave me the option to Update. Sorry to bother!

    FWIW, I was able to update other packages, like Quest Machine and Love/Hate before I tried Dialogue System. Plus I updated others after Dialogue System failed. So ... just weird it wouldn't do that one.
     
  25. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    I'll alert the IT Crowd. ;-)
     
  26. Spikebor

    Spikebor

    Joined:
    May 30, 2019
    Posts:
    281
    hello, I just update dialog system to newest version, but my current method of starting a dialog using dialogTrigger does not work anymore. I've debug it and the yes the currentActor / currentConversant is null, meaning the dialog doesn't start.

    Code (CSharp):
    1.                 //has someone to talk to > confirm to open dialogue
    2.                 if (myUI.showingConfirmation)
    3.                 {
    4.                     if (inputs.Confirm)
    5.                     {
    6.                         Debug.Log($"Confirm Conversation with {dialogueTrigger.conversationConversant.name}");
    7.                         myUI.CloseConfirmation();
    8.                         //start conversation
    9.                         dialogueTrigger.conversationActor = character.transform;
    10.                         //dialogueTrigger.TryStart(character.transform);
    11.                         dialogueTrigger.Start();
    12.                         //2 convo talkers will set target to each other in this step
    13.                         Debug.Log($"debug dialog | actor {DialogueManager.CurrentActor?.name} | conversant {DialogueManager.currentConversant?.name} | state {DialogueManager.currentConversationState}");
    14.                     }
    15.                 }
    I then try the OnUse method
    Code (CSharp):
    1.  
    2. dialogueTrigger.conversationActor = character.transform;
    3. dialogueTrigger.OnUse();
    4.  
    but the result is the same, can't start
    upload_2023-7-17_7-13-33.png
     
    Last edited: Jul 17, 2023
  27. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Hi! Let's just take a step back and use simpler code. Set your Dialogue System Trigger component to OnUse:

    upload_2023-7-16_20-26-36.png

    Select Add Action > Start Conversation, and select the conversation. Then use this code:
    Code (csharp):
    1. //has someone to talk to > confirm to open dialogue
    2. if (myUI.showingConfirmation)
    3. {
    4.     if (inputs.Confirm)
    5.     {
    6.         Debug.Log($"Confirm Conversation with {dialogueTrigger.conversationConversant.name}");
    7.         myUI.CloseConfirmation();
    8.         //start conversation
    9.         dialogueTrigger.OnUse(character.transform); // Will set Conversation Actor to character.transform.
    10.         Debug.Log($"debug dialog | actor {DialogueManager.CurrentActor?.name} | conversant {DialogueManager.currentConversant?.name} | state {DialogueManager.currentConversationState}");
    11.     }
    12. }
     
  28. Spikebor

    Spikebor

    Joined:
    May 30, 2019
    Posts:
    281
    Hi bro, thanks for the promptly reply.
    I have found the problem.

    I set the condition to use location, and expect it will using the name
    upload_2023-7-17_7-31-12.png

    upload_2023-7-17_7-31-30.png

    but when I debug Lua code, the actual value is an index
    upload_2023-7-17_7-31-52.png

    this is why my convo can't start.
     
  29. Spikebor

    Spikebor

    Joined:
    May 30, 2019
    Posts:
    281
    I've resolved that problem by setting the location name when starting conversation, based on each check point, I'll set different location name.
    Now I've stuck in another problem regarding quest.
    This is the branch I want to reach:
    upload_2023-7-17_8-34-41.png

    The condition is setup as you show in Quest tutorial: it is unassigned.

    upload_2023-7-17_8-35-7.png

    But when I test, it can't be reached.
    I test to set the state of that quest to be unassign before conversation started, then it works.
    But why? why is the default state of the quest is not unassigned on start?

    This is how I setup the quest
    upload_2023-7-17_8-52-6.png
     
    Last edited: Jul 17, 2023
  30. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Hi - Check the initial quest state in the dialogue database:

    upload_2023-7-16_21-52-13.png

    Also, where is your <START> node? Make sure your conversations have a <START> node, like:

    upload_2023-7-16_21-58-44.png
     
  31. Spikebor

    Spikebor

    Joined:
    May 30, 2019
    Posts:
    281
    Yes I did set it to be unassigned.
    But that branch can only be reach when I run a script to set the quest to unassigned at the conversation before it (to test). It will be skipped if I do not do that.
    This imply that the default state of the quest is not "unassigned".
    Can you share some code to debug / get /set state of the quest in C#?
    upload_2023-7-17_9-5-52.png
     
  32. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    You can check it in the Watches section, which is available at runtime:

    upload_2023-7-16_22-15-29.png

    Or add a Lua Console to your scene, press ~+L to open it, and check the quest state:

    upload_2023-7-16_22-17-46.png

    Use "return Quest" to get a list of the quests in Lua:

    upload_2023-7-16_22-19-2.png
     
    Spikebor likes this.
  33. Spikebor

    Spikebor

    Joined:
    May 30, 2019
    Posts:
    281
    I see, thank you for the info!
    I've test with the Watches and can't see the quest "Skeleton Dragon's Eye"
    but when I change its name to "Skeleton Dragon Eye" then it is shown.
    So I guess the 's make it invalid somehow.
     
  34. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Single and double quotes are valid in quest names. If you'd like to send a reproduction project to tony (at) pixelcrushers.com, I'd be happy to take a look. Then again if you're happy with your current solution, you can set the quest's Display Name to "Skeleton Dragon's Eye" so it shows the single quote to players in UIs.
     
    Spikebor likes this.
  35. Spikebor

    Spikebor

    Joined:
    May 30, 2019
    Posts:
    281
    I'll name all the things in DialogSystem like quest, item, and such same as I'll name in scripting (SkeletonDragonEye). This way less error can happen.
     
  36. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Sounds good. It's better to use Display Name anyway since it's easier to localize if your game will support multiple languages.
     
  37. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Shuko Sun Story Trailer

    Check out the story trailer for Lucidity Holos' upcoming sci-fi VR game Shuko Sun, made with the Dialogue System for Unity:




    The Spirit & the Mouse Now on PlayStation

    Congrats to Alblune for the PlayStation release of The Spirit & The Mouse! You can also play it on PC, Switch, and other platforms.




    Rising Spire in Early Access

    And congrats to LFB Studios on the early access release of turn-based RPG Rising Spire:

     
  38. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Space Cats Tactics Now Available On Steam

    Congratulations to Mitzi Games on today's release of Space Cats Tactics, which uses the Dialogue System! You can play it now on Steam.

     
  39. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
  40. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    The Dialogue System Video Tutorials playlist has a new video on logging & debugging, features that can be really helpful when you're managing a lot of dialogue and quest content with lots of branching logic.

     
  41. Spikebor

    Spikebor

    Joined:
    May 30, 2019
    Posts:
    281
    Hello, can I have script demo for get/set quest states /quest entries states in C#?
    I tried to do this but it say the LuaWizardBase does not exist...
    upload_2023-7-27_17-48-28.png
     
  42. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Hi! To get and quest quest states in C#, use the QuestLog class. Examples:

    Code (csharp):
    1. QuestState state = QuestLog.GetQuestState("Get the Launch Codes");
    2. QuestLog.SetQuestState("Get the Launch Codes", QuestState.Active);
    3.  
    4. QuestState entryState = QuestLog.GetQuestEntryState("Enemy Attack", 1);
    5. QuestLog.SetQuestEntryState("Enemy Attack", 1, QuestState.Success);
     
    Spikebor likes this.
  43. Spikebor

    Spikebor

    Joined:
    May 30, 2019
    Posts:
    281
    thank you!
     
    TonyLi likes this.
  44. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Wholesome Games Celebration - Dialogue System Games On Sale

    Several games made with the Dialogue System are on sale right now in Steam's Wholesome Games Celebration. Just a few of them are:




    And some upcoming Dialogue System-powered games in the Wholesome Games Celebration that you can wishlist are:




    The Dialogue System for Unity is 50% off right now in the Asset Store's Summer Sale. Whether you're making a wholesome game, a shooter, a horror game, or something else entirely, if your game needs dialogue the Dialogue System for Unity might be what you're looking for.

    upload_2023-7-31_14-36-0.jpeg
     
  45. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Dialogue System 2.2.39 Released

    Version 2.2.39 is now available on the Asset Store and on sale 50% off in the Dev Days of Summer Sale.

    Release Notes:
    Core:
    • CHANGED: Base Dialogue Manager prefab's Input Settings > Cancel Subtitle/Conversation Input is no longer mapped to Esc.
    • Changed: DialogueSystemSaver now stops all conversations when loading saved game.
    • Improved: SMSDialogueUI now has SaveConversation() and ResumeConversation() methods.
    • Improved: StandardUIQuestTracker now ignores PlayerPrefs Toggle Key if blank.
    • Improved: ConversationControl methods are now virtual.
    • Fixed: Issue with Dialogue Manager's Warm Up Conversation Controller options hiding dialogue UI even if UI is configured to always stay visible.
    • Fixed: Subtitle panel Clear Text On Conversation Start checkbox.
    Third Party Support:
    • Adventure Creator: RememberDialogueSystem now hooks into AC EventManager.OnRestartGame to reset DS save data.
    • Arcweave: Now imports < em > tags as rich text italics tags.
    • LipSync Pro: LipSync() sequencer command now automatically unloads lipsync data when done if using Addressables.
    • RPG Builder: When player is involved in conversation, Variable["Actor"] is now set to player character's name. Added Disable All RPG Builder Input In %Player Conversations checkbox to bridge.
    • SALSA: Added TextSync() sequencer command.
     
  46. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Christina Creates Games' Sale Picks - Dialogue System for Unity

    Christina Creates Games selected the Dialogue System for Unity as one of her recommendations in the Dev Days Of Summer Sale:



    She uses them with the excellent assets Feel and Text Animator for Unity, both also in her recommendations and on sale.

    If you want to see them together in a scene, download the free Feel + Text Animator + Dialogue System demo scene. (Requires all 3 assets.)

    Inter-Illusion's i2 Localization is also in her recommendation list and also integrates nicely with the Dialogue System.
     
  47. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
  48. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    Dialogue System in SpeedTutor's Recommended Assets Video

    SpeedTutor kindly included the Dialogue System for Unity in his ASSETS That YOU Should Have In YOUR PROJECTS video:



    He calls it:
    The Dialogue System is 50% off in the Summer Sale.

    upload_2023-8-10_10-19-11.jpeg
     
  49. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696
    PC Gamer Covers Deathbulge: Battle of the Bands

    PC Gamer wrote a nice article about Five Houses' Deathbulge: Battle of the Bands, which released just a few days ago and is already Very Positively rated:

    Check out this goofy, heavy metal indie RPG

    Reminder - The Dialogue System is 50% off for just a few more days while the Summer Sale lasts.

     
  50. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,696