Roblox UtilitiesDevlHub Roblox Documentation

Class

UserGameSettings

NotCreatableServiceNotReplicated
Inherits
Instance › Object
Memory category
Instances

UserGameSettings is a singleton class found inside of the UserSettings singleton. It holds various persistent settings relating to how the user wants to control their camera, and their character.

UserGameSettings is a singleton class found inside of the UserSettings singleton. It holds various persistent settings relating to how the user wants to control their camera, and their character.

The properties on this class reflect both the user-facing options exposed in the in-game settings menu (such as graphics quality, master volume, camera and control modes) as well as other contextual user-configurable state that is not surfaced in the menu itself (such as internal onboarding progress, VR comfort options, window layout, and debug or profiling configuration). As a result, some properties listed here may not correspond to anything visible in the settings UI, and many are restricted to internal Roblox scripts.

You can access this object from a LocalScript via:

Luau
UserSettings():GetService("UserGameSettings")

This object is intended to be used on the client only, as it serves no purpose on the server. It will also reflect your own settings when testing in Roblox Studio.

Properties 38#

AllTutorialsDisabledbooleanIndicates whether all in-game tutorials have been disabled by the user.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
BadgeVisiblebooleanIndicates whether badge notifications are visible to the client.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
CameraModeCustomCameraModeThe custom camera mode currently in-use by the client.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
ChatVisiblebooleanIndicates whether the in-game chat is visible to the client.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
ComputerCameraMovementModeComputerCameraMovementModeThe camera movement mode currently in-use by the client on desktop.ReadSafe
ComputerMovementModeComputerMovementModeThe type of controls being used by the client on desktop.ReadSafe
ControlModeControlModeToggles whether or not the client can use the Mouse Lock Switch mode.ReadSafeDeprecated
FullscreenbooleanIndicates whether the client's window is currently in full screen mode.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
GamepadCameraSensitivityfloatDescribes how sensitive the camera is when using a gamepad.ReadSafe
GraphicsOptimizationModeGraphicsOptimizationModeThe graphics optimization mode used by the client to balance visual quality and performance.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
GraphicsQualityLevelintThe current graphics quality level being used by the client.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
HasEverUsedVRbooleanIndicates whether the user has ever launched the client in VR mode.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
MasterVolumefloatA float between 0 and 1 representing the volume of the game's client.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
MasterVolumeStudiofloatA float between 0 and 1 representing the master volume used in Roblox Studio.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
MaxQualityEnabledbooleanIndicates whether the client's graphics quality is set to the maximum available level.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
MouseSensitivityfloatA float between 0 and 4 representing the sensitivity of the client's camera sensitivity.ReadSafe
OnboardingsCompletedstringA comma-separated list of onboarding IDs that the user has completed.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
PartyVoiceVolumefloatA float between 0 and 1 representing the volume of party voice chat.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
PeoplePageLayoutPeoplePageLayoutThe layout style used to display the people page in the in-game menu.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
PlayerListVisiblebooleanIndicates whether the in-game player list is visible to the client.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
PlayerNamesEnabledbooleanIndicates whether player names are displayed above characters in the game.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
RCCProfilerRecordFrameRateintInternal MicroProfiler setting specifying the frame rate used when capturing server-side RCC profiler data.ReadSafe
RCCProfilerRecordTimeFrameintInternal MicroProfiler setting specifying the duration over which server-side RCC profiler data is captured.ReadSafe
RotationTypeRotationTypeControls how the client's character is rotated.ReadSafe
SavedQualityLevelSavedQualitySettingThe graphics quality level set by the client.ReadSafe
StartMaximizedbooleanIndicates whether Roblox Studio should launch in a maximized window.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafeNotReplicatedNotScriptable
StartScreenPositionVector2The screen position of the client's window when the application launches.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafeNotReplicatedNotScriptable
StartScreenSizeVector2The size of the client's window when the application launches.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafeNotReplicatedNotScriptable
TouchCameraMovementModeTouchCameraMovementModeThe camera type in-use by the client while on a mobile device.ReadSafe
TouchMovementModeTouchMovementModeThe type of controls being used by the client on a mobile device.ReadSafe
UsedCoreGuiIsVisibleTogglebooleanIndicates whether the user has toggled the visibility of core GUI elements.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
UsedCustomGuiIsVisibleTogglebooleanIndicates whether the user has toggled the visibility of custom GUI elements.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
UsedHideHudShortcutbooleanIndicates whether the user has used the keyboard shortcut for hiding the HUD.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
VignetteEnabledbooleanIndicates whether the VR vignette comfort effect is enabled.Write: RobloxScriptSecurityReadSafe
VoiceChatVolumefloatA float between 0 and 2 representing the volume of in-game voice chat.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
VREnabledbooleanIndicates whether the client is currently running in VR mode.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
VRRotationIntensityintThe intensity of camera rotation when turning in VR.Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe
VRSmoothRotationEnabledbooleanIndicates whether smooth rotation is used instead of snap rotation in VR.Write: RobloxScriptSecurityReadSafe

