Studio testing modes

Because of the underlying client-server model of the Roblox Engine, it's important that you test your game in various modes before releasing it to the public. All of the testing options are accessible in the left portion of the mezzanine.

Testing controls indicated in Studio's mezzanine.

Playtesting

There are three common options for playtesting a game. Choose the desired option from the dropdown menu and click the Play button to its right to begin the playtest.

Test option in the testing modes dropdown of Studio's mezzanine.
ModeShortcutDescription
TestF5Starts simulating the game, inserting your avatar at either a SpawnLocation or coordinates of around (0, 100, 0).
Test HereStarts simulating the game, inserting your avatar in front of the camera's current position.
RunF8Starts simulating the game but does not insert your avatar. The simulation begins at the current camera position and you can navigate around using the Studio camera controls.

Once a playtest is running, additional options become available in the mezzanine.

Additional options available during a playtest from Studio's mezzanine.
ActionShortcutDescription
Pause / ResumeLets you pause/resume physics and animations.
StopShiftF5Stops simulation of the game and resets all objects and instances to how they were before the playtest.
Client / ServerDuring playtesting in a "solo" mode (Test or Test Here), toggles between Client mode and Server mode. See toggle client/server for details.

Toggle client/server

When testing in either Test or Test Here mode, Studio runs two separate simulations — one client simulation and one server simulation — which can provide a more accurate impression of how the game will execute in production.

While solo playtesting, you can toggle between Client and Server modes by clicking the Client/Server toggle button. When you toggle, the button changes to reflect the current simulation mode.

Client
Server

Depending on the simulation mode, control of your character and the camera changes as follows:

In Client mode, the 3D viewport is surrounded by a blue border and the simulation uses your character controls and camera setup. This testing mode is a close simulation of the game running on the Roblox application, without multiple players.

Within the Explorer window hierarchy, certain objects only exist in their expected containers.

Explorer window showing items that exist on client only
In Client mode, the expected client-side objects are present in the hierarchy, including those copied over from StarterPack to the player's Backpack and from StarterPlayer into the player's PlayerScripts.
Explorer window showing items that exist on server only
In Server mode, the expected server-side objects are present in the hierarchy, including scripts in ServerScriptService and objects you placed in ServerStorage.

In the Output window, messages are labeled blue (client) or green (server), indicating their origin from either the client or server. For messages output from ModuleScripts, the label color is determined by whether the module was called from a client-side LocalScript or from a server-side Script.

Output window showing green label for server output and blue label for client output

Pause/resume

While solo playtesting, the Pause/Resume button is useful for debugging ephemeral scenes and mechanisms, without disabling rendering.

Pause/Resume button indicated in Studio's mezzanine.

By default, pausing and resuming acts upon both the client and server. If you wish to pause or resume only the client or server:

  1. Set the client/server toggle based on which simulation you want to pause/resume.
  2. Click the small arrow on the Pause/Resume button and select the alternate option of Pause/Resume Client or Pause/Resume Server. Clicking the button will then pause or resume only that side of the simulation.

When the simulation is paused, you can step forward 1/60th of a second (60 Hz) by clicking the Step Forward button. Like the Pause/Resume button to its left, clicking the small arrow lets you select stepping for only the client or server based on the client/server toggle.

Step Forward button indicated in Studio's mezzanine.

Note the following technical details in relation to pause/resume:

Multi-client simulation

The Server & Clients option from the dropdown menu lets you launch multiple sessions of Studio, one acting as the server and each other acting as a client. This testing mode is a valuable tool for comparing how a client "sees" other clients within the game.

  1. With the Server & Clients option selected in the dropdown menu, choose the number of client sessions to test. Usually 1–2 clients is sufficient, although you can simulate up to eight.

    Server & Clients option in the testing modes dropdown of Studio's mezzanine.
  2. Press the Play button or F7 to begin the client-server simulation.

  3. When you're finished testing, press the End Session button from any of the simulation sessions to close all simulated clients and the simulated server.

    End Session indicated in Studio's mezzanine

Party simulation

The Party Simulator allows you to test and debug games that use party-related APIs directly within Studio, without needing to publish and coordinate multiple devices. This tool lets you configure and emulate parties for test players in your Server & Clients play tests.

When play testing, Party Simulator automatically assigns all test players to the configured simulated parties.

Party Emulator displaying simulated parties and various assignment options

If Party Simulator is enabled:

You can adjust the number of local test players at any time using Studio's Server & Clients setting. When the test player count changes, the emulator automatically updates to include or remove players in the configuration.

Collaborative testing

