I made a simple system for Setting System [Mobile Supported]

image
image

TestPlace.rbxl (89.1 KB)SettingsUILib.rbxm (33.4 KB)

Last Verison:

Example Code:

local IOX = require(game:GetService("ReplicatedStorage"):WaitForChild("IOX"))

local Canvas = IOX.createCanvas(script.Parent)

local ExTitle = Canvas:Title("Settings","") -- Create Label
ExTitle:SetLayoutOrder(10) -- Set Label LayoutOrder
ExTitle:SetText("Settings","test") -- Change Label Text

-- * No Need to Set LayoutOrder One by One System Automatically Adjusts According to Typing Order

local ExToggle = Canvas:Toggle("Test Toggle","Test",true) -- Create Toggle
--ExToggle:SetLayoutOrder(9) -- Set Toggle LayoutOrder
ExToggle:SetText("Test","Toggle") -- Change Toggle Text
ExToggle:DisconnectAll() -- Disconnects All Connections
ExToggle:GetStatus() -- Receives status (true or false)
ExToggle:SetValue(false) -- Change status (true or false)

local ConnectionId = ExToggle:Connect(function(status:boolean) -- Provides Connectivity
	print(status)
end)

ExToggle:Fire() -- Launch Connections.
ExToggle:Disconnect(ConnectionId) -- Disconnect Connection

-- * No Need to Set LayoutOrder One by One System Automatically Adjusts According to Typing Order

local ExSwitch = Canvas:Switch("Test Switch","Test",true) -- Create Switch
--ExSwitch:SetLayoutOrder(9) -- Set Switch LayoutOrder
ExSwitch:SetText("Test","Switch") -- Change Switch Text
ExSwitch:DisconnectAll() -- Disconnects All Connections
ExSwitch:GetStatus() -- Receives status (true or false)
ExSwitch:SetValue(false) -- Change status (true or false)

local ConnectionId1 = ExSwitch:Connect(function(status:boolean) -- Provides Connectivity
	print(status)
end)

ExSwitch:Fire() -- Launch Connections.
ExSwitch:Disconnect(ConnectionId1) -- Disconnect Connection

-- * No Need to Set LayoutOrder One by One System Automatically Adjusts According to Typing Order

local ExSlider = Canvas:Slide("Test Slider","",0,10,5,1) -- Create Slide
-----------------------------------------------^--^-^-^
-----------------------------------------------^--^-^-^
-----------------------------------------------^--^-^-Snap
-----------------------------------------------^--^-^--
-----------------------------------------------^--^-Start Value
-----------------------------------------------^--^----
-----------------------------------------------^--Max Value
-----------------------------------------------^-------
-----------------------------------------------Min Value

--ExSlider:SetLayoutOrder(9) -- Set Switch LayoutOrder
ExSlider:GetValue()-- Receives value ( number )
ExSlider:SetValue(1)-- Change value ( number )

local ConnectionId2 = ExSlider:Connect(function(value:number) -- Provides Connectivity
	print(value)
end)

ExSlider:Fire() -- Launch Connections.
ExSlider:Disconnect(ConnectionId2) -- Disconnect Connection

-- Themes

local ThemeChanger = Canvas:Slide("Theme:","Dark",1,2,1,2)
ThemeChanger:SetLayoutOrder(-10)

local Themes = {
	"Dark",
	"Light",
}

ThemeChanger:Connect(function(value)
	print(value)
	if Themes[value] ~= nil then
		Canvas:SetTheme(Themes[value]) -- Updates Theme
		ThemeChanger:SetText(nil,Themes[value]) -- Updates Text
	end
end)
ThemeChanger:Fire()

9 Likes
                              --NEW Version is Release--
  • Bug Fixes.

  • Added Buttons
    image

local Button1 = canvas:Button("Reset Settings.","","Reset")

Button1:Connect(function()
	print("clicked.")
end)

SettingsUILib.rbxm (37.3 KB)

what other devices does this work on? console?

It does not support the console, console support may come in future versions.