{"id":"arakodev/mrdialogue","name":"mrdialogue","scope":"arakodev","platform":"roblox","description":"A dialogue package for Roblox.","version":"1.0.0","latest":"1.0.0","versions":["0.1.0","0.1.1","0.1.2","1.0.0"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{},"integrity":"f1c45ff12d5f92a27c8ce68c11ee2e6761468d5559ae9bdae0f92875a15e570a","likes":0,"downloads":0,"install":"forest install arakodev/mrdialogue","url":"https://forest.dev/p/roblox/arakodev/mrdialogue","files":"https://api.forest.dev/ai/package/roblox/arakodev/mrdialogue/files","readme":"<div align=\"center\">\n\n<img width=\"124\" height=\"124\" src=\"./assets/logo.png\" alt=\"MrDialogue Logo\">\n\n<h1>MrDialogue</h1>\n\n<p>A dialogue package for Roblox.</p>\n\n<p>\n  <a href=\"https://wally.run/package/arakodev/mrdialogue\"><img src=\"./assets/wally.svg\" alt=\"Wally\" height=\"24\"></a>\n</p>\n\n<p>\n  <a href=\"./LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-blue?style=flat-square\" alt=\"License: MIT\"></a>\n  <img src=\"https://img.shields.io/badge/version-0.1.0-blue?style=flat-square\" alt=\"Package version\">\n</p>\n\n</div>\n\n## Introduction\n\nMrDialogue lets Roblox experiences define conversations as data and run them for individual players from the server. Use the included dialogue UI or connect the runtime to your own interface.\n\n## Features\n\n- **Graph-Based:** Build branching conversations from line, choice, branch, action, and end nodes.\n- **Server-Authoritative:** Conditions, actions, choices, and dialogue state are evaluated and controlled by the server.\n- **Customizable:** Use the included UI or supply a custom client adapter.\n- **Typed and Validated:** The package uses strict Luau types and validates dialogue definitions and client adapters.\n\n## Installation\n\n```toml\n[dependencies]\nMrDialogue = \"arakodev/mrdialogue@0.1.0\"\n```\n\nInstall the dependencies in your project:\n\n```sh\nwally install\n```\n\n## Usage Example\n\nCreate the dialogue and start it from a server Script under a `ProximityPrompt`:\n\n```luau\nlocal ReplicatedStorage = game:GetService(\"ReplicatedStorage\")\n\nlocal MrDialogue = require(ReplicatedStorage.Packages.MrDialogue)\n\nlocal dialogue = MrDialogue.new({\n\tformat = 1,\n\tid = \"directions\",\n\tentry = \"greeting\",\n\tnodes = {\n\t\tgreeting = {\n\t\t\ttype = \"line\",\n\t\t\ttext = \"Do you need directions?\",\n\t\t\tnext = \"answer\",\n\t\t},\n\t\tanswer = {\n\t\t\ttype = \"choice\",\n\t\t\toptions = {\n\t\t\t\t{ id = \"yes\", text = \"Yes.\", next = \"directions\" },\n\t\t\t\t{ id = \"no\", text = \"No, thanks.\", next = \"done\" },\n\t\t\t},\n\t\t},\n\t\tdirections = {\n\t\t\ttype = \"line\",\n\t\t\ttext = \"Follow the road north.\",\n\t\t\tnext = \"done\",\n\t\t},\n\t\tdone = {\n\t\t\ttype = \"end\",\n\t\t},\n\t},\n})\n\nscript.Parent.Triggered:Connect(function(player)\n\tdialogue:Start(player)\nend)\n```\n\nInitialize MrDialogue from a LocalScript in `StarterPlayerScripts`:\n\n```luau\nlocal ReplicatedStorage = game:GetService(\"ReplicatedStorage\")\n\nlocal MrDialogue = require(ReplicatedStorage.Packages.MrDialogue)\n\nMrDialogue.Start()\n```\n\n## License\n\nMrDialogue is available under the [MIT License](./LICENSE).\n","readmeBorrowedFrom":{"version":"0.1.1","source":"wally"},"readmeTruncated":false}