10 min read

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

NameType / ReturnsDescription
RenderSettings.AutoFRMLevelintSets the starting quality level of the framerate manager.
RenderSettings.EagerBulkExecutionbooleanWhether all scene updates will be given an unlimited budget, regardless of how computationally expensive it may be.
RenderSettings.EditQualityLevelQualityLevelSets the graphics quality level in Roblox Studio.
RenderSettings.Enable VR ModebooleanToggles whether virtual reality (VR) mode is enabled.
RenderSettings.EnableFRMbooleanToggles the enabled state of the framerate manager.
RenderSettings.ExportMergeByMaterialbooleanSets whether materials should be generated per part, or per unique appearance in Roblox's exporter.
RenderSettings.FrameRateManagerFramerateManagerModeSpecifies the behavior of the framerate manager.
RenderSettings.GraphicsModeGraphicsModeThe graphics API that Roblox will use on startup.
RenderSettings.MeshCacheSizeintThe size in bytes of the mesh cache.
RenderSettings.MeshPartDetailLevelMeshPartDetailLevelStudio only. Used to visually verify the quality of MeshParts at lower level of detail at close range.
RenderSettings.QualityLevelQualityLevelControls the quality level in Roblox Studio.
RenderSettings.ReloadAssetsbooleanWhether Roblox Studio will automatically reload changes that are made to files in Roblox's content folder.
RenderSettings.RenderCSGTrianglesDebugbooleanWhether a wireframe of polygons will be shown on all PartOperation objects.
RenderSettings.ShowBoundingBoxesbooleanWhether bounding boxes are rendered around each individual rendered entity in the scene.
RenderSettings.ViewModeViewModeStudio only. Selects a debug rendering visualization overlay for the viewport.

Inherited from Instance

NameType / ReturnsDescription
Instance.ArchivablebooleanDetermines if an Instance and its descendants can be cloned using Instance:Clone(), and can be saved/published.
Instance.archivableboolean
Instance.CapabilitiesSecurityCapabilitiesThe set of capabilities allowed to be used for scripts inside this container.
Instance.IsInSandboxbooleanIndicates whether the instance is inside a sandboxed container.
Instance.NamestringA non-unique identifier of the Instance.
Instance.ParentInstanceDetermines the hierarchical parent of the Instance.
Instance.PredictionModePredictionModeReflects the client-side prediction mode applied to the instance under server-authoritative physics.
Instance.RobloxLockedbooleanA deprecated property that used to protect CoreGui objects.
Instance.SandboxedbooleanWhen enabled, the instance can only access abilities in its Capabilities list.
Instance.UniqueIdUniqueIdA unique identifier for the instance.

Inherited from Object

NameType / ReturnsDescription
Object.ClassNamestringA read-only string representing the class this Object belongs to.
Object.classNamestring

RenderSettings.AutoFRMLevel

Sets the starting quality level of the framerate manager when EnableFRM is set to true.

FieldValue
typeint
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryDebug
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.

FieldValue
typeboolean
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryPerformance
serialization{"can_load":true,"can_save":true}

RenderSettings.EditQualityLevel

Sets the graphics quality level in Roblox Studio when EnableFRM is set to false.

FieldValue
typeQualityLevel
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryPerformance
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.

FieldValue
typeboolean
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryGeneral
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.

FieldValue
typeboolean
tags["Hidden","NotReplicated"]
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryDebug
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.

FieldValue
typeboolean
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryGeneral
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.

FieldValue
typeFramerateManagerMode
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryGeneral
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.

FieldValue
typeGraphicsMode
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryGeneral
serialization{"can_load":true,"can_save":true}

RenderSettings.MeshCacheSize

The size in bytes of the mesh cache. Defaults to 32 MiB.

FieldValue
typeint
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryCache
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.

FieldValue
typeMeshPartDetailLevel
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryDebug
serialization{"can_load":true,"can_save":true}

RenderSettings.QualityLevel

If EnableFRM is set to true, this property controls the quality level in Roblox Studio.

FieldValue
typeQualityLevel
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryPerformance
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.

FieldValue
typeboolean
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryDebug
serialization{"can_load":true,"can_save":true}

RenderSettings.RenderCSGTrianglesDebug

When set to true, a wireframe of polygons will be shown on all PartOperation objects.

