Learn/Studio

Studio

Studio is the editor inside Eustress Engine: the window where you build a Space, select and transform its objects, edit their properties, undo any step, and run the result. This page is the tour of every panel, tool and shortcut in it.

Time23 min readLevelBeginnerUpdatedUpdated Sep 2026

01The Window

Layout

Studio is one window. The ribbon runs across the top, the 3D viewport fills the middle, a panel sits on each side, and Output with the command bar runs along the bottom. Drag the inner edge of a side panel to resize it (180 to 600 px on the left, 200 to 700 px on the right), and drag the top edge of Output to make it taller or shorter.

RibbonModes and menus, Run and Play, ribbon tabs, toolsExplorerAssets, Universes,ToolboxSpace tab, script and web tabs, Perspective controlViewportlayout presets at top leftPropertiesHistory, Soul,WorkshopOutputTimeline, Data GridCommand bar: Luau or Rune
Studio's docked regions. The side panels and Output each hold several tabs; the names in small type are the other tabs in that region.

Panels and Tabs

RegionTabsToggle
LeftExplorer, Assets, Universes, Toolbox, and Terrain under the chevronCtrl+1 (Explorer)
RightProperties, History, Soul, Workshop, and Problems under the chevronCtrl+2 (Properties)
BottomOutput, Timeline, Data GridCtrl+3 (Output)

The strip above the viewport works like a code editor's tab bar. The first tab is the Space itself and is pinned there. Scripts, documents, images, web pages and charts you open get tabs of their own beside it, which you can drag to reorder. The globe button at the far left opens this Learn site in a web tab. Near the right end sits the Perspective control, covered on the Perspective page.

Output collects every message from Studio and from scripts. Its toolbar filters by level (info, warnings, errors, debug) and by source (Rune, Luau), has a Filter... box, a Clear button and an auto-scroll switch. Soul lists the Space's scripts with their build status, Workshop is the AI assistant, and Problems lists script diagnostics.

Layout Presets

The selector at the top left of the viewport switches between five layouts in one click. Each sets which panels show, how wide they are, and which tab is in front:

PresetShows
DefaultExplorer, Toolbox, Properties and Output
ScriptingExplorer, Output and the Soul panel; no Properties
BuildingExplorer, Toolbox, Assets and Properties; no Output
MinimalOnly the viewport
Wide PanelsEvery panel except Soul, with a 350 px left panel

02Explorer

The Tree

The Explorer is the tree of every instance in the Space. The top level is the Space's services (Workspace, Lighting, SoulService and the rest); objects nest under them the way their folders nest on disk. Click a row to select it, Ctrl-click to add or remove a row, and Shift-click to select a range.

ActionHow
Move through rowsUp / Down
Collapse or expand the rowLeft / Right, or click the arrow
RenameF2, type, Enter
Expand a row, or open a scriptDouble-click
Insert an object inside a rowThe plus button that appears at the right of the row on hover
Clear the selectionClick the empty space below the tree

Reparenting

Drag a row onto another row to make it a child of that row. A blue pill with the row's name follows the cursor, and the target row lights up. You can drop onto a service too, to move an object into Workspace or ReplicatedStorage. With several rows selected, the whole selection moves.

Because the Explorer mirrors the folders on disk, reparenting moves the object's folder into its new parent's folder. The move is one undo step: Ctrl+Z puts every moved object back where it came from.

Context Menus

Right-click a row for a menu that fits what the row is. Right-clicking a row that is not selected selects it first; right-clicking inside a multi-selection keeps the selection, so the command applies to all of it.

RowMenu highlights
ServiceInsert Object, Insert Part, Paste Into, Select Children, Select Descendants, Copy Path. Services cannot be cut, deleted or renamed.
Model or FolderInsert Object, Insert Part, Paste Into, the selection commands, Zoom To, Group, Ungroup, Rename
PartInsert Object, Paste Into, Invert Selection, Toggle Anchor, Toggle Lock, Zoom To, Group, Rename
ScriptOpen Script, Select Parent, Select Siblings, the clipboard commands, Rename
Anything elseInsert Object, Paste Into, the selection and clipboard commands, Zoom To, Group, Rename

Every menu also has Cut, Copy, Paste, Duplicate and Delete where they apply, and Copy Path to copy the object's path on disk.

03Properties and Insert

Editing Properties

