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:
|Windows / Mac||Press the F9 key.|
|Mobile (phone or tablet)||Type
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 in-game scripts, classified by either Client or Server.
- Output from
LocalScript|LocalScriptsrunning on the client appear in the Log → Client section of the console. Anyone running a game can view these local output messages.
- Output from
Script|Scriptsrunning on Roblox’s servers appear in the Log → Server 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
|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 Log → Server 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
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 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.
Memory Management Tips »
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.|
||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
|PhysicsParts||Physics geometry and kinetics.||Use simpler, smaller, or fewer parts.|
|GraphicsSolidModels||Graphics data to render
||Use fewer/simpler solid models or set their
||Use fewer or simpler
|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
|Gui||Memory used by common GUI elements.||Reduce or optimize your GUI instance usage.|
|Animation||Memory used for animation data (poses and
||Use fewer distinct animations and optimize animations if possible.|
|Navigation||Memory used by supporting structures for
||Optimize usage and make fewer calls to
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
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: