| title | description |
|---|---|
Studio interface |
User interface overview for Roblox Studio, the essential building tool for Roblox experiences. |
import BetaAlert from '../includes/beta-features/beta-alert.md'
The toolbar resides at the top of Studio. The buttons and tools visible in the bar change when you click on the Home, Model, Avatar, Test, View, and Plugins tabs.
The [Home](../studio/home-tab.md) tab contains basic tools for manipulating 3D objects and testing your experience. The [Model](../studio/model-tab.md) tab contains tools for manipulating 3D objects in the workspace, creating detailed models, working with physical constraints, and adding advanced objects. The [Avatar](../studio/avatar-tab.md) tab contains specialized tools for creating and fitting accessories, importing custom meshes, building default rigs, and creating animations. The [Test](../studio/test-tab.md) tab contains tools for testing an experience, simulating multiple clients, and emulating different devices. The [View](../studio/view-tab.md) tab lets you toggle the various windows of Studio, as well as several display features. The [Plugins](../studio/plugins-tab.md) tab contains tools for managing [plugins](../studio/plugins.md), configuring localization, and creating animations. Any plugins you install can also add buttons to this tab.The 3D viewport represents the Class.Workspace of a place. From here, you can move the camera around the virtual world, manipulate objects with the mouse, and playtest an experience without leaving Studio.
Inside the viewport, you can move the camera with the following controls. See also Studio shortcuts for additional key shortcuts.
| Keys/Shortcuts | Action |
|---|---|
| W A S D | Moves the camera forward/left/back/right. |
| Q E | Moves the camera down/up. |
| Shift | In combination with any movement key, changes the camera speed. If desired, you can [customize](../studio/setup.md#customization) the camera speed within Studio's settings. |
| F | Focuses the camera on a selected part. |
| **Right Mouse Button** | When pressed, dragging the mouse moves the camera view around. |
| **Mouse Scroll Wheel** | Zooms the camera in or out. |
| **Middle Mouse Button** | When pressed, dragging the mouse pans the camera. |
| **Right Mouse Button** & **Mouse Scroll Wheel** | Pressing the right mouse button and scrolling the mouse wheel **up** increases the camera scroll speed. Conversely, pressing the right mouse button and scrolling the mouse wheel **down** reduces the camera scroll speed.Camera scroll speed is also adjustable from the [visualization options](#visualization-options) menu in the upper‑right corner of the 3D viewport. |
As you hover over parts and models in the viewport, they are outlined to indicate their potential selection. You can select an outlined object by clicking it, or you can select multiple objects by holding Shift, Ctrl, or ⌘ as you hover over and click them.
In more complex environments or when zoomed in, objects will commonly be hidden from your view by other objects in front. To select hidden objects without moving the camera around, hold Alt or ⌥ and click to perform selection cycling to the next further object behind the currently selected object.
Selection cyclingWhen one or more objects or models are selected in the Explorer window, you can select all of their children by right-clicking and choosing Select Children from the context menu. Similarly, right-clicking and choosing Select Parent(s) selects the direct parents of those objects.
To display outlines and/or bounding boxes around selected objects, choose an option from the Selection Style menu in the View tab.
In the upper-right corner of the 3D viewport, you can quickly toggle or set common visualization options related to on‑screen UI overlays, light sources, physics simulation, character pathfinding, and more. The menu also contains a control for viewing/setting the camera scroll speed.
You can toggle on commonly used windows through the View tab, including the Explorer window, Properties window, Asset Manager, Toolbox, and many others.
The Explorer window, visible by default, shows a hierarchical list of every object and service inside the place, collectively referred to as its data model. Frequently used services in the hierarchy include Class.Workspace which mirrors the 3D viewport, as well as Class.ReplicatedStorage and Class.ServerStorage.
The Properties window lets you adjust properties of a selected object to change how it looks and behaves. Object properties are divided into sections; for example, a Class.MeshPart includes sections like Appearance which allows you to change its color, material, transparency, and more.
At the bottom of the window, you can define custom attributes for an object, similar to its default properties. Attributes and their values are saved with your place/assets and they're an ideal way for team members to experiment with different values during runtime, even if they don't understand the underlying code.
The Asset Manager lets you manage places, images, meshes, audio, and more. It also provides a mechanism to bulk import large groups of assets.
The Toolbox contains a selection of models, images, meshes, audio, plugins, videos, and fonts made by Roblox or Roblox community members. It also includes all of the creations that you've personally distributed on the Creator Store or those which were distributed by groups you belong to.
The Output window, accessible from the View tab, displays errors captured from running scripts, messages from Roblox Engine, messages from calls to print(), and errors from calls to warn().
The Command Bar, accessible from the View tab, lets you execute Luau code outside of scripts. Similar to a terminal, pressing ↑ or ↓ while using the command bar navigates up and down among previously-executed commands. Clicking the small arrow on the right side similarly reveals a list of previously-executed commands.
Studio's drag-and-drop interface lets you easily customize window layout to best suit your workflows.
You can reposition any window by click-dragging its header bar. As you begin dragging the window, the interface reveals empty docking area regions. If you drag the mouse pointer into any empty region, a floating position selector appears in that region. Dragging the pointer over the "center" of the floating selector targets the empty region as the dragged window's destination, indicated by the region darkening and becoming outlined.
Mouse pointer hovering over the "center" icon of the position selector in an empty docking areaIf you drag the mouse pointer into a populated region such as the 3D viewport, a floating position selector appears with multiple options for the window's destination. For example, dragging the pointer over the "left" icon will position the window on the region's left side.
If you drag a window into a populated region and choose the "center" icon of the position selector, the dragged window will group into that region as a tab. This allows you to set up tab groups of commonly used windows.
Three windows grouped together as tabsTo maximize screen space for the 3D viewport, you can pin windows (or an entire group of windows) to the edges of the overall Studio window. Once pinned, you can temporarily open any window by clicking its tab — this does not disturb other windows, and the expanded window will automatically collapse when you click in another window or click its tab again.
Three windows pinned to the right side of the Studio windowTo pin a window or an entire group of windows, click the "collapse" button. Alternatively, to un‑pin a pinned window/group, open it by clicking its tab, then click the "expand" button.
To float a window freely of other windows, simply drag‑and‑drop it without selecting any icon from the floating position selector.
Studio offers a suite of options for testing an experience before releasing it to the public. All of the testing options are accessible from the Test tab.
- Rapid paytesting — Provides a close simulation of the experience running on the Roblox application.
- Multi-client simulation — Compares how each client "sees" other clients within the experience.
- Device emulation — Provides insight on how controls operate on a mobile device or how on-screen UI displays on different screens and aspect ratios.
- Controller emulation — Accurately emulates gamepad input directly in Studio.
See Studio testing modes for more information on each testing option.
The next-gen Studio toolbar introduces a wide array of improvements and optimizations, including cleaner appearance, customizable tabs with your own tool collections, and the ability to show/hide tabs as desired. The following tables map the previous Studio toolbar workflows to next‑gen equivalents.
| Action/Tool | Legacy Workflow(s) | New Workflow(s) |
|---|---|---|
| Notifications | Right side of mezzanine bar | |
| Online Help | Right side of mezzanine bar or **File** menu | Application's **Help** menu |
| Share | Right side of mezzanine bar | |
| [Assistant](../assistant/guide.md) | Right side of mezzanine bar or **View** tab | Right side of mezzanine bar |
| Account Menu | Right side of mezzanine bar | |
| [Studio Settings](./setup.md#customization) | **File** menu | Windows: **File** menu ⟩ **Studio Settings** macOS: Application's main menu ⟩ **Studio Settings** |
| Beta Features | **File** menu | Application's **File** menu ⟩ **Beta Features** |
| Save to Roblox / As… | **File** menu | Application's **File** menu ⟩ **Save to Roblox** / **As…** |
| Publish to Roblox / As… | **File** menu | Application's **File** menu ⟩ **Publish to Roblox** / **As…** |
| [Explorer](./explorer.md) | **View** tab | 🄐 **Home** tab ⟩ **Explorer** 🄑 Application's **Window** menu ⟩ **Explorer** |
| [Properties](./properties.md) | **View** tab | 🄐 **Home** tab ⟩ **Properties** 🄑 Application's **Window** menu ⟩ **Properties** |
| [Asset Manager](../projects/assets/manager.md) | **View** tab | 🄐 **Home** tab ⟩ **Asset Manager** 🄑 Application's **Window** menu ⟩ **Asset Manager** |
| [Toolbox](../projects/assets/toolbox.md) | **View** tab | 🄐 **Home** tab ⟩ **Toolbox** 🄑 Application's **Window** menu ⟩ **Toolbox** |
| [Terrain Editor](./terrain-editor.md) | **Home** or **View** tab | Application's **Window** menu ⟩ **3D** ⟩ **Terrain** |
| [Output](./output.md) | **View** tab | 🄐 Application's **Window** menu ⟩ **Output** 🄑 **Script** tab ⟩ **Output** |
| [Game Settings](./game-settings.md) | **File** menu or **Home** tab | Application's **File** menu ⟩ **Game Settings** |
| [Avatar Settings](./avatar-settings.md) | **File** menu or **Avatar** tab | 🄐 **Avatar** tab ⟩ **Avatar Settings** 🄑 Application's **File** menu ⟩ **Avatar Settings** |
| [Command Bar](#command-bar) | **View** tab | 🄐 Application's **Window** menu ⟩ **Script** ⟩ **Command Bar** 🄑 **Script** tab ⟩ **Command** |
| [Manage Plugins](./plugins-tab.md#manage-plugins) | **Plugins** tab | Application's **Plugins** menu ⟩ **Manage Plugins** |
| Plugins Folder | **Plugins** tab | Application's **Plugins** menu ⟩ **Plugins Folder** |
| Tools (Localization) | **Plugins** tab | Application's **Window** menu ⟩ **Localization** ⟩ **Localization Tool** |
| Object Browser | **View** tab | Application's **Window** menu ⟩ **Script** ⟩ **Object Browser** |
| Tag Editor | **View** tab | Application's **Window** menu ⟩ **Script** ⟩ **Tag Editor** |
| Action/Tool | Legacy Workflow(s) | New Workflow(s) |
|---|---|---|
| Copy, Cut, Paste, Duplicate | **Home** tab | Application's **Edit** menu |
| Select, Move, Scale, Rotate, Transform | **Home**, **Model**, or **Avatar** tab | |
| Mode picker (geometric vs. physical) | **Home**, **Model**, or **Avatar** tab | |
| Collisions & Join Surfaces toggles | **Home**, **Model**, or **Avatar** tab | **Home**, **Model**, or **Avatar** tab ⟩ Mode picker ⟩ Options in popup menu |
| Rotate/Move snapping and increments | **Model** or **Avatar** tab | **Home**, **Model**, or **Avatar** tab |
| [Part pick/insert](../parts/index.md#insert-parts) | **Home** or **Model** tab | |
| [Color pick/apply](../parts/index.md#hexagon-map) | **Home** or **Model** tab | |
| [Material pick/apply](../parts/materials.md#material-widget) | **Home** or **Model** tab | |
| [Material Manager](../parts/materials.md#material-manager) | **Home** or **Model** tab ⟩ Material picker dropdown ⟩ **Material Manager** | Application's **Window** menu ⟩ **3D** ⟩ **Material** |
| Group | **Home** or **Model** tab | 🄐 **Home** or **Model** tab ⟩ **Group** 🄑 Application's **Edit** menu ⟩ **Group** |
| Lock | **Home** or **Model** tab | 🄐 **Home** or **Model** tab ⟩ **Lock** 🄑 Application's **Edit** menu ⟩ **Lock** |
| Anchor | **Home** or **Model** tab | 🄐 **Home** or **Model** tab ⟩ **Anchor** 🄑 Application's **Edit** menu ⟩ **Anchor** |
| [Import 3D](../art/modeling/3d-importer.md) | **Home** or **Avatar** tab | 🄐 **Home** tab ⟩ **Import 3D** 🄑 Application's **File** menu ⟩ **Import 3D** |
| [Animation Editor](../animation/editor.md) | **Avatar** or **View** tab | 🄐 **Avatar** tab ⟩ **Animation** 🄑 Application's **Window** menu ⟩ **Avatar** ⟩ **Animation** |
| [Accessory Fitting Tool](../art/accessories/accessory-fitting-tool.md) | **Avatar** tab | 🄐 **Avatar** tab ⟩ **Accessory** 🄑 Application's **Window** menu ⟩ **Avatar** ⟩ **Accessory** |
| [Rig Builder](./rig-builder.md) | **Avatar** tab | **Home** or **Avatar** tab ⟩ **Character** |
| [Avatar Setup](../avatar-setup/index.md) | **Avatar** tab | 🄐 **Avatar** tab ⟩ **Setup** 🄑 Application's **Window** menu ⟩ **Avatar** ⟩ **Setup** |
| Show UI tools | **Home** tab | **UI** tab always present by default |
| [Pivot tools](./pivot-tools.md) | **Model** tab | |
| [Align tool](./align-tool.md) | **Model** tab | 🄐 **Model** tab ⟩ **Align** 🄑 Application's **Window** menu ⟩ **3D** ⟩ **Align** |
| [Material Generator](./material-generator.md) | **Home** or **Model** tab ⟩ Material picker dropdown ⟩ **Generate** | Application's **Window** menu ⟩ **3D** ⟩ **Material Generator** |
| [Solid modeling tools](../parts/solid-modeling.md) | **Model** tab | |
| [Constraint pick/insert](../physics/index.md#constraints) | **Model** tab | Three separate buttons in the **Model** tab for inserting an `Class.Attachment`, [mechanical](../physics/mover-constraints.md) or [mover](../physics/mechanical-constraints.md) constraint, `Class.WeldConstraint`, or `Class.NoCollisionConstraint` |
| Show Welds toggle | **Model** tab | Application's **View** menu ⟩ **Show Welds** |
| Show Constraint Details toggle | **Model** tab | Application's **View** menu ⟩ **Show Constraint Details** |
| [Effect pick/insert](../effects/index.md) | **Model** tab | |
| Spawn inserter | **Model** tab | — Use standard insertion methods to insert a `Class.SpawnLocation` |
| Advanced ⟩ Insert Object | **Model** tab | Application's **Window** menu ⟩ **Insert Object** |
| Advanced ⟩ Model | **Model** tab | — Use **File** menu ⟩ **Import 3D** |
| Advanced ⟩ Service | **Model** tab | Right‑click over any visible service in the [Explorer](./explorer.md) and select **Show Services…** from the context menu |
| Advanced ⟩ Collision Groups | **Model** tab | Application's **Window** menu ⟩ **3D** ⟩ **Collision Groups** |
| Advanced ⟩ Run Script | **Model** tab | Application's **Window** menu ⟩ **Script** ⟩ **Run Script** |
| Advanced ⟩ Script, Local Script, Module Script | **Model** tab | **Home** or **Script** tab ⟩ **Script** pick/insert |
| Action/Tool | Legacy Workflow(s) | New Workflow(s) |
|---|---|---|
| [Collaborate](../projects/collaboration.md) button | Right side of mezzanine bar | |
| [Manage Collaborators](../projects/collaboration.md#manage-collaborators) | Right side of mezzanine bar | 🄐 Right side of mezzanine bar 🄑 Application's **Window** menu ⟩ **Collaboration** ⟩ **Invite**/**Manage** **Collaborators** |
| [Live Collaborators](../projects/collaboration.md#view-collaborators) window | Right side of mezzanine bar | 🄐 Right side of mezzanine bar 🄑 Application's **Window** menu ⟩ **Collaboration** ⟩ **Live Collaborators** |
| [Comments](../projects/collaboration.md#comments) window | **View** tab | Application's **Window** menu ⟩ **Collaboration** ⟩ **Comments** |
| Create [comment](../projects/collaboration.md#create-comments) | Right side of mezzanine bar | |
| [Activity History](../projects/activity-history.md) | **View** tab | Application's **Window** menu ⟩ **Activity History** |
| Team Create | **View** tab | Application's **Window** menu ⟩ **Collaboration** ⟩ **Team Create** |
| Action/Tool | Legacy Workflow(s) | New Workflow(s) |
|---|---|---|
| Playtest mode | **Home** or **Test** tab | 🄐 Left side of mezzanine bar ⟩ Mode picker 🄑 Options in application's **Test** menu |
| Playtest buttons | **Home** or **Test** tab, or left side of mezzanine bar | 🄐 Left side of mezzanine bar 🄑 Options in application's **Test** menu |
| [Client/server toggle](./testing-modes.md#toggle-clientserver) | **Home** or **Test** tab | 🄐 Left side of mezzanine bar 🄑 Application's **Test** menu ⟩ **Client/Server** |
| [Pause/resume physics](./testing-modes.md#pause-and-resume-physics) | **Test** tab | Options appear contextually on the left side of mezzanine bar or within application's **Test** menu while playtesting |
| [Multi-client simulation](./testing-modes.md#multi-client-simulation) | **Test** tab | 🄐 Left side of mezzanine bar ⟩ Mode picker ⟩ **Server & Clients** 🄑 Application's **Test** menu ⟩ **Start Test Session** ⟩ **Server and Clients** |
| [Device Emulator](./testing-modes.md#device-emulation) | **Test** tab | Application's **Test** menu ⟩ **Device Emulator** |
| [Controller Emulator](./testing-modes.md#controller-emulation) | **Test** tab | Application's **Test** menu ⟩ **Controller Emulator** |
| [Player Emulator](./testing-modes.md#player-emulation) | **Test** tab | Application's **Test** menu ⟩ **Player Emulator** |
| View Selector | **View** tab | Application's **View** menu ⟩ **Show View Selector** |
| Grid visualization | **View** tab | Application's **View** menu ⟩ **Show Grid** & **Show Grid Material** |
| Wireframe Rendering | **View** tab | Application's **View** menu ⟩ **Show Wireframe Rendering** |
| UI Visibility | **View** tab | Application's **View** menu ⟩ **Show UI** |
| [Wind Direction](../environment/global-wind.md#wind-direction-widget) | **View** tab | Application's **View** menu ⟩ **Show Wind Direction** |
| [Selection Style](./ui-overview.md#object-selection) | **View** tab | Options in the **View** section of the [Visualization Options](#visualization-options) widget |
| Team Test | **Home** tab | Application's **Test** menu ⟩ **Start Test Session** ⟩ **Team Test** |
| Mute | **Test** tab | Application's **View** menu ⟩ **Mute** |
| Screen Shot | **View** tab | Application's **View** menu ⟩ **Screenshot** |
| Action/Tool | Legacy Workflow(s) | New Workflow(s) |
|---|---|---|
| Back, Fwd | **Script** tab | |
| Find/Replace (basic) | **Script** tab | **Script** tab ⟩ **Find** button popup ⟩ **Find…** |
| Find/Replace (advanced) | **Script** tab | 🄐 **Script** tab ⟩ **Find** button popup ⟩ **Find All** 🄑 Application's **Window** menu ⟩ **Script** ⟩ **Find All / Replace All** |
| Go to Line | **Script** tab | |
| Replace | **Script** tab | — Can be re‑added to a custom tab through **Add Tools** ⟩ **Replace** |
| Select | **Script** tab | — Tasks can be achieved through right‑click ⟩ **Select All** (CtrlA/⌘A) |
| Format Selection | **Script** tab | **Script** tab ⟩ **Format** |
| Step Into, Step Over, Step Out | **Script** tab | Buttons appear contextually on the left side of mezzanine bar or the application's **Test** menu when a breakpoint is hit |
| Error handling and other scripting actions | **Script** tab | Application's **Test** menu ⟩ **Debug Error** |
| Script Analysis | **View** tab | 🄐 Application's **Window** menu ⟩ **Script** ⟩ **Analysis** 🄑 **Script** tab ⟩ **Analysis** |
| Performance | **View** tab | Application's **Window** menu ⟩ **Performance** ⟩ **Performance** |
| Task Scheduler | **View** tab | Application's **Window** menu ⟩ **Script** ⟩ **Task Scheduler** |
| Script Performance | **View** tab | 🄐 Application's **Window** menu ⟩ **Script** ⟩ **Performance** 🄑 **Script** tab ⟩ **Performance** |
| Call Stack | **View** tab | 🄐 Application's **Window** menu ⟩ **Debug** ⟩ **Call Stack** 🄑 **Script** tab ⟩ **Call Stack** |
| Breakpoints | **View** tab | 🄐 Application's **Window** menu ⟩ **Debug** ⟩ **Breakpoints** 🄑 **Script** tab ⟩ **Breakpoints** |
| Watch | **View** tab | 🄐 Application's **Window** menu ⟩ **Debug** ⟩ **Watch** 🄑 **Script** tab ⟩ **Watch** |
| Stats, Render, Physics, Network, Summary | **View** tab | Application's **Window** menu ⟩ **Performance** |






















