A Complete Conversation Asset which provides high flexibility and a wide variety of features which include Text Effects, Runtime Text Replacement, Localization, Sound Effects, Voicelines, and more!This package requires TextMeshPro and is compatible with most elements of TextMeshPro.This Asset includes many features that can be used for many different purposes, you can use this asset in RPGs, Visual Novels or even games that only feature voicelines by ignoring the text or creating your custom node.The code is intended to be easy to expand, use the actions called by the conversation runner script to control specific sections of the display process.The rich text system can also be easily expanded on by creating custom functions and adding them into the effects dictionary found inside the conversation runner script.The node system created for the graphic interface can also be expanded very easily by adding custom node classes which inherit from the basic ones, and then adding the respective logic in the Conversation Runner Script.The main features included in this asset are:Node-Based Graphical Interface for creating conversations with player choices, events, custom lines, sound effects and more! You can even create custom nodes and behaviors easily by creating new nodes inheriting the Base Node classes.The Conversation Runner Script, which manages most of the runtime logic used by the asset and also has access to the text effects that can be added to your dialogues by using a very simple Rich Text syntax. This script supports advancing to the next line, finishing a line earlier, auto-advancing the lines after it finished typing or after the audio finishes, player choices either spawned by necessity or customly set and more!The Character Reveal Animation gives you many different options included with the package to add a special animation to each character when it gets added to the line, this can give a polished look to any simple interface. You can manually add custom reveal animations by adding the options, functions and logic inside the Conversation Runner Script.Rich Text Implementation, a very simple to use system to add text effects, change text size, change text color and more to dynamically alter the look of your dialogues and by using the syntax as follows: Your Text>. You can add custom effects by adding the functions and logic into the Conversation Runner Script's Effect Dictionary. This system is compatible with the default TextMeshPro Rich Text implementation.Runtime Text Replacement System, allows you to set custom tags to be replaced with text at runtime, for example replacing [PlayerName] with a value entered by the player at the start of the game. This system allows you to use Persistent and Non-Persistent data as replacements for various needs.The Localization System provides a simple way of handling multiple variations for each conversation asset which corresponds to a specific language. With the preferences file you can change the selected language in runtime, and running a conversation automatically selects the correct language variation when it is available. The localization system provides functions called SetLanguage and LoadLanguage, which make use of PlayerPrefs to automatically save the selected value.The Speaker Profile, is a scriptable object which stores information about the "character" that talks in a conversation, including typing speed, typing sound effect, character name, Font and Font size.The Event System included with the asset counts with 4 variations of scriptable objects for event channels, event nodes and event listeners. The system works by creating an event channel asset and then adding an event listener script into your scene, where you can assign an event channel and a set of functions to be executed when the channel gets invoked. The channels can be invoked by adding event nodes into your conversations, and as easy as that you can have custom functions running during your conversations. This system can be used for more than just conversations.The Sound Effect System included with the asset is a simple scriptable object which stores an array of audio clips and 2 ranges to add variability to the pitch and volume of your sound. The inspector view includes a preview button to test the sound. This system can be used for more than just conversations.The Preferences File included in the package has some options used on runtime or in the editor to enhance the user experience.These options are:Special Characters: refers to setting up a different wait time after certain characters, such as adding a pause after a ".". This can make your dialogues feel more polished and easier to understand.Color Presets: a way to set up custom colors to use with the color effect tag. It allows you to use custom names to represent colors instead of using RGBA values.Languages: a list of custom languages to use for each conversation asset, you can also manually set the desired default language.The Import & Export System provides an simple way of editing dialogues by exporting them to a CSV file and then importing it back into your proyect. This system provides a way of storing node data as text and formats it into a file that can be opened in external spreadsheet software. It even provides an attribute you can set to your custom nodes to be saved and processed when exporting.