Developer Console

Developer Console

5 min

When testing an experience, it’s useful to see the output and errors it creates. Within Studio, the Output window shows these basic messages, but when testing a live, running version, output messages and many other details should be accessed using the developer console.

Opening the Console

Depending on the platform, the developer console can be opened as follows:

Platform Method
Windows / Mac Press the F9 key.
Mobile (phone or tablet) Type /console into the chat or open the console from the in-experience Settings menu.

Console Sections

At the top of the console is a shortcut bar which shows the number of critical errors and warnings, client memory usage, and average ping time. Clicking any of these items will show the relevant details in the console.

Below the shortcut bar are a series of tabs, the most informative being Log, Memory, and Network.


The Log section shows diagnostic messages from scripts, classified by either Client or Server.

  • Output from LocalScript|LocalScripts running on the client appear in the LogClient section of the console. Anyone running an experience can view these local output messages.
  • Output from Script|Scripts running on Roblox’s servers appear in the LogServer section of the console. Only the experience owner or group members with editing permission can access this section.

Output messages in the log can also be filtered by toggling the following checkboxes:

Output Messages generated by calls to print and warn statements within scripts.
Information Messages generated by the experience that aren't errors or custom output statements.
Warning Messages which indicate a potential problem but not a critical issue.
Error Messages which indicate that something critical has happened.

Finally, the LogServer section includes a command bar which lets editors run arbitrary Lua code. Note that this command bar has the same security restrictions as Script|Scripts and LocalScript|LocalScripts which means it is not the same as the command bar in Studio and it cannot run protected functions.


Models, terrain, parts, visual effects, scripts, physical contraptions, audio, and more can all contribute to total memory usage. The Memory section of the console displays metrics on memory usage.

Within the view, the total memory is separated into three categories:

  • CoreMemory — Memory used by processes built into the Roblox engine such as networking, avatars, GUI elements, etc.
  • PlaceMemory — Memory that scales as a direct result of choices made as an experience is built.
  • UntrackedMemory — Arbitrary memory allocations that are not tagged.
  • PlaceScriptMemory — Memory used by user Luau script threads; this section includes script names and custom memory tags.
  • CoreScriptMemory — Memory used by internal Roblox script threads.

PlaceMemory is separated into sub-categories. The following table provides a brief description of each sub-category and tips to reduce memory usage.

Category Description Memory Management Tips
HttpCache Assets (images, meshes, etc.) loaded from Roblox servers and now held in a cache in memory. Load fewer or smaller assets.
Instances Instances in the place. If possible, reduce the overall number of Instances (objects in the Explorer window).
Signals Signals that fire between Instances (an event firing on one Instance to trigger an event on another Instance). Use fewer event connections between Instances.
LuaHeap Heap memory for both core scripts (scripts that ship with the Roblox client) and custom scripts. Write memory-efficient scripts.
Script Lua Scripts. Use fewer or shorter scripts.
PhysicsCollision Collision data for physics simulations. If a part doesn’t need to move, set BasePart/Anchored|Anchored to true. If a part never needs to collide with anything, set BasePart/CanCollide|CanCollide to false.
PhysicsParts Physics geometry and kinetics. Use simpler, smaller, or fewer parts.
GraphicsSolidModels Graphics data to render articles/3D Modeling with Parts|solid models. Use fewer/simpler solid models or set their enum/RenderFidelity to Automatic.
GraphicsMeshParts Graphics for MeshPart|MeshParts. Use fewer or simpler articles/Mesh Parts|meshes.
GraphicsParticles Graphics for particle systems. Use fewer particle systems or produce fewer particles with shorter lifespans.
GraphicsParts Graphics for parts. Use fewer or simpler parts.
GraphicsSpatialHash General rendering. Use fewer parts, particles, and lights — essentially, anything that contributes to rendering.
GraphicsTerrain Graphics for terrain. Use less terrain.
GraphicsTexture Texture memory. Use fewer or smaller textures.
GraphicsTextureCharacter Texture memory for characters. Use fewer unique character appearances.
Sounds In-memory sounds. Use fewer or smaller sounds.
StreamingSounds Streaming sounds. Use fewer streaming sounds.
TerrainVoxels Terrain voxels. Use less terrain.
TerrainPhysics Terrain physics. For objects close to terrain, set BasePart/CanCollide|CanCollide to false and/or BasePart/Anchored|Anchored to true.
Gui Memory used by common GUI elements. Reduce or optimize your GUI instance usage.
Animation Memory used for animation data (poses and KeyframeSequence cached data); usually avatar animations. Use fewer distinct animations and optimize animations if possible.
Navigation Memory used by supporting structures for PathfindingService. Optimize usage and make fewer calls to PathfindingService


This section reveals how many web calls are made while running, including both explicit calls made through HttpService and web requests made by Roblox services like DataStoreService.

Near the top is a Summary of the web calls, organized by type. Each type includes details on how many times it was requested, how many requests failed, and time statistics.

Below the summary is a Details section which lists every individual web call. Each line shows the HTTP method (GET, POST, etc.) along with the status code, time to execute, request type, and request URL. Clicking on any row in the list shows the response details, for instance:

  • coding
  • errors
  • console