Properties edits the selected object. For a part the rows come in sections: Metadata (Name, ClassName, the file's authored Unit), Transform (Position, Rotation, and Scale, which is the part's size), Appearance (Color, BrickColor, Transparency, Reflectance, CastShadow, Material), Physics (Anchored, CanCollide, Locked, Destructible), then Attributes and Parameters. Tags are edited at the top of the panel. Type a value and press Enter; number fields take plain numbers.

With several objects selected, Properties shows the values of one of them, the primary selection, and an edit spreads like this:

You editWhat happens to the selection
Color, Transparency, Reflectance, Anchored, CanCollide, LockedEvery selected part takes the new value, recorded as one History entry
PositionThe primary goes to the typed position and every other part moves by the same offset, so the group keeps its layout
RotationThe primary takes the typed rotation and every other part turns by the same amount about its own origin
Anything else, including Name, Material and ScaleOnly the primary changes
  • Color: the swatch opens an RGB Color popup with R, G and B sliders from 0 to 255, a box per channel, and a Hex field for #RRGGBB.
  • BrickColor: opens Color Wheels. Choose one of seven named wheels (Aether, Halo, Verdure, Stone, Char, Hex, Umbra), then one of its 127 named cells. The color goes to every selected part and the field shows the cell's name.
  • Display units: the Units badge at the right of the menu bar shows Position and Scale in another unit and converts what you type back. Its menu lists Meters, Centimeters, Millimeters, Feet and Inches, plus Roblox's own unit for builders coming from there. The Space is always stored in meters, and the display returns to meters at the next launch.
  • Filter: Ctrl+Shift+E jumps to the Filter properties... box, which keeps the rows whose name contains what you type. Esc clears it.
  • Attributes and tags: the plus on the Attributes header opens Add Attribute (a name, one of 17 types, a value). Type a tag in the box at the top and press Enter.

Insert Object

The Insert Object dialog is a search box over every class you can create. Open it with Ctrl+I, with the plus button on an Explorer row, from Insert > Insert Object..., or from a row's context menu. Its header names the destination, into Workspace or into the selected object.

Type any part of a class name, or of a category such as Lighting or GUI: the list narrows on every keystroke. Up and Down move the highlight, Enter inserts, Esc or a click outside closes. The new object is selected and can be undone like any edit.

Where New Objects Go

The list is built from the running engine: a class appears when it has both a spawner and a template, so every row creates something. The Insert menu shows the same catalog grouped by category, under a pinned COMMON group: Part (Block), Sphere, Cylinder, Wedge, Model and Folder.

  • Inside the selection: with an object selected, the new object goes inside it.
  • The COMMON primitives (Part, Sphere, Cylinder, Wedge) otherwise go to Workspace, 10 m in front of the camera, sized from the part catalog: a Block is 4 by 1 by 2 m, a Sphere 2 m across.
  • Every other class starts from its template and otherwise goes to the service its category belongs to: lights to Lighting, audio to SoundService, GUI to StarterGui, scripts to SoulService, and everything else to Workspace.
  • Right-click in the viewport for Insert Part Here, which drops a part at the point you clicked.

04Selection and Tools

Selecting

Click a part in the viewport to select it; a selected part gets a blue outline. With the Select tool, whatever a click would pick shows an amber outline as the cursor passes over it. Clicking a part whose parent is a Model selects the Model; hold Alt to pick the part itself. Locked parts cannot be picked.

InputResult
ClickSelect just this
Ctrl + clickAdd it, or remove it if it was selected
Shift + clickAdd it
Ctrl+Shift + clickRemove it
Click empty spaceClear the selection
Drag from empty spaceBox select: every unlocked part whose center lands in the box. Hold Shift to keep what was selected.

The hierarchy commands grow or move a selection through the tree: Select Children adds one level down, Select Descendants every level, Select Siblings the rest of each parent's children, Select Parent replaces the selection with the parents, and Invert Selection swaps selected and unselected. They are on the context menus and the keys below.

A right click in the viewport that does not move the mouse opens the viewport menu: Insert Part Here, Paste Here, Focus Selection, Select Children, Duplicate, Rename, Copy, Cut, Toggle Anchor, Toggle Lock, Group, Ungroup, Copy Path and Delete. A right drag looks around instead.

Move, Scale, Rotate

Pick a tool from the Tools group on the Home tab or with its key. In every tool you can also drag a selected part's body: it slides across whatever is under the cursor and lands flush on it, part or terrain.