If you're working on a game with others in collaboration mode, you can test with other collaborators as follows:

  1. Select Team Test in the dropdown menu and press the Play button to open a new Studio session with your character inserted.

    Team Test option in the testing modes dropdown of Studio's mezzanine.
  2. Other collaborators can then join by pressing the Play button from the mezzanine in their Studio session.

Device emulation

The Device Emulator, accessible from Studio's Test menu, lets you emulate various devices directly in Studio, providing insight into how controls work on mobile devices, consoles, and VR headsets, as well as how on‑screen UI elements display on different screen resolutions and aspect ratios.

In emulation mode, you can select devices from the device selector dropdown menu above the 3D viewport to emulate less powerful devices and test streaming‑enabled games where 3D content dynamically loads and unloads based on available memory. You can also adjust the view size and change the orientation between landscape and portrait modes.

Emulation options above the 3D viewport

Touch simulation

Touch simulation is automatically enabled when a mobile device is selected in the Device Emulator. Both single‑touch and two‑touch gestures can be simulated by clicking and dragging with the mouse while playtesting. By default, mouse interactions will simulate single‑touch gestures.

Studio supports the following shortcuts for simulating two-touch gestures. Shortcuts can also be customized via Studio's Customize Shortcuts menu.

WindowsMacAction
AltWhen held down while dragging the mouse, simulates pinching and rotating.
AltShiftShiftWhen held down while dragging the mouse, simulates two-touch panning.

When a two-touch shortcut is active, two circles will appear, indicating where the simulated touches are positioned.

View of a multitouch gesture in the Device Emulator.

Controller simulation

The Controller Emulator, accessible from Studio's Test menu, lets you accurately emulate gamepad input directly in Studio. The default controller is a generic gamepad, but you can select alternatives from the upper‑left picker menu.

View of the generic controller in the Controller Emulator.

While playtesting, you can control the game with the virtual controller using your mouse.

You can also click Edit mappings in the upper‑right corner to view and edit key mappings for the virtual controller, for example E to ButtonL2 or 9 to ButtonA. These mappings are saved like other Studio settings (per controller, per user, per computer) and are translated to gamepad events in both the emulator window and the 3D viewport.

Network simulation

Network simulation, accessible from the Network tab of Studio Settings (AltS on Windows; S on Mac), allows you to simulate real-world network conditions like latency, packet loss, and jitter to playtest connections. This is particularly useful for testing games that use Server Authority since the prediction and rollback/resimulation mechanisms are sensitive to networking conditions. It is also useful for testing UnreliableRemoteEvents which may be lost or arrive out of order.

Network simulation settings are applied to all playtest connections, including Test, Server & Clients, and Team Test. Note that for Team Test, the latency and loss numbers are in addition to any latency and packet loss from your computer to Roblox's servers. For example, if your network ping in a team test is normally 20 milliseconds and you configure 50 milliseconds of delay in Studio's settings, you will see a ping of 70 milliseconds.

Studio SettingPropertyDescription
Min Inbound DelayInboundNetworkMinDelayMsAdds latency to playtest connections in the server‑to‑client direction.
Min Outbound DelayOutboundNetworkMinDelayMsAdds latency to playtest connections in the client‑to‑server direction.
Inbound JitterInboundNetworkJitterMsAdds jitter to playtest connections in the server‑to‑client direction.
Outbound JitterOutboundNetworkJitterMsAdds jitter to playtest connections in the client‑to‑server direction.
Inbound Packet LossInboundNetworkLossPercentSets the probability that packets on playtest connections from server to client are dropped.
Outbound Packet LossOutboundNetworkLossPercentSets the probability that packets on playtest connections from client to server are dropped.

In each of the above settings, the following concepts apply:

  • Inbound refers to traffic from server to client. Outbound is traffic from client to server.
  • Delay — Network ping is measured as round-trip time. To simulate 20 milliseconds network ping, set both Min Inbound Delay and Min Outbound Delay to 10 milliseconds.
  • Jitter — Jitter is added on top of any configured minimum delay. Jitter can cause some traffic, such as UnreliableRemoteEvents, to arrive out of order.
  • Precision — Per-packet delay sampled from delay and jitter is rounded to 1 millisecond.
  • Packet Loss — Each packet can be dropped randomly based on the configured probability.

Scripted testing

In addition to the interactive testing tools above, Studio exposes services that let you drive testing programmatically from a plugin or build pipeline. All three services are Studio-only and do nothing when run in a published experience.

ServicePurpose
StudioDeviceSimulatorServiceScriptable device emulation. Browse device presets, switch the active device, override resolution and DPI, control orientation and scaling, and create custom device profiles that persist to disk.
StudioTestServiceProgrammatic multi-client simulation. Start a server with up to 8 simulated clients, add players mid-session, pass arguments into the test, trigger client disconnects, and end tests from the server.
VirtualInputSimulated mouse, keyboard, and pointer events that are processed exactly like real hardware input. Obtain an instance from UserInputService:CreateVirtualInput().

