Arrow

The Narrative Design Tool

Arrow is the free, open-source and feature-rich tool for game narrative design, text-adventure development, and creation of interactive nonlinear storytelling documents in general.

Use Arrow v3.x Online
For older generations of Arrow, try v1.x, v2.x.
Experience best on desktop (~ medium-large screens).

screenshot of an Arrow project in default dark mode screenshot of an Arrow project in light theme

Features

Arrow supports a wide variety of features, from scenes and macros, to variables and characters. It also comes with a rich palette of built-in node types, providing logic, interactive navigation, random data generation, state management, and more.

Free as in Freedom

Arrow is and will remain free, no strings attached. Absolute ownership of the works you create with Arrow belongs to you.
The source is distributed under MIT license. In brief, it means you can freely download, use and modify Arrow. The project itself is developed using Godot Engine and few other open resources. For more information on them, take a look at copyright info.

100% Visual Development

Arrow is designed with authors and artists in mind.
It takes a graph (node-and-link), or no-coding development approach. Nodes, the most common resources constructing narrative/game-play and logic, are mainly organized on a grid and connected using graph links, to form series that define in what order these building blocks will be played.

Advanced Node System

The editor comes with a handy and complete set of built-in node types, allowing users to quickly design their narrative. The set is open-source and you can modify or extend it.
Arrow project's Wiki includes a dedicated page for each of these built-in nodes.

VCS-Friendly Save Files

Arrow uses JSON (text) format for its saved documents. The format is widely supported by game engines, web, and programming languages. Resources in Arrow projects are managed under unique identifiers and sorted by creation time, forming easily manageable blocks (hunks) of data as well. This structure makes project revision using VCS tools such as Git much easier.

One-Click Playable Export

We can play our games directly in the Arrow editor's Console, to test and debug them. Porting that small part of the source to any programming language, we can create an interpreter and take advantage of Arrow's exports as assets for our games. Following this idea, Arrow utilizes its own bundled Official HTML+JS Runtime to produce playable documents for modern browsers, right from the editor. This means you can export your game as a text adventure with approximately one click!

Support for Distributed Workflows

We can use Arrow's project organization features, to divide a large project to multiple Chapters (files) and have a workspace in which multiple Authors can work on the same document, and even on the same scene with no conflict.

Continuum Safety

Arrow tracks many visible and invisible relations between resources. Under the hood, it knows how resources depend on one another, and performs many checks to eliminate mistakes such as accidentally removing a variable used by different conditional nodes. These tracked relations are also used to automate tasks, such as renaming a resource that is exposed in tens of text nodes.

And ...

More features including:

  • CSV (I18n) Export
  • RTL, CJK and CTL support
  • In-editor Test & Debug Facilities
  • Eye-Friendly Dark (& Light) Themes
  • Available for All Major Desktop Platforms
  • etc.