ToolHandlesDrag
Select (Alt+Z)NoneThe body only
Move (Alt+X)Six arrows and three plane squaresAn arrow moves along its axis, a square within its plane
Scale (Alt+C)A cube on each face and one in the centerA face cube moves that side and the opposite side stays put; hold Ctrl to keep the center fixed; the center cube scales evenly
Rotate (Alt+V)Three rings and a center sphereA ring turns about its axis in 15 degree steps; Shift for 1 degree, Ctrl for none

The handles follow world axes until you press Ctrl+L or choose Local in the ribbon's Space group; then they follow the selected object's own axes. Esc cancels a handle drag and puts everything back. Handles always draw on top of the scene, so a handle buried inside the part it controls is still visible and grabbable. Move handles keep one size on screen at any distance, and Rotate rings never shrink below a minimum on-screen size.

Snapping

The Snap group on the Home tab holds the Snap switch, the Move increment (default 1 m) and the Rotate increment (default 15 degrees). The keys 1, 2 and 3 set the Move increment to 1 m or 0.2 m, or turn move snapping off.

  • Move handles move in whole increments from where the drag began. Scale rounds sizes to the increment, never below 0.1 m.
  • Body drags land flush on the surface under the cursor, snap to the increment in that surface's own axes, and pull onto a corner within 0.5 m.
  • Rotate always uses the Rotate increment; the Snap switch does not affect it.
  • Collisions, the last button in the group and off by default, stops a dragged part at other parts instead of letting it pass through.
  • - lifts the selection one increment (1 m with snapping off) and = settles it one increment down, or flush onto a surface within that distance. Hold either key to repeat.
  • Ctrl+R turns the selection 90 degrees about the vertical axis and Ctrl+T tilts it 90 degrees about Z.

Smart Build Tools

The Drafting tab holds tools that work from picks or from the whole selection. While one is armed, the Tool Options bar at the top left of the viewport shows the step you are on and the tool's options; Esc or its × button cancels. When a tool commits, a toast offers Undo for 5 seconds.

ToolKeyWhat it does
Gap FillCtrl+Alt+GPick two parts, then click once more: fills the gap between them with 2 or 4 anchored wedges (Thickness 0.2 m by default)
ResizeCtrl+Alt+APick a source, then a target: the source's facing side stretches to meet the target (Outer Touch, Inner Touch or Rounded Join)
EdgeCtrl+Alt+EPick a source, then a target: moves the source's origin onto the target's origin
SwapCtrl+Alt+PPick two parts: they trade positions, and rotations too with the advanced option
MirrorCtrl+Alt+MChoose the XY, XZ or YZ plane through the origin and press Apply: mirrored copies of the selection. Linked copies keep following their source.
Material FlipCtrl+Alt+FRotate or mirror the texture on every selected part, applied at once and not undoable
Align X, Y, ZRibbonLine up the centers of two or more parts on one axis
Dist X, Y, ZRibbonSpace three or more parts evenly along an axis; the two ends stay put
Linear, Radial, GridCtrl+Alt+L, Ctrl+Alt+R, Ctrl+Alt+KCopy the selection in a row, around an axis, or in a 3D grid of up to 1,000 copies per part; press Apply. Each array is one undo step.
PathCtrl+Alt+HClick two or more points, then apply: copies spaced evenly along the path, optionally turned to follow it
Advanced
Arrays copy the selection at Apply

Clicks in the viewport still change the selection while a tool is armed, and the array tools read the selection only when you press Apply. Select what you want copied, arm the tool, and set its options in the panel without clicking in the viewport.

05Undo and History

Undo and Redo

Every edit that changes the Space becomes one step on a single history: moves, rotations and resizes, property edits, attributes and tags, inserts, deletes, reparenting, grouping and CAD edits. Ctrl+Z undoes the newest step and Ctrl+Y (or Ctrl+Shift+Z) redoes it; the History group on the Home tab has the same two buttons. Making a new edit after an undo discards the steps you could have redone.

Delete moves the object's folder into the Space's .eustress/trash folder, and undo moves it back. A few changes happen outside the history and cannot be undone: objects a command-bar script creates, labels removed with the MindSpace Remove button, Material Flip, and clearing terrain.

The History Panel

The History tab in the right panel lists every step with an icon for its kind. A blue bar marks the current step, and steps you have undone are dimmed. Click a row to jump there: Studio undoes or redoes until that step is the newest one applied. Right-click a row for two more commands:

