GSmGpE6CwX2y9JjB25B8
We use cookies on this site to enhance your user experience

Developer Console

Developer Console

Oct 21 2019, 9:55 AM PST 5 min

When testing a game, it’s useful to see the output and errors it creates. When running in Roblox Studio, the Output window shows these messages, but when testing a live, running version of the game, 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-game 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.

Log

The Log section shows diagnostic messages from in-game 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 a game 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 game’s 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() statements in the game's scripts.
Information Messages generated by the game 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 the game’s 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.

Memory

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 a game’s 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 a game is built.
  • UntrackedMemory — Arbitrary memory allocations that are not tagged.

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 (including players), 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

Network

This section reveals how many web calls a game makes 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 game’s 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: