The workspace
Every part of the editor window named once — the rail and its lists, the tabs and the pages, the panels, and every keyboard shortcut that is real.
All documentation — Start here
Boards and the canvas
The node builder
Modelling the world
Variables, logic and commands
Voice and audio
AI
Working together
Project settings
On this page
This page names every part of the window and lists every keyboard shortcut that exists. It is the page to come back to when something in another page is called a thing you do not recognise.
The activity bar
The narrow rail down the left edge, 40 pixels wide. There is only one. Its buttons switch section, and a section decides one thing: which list the side drawer beside the rail shows. It never decides what the editor area shows — that is whichever tab is in front, and the tab strip stays on screen in every section.
The rail, in the order it appears:
| # | Button | Shortcut | The list it shows |
|---|---|---|---|
| 1 | Node Editor | Ctrl+1 | Boards |
| 2 | Documents | Ctrl+2 | Lore documents and spreadsheets |
| 3 | Entities | Ctrl+3 | Entity items — the instances |
| 4 | Entity Definitions | Ctrl+4 | Definitions and traits — the shapes |
| 5 | Tags | Ctrl+5 | Tags and tag folders |
| 6 | Variables | Ctrl+6 | Variables, contexts, enums and bitmasks |
| 7 | Commands | Ctrl+7 | Command declarations |
| 8 | Node Types | — | Node types, with a Palette button in the list’s title row |
| 9 | Media | Ctrl+8 | Uploaded images, video, audio |
| 10 | Voices | — | Voices, with Cast · Lines · Music · Sound FX buttons in the list’s title row |
| 11 | Screenplay | — | None — it opens the Screenplay tab and leaves the list where it was |
| 12 | Localization | Ctrl+9 | Three pages: Export & Import · Strings · AI batch translation |
| 13 | AI Generation | — | Three pages: Embeddings · Usage & Costs · Model Credits |
The editor opens on Node Editor. The section you were last in is remembered per browser and restored on the next visit.
Play is not on the rail. The Play button in the header, over a board, opens the player as a tab — see Play mode.
Above them sits Search All. Below them, pinned to the bottom: Projects (back to the project list), Project Settings, and Theme Editor.
Pages
Some things are not an item in a list but a page — a whole workspace over the board or the project. A page opens as a tab like anything else, sits in the tab strip beside your boards and items, and exists once per project: opening it again brings the same tab to the front. There are fourteen, and each has one way in:
| Page | Where you open it |
|---|---|
| Play | The Play button in the header, over a board |
| Design | The palette button on the player’s toolbar, or Design how it plays and looks on a node type |
| Cast · Lines · Music · Sound FX | The four buttons in the Voices list’s title row |
| Export & Import · Strings · AI batch translation | The rows of the Localization list |
| Embeddings · Usage & Costs · Model Credits | The rows of the AI Generation list |
| Screenplay | The Screenplay button on the rail |
| Settings | The gear at the bottom of the rail |
The node types’ Palette opens as a tab the same way, from the button in the Node Types list’s title row. The five AI generators are not pages: they are tabs in Thalia’s dock.
A button for a page lights while that page’s tab is in front.
Closing a page’s tab does not stop it. Reopening it shows the page exactly as you left it, and work running in it — a batch of lines being voiced, a batch translation — carries on while it is closed or while another tab is in front.
The editor area, and its tabs
Everything you open from a list or a page button opens as a tab, and the tab strip is on screen whatever section the rail is on. Clicking a tab never changes the list on the left; clicking a list item opens a tab.
Seventeen kinds of thing can be a tab, besides the fourteen pages: an entity item, an entity definition, a trait, a tag, a variable, a context, an enum, a bitmask, a command, a node type, the node palette, a media item, a voice, a document, a spreadsheet, an entity grid, and a board.
Every open tab, pages included, comes back when you reload.
Preview tabs. A single click on a tree row opens a preview tab — italic, slightly faded — and the next single click replaces it in place, so browsing a tree does not leave twenty tabs behind. A preview becomes permanent when you double-click the row, activate the tab again, drag it to reorder, pin it, or choose Keep Open.
Middle-click closes a tab. Right-click gives: Pin Tab / Unpin Tab, Keep Open, Close, Close Others, Close All, Close to the Right, Close to the Left. Tabs can be dragged to reorder.
The panels
The side drawer is the list on the left of the editor area, and each section titles it for what it holds: Boards, Entities, Entity Definitions, Tags, Variables, Commands, Node Types, Media, Voices, Documents, Localization, AI Generation. Drag its right edge to resize it, between 150 and 500 pixels; the default is 250 and the collapsed width is 48. The chevron collapses it.
Its width and collapsed state are stored in your browser and are shared across every section — one setting, not one per tree.
There is no general-purpose inspector on the right. Three specific surfaces appear there instead:
- The dock — Thalia, the five generators and History, described below.
- Localization — only on the Node Editor, toggled from the header. Resizable from its left edge, 250–600 pixels, default 320.
- Floating panels — the entity browser (
Alt+Q), the media browser (Alt+W), and the Theme Editor. These are draggable and resizable, and their geometry is remembered per browser.
Opening the dock closes Localization, and the reverse.
The dock
One column down the right edge, narrowing the editor area beside it rather than covering it. It
opens with the ✦ Thalia button or the History button in the header, or Ctrl+I; the button
for the tab you are on closes it again, and the other one switches tab. Drag its inner edge to
resize it — it opens at 380 pixels and will not go narrower than 320.
Its strip reads Chat · Dialogue board · Definition · Entities · Picture · Variables │ History, as icons with their names as tooltips:
- Chat is Thalia, the project-aware assistant.
- Dialogue board to Variables are the five generators.
- History is the undo history. Its title is the name of the stack it is showing: History for the project, or the document’s own name when a document owns its undo.
Closing the dock hides it without stopping anything in it: a Thalia turn that is still running
finishes and writes its results. Without the AI permission — the Viewer role — the Thalia button is
not drawn and Ctrl+I does nothing, but History still opens the dock.
Theming the editor
The Theme Editor at the bottom of the activity bar changes how TaleShard itself looks. It opens as a floating panel you can drag and resize, and it remembers where you put it.
TaleShard ships with a set of built-in themes, and you can make your own — either by starting from one of them or by building one up.
A theme is not a list of colours for every surface. It is a small set of base colours — your primary, secondary and tertiary, plus the three that mean something (destructive, success, warning) — and then five zones that derive their surfaces from those:
| Zone | What it covers |
|---|---|
| Activity Bar | The rail down the left edge |
| Sidebar / Panel | The trees and side panels |
| Main Work Area | The canvas and the editor surface |
| Card | Cards and raised panels |
| Popover | Menus, popovers and dialogs |
That is why changing one base colour moves a whole family of surfaces together rather than leaving you to repaint forty things by hand.
Overriding one thing
When the derived answer is wrong for a specific case, you can override it at four levels — globally, for one zone, for a kind of control, or for one named element. The narrower the level, the more it wins.
The panel also has a pick-an-element mode: hover anything in the editor to highlight it, click, and the panel jumps to the right level for what you clicked — which is considerably faster than guessing which token draws a thing.
A theme can be exported as a template and imported again, which is how you move one between machines.
The header bar
Left to right: the brand mark, the project name (editable in place if you have permission), a slash, then the section’s own identity — or the page’s, while a page’s tab is in front; on the right, the section’s (or that page’s) view and language controls, the credits balance, the collaborators present, a sync pill, and a fixed rail of Undo · Redo · History · Thalia · Search.
The sync pill reads one of: Connecting…, Syncing…, Synced, Disconnected, Reconnecting…, Paused, Offline, Reload needed, No access.
Search All — the command palette
Ctrl+K opens it, and Ctrl+K closes it again. It works while you are typing in a field, which is
deliberate.
It searches nine kinds of thing, by a case-insensitive substring of the name:
| Result | Takes you to |
|---|---|
| Entities | Entities |
| Entity Definitions | Entity Definitions |
| Tags | Tags |
| Variables | Variables |
| Contexts | Variables |
| Enums | Variables |
| Bitmasks | Variables |
| Commands | Commands |
| Media | Media |
Arrow keys, Home, End, Enter and Escape all work in the list.
Every keyboard shortcut
This is the complete set. Anything not on this list does not exist.
| Keys | Action | Where it applies |
|---|---|---|
Ctrl+1 … Ctrl+9 | Switch section — the list on the left | Anywhere except inside a text field |
Ctrl+K / Cmd+K | Open or close Search All | Anywhere, text fields included |
Ctrl+Z / Cmd+Z | Undo | Anywhere; routed by what has focus |
Ctrl+Shift+Z, Ctrl+Y | Redo | As above |
Alt+Q | Toggle the entity browser panel | Anywhere, text fields included |
Alt+W | Toggle the media browser panel | Anywhere, text fields included |
Ctrl+I | Open or close Thalia in the dock | Anywhere except inside a text field, where it is italic |
On the canvas, with the canvas focused and no text field active:
| Keys | Action |
|---|---|
Ctrl+C | Copy the selection |
Ctrl+X | Cut — the originals stay visible until you paste |
Ctrl+V | Paste, centred on the cursor |
Ctrl+D | Duplicate at the cursor |
Ctrl+A | Select every node |
Ctrl+G | Group the selection |
Ctrl+Shift+G | Ungroup |
Ctrl+0 | Reset the selection to its automatic size |
Delete / Backspace | Delete the selection |
Escape | Clear the selection |
Shift+1 | Fit every node in view |
| A letter, digit or symbol, one node selected | Start typing in the node’s first text field — G and S type too |
G | Toggle grid snapping |
S | Toggle edge spacing |
Where undo goes
One Ctrl+Z has to serve a canvas, a rich-text editor, a code editor, a spreadsheet and a plain
input, and the answer is decided by where focus is, not by which section is open. In order: a
spreadsheet clipboard sink yields; a document with its own undo stack yields; a project-undoable
document field claims; a code editor yields; a rich-text editor yields; a plain input or textarea
yields; otherwise the project stack claims it.
The Undo and Redo buttons in the header say which stack they will act on — in this project, or in “«document name»”.
What breaks
| Situation | What you see |
|---|---|
| You are not an Admin and a Settings tab is open anyway (kept from an earlier visit, say) | Settings unavailable — Only project admins can access settings. |
| You have no AI permission and an AI page’s tab is open anyway | AI features unavailable in place of the page |
| No tab is open | No «Section» open — Select an item from the panel to open it here. For the Node Editor the word used is Boards. |
| Search finds nothing | No results found. |
| A stored section id is no longer valid | Silently falls back to the Node Editor |