CommandWhat it does
Undo This ... ChangeReverses that one step and removes it from the list; every other step stays applied. This cannot be redone.
Revert to HereUndoes every step after that row and keeps the row itself. The undone steps stay in the list, so Redo brings them back until you make a new edit.

The same steps are published as they happen on the engine's in-process stream, one topic per kind, so tools and agents can follow the edit history without reading the panel:

history.move
{"seq":42,"kind":"move","topic":"history.move","description":"Move Part","label":null}

Timeline

The Timeline shares the bottom region with Output: click Timeline in the Output toolbar to switch to it, and Output to switch back. It lays events out along time, in rows by tag. Today it records one kind of event: each time a Smart Build or array tool commits, a yellow diamond keyframe labeled with the tool's name. The session's last 2,048 events are kept in memory.

06Shortcuts and Saving

Keyboard Shortcuts

Every shortcut can be rebound. Open File > Keyboard Shortcuts... or the Keys button in the Home tab's Utils group. The dialog lists the actions in groups (File, Edit, Tools, Smart Build Tools, Solid Modelling, Panels, Camera, Snapping and Placement, Simulation, Network) with the chord each one uses.

  1. Click a row. Its key cell changes to Press a key….
  2. Press the new chord, with any of Ctrl, Alt and Shift. Esc cancels.
  3. If another action already owns that chord, the dialog refuses and names the owner, so two actions never share one key.

The Preset row replaces the whole map in one click. Eustress is the default map and the way back to it after hand edits. Roblox Studio keeps it but moves the chords that differ: the tools go to Shift+1 through Shift+4, F8 runs, Shift+F5 stops, and Ctrl+Shift+P filters Properties while Publish Space moves to Ctrl+Alt+Shift+P. Once you rebind a key by hand, the dialog shows custom (edited by hand).

A few actions also answer to a second chord that the dialog does not show: Redo to Ctrl+Shift+Z and Select Descendants to Ctrl+Shift+D. Your map is saved to ~/.eustress_engine/keybindings.ron; actions added in later versions get their default keys without touching your changes.

Default Keys

The Eustress keymap. Shortcuts never fire while you type in a text field.

KeysAction
Alt+Z, Alt+X, Alt+C, Alt+VSelect, Move, Scale, Rotate tool
Ctrl+LSwitch the tools between world and local axes
Ctrl+Z, Ctrl+Y or Ctrl+Shift+ZUndo, redo
Ctrl+C, Ctrl+X, Ctrl+VCopy, cut, paste
Ctrl+Shift+VPaste into the selected object
Ctrl+D, DeleteDuplicate, delete
Ctrl+IInsert Object
Ctrl+G, Ctrl+UGroup into a Model, ungroup
Ctrl+A, Ctrl+Shift+ISelect all, invert the selection
Ctrl+Alt+V, Ctrl+Alt+DSelect children, select descendants
Ctrl+Shift+U, Ctrl+Shift+ASelect parent, select siblings
Alt+A, Alt+L, Alt+Shift+LAnchor, lock, unlock the selection
1, 2, 3Snap 1 m, snap 0.2 m, snap off
-, =Lift one grid step, settle onto the surface below
Ctrl+R, Ctrl+TRotate 90 degrees about Y, tilt 90 degrees about Z
FFrame the selection
Ctrl+1, Ctrl+2, Ctrl+3Show or hide Explorer, Properties, Output
Ctrl+Shift+X, Ctrl+Shift+ESearch the Explorer, filter Properties
Ctrl+N, Ctrl+ONew Space, open a Space
Ctrl+S, Ctrl+Shift+SSave, Save As
F7, F5, F6, F8Run, Play, Pause, Stop (Esc also stops)

The Smart Build keys are in the next section's table, and the view keys are on the Perspective page.

Saving

Studio records edits as you make them in the Space's database, world.fjalldb: a simple part (a built-in shape with no children) keeps its edits there, and a part with children or a custom mesh also has its _instance.toml rewritten. Saving means taking a snapshot. Ctrl+S saves the scene the same database-first way, writes any terrain to disk, and commits the Space folder's files to git as manual save plus the time. An autosave commits every 5 minutes on its own. The database stays out of git, so edits that live only there are not in that history; the Universes page has the full table.

  • Unsaved: the badge in the menu bar appears once a step has been recorded since the last snapshot, manual or automatic. Undoing that step does not clear it; the next snapshot does.
  • File menu: shows No snapshot yet, Snapshot 14:32 or Autosaved 14:37.
  • Exit: closing the window or pressing Alt+F4 with unsaved edits opens Edits since the last snapshot. Snapshot & Exit saves before closing, and Skip closes without a snapshot. Your edits are kept in the Space either way; the snapshot only adds a git restore point.