These services enable include cross-device multiplayer testing (cycle through device profiles and launch a multiplayer test at each), player join/leave stress testing, orientation regression testing, and end-to-end UI flow automation.

VR headsets

If you'd like to support virtual reality (VR) headsets for your game, make sure to test or emulate VR in Studio.

VR emulation

VR emulation lets you test VR games in Studio without a physical headset. Just like emulating any other device, use the device selector menu to choose either Meta Quest 2 or Meta Quest 3. The controller emulator automatically selects the appropriate controller for the headset.

The Controller Emulator with a Quest 3 controller.
Emulator with a Quest 3 emulation.

The combination of a headset and multiple controllers, each with motion tracking, make VR emulation more complex:

  • For motion tracking emulation, press Alt1 (1) to lock the mouse to and unlock the mouse from the viewport.

  • Use Shift or Shift to switch between common combinations of the headset, left controller, and right controller. For example, you might use the Headset option to look around as you walk forward with the left controller button, but then switch to the Right Controller when you need to use motion controls to aim at a target.

Headset configuration

Studio supports testing for all VR headsets that are compatible with OpenXR, the open‑source industry standard providing access to VR.

To enable Studio testing in VR, you must connect your headset to your PC and configure the OpenXR runtime before launching Studio. If you've already launched Studio, quit and complete the configuration steps first.

If you only have one VR headset, installing the corresponding VR app automatically configures the runtime for you. If you have multiple headsets, you must set up the runtime manually and make sure to only configure the one that you want to use for testing.

The following steps are for the two most common VR apps:

  • SteamVR for headsets such as the HTC Vive and Valve Index.
  • Oculus for headsets such as the Meta Quest and Oculus Rift.
  1. Install and open the SteamVR app on your computer.
  2. Under SteamVR Settings, select the Developer tab. Then select Show Advanced Settings.
  3. Set SteamVR as OpenXR runtime.
  4. Turn the controllers on by pressing the System button until you hear a beeping sound.
    • To turn the controller off, press and hold the System button until you hear the same beeping sound.

If you follow the steps correctly, the status icons on the SteamVR app and the status lights on the hardware should all be green, indicating that the configuration is completed.

Roblox Quest app

You can test your game in the Roblox app on Quest without linking your headset to your computer. Use the following steps to access your game on your headset in this mode:

  1. In Studio, publish the game and set the game to private.
  2. Using your Creator Dashboard or the link in Studio, open the game page in your web browser.
  3. On the game page, add the game to your favorites by clicking the Favorite icon.
  4. Using your headset, open the standalone Roblox app.
  5. Scroll down to the Favorites section in the home page and run your game.

Studio VR mode

After configuring your headset, you can turn on the Studio VR testing mode through the following steps:

  1. In the File menu, select Studio Settings.
  2. Select Rendering.
  3. Under General settings, turn on Enable VR Mode.

You can now test your game using your VR headset using any of the available playtest options. During a VR testing session, if your headset cable disconnects or you close the Roblox Studio Beta app on the headset, you'll need to restart Studio to re-run testing.

Player emulation

For detailed emulation of game localization and content policies, you can test through the Player Emulator, accessible from Studio's Test menu.

With the emulator window open, toggle on Enable Test Profile. Emulation will remain as toggled (enabled or disabled) even if you close the window.

Lower down in the window, commonly used options include:

OptionDescription
LocaleLets you emulate a localized language while playtesting.
PseudolocalizeSwaps out characters with similar but slightly different characters so that it's easy to identify which strings are going through the translation system. Enabling this helps you identify unlocalized text without having to change the emulation language. For example:
  • Bloxy Cola  ⟩  ßℓôж¥ Çôℓá
  • Dominus Empyreus  ⟩  Ðô₥ïñúƨ É₥ƥ¥řèúƨ
ElongateElongates text strings by a factor defined via the slider. For example:
  • Bloxy Cola  ⟩  Bloooxyy Coolaa (50% longer)
  • Dominus Empyreus  ⟩  Doomiinuus Eempyyreus (30% longer)
Using elongation helps you identify places where your user interfaces might not be able to handle text that's longer than the default translated text. Note that Spanish is on average 30% longer than English and the equivalent for German is even longer. Also note that this only affects text that goes through the translation system.
RegionLets you emulate a player's country/region while playtesting; this selection may impact other toggles and checkboxes in the window as outlined in GetPolicyInfoForPlayerAsync().
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.