Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
RenderSettings
Inherits from: Instance → Object
RenderSettings is a singleton class which lets developers debug components of Roblox's graphics engine. It can be found in Roblox Studio's settings under the Rendering tab.
Inherits from: Instance
Memory category: Instances
Tags: NotCreatable, Service, NotReplicated, NotBrowsable
Properties
| Name | Type / Returns | Description |
|---|---|---|
| RenderSettings.AutoFRMLevel | int | Sets the starting quality level of the framerate manager. |
| RenderSettings.EagerBulkExecution | boolean | Whether all scene updates will be given an unlimited budget, regardless of how computationally expensive it may be. |
| RenderSettings.EditQualityLevel | QualityLevel | Sets the graphics quality level in Roblox Studio. |
| RenderSettings.Enable VR Mode | boolean | Toggles whether virtual reality (VR) mode is enabled. |
| RenderSettings.EnableFRM | boolean | Toggles the enabled state of the framerate manager. |
| RenderSettings.ExportMergeByMaterial | boolean | Sets whether materials should be generated per part, or per unique appearance in Roblox's exporter. |
| RenderSettings.FrameRateManager | FramerateManagerMode | Specifies the behavior of the framerate manager. |
| RenderSettings.GraphicsMode | GraphicsMode | The graphics API that Roblox will use on startup. |
| RenderSettings.MeshCacheSize | int | The size in bytes of the mesh cache. |
| RenderSettings.MeshPartDetailLevel | MeshPartDetailLevel | Studio only. Used to visually verify the quality of MeshParts at lower level of detail at close range. |
| RenderSettings.QualityLevel | QualityLevel | Controls the quality level in Roblox Studio. |
| RenderSettings.ReloadAssets | boolean | Whether Roblox Studio will automatically reload changes that are made to files in Roblox's content folder. |
| RenderSettings.RenderCSGTrianglesDebug | boolean | Whether a wireframe of polygons will be shown on all PartOperation objects. |
| RenderSettings.ShowBoundingBoxes | boolean | Whether bounding boxes are rendered around each individual rendered entity in the scene. |
| RenderSettings.ViewMode | ViewMode | Studio only. Selects a debug rendering visualization overlay for the viewport. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance.Archivable | boolean | Determines if an Instance and its descendants can be cloned using Instance:Clone(), and can be saved/published. |
| Instance.archivable | boolean | |
| Instance.Capabilities | SecurityCapabilities | The set of capabilities allowed to be used for scripts inside this container. |
| Instance.IsInSandbox | boolean | Indicates whether the instance is inside a sandboxed container. |
| Instance.Name | string | A non-unique identifier of the Instance. |
| Instance.Parent | Instance | Determines the hierarchical parent of the Instance. |
| Instance.PredictionMode | PredictionMode | Reflects the client-side prediction mode applied to the instance under server-authoritative physics. |
| Instance.RobloxLocked | boolean | A deprecated property that used to protect CoreGui objects. |
| Instance.Sandboxed | boolean | When enabled, the instance can only access abilities in its Capabilities list. |
| Instance.UniqueId | UniqueId | A unique identifier for the instance. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object.ClassName | string | A read-only string representing the class this Object belongs to. |
| Object.className | string |
RenderSettings.AutoFRMLevel
Sets the starting quality level of the framerate manager when EnableFRM is set to true.
| Field | Value |
|---|---|
| type | int |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | Debug |
| serialization | {"can_load":true,"can_save":true} |
RenderSettings.EagerBulkExecution
When set to true, all scene updates will be given an unlimited budget, regardless of how computationally expensive it may be. This ensures each frame will look as it should, at the cost of a more unstable frame rate.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | Performance |
| serialization | {"can_load":true,"can_save":true} |
RenderSettings.EditQualityLevel
Sets the graphics quality level in Roblox Studio when EnableFRM is set to false.
| Field | Value |
|---|---|
| type | QualityLevel |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | Performance |
| serialization | {"can_load":true,"can_save":true} |
RenderSettings.Enable VR Mode
When set to true, virtual reality (VR) mode is enabled. This property reflects the same underlying setting as UserGameSettings.VREnabled, so reading or writing it reads or writes that shared value. Defaults to false.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | General |
| serialization | {"can_load":true,"can_save":true} |
RenderSettings.EnableFRM
When set to true, the framerate manager (FRM) dynamically adjusts the rendering quality level during gameplay to maintain a stable framerate. When set to false, the quality level is fixed at RenderSettings.EditQualityLevel and no automatic adjustment occurs. Defaults to true.
The AutoFRMLevel property reports the current quality level that the FRM has assigned when this property is enabled.
| Field | Value |
|---|---|
| type | boolean |
| tags | ["Hidden","NotReplicated"] |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | Debug |
| serialization | {"can_load":true,"can_save":false} |
RenderSettings.ExportMergeByMaterial
Controls how materials are written during .obj export from Studio. When set to true, parts that share the same material appearance are merged into shared material definitions in the exported .obj file, reducing material count. When set to false, each part receives its own independent material definition. Defaults to false.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | General |
| serialization | {"can_load":true,"can_save":true} |
RenderSettings.FrameRateManager
Determines how the framerate manager (FRM) manages rendering quality using a FramerateManagerMode value. When set to FramerateManagerMode.Automatic, the engine decides whether to enable FRM quality adjustment based on context (typically enabled during gameplay). When set to FramerateManagerMode.On, the FRM is always active. When set to FramerateManagerMode.Off, the FRM does not adjust quality and block culling is forced to the lowest-quality distance setting. Defaults to FramerateManagerMode.Automatic.
| Field | Value |
|---|---|
| type | FramerateManagerMode |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | General |
| serialization | {"can_load":true,"can_save":true} |
RenderSettings.GraphicsMode
Determines which graphics rendering API Roblox uses on startup, specified as a GraphicsMode value. When set to GraphicsMode.Automatic, the engine selects the best available backend for the current platform. Available options are platform-dependent; for example, GraphicsMode.Metal is only available on macOS and GraphicsMode.Direct3D11 is only available on Windows. If an unsupported mode is selected, the engine silently falls back to GraphicsMode.Automatic. Defaults to GraphicsMode.Automatic.
Because the graphics API is initialized at startup, changing this property only takes effect after restarting Roblox Studio.
| Field | Value |
|---|---|
| type | GraphicsMode |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | General |
| serialization | {"can_load":true,"can_save":true} |
RenderSettings.MeshCacheSize
The size in bytes of the mesh cache. Defaults to 32 MiB.
| Field | Value |
|---|---|
| type | int |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | Cache |
| serialization | {"can_load":true,"can_save":true} |
RenderSettings.MeshPartDetailLevel
Determines the mode for the selection of detail levels for mesh parts. For a good balance between performance and fidelity, this should be set to MeshPartDetailLevel.DistanceBased (default), which is what the client uses.
Note that the MeshPart.RenderFidelity needs to be set to RenderFidelity.Automatic for this to work. If you set it to RenderFidelity.Precise, you will always see the higher resolution version and the MeshPartDetailLevel value will be ignored for that MeshPart.
| Field | Value |
|---|---|
| type | MeshPartDetailLevel |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | Debug |
| serialization | {"can_load":true,"can_save":true} |
RenderSettings.QualityLevel
If EnableFRM is set to true, this property controls the quality level in Roblox Studio.
| Field | Value |
|---|---|
| type | QualityLevel |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | Performance |
| serialization | {"can_load":true,"can_save":true} |
RenderSettings.ReloadAssets
When set to true, Roblox Studio will automatically reload changes that are made to files in Roblox's content folder.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | Debug |
| serialization | {"can_load":true,"can_save":true} |
RenderSettings.RenderCSGTrianglesDebug
When set to true, a wireframe of polygons will be shown on all PartOperation objects.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | Debug |
| serialization | {"can_load":true,"can_save":true} |
RenderSettings.ShowBoundingBoxes
If set to true, renders bounding boxes around each individual rendered entity in the scene.
| Field | Value |
|---|---|
| type | boolean |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | Debug |
| serialization | {"can_load":true,"can_save":true} |
RenderSettings.ViewMode
Studio only. Determines which debug rendering visualization is drawn over the viewport, using a value of ViewMode. Defaults to ViewMode.None, which disables the overlay. Other values enable overdraw visualizations for geometry complexity, transparency, or decals.
| Field | Value |
|---|---|
| type | ViewMode |
| security | {"read":"PluginSecurity","write":"PluginSecurity"} |
| thread safety | ReadSafe |
| category | Debug |
| serialization | {"can_load":true,"can_save":true} |
Methods
| Name | Type / Returns | Description |
|---|---|---|
| RenderSettings:GetMaxQualityLevel | int | Returns the maximum quality level. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance:AddTag | () | Applies a tag to the instance. |
| Instance:children | Instances | Returns an array of the object's children. |
| Instance:ClearAllChildren | () | This method destroys all of an instance's children. |
| Instance:Clone | Instance | Create a copy of an instance and all its descendants, ignoring instances that are not Archivable. |
| Instance:clone | Instance | |
| Instance:Destroy | () | Sets the Instance.Parent property to nil, locks the Instance.Parent property, disconnects all connections, and calls Destroy() on all children. |
| Instance:destroy | () | |
| Instance:FindFirstAncestor | Instance? | Returns the first ancestor of the Instance whose Instance.Name is equal to the given name. |
| Instance:FindFirstAncestorOfClass | Instance? | Returns the first ancestor of the Instance whose Object.ClassName is equal to the given className. |
| Instance:FindFirstAncestorWhichIsA | Instance? | Returns the first ancestor of the Instance for whom Object:IsA() returns true for the given className. |
| Instance:FindFirstChild | Instance? | Returns the first child of the Instance found with the given name. |
| Instance:findFirstChild | Instance | |
| Instance:FindFirstChildOfClass | Instance? | Returns the first child of the Instance whose ClassName is equal to the given class name. |
| Instance:FindFirstChildWhichIsA | Instance? | Returns the first child of the Instance for whom Object:IsA() returns true for the given className. |
| Instance:FindFirstDescendant | Instance? | Returns the first descendant found with the given Instance.Name. |
| Instance:GetActor | Actor? | Returns the Actor associated with the Instance, if any. |
| Instance:GetAttribute | Variant | Returns the value which has been assigned to the given attribute name. |
| Instance:GetAttributeChangedSignal | RBXScriptSignal | Returns an event that fires when the given attribute changes. |
| Instance:GetAttributes | Dictionary | Returns a dictionary of the instance's attributes. |
| Instance:GetChildren | Instances | Returns an array containing all of the instance's children. |
| Instance:getChildren | Instances | |
| Instance:GetDebugId | string | Returns a coded string of the debug ID used internally by Roblox. |
| Instance:GetDescendants | Instances | Returns an array containing all of the descendants of the instance. |
| Instance:GetFullName | string | Returns a string describing the instance's ancestry. |
| Instance:GetStyled | Variant | Returns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified. |
| Instance:GetStyledPropertyChangedSignal | RBXScriptSignal | Returns an event that fires when the given style property changes on the instance. |
| Instance:GetTags | Array | Gets an array of all tags applied to the instance. |
| Instance:HasTag | boolean | Check whether the instance has a given tag. |
| Instance:IsAncestorOf | boolean | Returns true if an Instance is an ancestor of the given descendant. |
| Instance:IsDescendantOf | boolean | Returns true if an Instance is a descendant of the given ancestor. |
| Instance:isDescendantOf | boolean | |
| Instance:IsPropertyModified | boolean | Returns true if the value stored in the specified property is not equal to the code-instantiated default. |
| Instance:QueryDescendants | Instances | Returns an array containing all descendants of the instance that match the selector string. |
| Instance:Remove | () | Sets the object's Parent to nil, and does the same for all its descendants. |
| Instance:remove | () | |
| Instance:RemoveTag | () | Removes a tag from the instance. |
| Instance:ResetPropertyToDefault | () | Resets a property to its default value. |
| Instance:SetAttribute | () | Sets the attribute with the given name to the given value. |
| Instance:WaitForChild | Instance | Returns the child of the Instance with the given name. If the child does not exist, it will yield the current thread until it does. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object:GetPropertyChangedSignal | RBXScriptSignal | Get an event that fires when a given property of the object changes. |
| Object:IsA | boolean | Returns true if an object's class matches or inherits from a given class. |
| Object:isA | boolean |
RenderSettings:GetMaxQualityLevel
Returns the total number of quality levels available in the rendering quality system. Quality levels are numbered from QualityLevel.Automatic (0) through QualityLevel.Level21 (21), so this method returns 22. Use GetMaxQualityLevel() - 1 to obtain the highest numeric quality level.
Returns
| Type | Description |
|---|---|
| int | The total number of quality levels available in the rendering system. |
| Field | Value |
|---|---|
| security | PluginSecurity |
| thread safety | Unsafe |
Events
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance.AncestryChanged | Fires when the Instance.Parent property of this object or one of its ancestors is changed. | |
| Instance.AttributeChanged | Fires whenever an attribute is changed on the Instance. | |
| Instance.ChildAdded | Fires after an object is parented to this Instance. | |
| Instance.childAdded | ||
| Instance.ChildRemoved | Fires after a child is removed from this Instance. | |
| Instance.DescendantAdded | Fires after a descendant is added to the Instance. | |
| Instance.DescendantRemoving | Fires immediately before a descendant of the Instance is removed. | |
| Instance.Destroying | Fires immediately before (or is deferred until after) the instance is destroyed via Instance:Destroy(). | |
| Instance.StyledPropertiesChanged | Fires whenever any style property is changed on the instance, including when a property is set to nil. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object.Changed | Fires immediately after a property of the object changes, with some limitations. |