dispatch
Sessions waiting on you:0finished:0· all quiet
Sign inGet early access

Docs

Studio and Rojo

Link a tile to a running Studio window, and see at a glance whether Rojo is actually synced.

Everything here is window-level: which windows exist, what each has open, and where they sit. Nothing reaches inside Studio.

Linking a tile to a Studio window

A tile can be pointed at a running Studio window, and its header then carries a chip naming the place that window has open. A Roblox project whose name matches exactly one running window is linked automatically.

  • Click the chip to bring Studio to the front.
  • Shift-click to raise it without moving it.
  • Right-click for the list of open windows (to link a different one), for Bring to Left / Center / Right, and for its home monitor — the screen that raising it sends it back to.

Monitors are named both ways round, because either half can be the one you recognise. Quick moves lead with the direction and bracket the monitor — Bring to Center (ASUS VG247Q1A) — while picking a home monitor leads with the monitor and brackets the direction — ASUS VG247Q1A (Left). Past three monitors in a row there is no position worth naming, and the list simply goes by monitor.

Close Studio and the chip stays

It names the place it is still pointed at — and clicking it opens that place, rather than telling you it is shut.

Dispatch can do that because the plugin names itself on the way in: every handshake carries the place’s id, so a place you have had open once is one Dispatch can start again. The chip reads “Opening…” until the window turns up.

A place Dispatch has never seen connect has no id to start, so that chip behaves as it always did — and says why in its tooltip.

Rojo sync

A Rojo workflow has two ends and Dispatch only ever owned one: rojo serve runs in a terminal, which is a tile, while the Connect that makes Studio listen lives in Rojo’s own plugin.

Forget that click and editing a project looks exactly like editing one that is synced — the files change, the place doesn’t, and the first sign is a playtest behaving like the code from twenty minutes ago.

So the tile header says where sync actually stands:

Chip Means
Synced (green) That tile’s Studio window is holding the connection.
Not synced (amber) Studio is open and it isn’t.
Serve (dashed) The project has a *.project.json and nothing is serving it at all.

Neither end needs Rojo’s cooperation to observe: the server answers /api/rojo with the project it is serving, and the plugin holds an ordinary loopback socket for the length of a session. So “which Studio is synced” is a question the OS can answer.

Clicking Serve

It opens a terminal running it — its own tile, in that project, because rojo serve holds a terminal for as long as it runs and the one you clicked from probably has a session in it. The chip pulses Starting… until the port is up, then turns amber or green like any other.

A folder is only offered this if it really is a Rojo project. The roblox type is broader than Rojo — a wally.toml earns it — so what’s looked for is default.project.json, or a single differently-named *.project.json, which then gets named on the command line.

The chip is a switch

Click it amber and it connects, click it green and it disconnects. With a caveat worth stating plainly:

Studio gives one plugin no way to call another, so there is no API to press Rojo’s Connect with. What Dispatch can do is bring the window forward and type the keyboard shortcut you have bound to Rojo’s Rojo: Connect/Disconnect action.

Bind that action rather than the two one-way ones beside it: one chord covers both directions, because Dispatch reads which way sync currently sits immediately before it types.

Set the same chord in Settings ▸ Roblox ▸ Rojo shortcut and the chip works. Leave it empty and the chip just raises Studio.

To bind it in Studio: File ▸ Advanced ▸ Customize Shortcuts.

When the chip stays amber

It reports the state it actually reached rather than the keystroke it sent, so a chip that doesn’t turn tells you something real:

  • Nothing is bound to that chord.
  • Studio has a modal in front of the place — a plugin shortcut doesn’t fire while an autosave-recovery prompt is up, which is the failure that otherwise looks like the feature being broken.
  • Rojo is waiting on its own confirmation prompt.

The message says which.

Rojo’s own Auto Reconnect setting reconnects a place on open and ships off. Turning it on stops most of this happening at all, and the chip’s tooltip says so while it is off.

From a session

dispatch_rojo is the same switch from an agent, which is what makes “check before you edit” something a session can do for itself.