Concepts
Editor URLs and Modes
Every URL that opens Edit Mode, what each editor mode edits, how a link names the mod it opens, and why a second tab on the same mod opens read-only.
On this page5 sections
Edit Mode is a URL, not a hidden state. Every editor address is bookmarkable, pasteable and shareable with yourself across devices — and the address says which mod you are editing and, increasingly, which part of it.
The URLs#
| URL | Opens |
|---|---|
/editor |
Edit Mode with no mod chosen — it opens your most recently updated mod |
/editor?project={id} |
Edit Mode on a specific mod |
/editor/room/{id} |
The Room Editor on that mod |
/editor/table/{id} |
The Table Editor on that mod |
/editor/asset/{id} |
The Asset Editor on that mod |
/editor/game/{id} |
The Game Editor on that mod |
/editor/room (no id) |
The Room Editor with no mod chosen yet |
{id} is the mod's project id — the same id the editor's own API uses.
The address bar keeps itself current. Switch mods inside the editor and the URL follows, so reloading (or copying the address) returns you to the same mod in the same mode. It is a replace, not a push: Back leaves the editor rather than walking backwards through the mods you clicked. Any other query parameter already on the URL is left alone.
A URL you mistype opens the plain editor. /editor/kitchen/my-mod is not an error page —
it opens /editor with no mode and no mod, and logs a warning to the console saying so. That
is deliberate: /editor/… has always been served by the app, and turning a typo into a 404
would break old bookmarks.
An id in the URL that is not one of your mods is reported by name — "No project "x" in your account" — rather than silently opening a different one. Opening the wrong pack is worse than opening none.
The modes#
A mode is one editor configured for one subject. It is not a separate application, a separate canvas, or a separate document — the hierarchy, the panels and the viewport chrome change; nothing else does.
| Mode | Edits |
|---|---|
| Room Editor | The room shell: floor, ceiling, the four walls and their posters, lights, decor, environment |
| Table Editor | The table itself: its model, colliders, triggers, play surface and seat ring |
| Asset Editor | Prefabs, decks, materials, textures and scripts as a standalone unit |
| Game Editor | Composition: which room and which table a game uses, plus player zones and entities — and the game's variants, when it has more than one set-up |
Each mode shows the subject it owns plus what that subject legitimately contains, and nothing else. The Game Editor assigns a room; it does not edit a wall.
That is not a restriction added for tidiness. A room and a table are published packs with their own repos, their own versions and their own authors, and a game references one of each at an exact version. The Game Editor is where that reference is made; the Room and Table Editors are where the thing being referenced is built.
The Room Editor's camera is built for interiors: it opens in a first-person walk rig you steer with WASD and right-drag to look, and its orbit camera can raise its focus to frame a wall rather than staying pinned near the table. The ceiling toggles off, and a wall you have moved outside of hides itself — along with anything hanging on it — so you are never framing a room from behind its own wall.
The camera and both of those toggles are driven from the right-hand end of the viewport
toolbar, which shows exactly the controls the
mode you are in declares — and shows none of them on plain /editor.
/editor with no mode segment stays exactly as it always was: the full tree, every panel.
Nothing about it changed when the modes arrived.
Opening a second editor#
The menu bar offers two ways out of the mod you have open:
-
▸ Switches this tab to that mode on the mod you already have open. It reloads the page, so unsaved changes are confirmed first.
The modes you get depend on what the mod is. A mod's kind is chosen once, in the create chooser, and frozen at its first publish — so it is not a view you switch between:
This mod is a… Open In offers Table Table Editor Room Room Editor Asset pack Asset Editor Game Game Editor, Full Editor A table pack has no room to dress, no pieces to place and no script to write, so the other editors are not offered: their panels describe a different kind of document. A game is the one kind with two, because the Game Editor and the Full Editor are two views of the same document. Creating a mod takes you straight to its own editor for the same reason.
Type a URL that names the wrong editor for a mod —
/editor/game/{a-table-pack}— and it still opens, with a notice on the menu bar naming the editor that mod belongs in. It is not redirected: a forced navigation would discard whatever that tab has unsaved.Game EditorandFull Editorare not the same thing.Full Editoris plain/editorwith no mode: the whole nested tree and every panel, exactly as it has always been. TheGame Editoris the composition view, whereRoomandTableare two assignable rows instead of twelve scenery rows — see Assign a room or a table. -
The open-in-new-tab icon on any other mod in ▸ . Opens that mod in its own tab. Click it again later and the browser focuses the tab you already have instead of making a third one — each mod's editor tab has a name, and a named tab is reused.
Notice what is missing: there is no button that opens a second tab on the mod you are already editing. That is the point of the next section.
One mod, one writing tab#
Two editor tabs on the same mod cannot both save. The second one opens read-only.
Your working files live in your browser's own storage, on disk, in one tree per mod. Two tabs editing that tree are two writers with no coordination between them: each saves a complete picture of the mod built before the other's changes existed, and whichever saves last wins silently. Nothing errors. Work simply disappears.
So the first tab to open a mod owns it. A second tab — from a pasted link, a duplicated tab, a restored session, another window — detects the first one and opens read-only:
- a
Read-onlybadge next to the mode name in the topbar; - a notice on the menu bar saying what is happening;
Save DraftandPublishdisabled, and every other write refused with the same reason.
You can still look at everything: the hierarchy, the Inspector, the viewport, the asset explorer. It is a viewer, not a broken editor.
The owning tab is asked, never overruled. The moment the second tab opens, the owning tab shows Another tab wants to edit this project with two choices:
- Keep control — nothing changes; the new tab stays read-only and says the other tab kept control.
- Give up control (Save & give up control when there are unsaved changes) — the owning tab saves, becomes read-only, and the new tab reloads as the owner. If the save fails, the owning tab keeps control and offers Give up anyway.
Click Read-only to ask for control — from either tab, at any time, including to take
control back after giving it up. The owning tab gets the same prompt. If it does not answer
within 20 seconds, the badge offers take control anyway; the owning tab then saves what it
can and hands over without asking.
A tab never becomes the owner in place: it reloads first, because a tab that has been sitting read-only is looking at a picture of the mod from before the other tab's saves, and promoting it as-is would let stale state overwrite newer files. When the owning tab closes, clicking the badge simply reloads and takes over.
Refreshing the owning tab and then cancelling the browser's "leave site?" prompt does not give ownership away — ownership is released only when the page actually goes.
A crashed tab does not lock you out. Ownership is renewed continuously while a tab is alive; a new tab that finds an owner asks it directly, and one that does not answer within a moment — because it crashed — is taken over. A tab in a background or covered window keeps answering even though the browser slows its timers, so it is never mistaken for a crashed one, and a tab that is mid-save is given considerably longer.
This is per browser profile, not per account. Ownership is decided between tabs in the same browser on the same machine. Two different machines — or two browser profiles — cannot see each other, and each has its own copy of the working files. Publish is what reconciles them; see the publish flow.
Related#
- Opening Projects — choosing and switching mods
- Document vs Engine — what a save actually writes
