Yarn Spinner logo # Kataru 「カタル」 The minimal dialogue system written in Rust. ![rust workflow](https://github.com/katsutoshii/kataru/actions/workflows/rust.yml/badge.svg) Kataru 「カタル」is a system for interactive dialogue based on YAML, parsed in Rust. Kataru is similar to [Twine](http://twinery.org/) and [Yarn Spinner](http://yarnspinner.dev) except with more support for organizing passages and sharing common functionality across multiple characters. ```yml --- # Define what namespace this file is in. namespace: global state: coffee: 0 $passage.completed: 0 # Configure the scene. List your characters, commands, etc. characters: May: June: commands: Wait: duration: 0.3 $character.SetAnimatorTrigger: clip: "" onExit: set: $passage.completed +: 1 --- Start: - May: Welcome to my story! - June: Want a coffee? - choices: Yes: YesCoffee No: NoCoffee YesCoffee: - May: Yeah, thanks! - set: $coffee +: 1 - May.SetAnimatorTrigger: ["drinkcoffee"] - call: End NoCoffee: - May: No thanks. - Wait: { duration: 1 } - June: Want to end this story? - call: End End: - May: The end! ``` ## Features - Simple and lightweight - Organize dialogue, state, characters, and commands into local namespaces - Character-specific commands - Syntax highlighting and Unity integration As well as conditionals, variables, and everything else you expect in a dialogue language. ## Getting Started Read [kataru-lang.github.io/#/installation](https://kataru-lang.github.io/#/installation). Once downloaded, check out the examples in [examples/simple](examples/simple). ## Getting Help For bugs or feature requests, file an issue. For other questions, contact kataru-dev@gmail.com. ## License Kataru is licensed under the [MIT License](LICENSE). Credit is appreciated but not required. --- Made by [Josiah Putman](https://github.com/Katsutoshii) with help from [Angela He](https://github.com/zephyo).