AllTutorialsDisabled: boolean#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

Indicates whether all in-game tutorials have been disabled by the user.

BadgeVisible: boolean#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

Indicates whether badge notifications are visible to the client.

CameraMode: CustomCameraMode#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

The custom camera mode currently in-use by the client.

ChatVisible: boolean#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

Indicates whether the in-game chat is visible to the client.

ComputerCameraMovementMode: ComputerCameraMovementMode#

ReadSafe

The camera movement mode currently in-use by the client on desktop.

ComputerMovementMode: ComputerMovementMode#

ReadSafe

The type of controls being used by the client on desktop.

ControlMode: ControlMode#

ReadSafeDeprecated

Deprecated. This property has been deprecated. You can enable mouse-locked third-person control, or "Shift Lock Mode", through the MouseBehavior in PlayerScripts:RegisterTouchCameraMovementMode() and PlayerScripts:RegisterComputerCameraMovementMode().

Toggles whether or not the client can use the Mouse Lock Switch mode.

Fullscreen: boolean#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

Indicates whether the client's window is currently in full screen mode.

GamepadCameraSensitivity: float#

ReadSafe

Describes how sensitive the camera is when using a gamepad.

GraphicsOptimizationMode: GraphicsOptimizationMode#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

The graphics optimization mode used by the client to balance visual quality and performance.

GraphicsQualityLevel: int#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

The current graphics quality level being used by the client.

HasEverUsedVR: boolean#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

Indicates whether the user has ever launched the client in VR mode.

MasterVolume: float#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

A float between 0 and 1 representing the volume of the game's client.

MasterVolumeStudio: float#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

A float between 0 and 1 representing the master volume used in Roblox Studio.

MaxQualityEnabled: boolean#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

Indicates whether the client's graphics quality is set to the maximum available level.

MouseSensitivity: float#

ReadSafe

A float between 0 and 4 representing the sensitivity of the client's camera sensitivity.

OnboardingsCompleted: string#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

A comma-separated list of onboarding IDs that the user has completed.

PartyVoiceVolume: float#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

A float between 0 and 1 representing the volume of party voice chat.

PeoplePageLayout: PeoplePageLayout#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

The layout style used to display the people page in the in-game menu.

PlayerListVisible: boolean#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

Indicates whether the in-game player list is visible to the client.

PlayerNamesEnabled: boolean#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

Indicates whether player names are displayed above characters in the game.

RCCProfilerRecordFrameRate: int#

ReadSafe

Internal MicroProfiler setting specifying the frame rate used when capturing server-side RCC profiler data.

RCCProfilerRecordTimeFrame: int#

ReadSafe

Internal MicroProfiler setting specifying the duration over which server-side RCC profiler data is captured.

RotationType: RotationType#

ReadSafe

Controls how the client's character is rotated.

SavedQualityLevel: SavedQualitySetting#

ReadSafe

The graphics quality level set by the client.

StartMaximized: boolean#

NotReplicatedNotScriptableRead: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

Indicates whether Roblox Studio should launch in a maximized window.

StartScreenPosition: Vector2#

NotReplicatedNotScriptableRead: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

The screen position of the client's window when the application launches.

StartScreenSize: Vector2#

NotReplicatedNotScriptableRead: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

The size of the client's window when the application launches.

TouchCameraMovementMode: TouchCameraMovementMode#

ReadSafe

The camera type in-use by the client while on a mobile device.

TouchMovementMode: TouchMovementMode#

ReadSafe

The type of controls being used by the client on a mobile device.

UsedCoreGuiIsVisibleToggle: boolean#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

