Engine

UserGameSettings

Show Deprecated
not creatable
user settings

The 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.

You can access this object from a LocalScript via:


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.

Code Samples

UserGameSettings Listener

local gameSettings = UserSettings().GameSettings
local function onGameSettingChanged(nameOfSetting)
-- Fetch the value of this setting through a pcall to make sure we can retrieve it.
-- Sometimes the event fires with properties that LocalScripts can't access.
local canGetSetting, setting = pcall(function()
return gameSettings[nameOfSetting]
end)
if canGetSetting then
print("Your " .. nameOfSetting .. " has changed to: " .. tostring(setting))
end
end
gameSettings.Changed:Connect(onGameSettingChanged)

Summary

Properties

Methods

Events

Properties

AllTutorialsDisabled

read parallel
read parallel

ChatVisible

read parallel

ComputerCameraMovementMode

read parallel

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

ComputerMovementMode

read parallel

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

ControlMode

read parallel

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

Fullscreen

read parallel

GamepadCameraSensitivity

read parallel

Describes how sensitive the camera is when using a gamepad.

GraphicsQualityLevel

read parallel

HasEverUsedVR

read parallel

MasterVolume

read parallel

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

MouseSensitivity

read parallel

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

OnboardingsCompleted

read parallel

RCCProfilerRecordFrameRate

read parallel

RCCProfilerRecordTimeFrame

read parallel

RotationType

read parallel

Controls how the client's character is rotated.

SavedQualityLevel

read parallel

The graphics quality level set by the client.

StartMaximized

not replicated
not scriptable
read parallel

StartScreenPosition

not replicated
not scriptable
read parallel

StartScreenSize

not replicated
not scriptable
read parallel

TouchCameraMovementMode

read parallel

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

TouchMovementMode

read parallel

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

UsedCoreGuiIsVisibleToggle

read parallel

UsedCustomGuiIsVisibleToggle

read parallel

UsedHideHudShortcut

read parallel

VREnabled

read parallel

VRRotationIntensity

read parallel

VRSmoothRotationEnabled

read parallel

VignetteEnabled

read parallel

Methods

GetCameraYInvertValue

Returns the camera's Y-invert value.


Returns

GetOnboardingCompleted

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:

Parameters

onboardingId: string

The onboarding ID to inquire about.


Returns

Whether or not the onboarding in particular has been completed yet.

InFullScreen

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


Returns

InStudioMode

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


Returns

SetCameraYInvertVisible

void

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


Returns

void

SetGamepadCameraSensitivityVisible

void

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


Returns

void

SetOnboardingCompleted

void

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:

Parameters

onboardingId: string

The onboarding ID to set as completed.


Returns

void

Events

FullscreenChanged

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.

Parameters

isFullscreen: bool

Code Samples

Full Screen Mode Detection

local gameSettings = UserSettings().GameSettings
local function checkFullScreenMode()
local inFullscreen = gameSettings:InFullScreen()
if inFullscreen then
print("Full Screen mode enabled!")
else
print("Full Screen mode disabled!")
end
end
checkFullScreenMode()
gameSettings.FullscreenChanged:Connect(checkFullScreenMode)

StudioModeChanged

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.

Parameters

isStudioMode: bool