null
nil
-
Ro-Intellisense
-1
-
false
Main
0
{8386E9FF-8293-4BBD-8B27-7A83302ADCAF}
-1
-
Commands
-1
-
helloworld
{63D5597E-FDFE-4CFA-BD21-91CDD910E7E2}
-1
-
while
{0D5BBA48-CA97-44C4-A334-56F22A078711}
-1
-
pairs
{9EE1EABD-0B29-4CAC-9BDA-710DADB0C634}
-1
-
ipairs
{5FA4164C-00F2-4794-B8A4-623E4CF53873}
-1
-
Modules
-1
-
Serial
{ECA0F30E-34E7-437E-A067-237235E01F57}
-1
-
SettingsManager
{631F1976-1D15-406E-8486-0171EB10107F}
boolean
}
-- [[ SERVICES ]]
local HttpService = game:GetService('HttpService')
local TweenService = game:GetService('TweenService')
-- [[ VARIABLES ]]
local masterKey = 'SettingsData'
local Main = script.Parent.Parent
local Modules = Main.Modules
local UIComponents = Main.UIComponents
local SettingsFrame = UIComponents.Settings
local plugin: Plugin;
--[[ MODULES ]]
local Serial = require(Modules.Serial)
local ConnectionHandler = require(Modules.ConnectionHandler)
ConnectionHandler:AddConnectionGroup('SettingsInputConnection')
-- [[ PRIVATE FUNCTIONS ]]
local function title(x)
local initial = x:sub(1, 1):upper()
x = initial .. x:sub(2, #x)
return x
end
local function encode(x)
return HttpService:JSONEncode(x)
end
local function decode(x)
return HttpService:JSONDecode(x)
end
local settingsBody = {}
local function getSettingBody(name: string)
for _, v in settingsBody do
if v.name == name then return v end
end
end
-- [[ INITIALIZE ]]
local settings = {}
local module = {}
function module:initialize()
local data = plugin:GetSetting(masterKey)
if data then
settings = decode(data)
end
end
function module:GetSetting(key: string)
local body = getSettingBody(key)
local value = settings[key]
return value or body.default
end
function module:SetSetting(key: string, value: any)
settings[key] = value
plugin:SetSetting(masterKey, encode(settings))
end
function module:AddSetting(body: settingBody)
table.insert(settingsBody, body)
end
function module:update()
ConnectionHandler:DisconnectConnectionsInGroup('SettingsInputConnection')
local info = TweenInfo.new(.1, Enum.EasingStyle.Sine, Enum.EasingDirection.Out)
for _, body: settingBody in settingsBody do
local header = SettingsFrame.Data:FindFirstChild(body.name)
local expanded = SettingsFrame.Data:FindFirstChild('Expanded' .. title(body.valueType))
if not (header or expanded) then
continue
end
local value = module:GetSetting(body.name)
local input = expanded.Input
header.TextLabel.Text = body.name
local connection;
if body.valueType == 'boolean' then
local color = value and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
local pos = value and UDim2.fromScale(1, 0) or UDim2.fromScale(.4, 0)
local tween = TweenService:Create(input.Slide, info, { Position = pos, BackgroundColor3 = color })
tween:Play()
connection = input.Trigger.MouseButton1Click:Connect(function()
value = not value
module:SetSetting(body.name, value)
module:update()
end)
else
local previousInput = value
input.Text = previousInput
connection = input:GetPropertyChangedSignal('Text'):Connect(function()
local text = input.Text
if body.restriction(text) then
input.Text = previousInput
return
end
module:SetSetting(body.name, text)
module:update()
end)
end
ConnectionHandler:AddConnectionToGroup('SettingsInputConnection', connection)
end
end
function module:build()
for _, v in SettingsFrame.Data:GetChildren() do
if v:IsA('Frame') then
v:Destroy()
end
end
local layoutOrder = 0
for _, body: settingBody in settingsBody do
local appropriateExpanded = UIComponents:FindFirstChild('Expanded' .. title(body.valueType))
if not appropriateExpanded then
continue
end
local header = UIComponents.SettingTemplate:Clone()
local clone = appropriateExpanded:Clone()
header.Name = body.name
header.Parent = SettingsFrame.Data
clone.Parent = SettingsFrame.Data
header.LayoutOrder = layoutOrder
clone.LayoutOrder = layoutOrder + 1
layoutOrder += 2
end
module:update()
end
return setmetatable(module, {
__call = function(_, _plugin)
plugin = _plugin
module:initialize()
return module
end,
})]]>
-1
-
CommandManager
{24834AD8-1C99-4146-AD7D-6E9F5CD578A4}
-1
-
ConnectionHandler
{9D84FF43-D506-49FA-844B-E236FF50E270}
-1
-
TagService
{02A13D37-0F7D-4A15-B261-309E4E3C651F}
-1
-
UIComponents
-1
-
false
0
0
true
0
0.125490203
0.125490203
0.149019614
0
0.105882362
0.164705887
0.207843155
0
0
true
false
0
Settings
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
1
-
true
0
0
true
2
0
1
1
1
1
0.105882354
0.164705887
0.20784314
0
0
rbxasset://textures/ui/Scroll/scroll-middle.png
0
0
0
0
0
0
true
false
0
0
2
rbxasset://textures/ui/Scroll/scroll-middle.png
Data
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
1
1
1
0.5
6
4
true
true
0
0
0
0
true
[null]
0
1
0
1
0
0
-1
rbxasset://textures/ui/Scroll/scroll-middle.png
0
0
true
1
-
1
1
UIListLayout
0
10
2
-1
1
-
UIPadding
0
0
0
5
0
5
0
5
-1
-
false
0
0
true
0
0.156862751
0.168627456
0.188235298
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
SettingTemplate
[null]
[null]
[null]
[null]
0
2
0
-8
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
30
0
-1
0
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
17
rbxasset://fonts/families/GothamSSm.json
400
rbxasset://fonts/GothamSSm-Book.otf
0
1
-1
TextLabel
[null]
[null]
[null]
[null]
0.00692840666
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.993071616
-100
1
-6
0
-1
Debug
0.90196085
0.90196085
0.90196085
true
17
0
0
0
1
0
0
true
0
1
true
1
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
0
false
Trigger
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
Button
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
1
-
false
0
0
true
0
0.156862751
0.168627456
0.188235298
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
ExpandedBoolean
[null]
[null]
[null]
[null]
0
0
1
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
70
0
-1
0
true
1
-
false
0.5
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
17
rbxasset://fonts/families/GothamSSm.json
400
rbxasset://fonts/GothamSSm-Book.otf
0
1
-1
Description
[null]
[null]
[null]
[null]
0.5
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.899999976
0
0.349999964
0
0
-1
Adds fancy debug print
1
1
1
true
14
0
0
0
1
0
0
true
0
1
true
1
-
false
0.5
0
true
0
0.125490203
0.125490203
0.149019614
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Input
[null]
[null]
[null]
[null]
0.5
0
0.488999993
0
[null]
0
false
0
0
0
0
false
[null]
0
0.899999976
0
0.381000012
0
0
-1
0
true
1
-
0
8
UICorner
-1
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
0
false
Trigger
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
1
0
0
0
1
0
0
false
2
1
true
2
-
false
1
0
true
0
1
0
0
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Slide
[null]
[null]
[null]
[null]
0.400000006
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.400000006
0
1
0
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0
0
true
0
0.156862751
0.168627456
0.188235298
0
0.105882362
0.164705887
0.207843155
0
0
false
false
1
ExpandedString
[null]
[null]
[null]
[null]
0
0
1
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
70
0
-1
0
true
1
-
false
0.5
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
17
rbxasset://fonts/families/GothamSSm.json
400
rbxasset://fonts/GothamSSm-Book.otf
0
1
-1
Description
[null]
[null]
[null]
[null]
0.5
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.899999976
0
0.349999964
0
0
-1
An key to end any commands
1
1
1
true
14
0
0
0
1
0
0
true
0
1
true
1
-
true
0.5
0
true
0
0.125490203
0.125490203
0.149019614
0
0.105882362
0.164705887
0.207843155
0
0
true
false
false
17
rbxasset://fonts/families/GothamSSm.json
400
rbxasset://fonts/GothamSSm-Book.otf
0
1
-1
false
Input
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
0.5
0
0.48888886
0
false
[null]
0
true
0
0
0
0
false
[null]
0
true
0.899999976
0
0.381000012
0
0
-1
;
1
1
1
true
true
14
0
0
0
1
0
0
true
2
1
true
1
-
0
8
UICorner
-1
-
false
0
0
true
0
0.156862751
0.168627456
0.188235298
0
0.105882362
0.164705887
0.207843155
0
0
false
false
1
ExpandedNumber
[null]
[null]
[null]
[null]
0
0
1
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
70
0
-1
0
true
1
-
false
0.5
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
17
rbxasset://fonts/families/GothamSSm.json
400
rbxasset://fonts/GothamSSm-Book.otf
0
1
-1
Description
[null]
[null]
[null]
[null]
0.5
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.899999976
0
0.349999964
0
0
-1
An key to end any commands
1
1
1
true
14
0
0
0
1
0
0
true
0
1
true
1
-
true
0.5
0
true
0
0.125490203
0.125490203
0.149019614
0
0.105882362
0.164705887
0.207843155
0
0
true
false
false
17
rbxasset://fonts/families/GothamSSm.json
400
rbxasset://fonts/GothamSSm-Book.otf
0
1
-1
false
Input
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
0.5
0
0.48888886
0
false
[null]
0
true
0
0
0
0
false
[null]
0
true
0.899999976
0
0.381000012
0
0
-1
;
1
1
1
true
true
14
0
0
0
1
0
0
true
2
1
true
1
-
0
8
UICorner
-1
-
false
0
0
true
0
0.215686277
0.23137255
0.258823544
0.5
0.105882362
0.164705887
0.207843155
0
0
false
false
0
CommandTemplate
[null]
[null]
[null]
[null]
0
2
0
2
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
25
0
-1
0
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
true
false
1
1
1
1
0
Actions
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
false
1
-
0
2
UIListLayout
0
0
2
-1
0
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://10337483473
1
1
1
0
0
0
0
0
1
false
Delete
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
0
1
0
1
0
true
1
-
1
0
0
UIAspectRatioConstraint
-1
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://10337465254
1
1
1
0
0
0
0
0
0
false
Edit
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
0
1
0
1
0
true
1
-
1
0
0
UIAspectRatioConstraint
-1
-
0
8
UICorner
-1
-
true
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
CommandName
[null]
[null]
[null]
[null]
0
10
0
4
false
[null]
0
true
0
0
0
0
false
[null]
0
1
-100
1
-6
0
-1
TextBox
0.90196079
0.90196079
0.90196079
false
17
0
0
0
1
0
0
false
0
1
true
1
-
false
0
0
true
0
0.125490203
0.125490203
0.149019614
0
0.105882362
0.164705887
0.207843155
0
0
true
false
0
ExplorerMenu
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
1
-
false
0
0
true
0
0.156862751
0.168627456
0.188235298
0
0.105882354
0.164705887
0.20784314
0
0
false
false
0
Topbar
[null]
[null]
[null]
[null]
0
5
0
2
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
24
0
-1
0
true
2
-
0
8
UICorner
-1
-
true
0
0
true
true
0
0.105882354
0.164705887
0.20784314
1
0.105882354
0.164705887
0.20784314
0
1
false
false
rbxassetid://10279502722
1
1
1
0
0
0
0
0
1
false
CreateNewCommand
[null]
[null]
[null]
[null]
0.5
0
0.5
0
0
[null]
0
0
true
false
0
0
0
0
false
[null]
0
1
0
0.899999976
0
0
0
0
0
0
1
-1
0
1
0
1
0
true
2
-
1
0
0
UIAspectRatioConstraint
-1
-
0
1
UIListLayout
0
5
2
-1
0
-
UIPadding
0
1
0
10
0
0
0
1
-1
-
true
0.5
0
true
2
0
0.156862751
0.168627456
0.188235298
0
0.105882354
0.164705887
0.20784314
0
0
rbxasset://textures/ui/Scroll/scroll-middle.png
0
0
0
0
0
0
true
false
0
0
2
rbxasset://textures/ui/Scroll/scroll-middle.png
Contents
[null]
[null]
[null]
[null]
0.5
0
0.0477137193
0
[null]
0
1
1
1
0.5
6
4
true
true
0
0
0
0
true
[null]
0
1
0
0.896620274
0
0
-1
rbxasset://textures/ui/Scroll/scroll-middle.png
0
0
true
1
-
1
1
UIListLayout
0
10
2
-1
1
-
UIPadding
0.0199999996
0
0.00999999978
0
0.00999999978
0
0.0199999996
0
-1
-
0
8
UICorner
-1
-
1
1
UIListLayout
0
5
2
-1
1
-
UIPadding
0
0
0.00999999978
0
0.00999999978
0
0
10
-1
-
template
{D99E92D2-ED1A-48B9-9204-AC2CAB13BADA}
-1