FieldValue
typeboolean
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryDebug
serialization{"can_load":true,"can_save":true}

RenderSettings.ShowBoundingBoxes

If set to true, renders bounding boxes around each individual rendered entity in the scene.

FieldValue
typeboolean
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryDebug
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.

FieldValue
typeViewMode
security{"read":"PluginSecurity","write":"PluginSecurity"}
thread safetyReadSafe
categoryDebug
serialization{"can_load":true,"can_save":true}

Methods

NameType / ReturnsDescription
RenderSettings:GetMaxQualityLevelintReturns the maximum quality level.

Inherited from Instance

NameType / ReturnsDescription
Instance:AddTag()Applies a tag to the instance.
Instance:childrenInstancesReturns an array of the object's children.
Instance:ClearAllChildren()This method destroys all of an instance's children.
Instance:CloneInstanceCreate a copy of an instance and all its descendants, ignoring instances that are not Archivable.
Instance:cloneInstance
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:FindFirstAncestorInstance?Returns the first ancestor of the Instance whose Instance.Name is equal to the given name.
Instance:FindFirstAncestorOfClassInstance?Returns the first ancestor of the Instance whose Object.ClassName is equal to the given className.
Instance:FindFirstAncestorWhichIsAInstance?Returns the first ancestor of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstChildInstance?Returns the first child of the Instance found with the given name.
Instance:findFirstChildInstance
Instance:FindFirstChildOfClassInstance?Returns the first child of the Instance whose ClassName is equal to the given class name.
Instance:FindFirstChildWhichIsAInstance?Returns the first child of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstDescendantInstance?Returns the first descendant found with the given Instance.Name.
Instance:GetActorActor?Returns the Actor associated with the Instance, if any.
Instance:GetAttributeVariantReturns the value which has been assigned to the given attribute name.
Instance:GetAttributeChangedSignalRBXScriptSignalReturns an event that fires when the given attribute changes.
Instance:GetAttributesDictionaryReturns a dictionary of the instance's attributes.
Instance:GetChildrenInstancesReturns an array containing all of the instance's children.
Instance:getChildrenInstances
Instance:GetDebugIdstringReturns a coded string of the debug ID used internally by Roblox.
Instance:GetDescendantsInstancesReturns an array containing all of the descendants of the instance.
Instance:GetFullNamestringReturns a string describing the instance's ancestry.
Instance:GetStyledVariantReturns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified.
Instance:GetStyledPropertyChangedSignalRBXScriptSignalReturns an event that fires when the given style property changes on the instance.
Instance:GetTagsArrayGets an array of all tags applied to the instance.
Instance:HasTagbooleanCheck whether the instance has a given tag.
Instance:IsAncestorOfbooleanReturns true if an Instance is an ancestor of the given descendant.
Instance:IsDescendantOfbooleanReturns true if an Instance is a descendant of the given ancestor.
Instance:isDescendantOfboolean
Instance:IsPropertyModifiedbooleanReturns true if the value stored in the specified property is not equal to the code-instantiated default.
Instance:QueryDescendantsInstancesReturns 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:WaitForChildInstanceReturns 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

NameType / ReturnsDescription
Object:GetPropertyChangedSignalRBXScriptSignalGet an event that fires when a given property of the object changes.
Object:IsAbooleanReturns true if an object's class matches or inherits from a given class.
Object:isAboolean

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

TypeDescription
intThe total number of quality levels available in the rendering system.
FieldValue
securityPluginSecurity
thread safetyUnsafe

Events

Inherited from Instance

NameType / ReturnsDescription
Instance.AncestryChangedFires when the Instance.Parent property of this object or one of its ancestors is changed.
Instance.AttributeChangedFires whenever an attribute is changed on the Instance.
Instance.ChildAddedFires after an object is parented to this Instance.
Instance.childAdded
Instance.ChildRemovedFires after a child is removed from this Instance.
Instance.DescendantAddedFires after a descendant is added to the Instance.
Instance.DescendantRemovingFires immediately before a descendant of the Instance is removed.
Instance.DestroyingFires immediately before (or is deferred until after) the instance is destroyed via Instance:Destroy().
Instance.StyledPropertiesChangedFires whenever any style property is changed on the instance, including when a property is set to nil.

Inherited from Object

NameType / ReturnsDescription
Object.ChangedFires immediately after a property of the object changes, with some limitations.