Docs Integrations
Studio and Rojo
Link a tile to a running Studio window, and see at a glance whether Rojo is actually synced.
On this page7
All pages12
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. Quick moves lead with the direction and bracket the monitor, as in Bring to Center (ASUS VG247Q1A); picking a home monitor leads with the monitor and brackets the direction, as in ASUS VG247Q1A (Left). Past three monitors in a row the list goes by monitor alone.
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.
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 its chip cannot open it, and the tooltip says why.
Rojo sync
A Rojo workflow has two ends: 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.
The tile header says where sync actually stands:
- Synced
- That tile’s Studio window is holding the connection.
- Not synced
- Studio is open and it isn’t.
- Serve
- The project has a
*.project.jsonand nothing is serving it at all.
You do not have to set anything up for those chips to be right. Rojo’s own server answers
/api/rojo with the project it is serving, and Rojo’s Studio plugin holds a loopback socket
for as long as a session lasts. Dispatch reads both, so a project you have never mentioned to
it still gets an honest chip.
Clicking Serve
It opens a terminal running it in its own tile, in that project, since 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.
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/Disconnectaction.
Bind that action rather than the two one-way ones beside it: one chord covers both directions, and 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 only 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.
- Rojo is waiting on its own confirmation prompt.
The message says which.
Rojo’s own Auto Reconnect setting reconnects a place on open, and is off by default. 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 a session, available to any agent driving Dispatch
over MCP, so a session can check sync before it edits.