As a Roblox developer, it’s currently too hard to get a user’s system settings.
At the moment, there’s no way to have Settings without asking the player to enter them.
This could completely solve that.
How it could work with an example:
local SSS = game:GetService("SystemSettingsService")
local success, result = pcall(function()
sss.GetThemeInfoForPlayerAsync(game.Player.LocalPlayer)
end)
local success2, result2 = pcall(function()
sss.GetSettingsForPlayerAsync(game.Player.LocalPlayer)
end)
if success and success2 then
print("The user's theme setting is "..result.ColorTheme..".") --The user's theme setting is Dark, in my case
print("The user's TransparencyEffects setting is "..result2.Personalization.UseTransparencyEffects..".") --The user's TransparencyEffects setting is true in my case
print("The user's accent color setting is "..result.AccentColor --[[Or, result2.Theme.Personalization.AccentColor]]..".") --The user's Accent color is Color3.fromRGB(123,123,123) in my case
print("The user's Cursor size setting is "..result2.Accessability.CursorSize..".") --The user's Cursor size is 2 in my case
end
That’s just an example though, but it could end up working out that way.
Use cases:
- Remove the need for default settings
- Get accessibility settings directly without user input, such as Cursor size.
- If games have the support for it, you dont need to configure and UI settings, game settings, etc because they would all load in.
More ideas for it:
- If the setting is not supported on the platform (etc mobile), to avoid errors it would return as “N/A”, because nil would cause an error.
If Roblox were to address this issue, it would solve a ton of confusion and save a lot of time regarding coding a large setting system, unless you want an override.