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. SOSolacex

    SOSolacex

    Joined:
    Jan 10, 2018
    Posts:
    121
    Hey Tony, 2.2.16 is the latest, no?
    Upon reimport, it's in exactly the same spot for me.
     
  2. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Did you delete the Plugins/Pixel Crushers/Dialogue System folder first? In this case, you must delete the folder first. Normally you don't have to delete folders to update the Dialogue System, but deleting the folder will allow CustomLuafunctionInfo to appear in the correct place.
     
  3. nichjaim

    nichjaim

    Joined:
    Apr 23, 2020
    Posts:
    46
    Is there a way to get all conversations from a certain category (Like how you can separate dialogue conversations into sub-menu/folders through '/')? I need to do this because I need to be able to pick a random dialogue from a certain category while also ensuring that I haven't picked that one before, so to do this I need to be able to get all conversations of a certain type. I have a few ideas on how to go about this but was just wondering if there is an easier in-built way to do it.
     
    Last edited: May 20, 2021
  4. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi @nichjaim - Here's an example:
    Code (csharp):
    1. var someList = DialogueManager.masterDatabase.conversations.
    2.     FindAll(conversation => conversation.Title.StartsWith("Some Category/"));
    Let's say you set a DS Boolean variable "Played.conversation" to true whenever you play conversation. Then, to get a list of all conversations that haven't been played:

    Code (csharp):
    1. var someList = DialogueManager.masterDatabase.conversations.
    2.     FindAll(conversation => conversation.Title.StartsWith("Some Category/") &&
    3.         !DialogueLua.GetVariable("Played." + conversation.Title).asBool);
    Alternatively, you can do this inside the dialogue database instead of C# code. Create a "hub" conversation for the category that links to all conversations in the category. Set the Conditions on the entrypoints of those conversations to require that "Played.conversation" isn't true. In the hub's Script, use the RandomizeNextEntry() Lua function.
     
    nichjaim likes this.
  5. jcaguiat

    jcaguiat

    Joined:
    May 10, 2016
    Posts:
    5
    Hi There!

    I having an issue with builds on iOS. The quest tracker and dialogue/response text all show up as the placeholder text. I have moved the link.xml file into the root assets folder but still no luck.

    Builds on Android work perfectly fine, text populates as expected.

    Do you have any idea why this might be happening?

    Thanks!
     
  6. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi @jcaguiat - Check your project's Scripting Define Symbols for iOS. (Menu item Edit > Project Settings > Player > Other Settings.) If you're using TextMesh Pro, for example, it's possible that the TMP_PRESENT symbol isn't when you switch the build platform to iOS.
     
  7. jcaguiat

    jcaguiat

    Joined:
    May 10, 2016
    Posts:
    5
    @TonyLi That did the trick! Thanks for the quick response!
     
  8. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Glad to help!
     
  9. homemacai

    homemacai

    Joined:
    Jul 22, 2020
    Posts:
    74
    Quick question, but I read the entire documentation and found only a few classes, but no explanation at all on how to play audio during dialogues, not even in the demo could find how or where the audio clips were being called from. Am I missing something obvious ? Thanks!
     
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi - These links should help:
    Quick start: Put your audio clip in a Resources folder or make it an Addressable. Then drag it into a dialogue node's Sequence field.

    The Cutscene Sequence Video Tutorials explain how to use entrytags so you don't have to manually drag a clip into each node's Sequence.
     
    homemacai likes this.
  11. homemacai

    homemacai

    Joined:
    Jul 22, 2020
    Posts:
    74
    Thanks!
     
    TonyLi likes this.
  12. homemacai

    homemacai

    Joined:
    Jul 22, 2020
    Posts:
    74
    Hey there, another quick question here, in the Demo scene, when interacting with the Terminal, when (and how) do you call for the fade in/out of the worldSpace UI for the terminal? Is is set up in the Dialogue Manager or directly in the Dialogue System Trigger? Thank You!
     
  13. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Do you mean the camera movement that moves the camera to the terminal screen? If so, that's a Camera() sequencer command on the first node of the Terminal conversation. More info:
     
  14. homemacai

    homemacai

    Joined:
    Jul 22, 2020
    Posts:
    74
    Actually I meant, the UI where the password is input, Not the actual camera, sorry for bad wording. The terminal screen alpha is 0 and when you interact with it, fades in , I could not find where or when, the dialogue system controls that alpha value.
    Also since i'm going deep on the manual, when using extra databases, maybe the best way would be to merge it all for a final build right? the extradatabases component add them at runtime?
     
  15. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    The Dialogue Panel has an Animator that controls the Canvas Group's Alpha. Its Canvas Group Animator Controller responds to the UI Panel component's Show and Hide triggers.

    Totally up to you. Either way is fine. See Working With Multiple Databases for considerations.
     
    homemacai likes this.
  16. homemacai

    homemacai

    Joined:
    Jul 22, 2020
    Posts:
    74
    Got a few last here!

    I am using Rewired for inputs, and cannot get the inputs to register on the Selector, if Use Key is selected to a specific keyboard key it does trigger the conversation, but whenever i leave it blank and use the button name (with the proper Rewired name), it does register them. Also the UI navigation Submit and Cancel are not being registered, in my main scene.
    Confirmed that in my old Unity UI Main Menu and Inventory, Rewired inputs register normally.

    In the Demo I managed to set up Rewired, it works fine for navigating the UIs, and Cancelling. but the Use function on the player Selector still does not work. Also in the Demo, on the StandardUI Input Field component, the submit button also does not read from Rewired, but the Cancel one, yes.

    Using the Input Device Manager Rewired and set the Submit and Cancel buttons as in the docs, not sure what else could do to register the inputs...

    And to change the portrait image to specific one during a conversation, I should create an Animator Controller for that and trigger them just like you explained on the last post for triggering the animator for the screen right? If that is so, do I need to set up all the portraits for each character in the Dialogue Manager, or that is just for organizing things?

    Thank You! Sorry for the trouble!
     
    Last edited: May 24, 2021
  17. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi,
    For Unity UI navigation, double check the Rewired Standalone Input Module's Submit and Cancel assignments. The Dialogue System just uses regular UI navigation for its dialogue UIs. As long as the EventSystem's Submit and Cancel work for Unity UI in general, they should work with dialogue UIs.

    For Dialogue System-specific input such as the Selector, make sure you've added the Input Device Manager Rewired component to the same GameObject as your Input Device Manager (i.e., the Dialogue Manager GameObject). Both components should be on the Dialogue Manager. Input Device Manager Rewired supplements Input Device Manager; it doesn't replace it. This will divert the Dialogue System's button name checks to Rewired. (more info)

    You may also want to set the Dialogue Manager's Input Settings > Cancel Subtitle and Cancel Conversation > Key values to None.

    If they're static portrait images, assign them to your dialogue database actors in the Dialogue Editor window's Actors section. Then use [pic=#] markup tags in your Dialogue Text or SetPortrait() sequencer commands.

    If you're using animated portraits, see Animated Portraits. The Dialogue System also supports Spine portraits.
     
  18. homemacai

    homemacai

    Joined:
    Jul 22, 2020
    Posts:
    74
    Ok, 100% that things are setup correctly as you said last post, tripled checked everything to make sure I wasn`t making any silly mistake.

    So made a few tests and maybe found some kind of weird bug. I use Bolt for most of my logic, then making a quick test used the Rewired Bolt input to call the UseCurrentSelection in the Selector script, and the conversation did start. So not really sure what is happening there. Even left all the input fields blank on the Selector. But then it is OK since i can use bolt to go around that issue.

    Regarding the UI navigation, things are working as you said. But my only problem is that the dialogue does not come selected, tried with all the templates, in the Demo the radial UI appears selected, and then using the arrow keys i can navigate the responses. Is there anywhere to tell the conversations to start with the first response selected?

    And one last thing that I also tripled checked, but I am pretty sure I have the portraits not showing the correct one, I am not using the markup tags yet, just a single portrait for each character. Tested in all templates also, but when the Player speaks, it always shows the NPC portrait and Name, I use the Show PC subtitles and not using the Skip PC subtitles. The Speaker and Listener are also correct in the conversation tab

    Thank you for your time and patience!
     
    Last edited: May 24, 2021
  19. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    On the Dialogue Manager GameObject, tick the Input Device Manager's Always Auto Focus checkbox.

    Make sure the correct GameObjects are being used for the Dialogue System Trigger's Conversation Actor and Conversation Conversant. For example, if in the Dialogue Editor you've set the conversation's Actor to Player and Conversant to NPC, then make sure the Dialogue System Trigger's Conversation Actor points to the Player GameObject. More details and explanation: Character GameObject Assignments

    To confirm, temporarily set the Dialogue Manager's Other Settings > Debug Level to Info. Then play and start the conversation. The Console window should have a line similar to:

    Dialogue System: Starting conversation 'Title' with actor=XXX and conversant=YYY

    where XXX is your player GameObject.
     
    homemacai likes this.
  20. homemacai

    homemacai

    Joined:
    Jul 22, 2020
    Posts:
    74
    Thanks for the help!
     
    TonyLi likes this.
  21. Stickeyd

    Stickeyd

    Joined:
    Mar 26, 2017
    Posts:
    174
    Hey. So I have situations where there are 3 characters on the screen like here(who are exchanging words to each other)

    But there are some situations when one of these three just stops talking for long time and goes away. So what I want to do in that kind of scenario is to make them slide to the side and disappear(like they are going away, to the left in this screenshot) and then another character slide to his space in case if they were further from the main character than disappeared one(so that there is no hole between characters). I tried to approach it with editing OnHide animation, but when I try to edit this animation in editor in the playmode, the dialogue suddenly disappears for some reason. How to do it properly? And is there any other more simple way to achieve it?
     
  22. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi @Stickeyd - Jump to the 0:58 second mark for an example of how Gestalt: Steam & Cinder handles a similar feature:



    It uses a short subclass of StandardUISubtitlePanel that overrides the SetContent(subtitle) method. If the new subtitle's speaker is different from who was last displayed in the panel, it uses a tweening library to slide the old portrait offscreen, set it to the new speaker's portrait, and tween it back onscreen.

    You may find it easier to do something similar rather than overriding the animation. You could also add a method to only slide the portrait offscreen without sliding a new portrait back onscreen. Then you could write a very short custom sequencer command to call that method.
     
  23. SOSolacex

    SOSolacex

    Joined:
    Jan 10, 2018
    Posts:
    121
    Hey Tony,

    I believe I correctly tied the UIS system to the Dialogue system saving method..
    However, I am getting this error.

    I understand that there's a typo somewhere(I think), but I am not sure where to look?
    Also I am assuming that it has to do with this error, but in case it isn't, the player also isn't able to do anything upon loading. (can't move camera etc)

    Do you happen to know what the issue is? Unfortunately I am not sure how to go about fixing this.
     
    Last edited: May 26, 2021
  24. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi @SOSolacex - Make sure your saver components have unique Key values.
     
  25. SickaGames1

    SickaGames1

    Joined:
    Jan 15, 2018
    Posts:
    1,270
    @TonyLi Thank you for all of your help thus far and making Dialogue System the backbone of my game. Below is my 1st game trailer:

     
    TonyLi likes this.
  26. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
  27. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi @JoshWB - Are you using 2D objects? If so, please enable 2D support. (In the Welcome Window, tick USE_PHYSICS2D.) Then set the Selector's Run Raycasts dropdown to 2D and make sure your camera is set to Orthographic.

    If you switch the Selector's Select At back to Mouse Position, do you see a yellow use message like in step 15 when you mouse over the object with the Usable component? If not, does the Usable component have a collider on the Default layer?
     
  28. Stickeyd

    Stickeyd

    Joined:
    Mar 26, 2017
    Posts:
    174
    How do I make one of the panels be visible(or appear) just at the start of the dialogue? (So that my character appears right on the start). I don't want to change its visibility to always visible though because it's only in this dialogue
     
  29. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    If you don't want it to always behave that way, you can either write some code to open it -- or use a simpler trick: Make an empty first node whose Dialogue Text is a single space character and Sequence is: Delay(0.01)
     
  30. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
  31. Stickeyd

    Stickeyd

    Joined:
    Mar 26, 2017
    Posts:
    174
    is there a way to export a conversation from one database and import to another?
     
  32. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi @Stickeyd - You can select all the nodes in the conversation, right-click and select Copy, and then create a new conversation in the other database, right-click and select Paste. (Since your new conversation will already have a <START> node, omit the <START> node when copying to the clipboard. After pasting, hook up the new conversation's <START> node to the beginning of the conversation.
     
  33. Stickeyd

    Stickeyd

    Joined:
    Mar 26, 2017
    Posts:
    174
    So I did this, but for some reason now I have weird artifacts(Text overlapping other text) and only in this dialogue.

    I tried to not copy the nodes but just copy the text directly from another database nodes to my database nodes one by one and the result is the same. What's going on?

    If I copy the text to some other place like a web browser, then copy it back, it works fine. Seems that formatting of this text is broken somehow... I didn't know that Unity takes it into account.
     
    Last edited: May 29, 2021
  34. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi @Stickeyd - I haven't seen that before. Is it perhaps adding a line feed (LF) character instead of a carriage return (CR)? Or the opposite (CR instead of LF)? Perhaps the LF is moving to the first column but not moving a row down.
     
  35. Stickeyd

    Stickeyd

    Joined:
    Mar 26, 2017
    Posts:
    174
    I'm not sure what it was, I ended up copying each of text nodes to web browser address line, then copying it back and it worked fine. Weirdly enough I also copied all the nodes from another bigger conversation and in that one worked very good. Have it solved now. Still super weird because I didn't know Unity considers such invisible formatting things
     
  36. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Strange! I'm glad you got it working.
     
  37. yangkairong

    yangkairong

    Joined:
    Aug 20, 2015
    Posts:
    16
    Recently, the database has become bigger and bigger, and more and more people have participated in it. So I want everyone to work together, and each person is responsible for a database, which is divided according to the chapters of the game, that is, each chapter is a database. Then I want to synchronize the database content that everyone is responsible for to a main database, which is convenient for me to use as an editor tool. However, I find that the conversation no synchronization function.
     
  38. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi @yangkairong - You don't need to copy each writer's database into a main database. Use the Unique ID Tool and Extras Databases component to use multiple databases at runtime. More info: Working With Multiple Databases.

    upload_2021-5-31_22-24-9.png

    upload_2021-5-31_22-25-43.png

    You can sync from the main database to the other databases if you want:

    upload_2021-5-31_22-26-38.png
     
  39. yangkairong

    yangkairong

    Joined:
    Aug 20, 2015
    Posts:
    16
    Well, your method is also very good. Thank you very much. But I want everyone to work together, and finally merge into a database, because I don't care whether my database is more than 15MB, I only care whether we can divide the work, and then merge the work results together. This is another case. I only need one database, but I need to work with many people at the same time.
     
  40. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi @yangkairong - In that case, you can use the Dialogue Editor's Merge Database feature:

    upload_2021-6-1_8-25-46.png

    If you want to write your own editor script to automate the process, you can use DatabaseMerger.Merge(). (Back up your database first, in case there's a bug in your editor script.)
     
  41. Stickeyd

    Stickeyd

    Joined:
    Mar 26, 2017
    Posts:
    174
    Hey, I want my Bark to appear for a longer time before it fades, but for some time if I just change "Duration" property it doesn't change anything. Why could it be?
     
  42. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    It should wait for Duration, with these exceptions:
    • If Duration is zero, it will use the Dialogue Manager's Bark Settings > Bark Chars Per Second and the text length. If Bark Chars Per Second is zero, it will use Subtitle Settings > Subtitle Chars Per Second.
    • If you've ticked Wait Until Sequence Ends, it will fade when the bark's Sequence ends.
    • If you've ticked Wait For Continue Button, it will wait until the bark UI receives an OnContinue() call.
    • If something manually calls the bark UI's Hide() method.
    • If the barker has a BarkGroupMember component and another character starts barking.
    If none of those apply, is it possible that you've changed the wrong bark UI (e.g., different character, or changed the prefab but the scene instance has overridden the value)?

    Or maybe your bark UI's Animator always fades out the bark after a certain duration, even if the bark UI hasn't told it to hide yet?
     
  43. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Dialogue System 2.2.17 Released

    Version 2.2.17 is now available on the Asset Store!

    This update has a lot of improvements and bug fixes. Some highlights:
    • JSON import/export
    • JLC import/export: A convenient text-based format for writing dialogue, including an auto-formatting script for Google Docs, designed by Jenny LeClue developer Mografi
    • Node groups: You can now organize subgroups of nodes into different-colored boxes:

    Release Notes:
    Core:
    • Changed: Standard Dialogue UI > Use First Response For Menu Portrait checkbox prioritizes using first response actor's actor-specific menu panel if set.
    • Changed: GameObjectUtility.GameObjectHardFind and GameObjectUtility.FindObjectsOfTypeAlsoInactive search all open scenes by default, not just active scene.
    • Added: Node groups in editor. (Click-drag area, then hold Ctrl while releasing mouse button.)
    • Added: JSON export/import.
    • Added: JLC export/import.
    • Improved: Added Dialogue Editor window & Sequence field hooks to add custom menu items, node drawing to node editor, and drag-n-drop. (See Customizing the Editor in manual's Scripting section.)
    • Improved: If current usable becomes disabled, Proximity Selector automatically shows use message for next usable in range.
    • Improved: To circumvent execution order bug in some Unity versions, OnStart/OnEnable triggers that run on frame 1 of program execution will not wait for end of frame.
    • Improved: Added OnSaveDataApplied trigger type to Dialogue System Trigger.
    • Improved: Dialogue System Trigger > Start Conversation action now has Replace checkbox.
    • Improved: Optimized Dialogue System Trigger > Skip If No Valid Entries; check no longer executes Script on START node.
    • Improved: Each conversation's sequencer now has access to its ActiveConversationRecord.
    • Improved: Added option to set sequencer's original camera position.
    • Improved: Timeline Start/ContinueConversation 'Update Duration' button estimates duration based on typewriter effect if sequence doesn't play audio/lipsync.
    • Improved: Timeline Bark clip now has option to specify entry ID.
    • Improved: StandardUIResponseButton OnClick also calls SetCurrentResponse to work with buttons that only receive PointerClick and not Select events.
    • Improved: TextMeshProTypewriterEffect.HandleAutoScroll is now virtual and optimized for performance.
    • Improved: UIScrollbarEnabler methods are now virtual.
    • Improved: InputDeviceManager New Input System integration handles translation of KeyCode.Alpha# and KeyCode.Keypad#.
    • Improved: UIScrollbarEnabler will now update scroll rect even if no scrollbar is assigned.
    • Fixed: If two inspector windows were open and showing Dialogue Editor nodes and one closed, the other would not automatically refresh when selecting nodes.
    • Fixed: Dialogue entries' Conversant fields may once again be set to (None). Previously a valid Actor & Conversant were both required.
    • Fixed: Custom field types were being shown as text fields in Dialogue Editor main section.
    • Fixed: Selector issue where disabling with Selector Use UI Elements would cause it to draw legacy use message.
    • Fixed: Dialogue System Trigger's Lua Conditions wizard didn't show variable name entry field when adding new variable through wizard.
    • Fixed: When playing simultaneous conversations, starting a new conversation could incorrectly clear subtitle text of another conversation.
    • Fixed: Timing issue where if conversation skipped ahead while playing Delay(#)->Message sequencer command, the next entry's sequence could receive the message.
    • Fixed: Imposed more consistent behavior when overriding display settings and using actor-specific UI panels.
    • Fixed: Scrolling Dialogue UI's response menu now auto-scrolls to bottom.
    • Fixed: SMS Dialogue UI now uses wrapper script for compatibility between Asset Store version and evaluation version.
    • Fixed: Slicing of text bubble sprite.
    • Fixed: UIButtonKeyTrigger didn't reset pressed state.
    • Fixed: UILocalizationManager didn't apply localization to inactive GameObjects when option to apply to inactive was ticked.
    • Fixed: TextMeshProTypewriterEffect with auto scroll when subtitle skips ahead without starting typing in an accumulate text panel now sizes properly.
    • Fixed: SelectorUseStandardUIElements layer-based overrides now use default UI if UI Elements is unassigned.
    • Fixed: Removed obsolete warning in Unity 2021 'StandaloneInputModule.forceModuleActive' is obsolete.
    • Fixed: NLua default behavior changed to automatically convert forward slashes to underscores in table indices to match built-in Lua behavior.
    • Fixed: Timeline Continue clip Update Duration button now properly accounts for Clear Text operations.
    Third Party Support:
    • articy:draft: Localization import will now report dialogue fragments with duplicate Technical Names and continue import instead of stopping.
    • Corgi: Added Face() sequencer command.
    • Emerald AI: Updated for version 2.4.1.
    • i2 Localization: Added options to assign i2 source, update primary field from a specified language, send translations to I2.
    • Ink: Integration improvements; ProcessTags method is now virtual.
    • Twine: Added option to use JSON node positions.
    • Opsive Ultimate Inventory System: Updated for 1.1.7. Added OpenCrafting() sequencer command.
     
    DMRhodes likes this.
  44. DMRhodes

    DMRhodes

    Joined:
    May 21, 2015
    Posts:
    81
    Thank you for the cool update! I've just updated my project using the new node groups, it makes it so much more readable haha

    If I can make some qol suggestions? It would be really cool to be able to set a color for the group boxes to help organize further. It would also be great if renaming a group could be done by double clicking the name, or if it would let you input a name straight away when it's made like with a new gameobject! =)
     
  45. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi @Candy-Bomber - If you click on the heading, you can change its name and color:

    upload_2021-6-10_7-29-1.png

    I'll be adding more QoL improvements to groups in the next update, too.
     
    DMRhodes likes this.
  46. DMRhodes

    DMRhodes

    Joined:
    May 21, 2015
    Posts:
    81
    Aaah, I completely missed that with the color haha. Thank you! =)
     
    TonyLi likes this.
  47. Irishall

    Irishall

    Joined:
    Dec 9, 2016
    Posts:
    16
    Hello

    I've already written a lot of scenarios in Excel and I'm looking for a good way to import them into the Dialog System.
    Only Actors and Text exist in the scenario created, and no branches exist. These are just bundles of text in a row.
    Is there a way to simply import each line of text into a node in the Dialogue System?


    afa.jpg

    sfaf.jpg
     
  48. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    How are you distinguishing different conversations? Different files? Different worksheets in the same file?

    Do you need to import them into an existing dialogue database or create a new dialogue database?
     
  49. Irishall

    Irishall

    Joined:
    Dec 9, 2016
    Posts:
    16
    There are different worksheets in the same file. Also, it would be great if I could import it into the existing dialogue database.
     
  50. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    The Dialogue System Extras page now has an Excel importer that will import Excel files in the format you showed above. It's the first download link underneath EXTRAS. After importing the package, read the file Excel_Conversation_Importer.txt