Elm Story 0.5 — Early Access Launch

After one year of design and development, 8 Alpha releases and over 400 bug fixes, enhancements and added features, I'm beyond excited to announce that Elm Story is ready for Early Access!

Upcoming Livestreams — learn Elm Story

Elm Story is packed with features and nuance. Getting started can be a little overwhelming.

On Friday, November 5th, I will begin hosting weekly educational livestreams on Twitch. This will be a great way to ask questions and explore everything Elm Story has to offer.

RSVP here.

Now, let's cover what's new in Early Access release 0.5!

Game Compilation

During Alpha, you could only export your games as portable, JSON data.

Unless you were backing up or transporting your game data for use with 3rd party tools, Elm Story wasn't capable of making your games playable outside of the Editor's Game View.

Made possible with the new Elm Story Runtime Engine (ESRE), this release enables end-to-end, visual development and compilation of interactive stories. You can now export your games as installable, offline-ready apps (PWA) for play in a web browser.

Currently in development, Amber Shores is a game exported from Elm Story.


ESRE is designed using an event-based, time series architecture ready to support custom bookmarking, rewind and fast forward and (most excitingly) shared, global game state between separate games, moments and more. I'm planning several devlogs on how ESRE serves as an intelligent DM, with long memory capabilities.

Until then, read more about quality-based narrative design (QBN) via Emily Short's Interactive Storytelling blog.

As of 0.5, ESRE supports an auto-bookmark feature that saves and loads the player's most recent game event, persisting game state between sessions. To improve on-going player experience, ESRE also remembers prior events to be progressively leveraged as Elm Story matures.

Export PWA

To export a game, click the Export button in the Game Outline titlebar.

Once the file explorer opens, select a folder and proceed. Elm Story will compile your game to a nested folder, ready for publication to your personal web server or 3rd party host. You may also decide to wrap your game in a native container ready for desktop and mobile app stores.


Before exporting your game as a PWA, add optional information through the new Game Properties > Metadata sub-panel. Supported metadata includes game designer, version, description, copyright and website.

This information is used to personalize your game's Title Screen and Settings views.

ESRE comes with two themes: Console and Book. The player can change theme under Settings, persisted between sessions.

In a future release, Elm Story will support visual theme and icon customization in the Editor.


Currently, ESRE does not support game patches. Planned for early November, 0.5.1 will address this complex issue.

Game View

The Editor's Game View is completely redesigned to feature an embedded version of ESRE. Supporting hot reload, changes you make to your game are reflected in realtime.


Joining expression highlighting and blocked choice display, Xray provides realtime insights into runtime game state. This new tool replaces the State panel.

Passthrough and Loopback

Prior to 0.5, designers were required to add at least one choice to choice passages for the player to move forward. If you simply want the narrative to continue, this results in unnecessary work and maintenance. Additionally, if you did not connect a passage to a destination passage or jump, the old engine would automatically end the game once the player arrived.

Passthrough allows choice passages to be absent of choices. In this case, the designer can simply connect the passage directly to a destination passage or jump. Instead of choices, ESRE will present a 'Continue' button to the player.

In another case, a designer may require a player to descend a branch of passages to a leaf (any passage with no open routes) that simply needs to guide the player back to the origin of the branch. This could be solved by connecting the leaf passage (input or choice) to a destination jump.

ESRE removes this unnecessary step by returning the player to the origin branch, otherwise known as Loopback. When this scenario is encountered, ESRE will display a 'Return' button to the player.

In the contrived example that follows, Sub branch 1 end and Sub branch 2 passages will return the player to the Root branch.

Depending on current game state and open route availability, it is possible to override Loopback behavior by connecting leaf passages to destination jumps.

Game Over

Passthrough and Loopback save a lot of time, but these solutions also prevent ESRE from knowing when a game should end. In 0.5, choice passages support a game end flag toggled in the Scene Properties > Selected Passage sub-panel.

Note that game ending passages must be of type 'choice'. If you try to connect a game ending passage to a destination passage or jump, Elm Story will automatically unflag the passage as game ending.

The game end toggle is disabled if the selected passage is of type 'input' or the selected choice passage is connected to a destination passage or jump.

0.5.0 (Early Access) Release Notes


  • Game Compilation
    • Export games as PWAs
  • Game View
    • Embedded Elm Story Runtime Engine (ESRE) with support for hot-reloading
    • Live game state feedback with Xray
  •  Scene View / ESRE
    • Support for Passthrough, Loopback and Game Over
    • Unique presentation of Game Over passages
  • Component Properties
    • UI for providing optional game metadata to personalize exported game PWA

Enhancements, fixes and etc.

  • General
    • Default window dimensions changed to 1366x728
    • Import/export: Support 0.5.0 schema and upgrades from older versions
  • Dashboard
    • Remove button no longer displays in the New Studio modal
  • Editor
    • Improvements to tab drop zone feedback for customizing layout
    • Improved active tab presentation
    • Game Outline
      • Component rename should no longer overflow
    • Game View
      • Game no longer restarts when opening a closed scene
      • Adding an empty line at the top of a passage no longer results in missing content error
    • Scene View
      • Change choice titles inline by double-clicking choice in passage
      • Presentation fix applied to input passage header
      • Choice title no longer overflows
  • ESRE
    • Input whitespace is trimmed and case is ignored when testing route conditions


This is an early access release and there are bugs. Please report issues you encounter to our subreddit, r/ElmStoryGames.

Roadmap Update

Elm Story 0.6 will introduce the Character component and initial multimedia support. Early December is the current target.

Next year, I will focus on performance and productivity improvements, scoped variables, web and mobile versions of Elm Story and much, much more.

2022 will also see the launch of Elm Story Cloud (ESC), a service for providing configurable, no-code publication, hosting and community.

Support Elm Story

To help this project continue to thrive with full-time, active feature development and updates, consider a donation via Itch.io.

Become a monthly patron to access preview releases and dev chat and earn support badges.

Thank you for your continued support! :)


Elm Story (Early Access) — Mac 81 MB
Version 0.5.0 Oct 27, 2021
Elm Story (Early Access) — Linux 81 MB
Version 0.5.0 Oct 27, 2021
Elm Story (Early Access) — Windows 60 MB
Version 0.5.0 Oct 27, 2021

Get Elm Story

Leave a comment

Log in with itch.io to leave a comment.