{"id":14960577,"url":"https://github.com/novadawn-studios/markdialogue","last_synced_at":"2025-10-28T00:35:21.350Z","repository":{"id":179722730,"uuid":"663936747","full_name":"NovaDawn-Studios/MarkDialogue","owner":"NovaDawn-Studios","description":"A MarkDown-to-dialogue parser for Unity. Write complex narritives in a common, easy to read format using your favourite tools and play them out in-engine!","archived":false,"fork":false,"pushed_at":"2023-08-10T19:51:31.000Z","size":95,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T02:51:16.118Z","etag":null,"topics":["dialogue-system","game-development","markdown","unity","unity-editor","unity-plugin"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NovaDawn-Studios.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-08T13:36:20.000Z","updated_at":"2024-07-12T23:57:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"0ca52b81-44f9-4920-b113-ad9543cdf901","html_url":"https://github.com/NovaDawn-Studios/MarkDialogue","commit_stats":{"total_commits":10,"total_committers":2,"mean_commits":5.0,"dds":0.09999999999999998,"last_synced_commit":"5a075f20a24bfb87ad9b3a23622e1d2a679ae836"},"previous_names":["novadawn-studios/markdialogue"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NovaDawn-Studios/MarkDialogue","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NovaDawn-Studios%2FMarkDialogue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NovaDawn-Studios%2FMarkDialogue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NovaDawn-Studios%2FMarkDialogue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NovaDawn-Studios%2FMarkDialogue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NovaDawn-Studios","download_url":"https://codeload.github.com/NovaDawn-Studios/MarkDialogue/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NovaDawn-Studios%2FMarkDialogue/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281366887,"owners_count":26488695,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-27T02:00:05.855Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dialogue-system","game-development","markdown","unity","unity-editor","unity-plugin"],"created_at":"2024-09-24T13:22:33.264Z","updated_at":"2025-10-28T00:35:21.333Z","avatar_url":"https://github.com/NovaDawn-Studios.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eMarkDialogue\u003c/h1\u003e\n\u003cp align=\"center\"\u003eMarkDown to Dialogue system for Unity\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n \u003ca href=\"https://github.com/NovaDawn-Studios/MarkDialogue/stargazers\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/stars/NovaDawn-Studios/MarkDialogue?color=FFD700\" alt=\"GitHub Repo Stars\" /\u003e\n \u003c/a\u003e\n \u003ca href=\"https://github.com/NovaDawn-Studios/MarkDialogue/graphs/contributors\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/contributors-anon/NovaDawn-Studios/MarkDialogue?color=009a00\" alt=\"GitHub Contributors\" /\u003e\n \u003c/a\u003e\n \u003ca href=\"https://github.com/NovaDawn-Studios/MarkDialogue/commits/main\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/last-commit/NovaDawn-Studios/MarkDialogue\" alt=\"Latest Commit\" /\u003e\n \u003c/a\u003e\n\u003c/p\u003e\n\n----\n\n**_Note: This product isn't ready or usable yet, but the documentation below corresponds with the overall plans of the project. Once it's in a workable state, this message will disappear._**\n\n----\n\nA [MarkDown](https://daringfireball.net/projects/markdown/)-to-dialogue parser for Unity. Write complex narritives in a common, easy to read format using your favourite tools and play them out in-engine!\n\nThis tool was designed for use in games developed by NovaDawn Studios, such as [Exim](https://exim.novadawnstudios.co.uk/). One of the considerations is that it's to be used in parallel with [Obsidian.md](https://obsidian.md/) combined with a Git plugin (Although feel free to use your own Markdown tool of choice). This way, any writer on the project can access a reasonable script writing format and not have to worry too hard about the intricacies of code, alongside utilizing fantastic Obsidian features such as the graph view and canvases and whatever plugins they desire to easily visualize branching narratives and aid in the script writing process. \n\nAs the writers check in their changes, the Unity project can then pull in these changes as they're made, reimport the files using MarkDialogue and they're good to test from the get go. No need to fiddle about with in-Unity tools, node graphs or what have you, just simple text!\n\nMarkDialogue was deveoped in Unity 2022.3 LTS and Unity 2023.1, but the underlying code doesn't rely too much on Unity APIs and it should be trivially compatible with older versions.\n\n## MarkDialogue Syntax\n\n**_[Explanations and details of the full syntax can be seen here](Documentation~/syntax.md)_**\n\n\nMarkDialogue uses the Obsidian.md subset of MarkDown which is almost entirely compatible to MarkDown itself, with an extra subset of context to specifically handle dialogue and logic. Be sure to name your files so that they end in .dlg.md (In Obsidian, make sure any dialogue note names end in `.dlg`, such as `Buy an Apple.dlg` and it'll work) for your file to be picked up by MarkDialogue. \n\nBelow is an example of a script featuring the core parts of MarkDialogue's syntax.\n\n_Note: More examples are available in the [Samples](https://github.com/NovaDawn-Studios/MarkDialogue/tree/main/Samples~) folder_\n\n```md\n\u003e John walks up to Pete\n\nJOHN\nHow are you today?\n\nPETE\nGood, thanks! How about you?\n\n#if globalFlagSet(\"JohnWasShot\") \n  %% Developer Note: globalFlagSet is a potential method implemented by the game, not MarkDialogue. %%\n\n  JOHN (Pained)\n  I'm doing alright, my knee is healing, although walking is still a pain.\n#else\n  JOHN\n  Doin' fine, glad I dodged that shot!\n#endif\n\nPETE (Happy)\nGlad to hear. Hey, have you heard about Don Lenzo?\n\n\u003e At that moment, the Don walks in\n\nCRIMEBOSS\nYou ain't talkin' 'bout me, are ya lads?\n\nPETE (Worried)\nOh, no sir!\nWell...\n\n#if visited(Talked about stolen money)\n  CRIMEBOSS (Dangerous)\n  So you know about the cash, eh?\n#else\n  CRIMEBOSS\n  You have nothing on me, kid. Shut ya trap!\n#endif\n```\n\nThe empty lines between character dialogue are purely preference. You could just as easily do\n\n```md\nJOHN\nHow are you today?\nPETE\nGood, thanks! How about you?\n```\n\nor even\n\n```md\nJOHN\n\nHow are you today?\n\nPETE\n\nGood, thanks! How about you?\n```\n\nif that suits your style.\n\n## Installing MarkDialogue\n\nTo install MarkDialogue in your project, you will need to use the Unity Package Manager. At some point in the future, a dedicated Unity Store package may be available for a small fee to simplify the process (And help fund us in the process).\n\nTo open the Unity Package Manager, in Unity, first go to Window -\u003e Package Manager, then click the small + icon at the top left of the window that pops up and click 'Install package from git URL...'. In the window that pops up, paste in https://github.com/NovaDawn-Studios/MarkDialogue.git and you should be good to go.\n\n## Using MarkDialogue\n\nWhen installed, MarkDialogue will parse all MarkDown files that end in `.dlg.md` and convert them into the appropiate dialogue assets. This is a restriction due to Unity already having an importer for `.md` files that can't be overridden. In Obsidian, make sure to name all your notes with `.dlg` (For example, `Buy an Apple.dlg`) and they'll be picked up by MarkDialogue.\n\nNext, you want to apply a MarkDown Player component onto an entity in your scene, add the relevant Script Collection and set the `Script To Run` if required, and finally hook up the associated events. Either that, or inherit from `BaseMarkdownPlayer` and implement your own handling. Then either mark `Auto Start`, or trigger it yourself from your own code, and you'll be good to go!\n\n**_TODO: Provide more details._**\n\n## Contributing\n\nAre we missing a feature? Find a bug? Just want to contribute? Go ahead! Raise issues, create PRs, spread the word. If your code gets added and is used in a NovaDawn Studios game, you'll even appear in the credits (Unless you don't want to be, of course)!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovadawn-studios%2Fmarkdialogue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnovadawn-studios%2Fmarkdialogue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovadawn-studios%2Fmarkdialogue/lists"}