backupRoswaal has moved to roswaal.app. These pages are a backup copy.Go to roswaal.app

0.2.x✎

The roswaal command, node maps, and variables you declare once and use anywhere.

0.2.x2026-09-03

FeatureChangeBugfix

The roswaal command, node maps, and variables you declare once and use anywhere.

Release

  1. 0.2.0The roswaal command, node maps, and variables you declare once and use anywhere.New2026-09-03

Warning

Worth knowing before you upgrade.
  • 0.2.0Declare Variable and Set Variable are now Declare Local and Set Local. Variable now means the graph-wide kind. A graph saved by 0.1.0 is migrated when it is opened, and what changed is listed once.
  • 0.2.0A Get Service node from 0.1.0 sat on the execution wire. It is taken off when the graph is opened, and the wires on either side are joined.

Added

  • 0.2.0The roswaal command: init, serve, stop, restart, status, compile, watch, prune and check. roswaal serve runs the daemon and the built editor together on one port, 4471. It is a pair of shell scripts in bin/ that you put on your PATH after npm run build.
  • 0.2.0Variables, declared once in a list, then read and written with Get Variable and Set Variable anywhere in the graph, functions included. Drag one onto the canvas for a Get, or hold Ctrl for a Set. The palette lists variables and functions by name: Get health, Set health, Get greet.
  • 0.2.0Get Function and Call Function, so calling a function no longer needs a wire from where it is declared. Get Event, typed as a signal so it wires straight into Connect Event. Get Field, which reads a field off any value.
  • 0.2.0Instance and Require Module take a root and a dotted path, so a chain of Find First Child nodes is no longer needed. A name that is not an identifier, like Main Menu, is bracketed. A module is required once, however many nodes ask for it. Dragging a file from the project tree onto the canvas offers either node with the path already filled in.
  • 0.2.0Node maps. A .nodemap says where each script lives in the DataModel and compiles to the Rojo project file. It is edited as a tree, with the generated JSON beside it. A path that does not exist on disk, or that sits inside another mapping, gets a warning. Ignore paths are set on the instance they belong to.
  • 0.2.0Folders in the project tree. Its right-click menu adds New Folder, Rename, Delete and Show in file manager.
  • 0.2.0Node packs written in Luau, as .nodedef.luau. Roswaal reads the file and never runs it. Only literal values are accepted, and anything else is an error with a line number.
  • 0.2.0A code editor for Custom Code and Luau Expression, with Luau highlighting, line numbers, and a check for unclosed brackets, strings, comments and blocks. The check runs as you type and on every compile. Completion offers Luau's globals and libraries, and the names the graph puts in scope: its variables, functions, services and required modules, and locals declared by an earlier Custom Code block.
  • 0.2.0Operators take any number of inputs. Add, Multiply, Min, Concatenate and the rest have + and − in the header, and dropping a data wire on one adds a pin. Return, Module Exports, Sequence and the call nodes grow the same way.
  • 0.2.0Reroute knots: double-click a wire. A knot compiles to nothing.
  • 0.2.0Realign (Ctrl+Shift+L) lays the graph out in columns. With several nodes selected, only those move.
  • 0.2.0Shift-click a pin to disconnect everything on it, and Shift-drag a node to snap it to the grid.
  • 0.2.0A wire between pins of different types is drawn as a gradient from one colour to the other, and names the conversion on hover.
  • 0.2.0roswaal prune lists generated files whose graph has moved or gone, and deletes them only with --yes. The editor offers the same after a project compile. A file is only removed if it still says it was generated.
  • 0.2.0Help in the toolbar.

Changed

  • 0.2.0Get Service is pure, and picks from a list of services, with Other... for a name the list does not have. However many nodes ask for a service, it becomes one local at the top of the file.
  • 0.2.0Call Method takes as many arguments as the inspector says, rather than exactly one.
  • 0.2.0Require is now Require (Dynamic), for a module reached by a wire. Require Module covers a fixed path.
  • 0.2.0Getters are drawn as compact capsules, pure nodes have a green edge, and each pin type has a colour of its own. A Function node shows its signature under its name.
  • 0.2.0A wire starts only from a pin's dot, so the rest of the row drags the node. While a wire is being dragged, every pin is easier to drop on.
  • 0.2.0Creating, renaming or moving anything inside the output folder is refused, with the reason.
  • 0.2.0Prompts and confirmations are the editor's own dialogs rather than the browser's.

Fixed

  • 0.2.0A Return, Break or Continue on one output of a Sequence was followed by the next output's statements, which is not valid Luau. The outputs after it are now reported as unreachable.