Introduction
Learn what we're about, and get started!
Moontale is currently in an 'alpha' state; expect a lot of bugs! Add your issues and feature requests on GitHub
This documentation represents the intended feature-set of Moontale. Not every feature listed has been implemented at the present time; these instances will be marked with the 'under construction' symbol: 🚧
Moontale is a Twine story format that uses Lua as its scripting language. In addition to writing Lua code directly in your passages, you can convert your entire story to a single Lua file, which can be run by any "host" that supports Lua. You can also test and play your stories right in the browser, or publish them to HTML, just like any other Twine format.
Quick start
From the Twine 2 editor, go to Formats on the sidebar, then Add a New Format and paste in the URL above. Make sure to select Moontale from the format list!
Motivation
It has always been possible, in theory at least, to use the output of Twine (and Twee) in non-browser applications. A number of other projects achieve this to some degree: Cradle, and my own Spool library. However, these solutions are hampered by their reliance on existing browser-focused story formats, which make developing and using these solutions difficult at best.
I created Moontale to help make Twine even more useful in all stages of game development - from prototyping to production.
Who is this for?
Developers of text-driven or narrative-heavy games using Unity, Unreal, LÖVE, or any other engine that supports Lua, who would benefit from the use of Twine as a development tool.
Developers interested in using their creations in unconventional ways, who will benefit from Lua's embeddability and extensibility.
Who is this not for?
Developers intending to take advantage of complex browser-based features: media playback, CSS and so on. For any feature, if it's not in TextMeshPro's Rich Text then Moontale probably won't support it in the browser.
Developers who like the 'mutable' model used by other formats: hiding/showing parts of a passage, changing words from one to another when the user clicks something and so on. See the section on Immutability for more details.
Last updated