Developer Console

The Developer Console is a tool for debugging your experience when testing in Studio or running it in production. It shows log messages and errors similar to the Output window and detailed information on Memory and Networking.

Opening the Developer Console

To open the Developer Console while testing or playing an experience, type /console into the chat or press F9. You can also use the in-experience settings:

  1. Open the in-experience Settings.
  2. Scroll down until you see Developer Console.
  3. Next to Developer Console, click Open.

Console Tabs

The shortcut bar at the top of the console shows the number of critical errors and warnings, client memory usage, and average ping time. Click any of these to jump to its corresponding tab in the console. Below the shortcut bar is a series of tabs, including Log, Memory, and Network.

Log

The Log tab shows diagnostic messages from scripts. It has two sections: Client and Server.

  • The Client section shows output from LocalScripts running on the client. Anyone running an experience can view these local output messages.
  • The Server section shows output from Scripts running on Roblox servers. Only the experience owner or group members with editing permission can access this section.

You can filter the output messages in the log using 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 that indicate a potential problem but not a critical issue.
Error Messages that indicate that something critical has happened.

Command Bar

The Server section has a Command Bar that lets users with editing permissions run arbitrary Luau code. This command bar has the same security restrictions as Script and LocalScript objects, so unlike the command bar in Studio, it can't run protected functions.

Memory

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

  • CoreMemory – Memory used by processes built into the Roblox engine such as networking, avatars, and GUI elements.
  • 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 section has sub-categories. The following table describes each sub-category and tips for reducing 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 to true. If a part never needs to collide with anything, set BasePart.CanCollide to false.
PhysicsParts Physics geometry and kinetics. Use simpler, smaller, or fewer parts.
GraphicsSolidModels Graphics data to render solid models. Use fewer/simpler solid models or set their RenderFidelity to Automatic.
GraphicsMeshParts Graphics for MeshPart objects. Use fewer or simpler 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, lights, and anything else 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 to false and/or BasePart.Anchored to true.
Gui Memory used by common GUI elements. Reduce or optimize your GUI instance usage.
Animation Memory used for animation data, such as poses and KeyframeSequence cached data for 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.

Network

The Network tab of the Developer Console shows the number of web calls that the experience has made. This includes explicit calls made through HttpService and web requests made by Roblox services like DataStoreService. The Network tab has two sections: Summary and Detail.

The Summary section lists a summary of all the web calls by type. Each type has details on the number of requests, the number of failed requests, and the amount of time that the request took.

The Details section lists each individual web call. Each row shows the HTTP method, such as GET or POST, along with the status code, time to execute, request type, and request URL. Click on web call to see its response details: