canaryThese pages document the canary: an unreleased build. What they describe may not be in the version you have, and may change before it is.The stable build
Try it in your browsercanary Source

Getting started✎

From an empty folder to a script running in Studio.

Verified

Roswaal is not a Studio plugin. It writes .luau files next to your graphs, and Rojo syncs those into Studio like any other source file. That means the generated code is a file you can read, diff and commit.

Open a project

Three ways in, all the same editor: installed on your computer, in a browser on your computer, or in a browser on a tablet or a phone.

Where are you working?
  1. In a terminal, go to your project and set it up once: roswaal init writes a roswaal.json and a .roswaal/ folder, and nothing else.
  2. Run roswaal serve, and open the editor address it prints — http://127.0.0.1:4471. It opens on that project.
sh
cd my-game
roswaal init      # once: roswaal.json and .roswaal/
roswaal serve     # the editor, on 127.0.0.1:4471

.roswaal/ holds your graphs and is source, not cache — commit it. src/ holds what Roswaal generates from them.

Another project

  1. Click the Roswaal mark at the top left. The projects panel lists the ones you have opened before: click one to switch.
  2. For one that is not listed, press Home at the bottom of that panel.
  3. The start page asks for a folder. Type its path, or press Browse… to choose it.
  4. Press Open. For a folder that is not a Roswaal project yet it says Initialise, which writes a roswaal.json and nothing else.

Open the web app. Nothing is installed: it opens on a demo project, kept in this browser, and the Roswaal mark is blue to say so. To work on your own:

  1. Click the Roswaal mark at the top left, for the projects panel.
  2. Press Project at the bottom of the panel.
  3. Open folder… works on a folder on your computer and writes into it, as the installed editor does. It is in Chrome and Edge.
  4. Or Open .zip…, in any browser, for a project in a zip. It replaces the project kept in the browser, and asks first.

Download in the same menu takes the project out as a zip. Folders you have opened are listed in the panel, to reopen with a click.

  1. On your computer, zip the project's folder: Compress in Finder, or Send to → Compressed (zipped) folder in Explorer.
  2. Put the zip where the device can reach it: AirDrop, iCloud Drive, or any app that saves to Files.

Then, on the device:

  1. Open the web app and tap the Roswaal mark.
  2. Tap Project at the bottom of the panel.
  3. Tap Open .zip…, and pick the zip in Files.

Project → Download saves it back to Files as a zip. The panels slide out over the graph, and the edits a keyboard makes are buttons under it: The Interface shows where things are, and Controls has the gestures. An iPad Mini is the smallest screen it is made for; a phone is best for reading graphs.

Your first script

  1. Right-click the project tree and make a new graph. On a touch screen, press and hold instead of right-clicking.
  2. Every script starts at a red Script Start node. Nothing runs without one.
  3. Right-click the canvas, search for Print, and wire Script Start's execution pin into it.
  4. Type something into the Value pin.
  5. Press Compile script. The generated .luau appears in the tree beside it.

The Interface shows what each part of the screen is. Most of the chrome is icons, and Toolbars draws every bar with its buttons named — including the three at the right-hand end of the top bar, which are Docs, Node Design and Settings.

luau
--!strict
-- Generated by Roswaal. Do not edit this file directly;
-- edit Hello.nodescript and recompile instead.

print("Hello")

Warning

A generated file you edited by hand is not overwritten. Recompile with force when you mean to replace it.

Getting it into Studio

A node map describes where your files land in the DataModel, and compiles to a Rojo project file. Make one, point a folder at src, then run rojo serve and connect from the Studio plugin.

That is the whole loop: edit the graph, compile, Rojo syncs. Set Compile to Dynamic and the compile step happens as you work.

Last reviewed 18 September 2026 by @neopolitans