Controls✎
Every key, mouse, trackpad and touch gesture the canvas understands.
Verified
This page is the keyboard, the mouse and touch. The buttons are on Toolbars, which draws each bar with every control named under it.
Keys and gestures
Keys act on the canvas, and do nothing while you are typing in a field. Ctrl is ⌘ on a Mac. Escape closes whatever is open — a menu, a panel, the preview.
| Key | What it does |
|---|---|
Ctrl + Z | Undo |
Ctrl + Shift + Z, Ctrl + Y | Redo |
Ctrl + S | Compile the open graph |
Ctrl + A | Select everything in the graph on screen |
Ctrl + C, Ctrl + X, Ctrl + V | Copy, cut, paste. A function brings its graph and a comment brings what it is drawn around. The paste lands with its top-left corner at the pointer, or offset from the original when the pointer is off the canvas |
Ctrl + D | Duplicate the selection, at the pointer |
Ctrl + Shift + L | Realign the graph on screen |
Ctrl + Shift + E | Open Export |
Delete, Backspace | Delete the selection. A function takes its graph, and asks first |
A | Align the selection, walking it in the order you picked it |
C | Comment around the selection, or an empty one if nothing is selected |
P | Preview the Luau the selection compiles to. With nothing selected: the function on screen, or the whole script |
Info
Ctrl + A, Ctrl + C and P work.A long press is a right-click and a double tap is a double-click, everywhere — so every gesture in the sections below has a touch version. An Apple Pencil works the same way, and draws a marquee as a mouse does.
| Gesture | What it does |
|---|---|
| Drag empty space with one finger | Pan |
| Tap empty space | Clear the selection |
| Two fingers | Pinch to zoom, drag to pan |
| Tap with two fingers | Undo |
| Tap with three fingers | Redo |
| Press and hold empty space, then drag | Marquee select |
| Press and hold empty space, then lift | Node menu, where you held |
| Press and hold with two fingers, then lift | The node picker, as Ctrl + right-click opens |
| Tap a node in the node picker | Preview it. Double tap it, tap Spawn node, or hold and drag it onto the graph to place it |
| Long press a node or a pin | Its menu, as a right-click opens |
| Press and hold a variable, a file or a tab, then drag | Drag it, as a mouse does — onto the graph, into a folder |
| Press and hold a variable, a file or a tab, then lift | Its menu, if it has one |
| Undo and Redo, along the bottom or on the side strip | As Ctrl + Z and Ctrl + Y do |
| Align, Copy, Cut, Duplicate, Delete, Paste, along the bottom | What their shortcuts do, to the selection. Node Design's logic graph has the same bar. Icons or words: Settings → Workspace → Action buttons |
| Preview and Logic, in Node Design on a phone | Show the node, or its logic, with the whole editor to itself |
| Double tap | Open a graph from the tree, add a reroute knot, rename a comment |
| Double tap an instance in DataModel | Slide Properties out with it |
| Drag a node, or from a pin | As with a mouse |
| The Project and Inspector buttons: on the top row on a tablet, at the ends of the bottom bar on a phone | Slide those cards out over the graph, one side at a time |
| The search button beside Contents, in these pages | Search the docs, as Ctrl + K does |
Info
Aligning
A lines a selection up, walking it in the order you picked it. The first node — the anchor, drawn with a heavier ring — never moves.
From there it follows the wires through the rest of the selection, and each node lines up on the neighbour it was reached from. So a chain straightens hop by hop — a source, a knot and the node the knot feeds all come out flat, even though the far end was never wired to the anchor, and whatever order you picked them in. A selected node with no wired path to the anchor takes its top edge.
Where two nodes are wired, the pins line up rather than the boxes. That is the difference that matters at a reroute knot: a knot is a dot with both pins at its centre and the node it feeds has its input some way down a header, so levelling the boxes would leave every wire through it bent.
Info
Realign
Ctrl + Shift + L lays the graph on screen out along its flow, as an import lays out a file: each run of steps along a row, its values under the step before, and the graph's start where it was. With several nodes selected, only those move.
The toolbar's Refactor button opens a panel with Realign and three changes that rewire a graph without changing its Luau. Drag it into the right dock to keep it under the Inspector.
| Change | What it does |
|---|---|
| Split into rows | Puts a Sequence after the graph's start and cuts its chain into rows by width. |
| A Get per reader | Gives each node that reads a Get its own copy. |
| Share Gets | Makes Gets of the same thing one, read by every reader. |
With several nodes selected, the Get changes act on those alone. Realign after each change lays out what a change touched.
Right-click a node and choose Pin to keep it where it is: Realign lays the rest out round it. A pinned node has a dashed ring and a pin in its corner.
A comment box is fitted back round what it holds. Tick Preserve nodes on Realign in its Inspector to keep what it holds as you placed it, and move the box as one.
The canvas
| Gesture | What it does |
|---|---|
| Scroll | Zoom towards the pointer, or pan on a Mac or iPad. Settings → Canvas → Scrolling the graph changes it |
Pinch, or Ctrl + scroll | Zoom, towards the pointer |
| Scroll sideways | Pan |
Middle-drag, or Alt + drag | Pan |
| Drag on empty space | Marquee select |
Shift or Ctrl + drag on empty space | Marquee adds to the selection |
| Click empty space | Clear the selection |
| Right-click empty space | Node menu, at the point you clicked |
| + and − on the side strip, or its slider | Zoom; the percentage goes back to 100% |
| Fit on the side strip | The whole graph, in the window |
The side strip is along the bottom of the graph with a mouse, and down its left edge on a touch screen. A phone has none.
Nodes
| Gesture | What it does |
|---|---|
| Drag | Move it, and everything selected with it |
Shift while dragging | Snap to the grid; the rest keep their offsets |
Shift or Ctrl + click | Add to or remove from the selection |
| Right-click | Node menu |
| Double-click a Declare Function, or its ƒ | Open the function's graph |
Functions and tabs
| Gesture | What it does |
|---|---|
The arrow beside a .nodescript in the tree | List its functions |
| Double-click a function in the tree | Open its graph in a tab |
| Click a function in the Variables panel | Open its graph |
| Middle-click a tab | Close it |
Panels
| Gesture | What it does |
|---|---|
| The Project and Inspector buttons on the top row | Show or hide the cards on that side |
| Drag a card by its header | Onto another card's header to make them tabs; onto the top or bottom half of a card to go above or below it; to an edge for that side |
| Drag a card onto the graph | It becomes a window there |
| Drag one tab out of a card | Move that panel on its own |
| Double-click a card's header | Fold it to its header, or open it again |
| Drag the line between two cards | Share their height; double-click to share it evenly |
| The ⋯ button on a card | Move it without dragging, separate a tab, fold or close it, and show a closed panel again |
| Drag a card's inner edge | Resize that side; double-click to put it away |
| Drag a window by its header | Move it; let go at an edge or on a card to dock it |
| Drag any edge or corner of a window | Resize it. The opposite edge stays put |
Menus
Every menu and dropdown takes the keyboard the same way. The node menu is the one exception: what you type goes into its search, and the arrow keys move through what it finds.
| Key | What it does |
|---|---|
↑, ↓ | Move through what can be chosen. Past either end it goes round |
Home, End | The first and the last |
Enter or Space | Choose it |
Escape | Close the menu, and go back to where you were |
Tab | Close the menu and move on |
Node Design
| Gesture | What it does |
|---|---|
| Drag a type from the palette onto the node | Add a pin: the left half an input, the right half an output |
| Click a pin, or its label | Edit its name, type, default and tooltip |
Ctrl + S | Save the node |
| Right-click the logic canvas | Add a node to the node's logic |
A, Ctrl + Shift + L | Align and realign in the logic canvas, as on a graph |
Ctrl + C, X, V, D | Copy, cut, paste and duplicate in the logic canvas, on the same terms as a graph. Node Inputs and Node Outputs are left out of all four: there is one of each and they are already here |
Pins and wires
| Gesture | What it does |
|---|---|
| Drag from a pin | Start a wire; everything it cannot reach dims |
| Drop a wire on empty space | Node menu, showing only what can take that wire |
| Drop a wire from a service | That service's methods, listed first — see Services and their methods |
| Type a service or class name in the menu | ReplicatedStorage gives Get Service; Part gives New Instance, each filled in |
| Drag from a wired input | Pick that wire up and move it somewhere else |
Shift + click a pin | Disconnect everything on it |
| Right-click a pin | Pin menu — split a struct, promote to a variable |
Shift or Alt + click a wire | Disconnect it |
| Double-click a wire | Add a reroute knot where you clicked |
Advanced shortcuts
Two that are worth knowing and neither of which you need: each is a slower, fuller way of asking something the editor already answers quickly.
| Gesture | What it does |
|---|---|
Ctrl + right-click the canvas | The node picker: the same list as the menu, with each node drawn as you walk it. For when you remember the shape rather than the name. Click a node, press Spawn node, or drag it onto the graph |
Ctrl + K, in the editor | Jump to a documentation page. Pick one and the docs window opens on it |
Ctrl + K, in the docs | The search palette, over the page |
Searching
| Typed | What you get |
|---|---|
and, or, not, ==, .., # | The node that writes that Luau, first in the list |
if, else, elseif | Branch |
for, while, break, return | The loop or the flow node that writes it |
Another name for a node: Define Function, Define Type, Sleep, Log | That node, below any node actually called it |
| A service or class name | Get Service or New Instance, filled in |
| A method name | RunService:IsServer and the rest of that service's methods |
Comments
| Gesture | What it does |
|---|---|
C | A new comment: around the selection, or empty where you are looking |
| Right-click the canvas | Add comment, placed where you clicked |
| Drag | Move it, and the nodes that were inside it when you grabbed it |
Ctrl + C | Copy it, and the nodes it is drawn around |
| Select it | Its colour, in the Inspector: eight swatches or a hex you type |
| Double-click | Edit the text. Enter adds a line; Esc, Ctrl+Enter or a click away saves |
| Drag the bottom-right corner | Resize |
| Drag the top-left corner | Resize, keeping the bottom-right where it is |
Dragging things in
| Gesture | What it does |
|---|---|
| Drag a variable from the panel | Get Variable |
Ctrl while dropping it | Set Variable instead |
| Drag a file from the project tree | Offers what can be done with it |
Double-click a .nodescript in the tree | Open it |
| Double-click an instance in DataModel | Open it in Properties |
| Drag a property from Properties | Get Member on an Instance node at its path |
Ctrl while dropping it | Set Property instead |
| Drag an attribute from Properties | Get Attribute, or Set Attribute with Ctrl |
| Drag an instance from DataModel, or its name from Properties | An Instance node at its path |
Last reviewed 8 October 2026 by @neopolitans