07Modes

What a Mode Is

A Mode sets Studio up for a kind of work. It chooses which of the nine ribbon tabs show, the default layout preset, and optionally an accent color, and it can add tabs of its own and a menu of submodes. Pick one from the dropdown at the very left of the menu bar, before File. A mode with submodes, such as Engineering with its Mechanical, Electrical and other disciplines, expands into its submenu when you click it.

Ribbon tabWhat is on it
HomeFile, History, Clipboard, the four transform tools, Snap, World or Local space, Group, Lock and Anchor, Keys
ModelParts, structure, constraints, effects and lights to insert; see Building
DraftingSmart Build Tools, Align, Pattern and Boolean
DataData Platform tools, starting with importing a CSV, JSON or Parquet file as a Dataset and charting it
UIGUI containers, labels, buttons and layouts; see UI Systems
TerrainGenerate, sculpt and paint terrain
TestPlay and Pause
MindSpaceLabels on parts; see below
PluginsButtons added by Studio plugins; see Scripting

Twelve modes are built in: Gaming, Student, Business, Legal, AI, Civil, Engineering, Justice, Health, Military, Government and Public Sector. Engineering is the default and shows all nine tabs. The tabs a mode adds for its own discipline are a map of where Studio is going: the twelve manifests name 2,401 distinct tools, and about thirty of them (the insert, CAD, CSG, Data and procurement actions) run code today. The rest are labeled buttons that do nothing yet.

Your Own Mode

A mode is a TOML file and nothing else. Studio reads the built-in ones plus every .toml file in the Eustress/Modes folder of your local app data (%LOCALAPPDATA%\Eustress\Modes on Windows), creating the folder if it is missing. A file that does not parse is skipped with a warning; an unknown tab id is dropped.

Eustress/Modes/survey.toml
[mode]
id = "survey"
name = "Survey"
icon = "bridge"          # a named icon from the built-in list

[ribbon]
# Any of: home, model, cad, data, ui, terrain, test, mindspace, plugins
tabs = ["home", "model", "terrain", "data"]

[layout]
preset = "Building"      # Default | Scripting | Building | Minimal | Wide Panels

A mode can also add [[tabs]] with sections of tool buttons and [[submodes]], as the built-in manifests do. A tool button's id is sent through the same dispatch as the ribbon's own buttons, so an id Studio does not know makes a button that does nothing. A required-role hides a mode from anyone who does not hold that role.

MindSpace

MindSpace uses parts as the nodes of a spatial mind map: each node carries a text label, and a Beam can join two nodes. The MindSpace ribbon tab works on the selected part:

  • Add attaches a BillboardGui with a TextLabel to the first selected part, sized to the part, and writes it into the part's folder.
  • Remove deletes every label on the selected part. The label folders are deleted outright, not moved to the trash.
  • F2 with the cursor over the viewport opens the Edit Text dialog for the selected part's first label.

Dragging a labeled part behaves differently from dragging a plain part. Instead of sliding across surfaces, the node stays at a fixed distance from the camera and follows it, so you can fly with W A S D while carrying it; the mouse wheel changes that distance while you drag. Nodes joined to it by a Beam drift along to keep their distance, like a force-directed graph.

08What's Next

Panels and Tabs

  • Floating panels: the small button at the right of each side panel's tab bar will move that panel into a window of its own. Today it opens an empty placeholder window.
  • Timeline: markers will become clickable, and the watchpoint (orange dot) and breakpoint (red asterisk) markers the panel already draws will fill in as the simulation reports them.
  • Multi-selection: Properties will show how many objects are selected and mark values that differ between them.
  • MindSpace: Connect, Larger and Smaller, Import and Export, and the AI Tools group on the MindSpace tab will get working actions.

Tools

Several tools are written and waiting for a button or a key. The Measure tool will report distance, angle, area, volume and mass. Selection sets will save and restore named selections per Space. Lasso and paint selection, pivot modes for rotating a group, and smart alignment guides during a Move drag will follow, along with the discipline tools on each mode's own tabs.

A history you can rewind, a Space you can read, and keys you choose.

Loading Eustress Engine...