Arrow supports a rich palette of features, from scenes and macros, to variables and characters. It also comes with built-in common node types, providing logic, interactive navigation, random data generation, state management, and more.
Here are few notable features:
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.
Extensible Node System
The editor comes with a handy and complete set of built-in node types,
allowing users to quickly design their narrative.
This set is open-source and you can modify or extend it.
Arrow project's Wiki include a dedicated page for each of these built-in nodes.
VCS-Friendly Save Files & JSON Export
JSON format for its saved projects.
The format is textual and widely supported by game engines and programming languages.
Resource in Arrow projects are managed under unique identifiers and sorted by creation time,
forming easily manageable blocks (hunks) of data.
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 browser-based
to export playable
HTML+JS documents from the editor. This means
you can export your game as a text adventure with one click (approximately)!
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.
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 textual nodes.