Indicates whether the user has toggled the visibility of core GUI elements.

UsedCustomGuiIsVisibleToggle: boolean#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

Indicates whether the user has toggled the visibility of custom GUI elements.

UsedHideHudShortcut: boolean#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

Indicates whether the user has used the keyboard shortcut for hiding the HUD.

VignetteEnabled: boolean#

Write: RobloxScriptSecurityReadSafe

Indicates whether the VR vignette comfort effect is enabled.

VoiceChatVolume: float#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

A float between 0 and 2 representing the volume of in-game voice chat.

VREnabled: boolean#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

Indicates whether the client is currently running in VR mode.

VRRotationIntensity: int#

Read: RobloxScriptSecurityWrite: RobloxScriptSecurityReadSafe

The intensity of camera rotation when turning in VR.

VRSmoothRotationEnabled: boolean#

Write: RobloxScriptSecurityReadSafe

Indicates whether smooth rotation is used instead of snap rotation in VR.

Methods 7#

GetCameraYInvertValueReturns the camera's Y-invert value.
GetOnboardingCompletedChecks if onboarding has been completed.
InFullScreenReturns true if the user's Roblox window is in full screen mode.
InStudioModeReturns true if the client's game session is in Roblox Studio.
SetCameraYInvertVisibleIf called, Roblox toggles the menu option to invert the user's camera y axis.
SetGamepadCameraSensitivityVisibleIf called, Roblox toggles the menu option to control the camera sensitivity with gamepads.
SetOnboardingCompletedSets onboarding as completed.

GetCameraYInvertValue(): int#

Returns the camera's Y-invert value.

Returns
  • int — The camera's current Y-axis inversion multiplier.

GetOnboardingCompleted(onboardingId: string): boolean#

Checks whether or not the given onboarding has been completed yet, which is useful for avoiding showing the onboarding animation again.

If onboardingId is not one of the accepted IDs, an error is thrown.

The onboarding process is one-way. This means that, as a developer, you can force the onboarding process to completion but cannot reset it.

See also:

NameTypeDefaultDescription
onboardingIdstringThe onboarding ID to inquire about.
Returns
  • boolean — Whether or not the onboarding in particular has been completed yet.

InFullScreen(): boolean#

Returns true if the user's Roblox window is in full screen mode.

Returns
  • boolean — Whether the user's Roblox window is in full screen mode.

InStudioMode(): boolean#

Returns true if the client's game session is in Roblox Studio.

Returns
  • boolean — Whether the current client session is running in Roblox Studio.

SetCameraYInvertVisible(): ()#

If called, Roblox toggles the menu option to invert the user's camera y axis.

Returns
  • ()

SetGamepadCameraSensitivityVisible(): ()#

If called, Roblox toggles the menu option to control the camera sensitivity with gamepads.

Returns
  • ()

SetOnboardingCompleted(onboardingId: string): ()#

Sets the given onboarding as completed, so it won't be shown again to the user the next time they play.

Currently, this function only accepts DynamicThumbstick, and it is used to persistently track whether or not the player has finished the tutorial for the Dynamic Thumbstick control scheme. If onboardingId is not one of the accepted IDs, an error is thrown.

The onboarding process is one-way. This means that, as a developer, you can force the onboarding process to completion but cannot reset it.

See also:

NameTypeDefaultDescription
onboardingIdstringThe onboarding ID to set as completed.
Returns
  • ()

Events 2#

FullscreenChangedFires if the user's full screen mode is changed.
StudioModeChangedFired when the user's client switches between Studio mode and in-game mode. This gets fired periodically in Roblox Studio when a session starts.

FullscreenChanged(isFullscreen: boolean)#

Fires if the user's full screen mode is changed. The event will only fire on desktop devices that can toggle full screen mode. The game will always be in full screen on mobile devices and consoles.

NameTypeDefaultDescription
isFullscreenbooleanWhether the user's Roblox window is now in full screen mode.

StudioModeChanged(isStudioMode: boolean)#

Fired when the user's client switches between Studio mode and in-game mode. This gets fired periodically in Roblox Studio when a session starts.

NameTypeDefaultDescription
isStudioModebooleanWhether the client session is now running in Roblox Studio.

Inherited members#

Inherited from Instance 58
Inherited from Object 6
Properties (2)

ClassName, className

Events (1)

Changed