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:

OutputMessages generated by calls to print() and warn() statements within scripts.
InformationMessages generated by the experience that aren't errors or custom output statements.
WarningMessages that indicate a potential problem but not a critical issue.
ErrorMessages 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.

CategoryDescriptionMemory Management Tips
HttpCacheAssets (images, meshes, etc.) loaded from Roblox servers and now held in a cache in memory.Load fewer or smaller assets.
InstancesInstances in the place.If possible, reduce the overall number of Instances (objects in the Explorer window).
SignalsSignals that fire between Instances (an event firing on one Instance to trigger an event on another Instance).Use fewer event connections between Instances.
LuaHeapHeap memory for both core scripts (scripts that ship with the Roblox client) and custom scripts.Write memory-efficient scripts.
ScriptLua Scripts.Use fewer or shorter scripts.
PhysicsCollisionCollision 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.
PhysicsPartsPhysics geometry and kinetics.Use simpler, smaller, or fewer parts.
GraphicsSolidModelsGraphics data to render solid models.Use fewer/simpler solid models or set their RenderFidelity to Automatic.
GraphicsMeshPartsGraphics for MeshPart objects.Use fewer or simpler meshes.
GraphicsParticlesGraphics for particle systems.Use fewer particle systems or produce fewer particles with shorter lifespans.
GraphicsPartsGraphics for parts.Use fewer or simpler parts.
GraphicsSpatialHashGeneral rendering.Use fewer parts, particles, lights, and anything else that contributes to rendering.
GraphicsTerrainGraphics for terrain.Use less terrain.
GraphicsTextureTexture memory.Use fewer or smaller textures.
GraphicsTextureCharacterTexture memory for characters.Use fewer unique character appearances.
SoundsIn-memory sounds.Use fewer or smaller sounds.
StreamingSoundsStreaming sounds.Use fewer streaming sounds.
TerrainVoxelsTerrain voxels.Use less terrain.
TerrainPhysicsTerrain physics.For objects close to terrain, set BasePart.CanCollide to false and/or BasePart.Anchored to true.
GuiMemory used by common GUI elements.Reduce or optimize your GUI instance usage.
AnimationMemory used for animation data, such as poses and KeyframeSequence cached data for avatar animations.Use fewer distinct animations and optimize animations if possible.
NavigationMemory 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: