TheAssassin4776

UVS GUI

Feb 11th, 2025 (edited)
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 161.45 KB | None | 0 0
  1. --[[
  2.  
  3. ArrayField Interface Suite
  4. by Meta
  5.  
  6. Original by Sirius
  7.  
  8. -------------------------------
  9. Arrays  | Designing + Programming + New Features
  10.  
  11. ]]
  12.  
  13.  
  14.  
  15. local Release = "Release 2A"
  16. local NotificationDuration = 6.5
  17. local ArrayFieldFolder = "ArrayField"
  18. local ConfigurationFolder = ArrayFieldFolder.."/Configurations"
  19. local ConfigurationExtension = ".rfld"
  20. local ArrayFieldQuality = {}
  21.  
  22. local ArrayFieldLibrary = {
  23.     Flags = {},
  24.     Theme = {
  25.         Default = {
  26.             TextFont = "Default", -- Default will use the various font faces used across ArrayField
  27.             TextColor = Color3.fromRGB(240, 240, 240),
  28.  
  29.             Background = Color3.fromRGB(25, 25, 25),
  30.             Topbar = Color3.fromRGB(34, 34, 34),
  31.             Shadow = Color3.fromRGB(20, 20, 20),
  32.  
  33.             NotificationBackground = Color3.fromRGB(20, 20, 20),
  34.             NotificationActionsBackground = Color3.fromRGB(230, 230, 230),
  35.  
  36.             TabBackground = Color3.fromRGB(80, 80, 80),
  37.             TabStroke = Color3.fromRGB(85, 85, 85),
  38.             TabBackgroundSelected = Color3.fromRGB(210, 210, 210),
  39.             TabTextColor = Color3.fromRGB(240, 240, 240),
  40.             SelectedTabTextColor = Color3.fromRGB(50, 50, 50),
  41.  
  42.             ElementBackground = Color3.fromRGB(35, 35, 35),
  43.             ElementBackgroundHover = Color3.fromRGB(40, 40, 40),
  44.             SecondaryElementBackground = Color3.fromRGB(25, 25, 25), -- For labels and paragraphs
  45.             ElementStroke = Color3.fromRGB(50, 50, 50),
  46.             SecondaryElementStroke = Color3.fromRGB(40, 40, 40), -- For labels and paragraphs
  47.  
  48.             SliderBackground = Color3.fromRGB(43, 105, 159),
  49.             SliderProgress = Color3.fromRGB(43, 105, 159),
  50.             SliderStroke = Color3.fromRGB(48, 119, 177),
  51.  
  52.             ToggleBackground = Color3.fromRGB(30, 30, 30),
  53.             ToggleEnabled = Color3.fromRGB(0, 146, 214),
  54.             ToggleDisabled = Color3.fromRGB(100, 100, 100),
  55.             ToggleEnabledStroke = Color3.fromRGB(0, 170, 255),
  56.             ToggleDisabledStroke = Color3.fromRGB(125, 125, 125),
  57.             ToggleEnabledOuterStroke = Color3.fromRGB(100, 100, 100),
  58.             ToggleDisabledOuterStroke = Color3.fromRGB(65, 65, 65),
  59.  
  60.             InputBackground = Color3.fromRGB(30, 30, 30),
  61.             InputStroke = Color3.fromRGB(65, 65, 65),
  62.             PlaceholderColor = Color3.fromRGB(178, 178, 178)
  63.         },
  64.         Light = {
  65.             TextFont = "Gotham",  -- Default will use the various font faces used across ArrayField
  66.             TextColor = Color3.fromRGB(50, 50, 50), -- i need to make all text 240, 240, 240 and base gray on transparency not color to do this
  67.  
  68.             Background = Color3.fromRGB(255, 255, 255),
  69.             Topbar = Color3.fromRGB(217, 217, 217),
  70.             Shadow = Color3.fromRGB(223, 223, 223),
  71.  
  72.             NotificationBackground = Color3.fromRGB(20, 20, 20),
  73.             NotificationActionsBackground = Color3.fromRGB(230, 230, 230),
  74.  
  75.             TabBackground = Color3.fromRGB(220, 220, 220),
  76.             TabStroke = Color3.fromRGB(112, 112, 112),
  77.             TabBackgroundSelected = Color3.fromRGB(0, 142, 208),
  78.             TabTextColor = Color3.fromRGB(240, 240, 240),
  79.             SelectedTabTextColor = Color3.fromRGB(50, 50, 50),
  80.  
  81.             ElementBackground = Color3.fromRGB(198, 198, 198),
  82.             ElementBackgroundHover = Color3.fromRGB(230, 230, 230),
  83.             SecondaryElementBackground = Color3.fromRGB(136, 136, 136), -- For labels and paragraphs
  84.             ElementStroke = Color3.fromRGB(180, 199, 97),
  85.             SecondaryElementStroke = Color3.fromRGB(40, 40, 40),  --For labels and paragraphs
  86.  
  87.             SliderBackground = Color3.fromRGB(31, 159, 71),
  88.             SliderProgress = Color3.fromRGB(31, 159, 71),
  89.             SliderStroke = Color3.fromRGB(42, 216, 94),
  90.  
  91.             ToggleBackground = Color3.fromRGB(170, 203, 60),
  92.             ToggleEnabled = Color3.fromRGB(32, 214, 29),
  93.             ToggleDisabled = Color3.fromRGB(100, 22, 23),
  94.             ToggleEnabledStroke = Color3.fromRGB(17, 255, 0),
  95.             ToggleDisabledStroke = Color3.fromRGB(65, 8, 8),
  96.             ToggleEnabledOuterStroke = Color3.fromRGB(0, 170, 0),
  97.             ToggleDisabledOuterStroke = Color3.fromRGB(170, 0, 0),
  98.  
  99.             InputBackground = Color3.fromRGB(31, 159, 71),
  100.             InputStroke = Color3.fromRGB(19, 65, 31),
  101.             PlaceholderColor = Color3.fromRGB(178, 178, 178)
  102.         },
  103.  
  104.     }
  105. }
  106.  
  107.  
  108.  
  109. -- Services
  110. local UserInputService = game:GetService("UserInputService")
  111. local TweenService = game:GetService("TweenService")
  112. local HttpService = game:GetService("HttpService")
  113. local RunService = game:GetService("RunService")
  114. local Players = game:GetService("Players")
  115. local CoreGui = game:GetService("CoreGui")
  116. local LocalPlayer = game:GetService('Players').LocalPlayer
  117.  
  118. -- Interface Management
  119. local ArrayField = game:GetObjects("rbxassetid://13853811008")[1]
  120. ArrayField.Enabled = false
  121. local spawn = task.spawn
  122. local delay = task.delay
  123.  
  124. --Studio
  125. if game["Run Service"]:IsStudio() then
  126.     function gethui() return ArrayField end local http_request = nil local syn = {protect_gui = false,request = false,}local http = nil function writefile(tt,t,ttt)end function isfolder(t)end function makefolder(t)end function isfile(r)end function readfile(t)end
  127. end
  128.  
  129. pcall(function()
  130.     _G.LastRayField.Name = 'Old Arrayfield'
  131.     _G.LastRayField.Enabled = false
  132. end)
  133. local ParentObject = function(Gui)
  134.     local success, failure = pcall(function()
  135.         if get_hidden_gui or gethui then
  136.             local hiddenUI = get_hidden_gui or gethui
  137.             Gui.Parent = hiddenUI()
  138.         elseif (not is_sirhurt_closure) and (syn and syn.protect_gui) then
  139.             syn.protect_gui(Gui)
  140.             Gui.Parent = CoreGui
  141.         elseif CoreGui then
  142.             Gui.Parent = CoreGui
  143.         end
  144.     end)
  145.     if not success and failure then
  146.         Gui.Parent = LocalPlayer:FindFirstChildWhichIsA("PlayerGui")
  147.     end
  148.     _G.LastRayField = ArrayField
  149. end
  150. ParentObject(ArrayField)
  151.  
  152. --Object Variables
  153.  
  154. local Camera = workspace.CurrentCamera
  155. local Main = ArrayField.Main
  156. local Topbar = Main.Topbar
  157. local Elements = Main.Elements
  158. local LoadingFrame = Main.LoadingFrame
  159. local TopList = Main.TabList
  160. local SideList = Main.SideTabList.Holder
  161. local TabsList = TopList and SideList
  162. local SearchBar = Main.Searchbar
  163. local Filler = SearchBar.CanvasGroup.Filler
  164. local Prompt = Main.Prompt
  165. local NotePrompt = Main.NotePrompt
  166. local InfoPrompt = ArrayField.Info
  167.  
  168. ArrayField.DisplayOrder = 100
  169. LoadingFrame.Version.Text = Release
  170.  
  171.  
  172. --Variables
  173. local request = (syn and syn.request) or (http and http.request) or http_request
  174. local CFileName = nil
  175. local CEnabled = false
  176. local Minimised = false
  177. local Hidden = false
  178. local Debounce = false
  179. local clicked = false
  180. local SearchHided = true
  181. local SideBarClosed = true
  182. local InfoPromptOpen = false
  183. local BarType = 'Side'
  184. local HoverTime = 0.3
  185. local Notifications = ArrayField.Notifications
  186.  
  187. local SelectedTheme = ArrayFieldLibrary.Theme.Default
  188.  
  189. function ChangeTheme(ThemeName)
  190.     SelectedTheme = ArrayField.Theme[ThemeName]
  191.     for _, obj in ipairs(ArrayField:GetDescendants()) do
  192.         if obj.ClassName == "TextLabel" or obj.ClassName == "TextBox" or obj.ClassName == "TextButton" then
  193.             if SelectedTheme.TextFont ~= "Default" then
  194.                 obj.TextColor3 = SelectedTheme.TextColor
  195.                 obj.Font = SelectedTheme.TextFont
  196.             end
  197.         end
  198.     end
  199.  
  200.     ArrayField.Main.BackgroundColor3 = SelectedTheme.Background
  201.     ArrayField.Main.Topbar.BackgroundColor3 = SelectedTheme.Topbar
  202.     ArrayField.Main.Topbar.CornerRepair.BackgroundColor3 = SelectedTheme.Topbar
  203.     ArrayField.Main.Shadow.Image.ImageColor3 = SelectedTheme.Shadow
  204.  
  205.     ArrayField.Main.Topbar.ChangeSize.ImageColor3 = SelectedTheme.TextColor
  206.     ArrayField.Main.Topbar.Hide.ImageColor3 = SelectedTheme.TextColor
  207.     ArrayField.Main.Topbar.Theme.ImageColor3 = SelectedTheme.TextColor
  208.  
  209.     for _, TabPage in ipairs(Elements:GetChildren()) do
  210.         for _, Element in ipairs(TabPage:GetChildren()) do
  211.             if Element.ClassName == "Frame" and Element.Name ~= "Placeholder" and Element.Name ~= "SectionSpacing" and Element.Name ~= ""  then
  212.                 Element.BackgroundColor3 = SelectedTheme.ElementBackground
  213.                 Element.UIStroke.Color = SelectedTheme.ElementStroke
  214.             end
  215.         end
  216.     end
  217.  
  218. end
  219. local function AddDraggingFunctionality(DragPoint, Main)
  220.     pcall(function()
  221.         local Dragging, DragInput, MousePos, FramePos = false,false,false,false
  222.         DragPoint.InputBegan:Connect(function(Input)
  223.             if Input.UserInputType == Enum.UserInputType.MouseButton1 then
  224.                 Dragging = true
  225.                 MousePos = Input.Position
  226.                 FramePos = Main.Position
  227.  
  228.                 Input.Changed:Connect(function()
  229.                     if Input.UserInputState == Enum.UserInputState.End then
  230.                         Dragging = false
  231.                     end
  232.                 end)
  233.             end
  234.         end)
  235.         DragPoint.InputChanged:Connect(function(Input)
  236.             if Input.UserInputType == Enum.UserInputType.MouseMovement then
  237.                 DragInput = Input
  238.             end
  239.         end)
  240.         UserInputService.InputChanged:Connect(function(Input)
  241.             if Input == DragInput and Dragging then
  242.                 local Delta = Input.Position - MousePos
  243.                 TweenService:Create(Main, TweenInfo.new(0.45, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Position  = UDim2.new(FramePos.X.Scale,FramePos.X.Offset + Delta.X, FramePos.Y.Scale, FramePos.Y.Offset + Delta.Y)}):Play()
  244.                 TweenService:Create(InfoPrompt, TweenInfo.new(0.6, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Position  = UDim2.new(FramePos.X.Scale,FramePos.X.Offset + Delta.X+ 370, FramePos.Y.Scale, FramePos.Y.Offset + Delta.Y)}):Play()
  245.             end
  246.         end)
  247.     end)
  248. end
  249.  
  250. function BoolToText(Bool)
  251.     if Bool == true then
  252.         return 'ENABLED',Color3.fromRGB(44, 186, 44)
  253.     else
  254.         return 'DISABLED',Color3.fromRGB(186, 44, 44)
  255.     end
  256. end
  257.  
  258. local function FadeDescription(Infos,type,Out:boolean?)
  259.     local Size = UDim2.fromOffset(230,275)
  260.     local Transparency = 0
  261.     local WaitTime = .05
  262.     if Out then
  263.         Size = UDim2.fromOffset(212,254)
  264.         Transparency = 1
  265.         WaitTime = nil
  266.     end
  267.     if not Out then
  268.         -- Set the Status
  269.         if type == 'slider' then
  270.             InfoPrompt.Status.Text = Infos.CurrentValue
  271.         elseif type == 'button' then
  272.             InfoPrompt.Status.Text = 'Clickable'
  273.         elseif type == 'toggle' then
  274.             InfoPrompt.Status.Text,InfoPrompt.Status.TextColor3 = BoolToText(Infos.CurrentValue)
  275.         elseif type == 'dropdown' then
  276.             --=| Do this |=--
  277.         elseif type == 'colorpicker' then
  278.             InfoPrompt.Status.Text = Infos.Color.R..Infos.Color.G..Infos.Color.B
  279.         end
  280.  
  281.         if not Infos.Info.Image then
  282.             InfoPrompt.ImageLabel.Visible = false
  283.             InfoPrompt.Description.Position = InfoPrompt.ImageLabel.Position
  284.         else
  285.             InfoPrompt.ImageLabel.Visible = true
  286.             InfoPrompt.ImageLabel.Image = 'rbxassetid://'..Infos.Info.Image
  287.             InfoPrompt.Description.Position = UDim2.new(.5,0,0,160)
  288.         end
  289.  
  290.         InfoPrompt.Title.Text = Infos.Info.Title
  291.         InfoPrompt.Description.Text = Infos.Info.Description
  292.     end
  293.     TweenService:Create(InfoPrompt,TweenInfo.new(.3,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{
  294.         Size = Size,BackgroundTransparency = Transparency
  295.     }):Play()
  296.     TweenService:Create(InfoPrompt.ImageLabel,TweenInfo.new(.25,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{
  297.         ImageTransparency = Transparency
  298.     }):Play()
  299.     TweenService:Create(InfoPrompt.Description,TweenInfo.new(.25,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{
  300.         TextTransparency = Transparency
  301.     }):Play()
  302.     TweenService:Create(InfoPrompt.Status,TweenInfo.new(.25,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{
  303.         TextTransparency = Transparency
  304.     }):Play()
  305.     TweenService:Create(InfoPrompt.Title,TweenInfo.new(.25,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{
  306.         TextTransparency = Transparency
  307.     }):Play()
  308. end
  309.  
  310. function AddInfos(Object:Frame,Settings,type)
  311.     --local Interact = Object:FindFirstChild('Interact') or Object:FindFirstChild('Main'):FindFirstChild('Interact')
  312.     Object.MouseEnter:Connect(function(input)
  313.         --if not (input.UserInputType == Enum.UserInputType.MouseButton2) then return end
  314.         if Settings and Settings.Info then
  315.             InfoPromptOpen = true
  316.             FadeDescription(Settings,type)
  317.         end
  318.     end)
  319.     Object.MouseLeave:Connect(function()
  320.         FadeDescription(nil,nil,true)
  321.     end)
  322. end
  323. local function PackColor(Color)
  324.     return {R = Color.R * 255, G = Color.G * 255, B = Color.B * 255}
  325. end    
  326.  
  327. local function UnpackColor(Color)
  328.     return Color3.fromRGB(Color.R, Color.G, Color.B)
  329. end
  330.  
  331. local function LoadConfiguration(Configuration)
  332.     local Data = HttpService:JSONDecode(Configuration)
  333.     for FlagName, FlagValue in next, Data do
  334.         if ArrayFieldLibrary.Flags[FlagName] then
  335.             spawn(function()
  336.                 if ArrayFieldLibrary.Flags[FlagName].Type == "ColorPicker" then
  337.                     ArrayFieldLibrary.Flags[FlagName]:Set(UnpackColor(FlagValue))
  338.                 else
  339.                     if ArrayFieldLibrary.Flags[FlagName].CurrentValue or ArrayFieldLibrary.Flags[FlagName].CurrentKeybind or ArrayFieldLibrary.Flags[FlagName].CurrentOption or ArrayFieldLibrary.Flags[FlagName].Color ~= FlagValue then ArrayFieldLibrary.Flags[FlagName]:Set(FlagValue) end
  340.                 end    
  341.             end)
  342.         else
  343.             ArrayFieldLibrary:Notify({Title = "Flag Error", Content = "ArrayField was unable to find '"..FlagName.. "'' in the current script"})
  344.         end
  345.     end
  346. end
  347.  
  348. local function SaveConfiguration()
  349.     if not CEnabled then return end
  350.     local Data = {}
  351.     for i,v in pairs(ArrayFieldLibrary.Flags) do
  352.         if v.Type == "ColorPicker" then
  353.             Data[i] = PackColor(v.Color)
  354.         else
  355.             Data[i] = v.CurrentValue or v.CurrentKeybind or v.Color or v.CurrentOption
  356.         end
  357.     end
  358.     writefile(ConfigurationFolder .. "/" .. CFileName .. ConfigurationExtension, tostring(HttpService:JSONEncode(Data)))
  359. end
  360.  
  361. local neon = (function()  --Open sourced neon module
  362.     local module = {}
  363.  
  364.     do
  365.         local function IsNotNaN(x)
  366.             return x == x
  367.         end
  368.         local continued = IsNotNaN(Camera:ScreenPointToRay(0,0).Origin.x)
  369.         while not continued do
  370.             RunService.RenderStepped:wait()
  371.             continued = IsNotNaN(Camera:ScreenPointToRay(0,0).Origin.x)
  372.         end
  373.     end
  374.     local RootParent = Camera
  375.     if false == nil then
  376.         RootParent = Camera
  377.     else
  378.         if not false then
  379.             RootParent = Camera
  380.         else
  381.             RootParent = nil
  382.         end
  383.     end
  384.  
  385.  
  386.     local binds = {}
  387.     local root = Instance.new('Folder', RootParent)
  388.     root.Name = 'neon'
  389.  
  390.  
  391.     local GenUid; do
  392.         local id = 0
  393.         function GenUid()
  394.             id = id + 1
  395.             return 'neon::'..tostring(id)
  396.         end
  397.     end
  398.  
  399.     local DrawQuad; do
  400.         local acos, max, pi, sqrt = math.acos, math.max, math.pi, math.sqrt
  401.         local sz = 0.2
  402.  
  403.         local function DrawTriangle(v1, v2, v3, p0, p1)
  404.             local s1 = (v1 - v2).magnitude
  405.             local s2 = (v2 - v3).magnitude
  406.             local s3 = (v3 - v1).magnitude
  407.             local smax = max(s1, s2, s3)
  408.             local A, B, C
  409.             if s1 == smax then
  410.                 A, B, C = v1, v2, v3
  411.             elseif s2 == smax then
  412.                 A, B, C = v2, v3, v1
  413.             elseif s3 == smax then
  414.                 A, B, C = v3, v1, v2
  415.             end
  416.  
  417.             local para = ( (B-A).x*(C-A).x + (B-A).y*(C-A).y + (B-A).z*(C-A).z ) / (A-B).magnitude
  418.             local perp = sqrt((C-A).magnitude^2 - para*para)
  419.             local dif_para = (A - B).magnitude - para
  420.  
  421.             local st = CFrame.new(B, A)
  422.             local za = CFrame.Angles(pi/2,0,0)
  423.  
  424.             local cf0 = st
  425.  
  426.             local Top_Look = (cf0 * za).lookVector
  427.             local Mid_Point = A + CFrame.new(A, B).LookVector * para
  428.             local Needed_Look = CFrame.new(Mid_Point, C).LookVector
  429.             local dot = Top_Look.x*Needed_Look.x + Top_Look.y*Needed_Look.y + Top_Look.z*Needed_Look.z
  430.  
  431.             local ac = CFrame.Angles(0, 0, acos(dot))
  432.  
  433.             cf0 = cf0 * ac
  434.             if ((cf0 * za).lookVector - Needed_Look).magnitude > 0.01 then
  435.                 cf0 = cf0 * CFrame.Angles(0, 0, -2*acos(dot))
  436.             end
  437.             cf0 = cf0 * CFrame.new(0, perp/2, -(dif_para + para/2))
  438.  
  439.             local cf1 = st * ac * CFrame.Angles(0, pi, 0)
  440.             if ((cf1 * za).lookVector - Needed_Look).magnitude > 0.01 then
  441.                 cf1 = cf1 * CFrame.Angles(0, 0, 2*acos(dot))
  442.             end
  443.             cf1 = cf1 * CFrame.new(0, perp/2, dif_para/2)
  444.  
  445.             if not p0 then
  446.                 p0 = Instance.new('Part')
  447.                 p0.FormFactor = 'Custom'
  448.                 p0.TopSurface = 0
  449.                 p0.BottomSurface = 0
  450.                 p0.Anchored = true
  451.                 p0.CanCollide = false
  452.                 p0.Material = 'Glass'
  453.                 p0.Size = Vector3.new(sz, sz, sz)
  454.                 local mesh = Instance.new('SpecialMesh', p0)
  455.                 mesh.MeshType = 2
  456.                 mesh.Name = 'WedgeMesh'
  457.             end
  458.             p0.WedgeMesh.Scale = Vector3.new(0, perp/sz, para/sz)
  459.             p0.CFrame = cf0
  460.  
  461.             if not p1 then
  462.                 p1 = p0:clone()
  463.             end
  464.             p1.WedgeMesh.Scale = Vector3.new(0, perp/sz, dif_para/sz)
  465.             p1.CFrame = cf1
  466.  
  467.             return p0, p1
  468.         end
  469.  
  470.         function DrawQuad(v1, v2, v3, v4, parts)
  471.             parts[1], parts[2] = DrawTriangle(v1, v2, v3, parts[1], parts[2])
  472.             parts[3], parts[4] = DrawTriangle(v3, v2, v4, parts[3], parts[4])
  473.         end
  474.     end
  475.  
  476.     function module:BindFrame(frame, properties)
  477.         if RootParent == nil then return end
  478.         if binds[frame] then
  479.             return binds[frame].parts
  480.         end
  481.  
  482.         local uid = GenUid()
  483.         local parts = {}
  484.         local f = Instance.new('Folder', root)
  485.         f.Name = frame.Name
  486.  
  487.         local parents = {}
  488.         do
  489.             local function add(child)
  490.                 if child:IsA'GuiObject' then
  491.                     parents[#parents + 1] = child
  492.                     add(child.Parent)
  493.                 end
  494.             end
  495.             add(frame)
  496.         end
  497.  
  498.         local function UpdateOrientation(fetchProps)
  499.             local zIndex = 1 - 0.05*frame.ZIndex
  500.             local tl, br = frame.AbsolutePosition, frame.AbsolutePosition + frame.AbsoluteSize
  501.             local tr, bl = Vector2.new(br.x, tl.y), Vector2.new(tl.x, br.y)
  502.             do
  503.                 local rot = 0;
  504.                 for _, v in ipairs(parents) do
  505.                     rot = rot + v.Rotation
  506.                 end
  507.                 if rot ~= 0 and rot%180 ~= 0 then
  508.                     local mid = tl:lerp(br, 0.5)
  509.                     local s, c = math.sin(math.rad(rot)), math.cos(math.rad(rot))
  510.                     local vec = tl
  511.                     tl = Vector2.new(c*(tl.x - mid.x) - s*(tl.y - mid.y), s*(tl.x - mid.x) + c*(tl.y - mid.y)) + mid
  512.                     tr = Vector2.new(c*(tr.x - mid.x) - s*(tr.y - mid.y), s*(tr.x - mid.x) + c*(tr.y - mid.y)) + mid
  513.                     bl = Vector2.new(c*(bl.x - mid.x) - s*(bl.y - mid.y), s*(bl.x - mid.x) + c*(bl.y - mid.y)) + mid
  514.                     br = Vector2.new(c*(br.x - mid.x) - s*(br.y - mid.y), s*(br.x - mid.x) + c*(br.y - mid.y)) + mid
  515.                 end
  516.             end
  517.             DrawQuad(
  518.                 Camera:ScreenPointToRay(tl.x, tl.y, zIndex).Origin,
  519.                 Camera:ScreenPointToRay(tr.x, tr.y, zIndex).Origin,
  520.                 Camera:ScreenPointToRay(bl.x, bl.y, zIndex).Origin,
  521.                 Camera:ScreenPointToRay(br.x, br.y, zIndex).Origin,
  522.                 parts
  523.             )
  524.             if fetchProps then
  525.                 for _, pt in pairs(parts) do
  526.                     pt.Parent = f
  527.                 end
  528.                 for propName, propValue in pairs(properties) do
  529.                     for _, pt in pairs(parts) do
  530.                         pt[propName] = propValue
  531.                     end
  532.                 end
  533.             end
  534.         end
  535.  
  536.         UpdateOrientation(true)
  537.         RunService:BindToRenderStep(uid, 2000, UpdateOrientation)
  538.  
  539.         binds[frame] = {
  540.             uid = uid;
  541.             parts = parts;
  542.         }
  543.         return binds[frame].parts
  544.     end
  545.  
  546.     function module:Modify(frame, properties)
  547.         local parts = module:GetBoundParts(frame)
  548.         if parts then
  549.             for propName, propValue in pairs(properties) do
  550.                 for _, pt in pairs(parts) do
  551.                     pt[propName] = propValue
  552.                 end
  553.             end
  554.         end
  555.     end
  556.  
  557.     function module:UnbindFrame(frame)
  558.         if RootParent == nil then return end
  559.         local cb = binds[frame]
  560.         if cb then
  561.             RunService:UnbindFromRenderStep(cb.uid)
  562.             for _, v in pairs(cb.parts) do
  563.                 v:Destroy()
  564.             end
  565.             binds[frame] = nil
  566.         end
  567.     end
  568.  
  569.     function module:HasBinding(frame)
  570.         return binds[frame] ~= nil
  571.     end
  572.  
  573.     function module:GetBoundParts(frame)
  574.         return binds[frame] and binds[frame].parts
  575.     end
  576.  
  577.  
  578.     return module
  579.  
  580. end)()
  581. function CloseNPrompt()
  582.     local Infos= TweenInfo.new(.2,Enum.EasingStyle.Quad,Enum.EasingDirection.Out)
  583.     TweenService:Create(NotePrompt,Infos,{BackgroundTransparency = 1,Size = UDim2.fromOffset(436,92),Position = UDim2.fromScale(0.5,0.19)}):Play()
  584.     TweenService:Create(NotePrompt.UIStroke,Infos,{Transparency = 1}):Play()
  585.     TweenService:Create(NotePrompt.Shadow.Image,Infos,{ImageTransparency = 1}):Play()
  586.  
  587.     TweenService:Create(NotePrompt.Close,Infos,{ImageTransparency = .1}):Play()
  588.     TweenService:Create(NotePrompt.Icon,Infos,{ImageTransparency = 1}):Play()
  589.     TweenService:Create(NotePrompt.Title,Infos,{TextTransparency = 1}):Play()
  590.  
  591.     TweenService:Create(NotePrompt.Description,Infos,{TextTransparency = 1}):Play()
  592.     TweenService:Create(NotePrompt.Load,Infos,{TextTransparency = 1,BackgroundTransparency = 1}):Play()
  593.     TweenService:Create(NotePrompt.Load.UIStroke,Infos,{Transparency = 1}):Play()
  594.     TweenService:Create(NotePrompt.Load.Shadow,Infos,{ImageTransparency = 1}):Play()
  595.     wait(0.21)
  596.     NotePrompt.Visible = false
  597. end
  598. function qNotePrompt(PromptSettings)
  599.     local Infos= TweenInfo.new(.4,Enum.EasingStyle.Quad,Enum.EasingDirection.Out)
  600.     NotePrompt.Visible = false
  601.     --Setup
  602.     NotePrompt.Size = UDim2.fromOffset(436,92)
  603.     NotePrompt.Position = UDim2.fromScale(0.5,0.19)
  604.     NotePrompt.BackgroundTransparency = 1
  605.     NotePrompt.UIStroke.Transparency = 1
  606.  
  607.     NotePrompt.Icon.ImageTransparency = 1
  608.     NotePrompt.Close.ImageTransparency = 1
  609.  
  610.     NotePrompt.Shadow.Image.ImageTransparency = 1
  611.  
  612.     NotePrompt.Title.TextTransparency = 1
  613.     NotePrompt.Description.TextTransparency = 1
  614.  
  615.     NotePrompt.Load.BackgroundTransparency = 1
  616.     NotePrompt.Load.UIStroke.Transparency = 1
  617.     NotePrompt.Load.TextTransparency = 1
  618.     NotePrompt.Load.Shadow.ImageTransparency = 1
  619.     --Settings
  620.     NotePrompt.Title.Text = PromptSettings.Title or ''
  621.     NotePrompt.Description.Text = PromptSettings.Description or ''
  622.     NotePrompt.Icon.Image = PromptSettings.Icon or 'rbxassetid://4483362748'
  623.     NotePrompt.Load.BackgroundColor3 = PromptSettings.Color or Color3.fromRGB(90, 90, 90)
  624.     NotePrompt.Load.MouseButton1Down:Once(function(x,y)
  625.         CloseNPrompt()
  626.         if PromptSettings.Callback then
  627.             PromptSettings.Callback()
  628.         end
  629.     end)
  630.  
  631.     NotePrompt.Close.MouseButton1Down:Once(function()
  632.         CloseNPrompt()
  633.     end)
  634.     NotePrompt.Visible = true
  635.     --Opening
  636.     TweenService:Create(NotePrompt,Infos,{BackgroundTransparency = .1,Size = UDim2.fromOffset(474,100),Position = UDim2.fromScale(0.5,0.21)}):Play()
  637.     TweenService:Create(NotePrompt.UIStroke,Infos,{Transparency = 0}):Play()
  638.     TweenService:Create(NotePrompt.Shadow.Image,Infos,{ImageTransparency = .2}):Play()
  639.     wait(.3)
  640.     TweenService:Create(NotePrompt.Close,Infos,{ImageTransparency = .8}):Play()
  641.     TweenService:Create(NotePrompt.Icon,Infos,{ImageTransparency = 0}):Play()
  642.     TweenService:Create(NotePrompt.Title,Infos,{TextTransparency = 0}):Play()
  643.     wait(.1)
  644.     TweenService:Create(NotePrompt.Description,Infos,{TextTransparency = 0}):Play()
  645.     wait(.2)
  646.     TweenService:Create(NotePrompt.Load,Infos,{TextTransparency = 0,BackgroundTransparency = .2}):Play()
  647.     TweenService:Create(NotePrompt.Load.UIStroke,Infos,{Transparency = 0}):Play()
  648.     TweenService:Create(NotePrompt.Load.Shadow,Infos,{ImageTransparency = .8}):Play()
  649. end
  650. function ClosePrompt()
  651.     local PromptUI = Prompt.Prompt
  652.     clicked = false
  653.     TweenService:Create(Prompt, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  654.     TweenService:Create(PromptUI, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundTransparency = 1,Size = UDim2.new(0,340,0,140)}):Play()
  655.     TweenService:Create(PromptUI.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  656.     TweenService:Create(PromptUI.Title, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  657.     TweenService:Create(PromptUI.Content, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  658.     TweenService:Create(PromptUI.Sub, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  659.     for _,button in pairs(PromptUI.Buttons:GetChildren()) do
  660.         if button.Name ~= 'Template' and button:IsA("Frame") then
  661.             TweenService:Create(button.UIStroke,TweenInfo.new(0.2, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  662.             TweenService:Create(button.TextLabel,TweenInfo.new(0.2, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  663.             delay(.2,function()
  664.                 button:Destroy()
  665.             end)
  666.         end
  667.     end
  668.     wait(.5)
  669.     Prompt.Visible = false
  670. end
  671. function ArrayFieldLibrary:Notify(NotificationSettings)
  672.     spawn(function()
  673.         local ActionCompleted = true
  674.         local Notification = Notifications.Template:Clone()
  675.         Notification.Parent = Notifications
  676.         Notification.Name = NotificationSettings.Title or "Unknown Title"
  677.         Notification.Visible = true
  678.  
  679.         local blurlight = nil
  680.         if not false then
  681.             blurlight = Instance.new("DepthOfFieldEffect",game:GetService("Lighting"))
  682.             blurlight.Enabled = true
  683.             blurlight.FarIntensity = 0
  684.             blurlight.FocusDistance = 51.6
  685.             blurlight.InFocusRadius = 50
  686.             blurlight.NearIntensity = 1
  687.             game:GetService("Debris"):AddItem(script,0)
  688.         end
  689.  
  690.         Notification.Actions.Template.Visible = false
  691.  
  692.         if NotificationSettings.Actions then
  693.             for _, Action in pairs(NotificationSettings.Actions) do
  694.                 ActionCompleted = false
  695.                 local NewAction = Notification.Actions.Template:Clone()
  696.                 NewAction.BackgroundColor3 = SelectedTheme.NotificationActionsBackground
  697.                 if SelectedTheme ~= ArrayFieldLibrary.Theme.Default then
  698.                     NewAction.TextColor3 = SelectedTheme.TextColor
  699.                 end
  700.                 NewAction.Name = Action.Name
  701.                 NewAction.Visible = true
  702.                 NewAction.Parent = Notification.Actions
  703.                 NewAction.Text = Action.Name
  704.                 NewAction.BackgroundTransparency = 1
  705.                 NewAction.TextTransparency = 1
  706.                 NewAction.Size = UDim2.new(0, NewAction.TextBounds.X + 27, 0, 36)
  707.  
  708.                 NewAction.MouseButton1Click:Connect(function()
  709.                     local Success, Response = pcall(Action.Callback)
  710.                     if not Success then
  711.                         print("ArrayField | Action: "..Action.Name.." Callback Error " ..tostring(Response))
  712.                     end
  713.                     ActionCompleted = true
  714.                 end)
  715.             end
  716.         end
  717.         Notification.BackgroundColor3 = SelectedTheme.Background
  718.         Notification.Title.Text = NotificationSettings.Title or "Unknown"
  719.         Notification.Title.TextTransparency = 1
  720.         Notification.Title.TextColor3 = SelectedTheme.TextColor
  721.         Notification.Description.Text = NotificationSettings.Content or "Unknown"
  722.         Notification.Description.TextTransparency = 1
  723.         Notification.Description.TextColor3 = SelectedTheme.TextColor
  724.         Notification.Icon.ImageColor3 = SelectedTheme.TextColor
  725.         if NotificationSettings.Image then
  726.             Notification.Icon.Image = "rbxassetid://"..tostring(NotificationSettings.Image)
  727.         else
  728.             Notification.Icon.Image = "rbxassetid://3944680095"
  729.         end
  730.  
  731.         Notification.Icon.ImageTransparency = 1
  732.  
  733.         Notification.Parent = Notifications
  734.         Notification.Size = UDim2.new(0, 260, 0, 80)
  735.         Notification.BackgroundTransparency = 1
  736.  
  737.         TweenService:Create(Notification, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 295, 0, 91)}):Play()
  738.         TweenService:Create(Notification, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.1}):Play()
  739.         Notification:TweenPosition(UDim2.new(0.5,0,0.915,0),'Out','Quint',0.8,true)
  740.  
  741.         wait(0.3)
  742.         TweenService:Create(Notification.Icon, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play()
  743.         TweenService:Create(Notification.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  744.         TweenService:Create(Notification.Description, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.2}):Play()
  745.         wait(0.2)
  746.  
  747.  
  748.  
  749.         -- Requires Graphics Level 8-10
  750.         if false == nil then
  751.             TweenService:Create(Notification, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.4}):Play()
  752.         else
  753.             if not false then
  754.                 TweenService:Create(Notification, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.4}):Play()
  755.             else
  756.                 TweenService:Create(Notification, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  757.             end
  758.         end
  759.  
  760.         if ArrayField.Name == "ArrayField" then
  761.             neon:BindFrame(Notification.BlurModule, {
  762.                 Transparency = 0.98;
  763.                 BrickColor = BrickColor.new("Institutional white");
  764.             })
  765.         end
  766.  
  767.         if not NotificationSettings.Actions then
  768.             wait(NotificationSettings.Duration or NotificationDuration - 0.5)
  769.         else
  770.             wait(0.8)
  771.             TweenService:Create(Notification, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 295, 0, 132)}):Play()
  772.             wait(0.3)
  773.             for _, Action in ipairs(Notification.Actions:GetChildren()) do
  774.                 if Action.ClassName == "TextButton" and Action.Name ~= "Template" then
  775.                     TweenService:Create(Action, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.2}):Play()
  776.                     TweenService:Create(Action, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  777.                     wait(0.05)
  778.                 end
  779.             end
  780.         end
  781.  
  782.         repeat wait(0.001) until ActionCompleted
  783.  
  784.         for _, Action in ipairs(Notification.Actions:GetChildren()) do
  785.             if Action.ClassName == "TextButton" and Action.Name ~= "Template" then
  786.                 TweenService:Create(Action, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  787.                 TweenService:Create(Action, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  788.             end
  789.         end
  790.  
  791.         TweenService:Create(Notification.Title, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Position = UDim2.new(0.47, 0,0.234, 0)}):Play()
  792.         TweenService:Create(Notification.Description, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Position = UDim2.new(0.528, 0,0.637, 0)}):Play()
  793.         TweenService:Create(Notification, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 280, 0, 83)}):Play()
  794.         TweenService:Create(Notification.Icon, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  795.         TweenService:Create(Notification, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.6}):Play()
  796.  
  797.         wait(0.3)
  798.         TweenService:Create(Notification.Title, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.4}):Play()
  799.         TweenService:Create(Notification.Description, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.5}):Play()
  800.         wait(0.4)
  801.         TweenService:Create(Notification, TweenInfo.new(0.9, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 260, 0, 0)}):Play()
  802.         TweenService:Create(Notification, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  803.         TweenService:Create(Notification.Title, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  804.         TweenService:Create(Notification.Description, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  805.         wait(0.2)
  806.         if not false then
  807.             neon:UnbindFrame(Notification.BlurModule)
  808.             blurlight:Destroy()
  809.         end
  810.         wait(0.9)
  811.         Notification:Destroy()
  812.     end)
  813. end
  814.  
  815. function CloseSideBar()
  816.     Debounce = true
  817.     SideBarClosed = true
  818.     for _,tabbtn in pairs(SideList:GetChildren()) do
  819.         if tabbtn.ClassName == "Frame" and tabbtn.Name ~= "Placeholder" then
  820.             TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint),{TextTransparency = 1}):Play()
  821.             TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Quint),{ImageTransparency = 1}):Play()
  822.         end
  823.     end
  824.     TweenService:Create(Main.SideTabList, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundTransparency = 1,Size = UDim2.new(0,150,0,390),Position = UDim2.new(0,10,0.5,22)}):Play()
  825.     TweenService:Create(Main.SideTabList.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint),{Transparency = 1}):Play()
  826.     TweenService:Create(Main.SideTabList.RDMT, TweenInfo.new(0.4, Enum.EasingStyle.Quint),{TextTransparency = 1}):Play()
  827.     wait(.4)
  828.     Main.SideTabList.Visible = false
  829.     wait(0.2)
  830.     Debounce = false
  831. end
  832. function Hide()
  833.     if not SideBarClosed then
  834.         spawn(CloseSideBar)
  835.     end
  836.     spawn(function()
  837.         FadeDescription(nil,true)
  838.     end)
  839.     Debounce = true
  840.     ArrayFieldLibrary:Notify({Title = "Interface Hidden", Content = "The interface has been hidden, you can unhide the interface by tapping RightShift", Duration = 7})
  841.     TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 470, 0, 400)}):Play()
  842.     TweenService:Create(Main.Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 470, 0, 45)}):Play()
  843.     TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  844.     TweenService:Create(Main.Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  845.     TweenService:Create(Main.Topbar.Divider, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  846.     TweenService:Create(Main.Topbar.CornerRepair, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  847.     TweenService:Create(Main.Topbar.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  848.     TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  849.     TweenService:Create(Topbar.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  850.     for _, TopbarButton in ipairs(Topbar:GetChildren()) do
  851.         if TopbarButton.ClassName == "ImageButton" then
  852.             TweenService:Create(TopbarButton, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  853.         end
  854.     end
  855.     for _, tabbtn in ipairs(TabsList:GetChildren()) do
  856.         if tabbtn.ClassName == "Frame" and tabbtn.Name ~= "Placeholder" then
  857.             TweenService:Create(tabbtn, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  858.             TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  859.             TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  860.             TweenService:Create(tabbtn.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  861.             TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  862.         end
  863.     end
  864.     for _, tab in ipairs(Elements:GetChildren()) do
  865.         if tab.Name ~= "Template" and tab.ClassName == "ScrollingFrame" and tab.Name ~= "Placeholder" then
  866.             for _, element in ipairs(tab:GetChildren()) do
  867.                 if element.ClassName == "Frame" then
  868.                     if element.Name ~= "SectionSpacing" and element.Name ~= "Placeholder" then
  869.                         print(element)
  870.                         if element:FindFirstChild('Holder') then
  871.                             TweenService:Create(element, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  872.                             TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  873.                         else
  874.                             TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  875.                             pcall(function()
  876.                                 TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  877.                             end)
  878.                             TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  879.                         end
  880.                         for _, child in ipairs(element:GetChildren()) do
  881.                             if child.ClassName == "Frame" or child.ClassName == "TextLabel" or child.ClassName == "TextBox" or child.ClassName == "ImageButton" or child.ClassName == "ImageLabel" then
  882.                                 child.Visible = false
  883.                             end
  884.                         end
  885.                     end
  886.                 end
  887.             end
  888.         end
  889.     end
  890.     wait(0.5)
  891.     Main.Visible = false
  892.     Debounce = false
  893. end
  894. function Unhide()
  895.     Debounce = true
  896.     Main.Position = UDim2.new(0.5, 0, 0.5, 0)
  897.     Main.Visible = true
  898.     TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 475)}):Play()
  899.     TweenService:Create(Main.Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 45)}):Play()
  900.     TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.4}):Play()
  901.     TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  902.     TweenService:Create(Main.Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  903.     TweenService:Create(Main.Topbar.Divider, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  904.     TweenService:Create(Main.Topbar.CornerRepair, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  905.     TweenService:Create(Main.Topbar.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  906.     if Minimised then
  907.         spawn(Maximise)
  908.     end
  909.     for _, TopbarButton in ipairs(Topbar:GetChildren()) do
  910.         if TopbarButton.ClassName == "ImageButton" then
  911.             TweenService:Create(TopbarButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.8}):Play()
  912.         end
  913.     end
  914.     for _, tab in ipairs(Elements:GetChildren()) do
  915.         if tab.Name ~= "Template" and tab.ClassName == "ScrollingFrame" and tab.Name ~= "Placeholder" then
  916.             for _, element in ipairs(tab:GetChildren()) do
  917.                 if element.ClassName == "Frame" then
  918.                     if element.Name ~= "SectionSpacing" and element.Name ~= "Placeholder" and not element:FindFirstChild('ColorPickerIs') then
  919.                         if element:FindFirstChild('_UIPadding_') then
  920.                             TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  921.                             TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = .25}):Play()
  922.                         else
  923.                             if element.Name ~= 'SectionTitle' then
  924.                                 TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  925.                                 TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  926.                             end
  927.                             TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  928.                         end
  929.                         for _, child in ipairs(element:GetChildren()) do
  930.                             if (child.ClassName == "Frame" or child.ClassName == "TextLabel" or child.ClassName == "TextBox" or child.ClassName == "ImageButton" or child.ClassName == "ImageLabel") then
  931.                                 child.Visible = true
  932.                             end
  933.                         end
  934.                     elseif element:FindFirstChild('ColorPickerIs') then
  935.                         TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  936.                         TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  937.                         TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  938.  
  939.                         if element.ColorPickerIs.Value then
  940.                             element.ColorSlider.Visible = true
  941.                             element.HexInput.Visible = true
  942.                             element.RGB.Visible = true
  943.                         end
  944.                         element.CPBackground.Visible = true
  945.                         element.Lock.Visible = true
  946.                         element.Interact.Visible = true
  947.                         element.Title.Visible = true
  948.                     end
  949.                 end
  950.             end
  951.         end
  952.     end
  953.     wait(0.5)
  954.     Minimised = false
  955.     Debounce = false
  956. end
  957. function CloseSearch()
  958.     Debounce = true
  959.     TweenService:Create(SearchBar, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundTransparency = 1,Size = UDim2.new(0, 460,0, 35)}):Play()
  960.     TweenService:Create(SearchBar.Icon, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  961.     TweenService:Create(SearchBar.Clear, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  962.     TweenService:Create(SearchBar.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  963.     TweenService:Create(SearchBar.Filter, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  964.     TweenService:Create(SearchBar.Shadow.Image, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 0.1}):Play()
  965.     TweenService:Create(SearchBar.Input, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  966.     delay(.3,function()
  967.         SearchBar.Input.Visible = false
  968.     end)
  969.     wait(0.5)
  970.     SearchBar.Visible = false
  971.     Debounce = false
  972. end
  973. function OpenSearch()
  974.     Debounce = true
  975.     SearchBar.Visible = true
  976.     SearchBar.Input.Visible = true
  977.     TweenService:Create(SearchBar, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundTransparency = 0,Size = UDim2.new(0, 480,0, 40)}):Play()
  978.     TweenService:Create(SearchBar.Icon, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 0.5}):Play()
  979.     TweenService:Create(SearchBar.Shadow.Image, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 0.1}):Play()
  980.     TweenService:Create(SearchBar.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  981.     TweenService:Create(SearchBar.Clear, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = .8}):Play()
  982.     TweenService:Create(SearchBar.Filter, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = .8}):Play()
  983.     TweenService:Create(SearchBar.Input, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  984.     wait(0.5)
  985.     Debounce = false
  986. end
  987. SearchBar.Input:GetPropertyChangedSignal('Text'):Connect(function()
  988.     local InputText=string.upper(SearchBar.Input.Text)
  989.     for _,page in ipairs(Elements:GetChildren()) do
  990.         if page ~= 'Template' then
  991.             for _,Element in pairs(page:GetChildren())do
  992.                 if Element:IsA("Frame") and Element.Name ~= 'Placeholder' and Element.Name ~= 'SectionSpacing' then
  993.                     if InputText==""or string.find(string.upper(Element.Name),InputText)~=nil then
  994.                         Element.Visible=true
  995.                     else
  996.                         Element.Visible=false
  997.                     end
  998.                 end
  999.             end
  1000.         end
  1001.     end
  1002. end)
  1003. SearchBar.Clear.MouseButton1Down:Connect(function()
  1004.     Filler.Position = UDim2.new(0.957,0,.5,0)
  1005.     Filler.Size = UDim2.new(0,1,0,1)
  1006.     Filler.BackgroundTransparency = .9
  1007.  
  1008.     local goal = {}
  1009.     goal.Size = UDim2.new(0,1000,0,500)
  1010.     goal.BackgroundTransparency = 1
  1011.  
  1012.     TweenService:Create(Filler, TweenInfo.new(1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out), goal):Play()
  1013.     SearchBar.Input.Text = ''
  1014. end)
  1015.  
  1016. function Maximise()
  1017.     Debounce = true
  1018.     Topbar.ChangeSize.Image = "rbxassetid://"..10137941941
  1019.  
  1020.     TweenService:Create(Topbar.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  1021.     TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 0.4}):Play()
  1022.     TweenService:Create(Topbar.CornerRepair, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1023.     TweenService:Create(Topbar.Divider, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1024.     TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 475)}):Play()
  1025.     TweenService:Create(Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 45)}):Play()
  1026.     TabsList.Visible = true
  1027.     wait(0.2)
  1028.  
  1029.     Elements.Visible = true
  1030.  
  1031.     for _, tab in ipairs(Elements:GetChildren()) do
  1032.         if tab.Name ~= "Template" and tab.ClassName == "ScrollingFrame" and tab.Name ~= "Placeholder" then
  1033.             for _, element in ipairs(tab:GetChildren()) do
  1034.                 if element.ClassName == "Frame" then
  1035.                     if element.Name ~= "SectionSpacing" and element.Name ~= "Placeholder" and not element:FindFirstChild('ColorPickerIs') then
  1036.                         if element:FindFirstChild('_UIPadding_') then
  1037.                             TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = .25}):Play()
  1038.                             TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1039.                         else
  1040.                             if element.Name ~= 'SectionTitle' then
  1041.                                 TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1042.                                 TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  1043.                             end
  1044.                             TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1045.                         end
  1046.                         for _, child in ipairs(element:GetChildren()) do
  1047.                             if (child.ClassName == "Frame" or child.ClassName == "TextLabel" or child.ClassName == "TextBox" or child.ClassName == "ImageButton" or child.ClassName == "ImageLabel") then
  1048.                                 child.Visible = true
  1049.                             end
  1050.                         end
  1051.                     elseif element:FindFirstChild('ColorPickerIs') then
  1052.                         TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1053.                         TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  1054.                         TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1055.  
  1056.                         if element.ColorPickerIs.Value then
  1057.                             element.ColorSlider.Visible = true
  1058.                             element.HexInput.Visible = true
  1059.                             element.RGB.Visible = true
  1060.                         end
  1061.                         element.CPBackground.Visible = true
  1062.                         element.Lock.Visible = true
  1063.                         element.Interact.Visible = true
  1064.                         element.Title.Visible = true
  1065.                     end
  1066.                 end
  1067.             end
  1068.         end
  1069.     end
  1070.  
  1071.  
  1072.     wait(0.1)
  1073.  
  1074.     for _, tabbtn in ipairs(TopList:GetChildren()) do
  1075.         if tabbtn.ClassName == "Frame" and tabbtn.Name ~= "Placeholder" then
  1076.             if tostring(Elements.UIPageLayout.CurrentPage) == tabbtn.Title.Text then
  1077.                 TweenService:Create(tabbtn, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1078.                 TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play()
  1079.                 TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1080.                 TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  1081.                 TweenService:Create(tabbtn.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.9}):Play()
  1082.             else
  1083.                 TweenService:Create(tabbtn, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.7}):Play()
  1084.                 TweenService:Create(tabbtn.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play()
  1085.                 TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.2}):Play()
  1086.                 TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0.2}):Play()
  1087.                 TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  1088.             end
  1089.  
  1090.         end
  1091.     end
  1092.  
  1093.  
  1094.     wait(0.5)
  1095.     Debounce = false
  1096. end
  1097. function OpenSideBar()
  1098.     Debounce = true
  1099.     Main.SideTabList.Visible = true
  1100.     TweenService:Create(Main.SideTabList, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundTransparency = .03,Size = UDim2.new(0,160,0,405),Position = UDim2.new(0,14,0.5,22)}):Play()
  1101.     TweenService:Create(Main.SideTabList.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint),{Transparency = 0}):Play()
  1102.     TweenService:Create(Main.SideTabList.RDMT, TweenInfo.new(0.4, Enum.EasingStyle.Quint),{TextTransparency = 0}):Play()
  1103.     for _,tabbtn in pairs(SideList:GetChildren()) do
  1104.         if tabbtn.ClassName == "Frame" and tabbtn.Name ~= "Placeholder" then
  1105.             if tabbtn.Title.TextColor3 ~= Color3.fromRGB(255,255,255) then
  1106.                 TweenService:Create(tabbtn.Title, TweenInfo.new(0.25, Enum.EasingStyle.Quint),{TextTransparency = .2}):Play()
  1107.             else
  1108.                 TweenService:Create(tabbtn.Title, TweenInfo.new(0.25, Enum.EasingStyle.Quint),{TextTransparency = 0}):Play()
  1109.             end
  1110.             TweenService:Create(tabbtn.Image, TweenInfo.new(0.25, Enum.EasingStyle.Quint),{ImageTransparency = 0}):Play()
  1111.         end
  1112.         wait(0.12)
  1113.     end
  1114.     SideBarClosed = false
  1115.     wait(0.2)
  1116.     Debounce = false
  1117. end
  1118. function Minimise()
  1119.     Debounce = true
  1120.     Topbar.ChangeSize.Image = "rbxassetid://"..11036884234
  1121.     if not SearchHided then
  1122.         spawn(CloseSearch)
  1123.     end
  1124.     if not SideBarClosed then
  1125.         spawn(CloseSideBar)
  1126.     end
  1127.     spawn(function()
  1128.         FadeDescription(nil,true)
  1129.     end)
  1130.     for _, tabbtn in ipairs(TopList:GetChildren()) do
  1131.         if tabbtn.ClassName == "Frame" and tabbtn.Name ~= "Placeholder" then
  1132.             TweenService:Create(tabbtn, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  1133.             TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  1134.             TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1135.             TweenService:Create(tabbtn.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  1136.             TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  1137.         end
  1138.     end
  1139.  
  1140.     for _, tab in ipairs(Elements:GetChildren()) do
  1141.         if tab.Name ~= "Template" and tab.ClassName == "ScrollingFrame" and tab.Name ~= "Placeholder" then
  1142.             for _, element in ipairs(tab:GetChildren()) do
  1143.                 if element.ClassName == "Frame" then
  1144.                     if element.Name ~= "SectionSpacing" and element.Name ~= "Placeholder" then
  1145.                         if element:FindFirstChild('_UIPadding_') then
  1146.                             TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  1147.                             TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1148.                         else
  1149.                             TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  1150.                             pcall(function()
  1151.                                 TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  1152.                             end)
  1153.                             TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1154.                         end
  1155.                         for _, child in ipairs(element:GetChildren()) do
  1156.                             if child.ClassName == "Frame" or child.ClassName == "TextLabel" or child.ClassName == "TextBox" or child.ClassName == "ImageButton" or child.ClassName == "ImageLabel" then
  1157.                                 child.Visible = false
  1158.                             end
  1159.                         end
  1160.                     end
  1161.                 end
  1162.             end
  1163.         end
  1164.     end
  1165.  
  1166.     TweenService:Create(Topbar.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  1167.     TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  1168.     TweenService:Create(Topbar.CornerRepair, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  1169.     TweenService:Create(Topbar.Divider, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  1170.     TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 495, 0, 45)}):Play()
  1171.     TweenService:Create(Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 495, 0, 45)}):Play()
  1172.  
  1173.     wait(0.3)
  1174.  
  1175.     Elements.Visible = false
  1176.     TabsList.Visible = false
  1177.  
  1178.     wait(0.2)
  1179.     Debounce = false
  1180. end
  1181.  
  1182. function ArrayFieldLibrary:CreateWindow(Settings)
  1183.     ArrayField.Enabled = false
  1184.     local Passthrough = false
  1185.     Topbar.Title.Text = Settings.Name
  1186.     Main.Size = UDim2.new(0, 450, 0, 260)
  1187.     Main.Visible = true
  1188.     Main.BackgroundTransparency = 1
  1189.     LoadingFrame.Title.TextTransparency = 1
  1190.     LoadingFrame.Subtitle.TextTransparency = 1
  1191.     Main.Shadow.Image.ImageTransparency = 1
  1192.     LoadingFrame.Version.TextTransparency = 1
  1193.     LoadingFrame.Title.Text = Settings.LoadingTitle or "Arrayfield Interface Suite"
  1194.     LoadingFrame.Subtitle.Text = Settings.LoadingSubtitle or "by Sirius | Meta"
  1195.     if Settings.LoadingTitle ~= "Arrayfield Interface Suite" then
  1196.         LoadingFrame.Version.Text = "Arrayfield UI"
  1197.     end
  1198.     Topbar.Visible = false
  1199.     Elements.Visible = false
  1200.     LoadingFrame.Visible = true
  1201.  
  1202.  
  1203.     pcall(function()
  1204.         if not Settings.ConfigurationSaving.FileName then
  1205.             Settings.ConfigurationSaving.FileName = tostring(game.PlaceId)
  1206.         end
  1207.         if not isfolder(ArrayFieldLibrary.."/".."Configuration Folders") then
  1208.  
  1209.         end
  1210.         if Settings.ConfigurationSaving.Enabled == nil then
  1211.             Settings.ConfigurationSaving.Enabled = false
  1212.         end
  1213.         CFileName = Settings.ConfigurationSaving.FileName
  1214.         ConfigurationFolder = Settings.ConfigurationSaving.FolderName or ConfigurationFolder
  1215.         CEnabled = Settings.ConfigurationSaving.Enabled
  1216.  
  1217.         if Settings.ConfigurationSaving.Enabled then
  1218.             if not isfolder(ConfigurationFolder) then
  1219.                 makefolder(ConfigurationFolder)
  1220.             end
  1221.         end
  1222.     end)
  1223.  
  1224.     AddDraggingFunctionality(Topbar,Main)
  1225.  
  1226.     if typeof(Settings.KeySettings.Key) == "string" then Settings.KeySettings.Key = {Settings.KeySettings.Key} end
  1227.  
  1228.     for _, TabButton in ipairs(TabsList:GetChildren()) do
  1229.         if TabButton.ClassName == "Frame" and TabButton.Name ~= "Placeholder" then
  1230.             TabButton.BackgroundTransparency = 1
  1231.             TabButton.Title.TextTransparency = 1
  1232.             TabButton.Shadow.ImageTransparency = 1
  1233.             TabButton.Image.ImageTransparency = 1
  1234.             TabButton.UIStroke.Transparency = 1
  1235.         end
  1236.     end
  1237.  
  1238.     if Settings.Discord then
  1239.         if not isfolder(ArrayFieldFolder.."/Discord Invites") then
  1240.             makefolder(ArrayFieldFolder.."/Discord Invites")
  1241.         end
  1242.         if not isfile(ArrayFieldFolder.."/Discord Invites".."/"..Settings.Discord.Invite..ConfigurationExtension) then
  1243.             if request then
  1244.                 request({
  1245.                     Url = 'http://127.0.0.1:6463/rpc?v=1',
  1246.                     Method = 'POST',
  1247.                     Headers = {
  1248.                         ['Content-Type'] = 'application/json',
  1249.                         Origin = 'https://discord.com'
  1250.                     },
  1251.                     Body = HttpService:JSONEncode({
  1252.                         cmd = 'INVITE_BROWSER',
  1253.                         nonce = HttpService:GenerateGUID(false),
  1254.                         args = {code = Settings.Discord.Invite}
  1255.                     })
  1256.                 })
  1257.             end
  1258.  
  1259.             if Settings.Discord.RememberJoins then -- We do logic this way so if the developer changes this setting, the user still won't be prompted, only new users
  1260.                 writefile(ArrayFieldFolder.."/Discord Invites".."/"..Settings.Discord.Invite..ConfigurationExtension,"ArrayField RememberJoins is true for this invite, this invite will not ask you to join again")
  1261.             end
  1262.         else
  1263.  
  1264.         end
  1265.     end
  1266.  
  1267.     if Settings.KeySystem then
  1268.         if not Settings.KeySettings then
  1269.             Passthrough = true
  1270.             return
  1271.         end
  1272.  
  1273.         if not isfolder(ArrayFieldFolder.."/Key System") then
  1274.             makefolder(ArrayFieldFolder.."/Key System")
  1275.         end
  1276.  
  1277.         if Settings.KeySettings.GrabKeyFromSite then
  1278.             for i, Key in ipairs(Settings.KeySettings.Key) do
  1279.                 local Success, Response = pcall(function()
  1280.                     Settings.KeySettings.Key[i] = tostring(game:HttpGet(Key):gsub("[\n\r]", " "))
  1281.                     Settings.KeySettings.Key[i] = string.gsub(Settings.KeySettings.Key[i], " ", "")
  1282.                 end)
  1283.                 if not Success then
  1284.                     print("ArrayField | "..Key.." Error " ..tostring(Response))
  1285.                 end
  1286.             end
  1287.         end
  1288.  
  1289.         if not Settings.KeySettings.FileName then
  1290.             Settings.KeySettings.FileName = "No file name specified"
  1291.         end
  1292.  
  1293.         if isfile(ArrayFieldFolder.."/Key System".."/"..Settings.KeySettings.FileName..ConfigurationExtension) then
  1294.             if readfile(ArrayFieldFolder.."/Key System".."/"..Settings.KeySettings.FileName..ConfigurationExtension) == Settings.KeySettings.Key then
  1295.                 Passthrough = true
  1296.             end
  1297.         end
  1298.  
  1299.         if not Passthrough then
  1300.             local AttemptsRemaining = math.random(2,6)
  1301.             ArrayField.Enabled = false
  1302.             local KeyUI = game:GetObjects("rbxassetid://11695805160")[1]
  1303.             KeyUI.Enabled = true
  1304.             pcall(function()
  1305.                 _G.KeyUI:Destroy()
  1306.             end)
  1307.             _G.KeyUI = KeyUI
  1308.  
  1309.             ParentObject(KeyUI)
  1310.  
  1311.             local KeyMain = KeyUI.Main
  1312.             KeyMain.Title.Text = Settings.KeySettings.Title or Settings.Name
  1313.             KeyMain.Subtitle.Text = Settings.KeySettings.Subtitle or "Key System"
  1314.             KeyMain.NoteMessage.Text = Settings.KeySettings.Note or "No instructions"
  1315.  
  1316.             KeyMain.Size = UDim2.new(0, 467, 0, 175)
  1317.             KeyMain.BackgroundTransparency = 1
  1318.             KeyMain.EShadow.ImageTransparency = 1
  1319.             KeyMain.Title.TextTransparency = 1
  1320.             KeyMain.Subtitle.TextTransparency = 1
  1321.             KeyMain.KeyNote.TextTransparency = 1
  1322.             KeyMain.Input.BackgroundTransparency = 1
  1323.             KeyMain.Input.UIStroke.Transparency = 1
  1324.             KeyMain.Input.InputBox.TextTransparency = 1
  1325.             KeyMain.NoteTitle.TextTransparency = 1
  1326.             KeyMain.NoteMessage.TextTransparency = 1
  1327.             KeyMain.Hide.ImageTransparency = 1
  1328.             KeyMain.HideP.ImageTransparency = 1
  1329.             KeyMain.Actions.Template.TextTransparency = 1
  1330.  
  1331.             if Settings.KeySettings.Actions then
  1332.                 for _,ActionInfo in ipairs(Settings.KeySettings.Actions) do
  1333.                     local Action = KeyMain.Actions.Template:Clone()
  1334.                     Action.Text = ActionInfo.Text
  1335.                     Action.MouseButton1Down:Connect(ActionInfo.OnPress)
  1336.                     Action.MouseEnter:Connect(function()
  1337.                         TweenService:Create(Action,TweenInfo.new(.25,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{TextColor3 = Color3.fromRGB(185, 185, 185)}):Play()
  1338.                     end)
  1339.                     Action.MouseLeave:Connect(function()
  1340.                         TweenService:Create(Action,TweenInfo.new(.25,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{TextColor3 = Color3.fromRGB(105, 105, 105)}):Play()
  1341.                     end)
  1342.                     Action.Parent = KeyMain.Actions
  1343.                     delay(.2,function()
  1344.                         Action.Visible = true
  1345.                         TweenService:Create(Action, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1346.                     end)
  1347.                 end
  1348.             end
  1349.  
  1350.             TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1351.             TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 187)}):Play()
  1352.             TweenService:Create(KeyMain.EShadow, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 0.5}):Play()
  1353.             wait(0.05)
  1354.             TweenService:Create(KeyMain.Title, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1355.             TweenService:Create(KeyMain.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1356.             wait(0.05)
  1357.             TweenService:Create(KeyMain.KeyNote, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1358.             TweenService:Create(KeyMain.Input, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1359.             TweenService:Create(KeyMain.Input.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  1360.             TweenService:Create(KeyMain.Input.HidenInput, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1361.             wait(0.05)
  1362.             TweenService:Create(KeyMain.NoteTitle, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1363.             TweenService:Create(KeyMain.NoteMessage, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1364.             wait(0.15)
  1365.             TweenService:Create(KeyMain.Hide, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 0.3}):Play()
  1366.             TweenService:Create(KeyMain.HideP, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 0.3}):Play()
  1367.             KeyUI.Main.Input.InputBox:GetPropertyChangedSignal('Text'):Connect(function()
  1368.                 KeyUI.Main.Input.HidenInput.Text = string.rep('•', #KeyUI.Main.Input.InputBox.Text)
  1369.             end)
  1370.             KeyUI.Main.Input.InputBox.FocusLost:Connect(function(EnterPressed)
  1371.                 if not EnterPressed then return end
  1372.                 if #KeyUI.Main.Input.InputBox.Text == 0 then return end
  1373.                 local KeyFound = false
  1374.                 local FoundKey = ''
  1375.                 for _, MKey in ipairs(Settings.KeySettings.Key) do
  1376.                     if KeyMain.Input.InputBox.Text== MKey then
  1377.                         KeyFound = true
  1378.                         FoundKey = MKey
  1379.                     end
  1380.                 end
  1381.                 if KeyFound then
  1382.                     for _,Action in ipairs(KeyMain.Actions:GetChildren()) do
  1383.                         if Action:IsA('TextButton') then
  1384.                             TweenService:Create(Action, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1385.                         end
  1386.                     end
  1387.                     TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  1388.                     TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 467, 0, 175)}):Play()
  1389.                     TweenService:Create(KeyMain.EShadow, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  1390.                     TweenService:Create(KeyMain.Title, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1391.                     TweenService:Create(KeyMain.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1392.                     TweenService:Create(KeyMain.KeyNote, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1393.                     TweenService:Create(KeyMain.Input, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  1394.                     TweenService:Create(KeyMain.Input.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  1395.                     TweenService:Create(KeyMain.Input.InputBox,TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1396.                     TweenService:Create(KeyMain.Input.HidenInput, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1397.                     TweenService:Create(KeyMain.NoteTitle, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1398.                     TweenService:Create(KeyMain.NoteMessage, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1399.                     TweenService:Create(KeyMain.Hide, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  1400.                     TweenService:Create(KeyMain.HideP, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  1401.                     delay(.4,function()
  1402.                         KeyMain.Hide.Visible = false
  1403.                         KeyUI:Destroy()
  1404.                     end)
  1405.                     wait(0.51)
  1406.                     Passthrough = true
  1407.                     if Settings.KeySettings.SaveKey then
  1408.                         if writefile then
  1409.                             writefile(ArrayFieldFolder.."/Key System".."/"..Settings.KeySettings.FileName..ConfigurationExtension, Settings.KeySettings.Key)
  1410.                         end
  1411.                         ArrayFieldLibrary:Notify({Title = "Key System", Content = "The key for this script has been saved successfully"})
  1412.                     end
  1413.                 else
  1414.                     if AttemptsRemaining == 0 then
  1415.                         TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  1416.                         TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 467, 0, 175)}):Play()
  1417.                         TweenService:Create(KeyMain.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  1418.                         TweenService:Create(KeyMain.Title, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1419.                         TweenService:Create(KeyMain.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1420.                         TweenService:Create(KeyMain.KeyNote, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1421.                         TweenService:Create(KeyMain.Input, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  1422.                         TweenService:Create(KeyMain.Input.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  1423.                         TweenService:Create(KeyMain.Input.InputBox,TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1424.                         TweenService:Create(KeyMain.Input.HidenInput, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1425.                         TweenService:Create(KeyMain.NoteTitle, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1426.                         TweenService:Create(KeyMain.NoteMessage, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1427.                         TweenService:Create(KeyMain.Hide, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  1428.                         TweenService:Create(KeyMain.HideP, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  1429.                         wait(0.45)
  1430.                         game.Players.LocalPlayer:Kick("No Attempts Remaining")
  1431.                         game:Shutdown()
  1432.                     end
  1433.                     KeyMain.Input.InputBox.Text = ""
  1434.                     AttemptsRemaining = AttemptsRemaining - 1
  1435.                     TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 467, 0, 175)}):Play()
  1436.                     TweenService:Create(KeyMain, TweenInfo.new(0.4, Enum.EasingStyle.Elastic), {Position = UDim2.new(0.495,0,0.5,0)}):Play()
  1437.                     wait(0.1)
  1438.                     TweenService:Create(KeyMain, TweenInfo.new(0.4, Enum.EasingStyle.Elastic), {Position = UDim2.new(0.505,0,0.5,0)}):Play()
  1439.                     wait(0.1)
  1440.                     TweenService:Create(KeyMain, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Position = UDim2.new(0.5,0,0.5,0)}):Play()
  1441.                     TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 187)}):Play()
  1442.                 end
  1443.             end)
  1444.             local Hidden = true
  1445.             KeyMain.HideP.MouseButton1Click:Connect(function()
  1446.                 if Hidden then
  1447.                     TweenService:Create(KeyMain.Input.HidenInput,TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1448.                     TweenService:Create(KeyMain.Input.InputBox,TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1449.                     Hidden = false
  1450.                 else
  1451.                     TweenService:Create(KeyMain.Input.HidenInput,TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1452.                     TweenService:Create(KeyMain.Input.InputBox,TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1453.                     Hidden = true
  1454.                 end
  1455.             end)
  1456.  
  1457.             KeyMain.Hide.MouseButton1Click:Connect(function()
  1458.                 TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  1459.                 TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 467, 0, 175)}):Play()
  1460.                 TweenService:Create(KeyMain.EShadow, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  1461.                 TweenService:Create(KeyMain.Title, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1462.                 TweenService:Create(KeyMain.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1463.                 TweenService:Create(KeyMain.KeyNote, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1464.                 TweenService:Create(KeyMain.Input, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  1465.                 TweenService:Create(KeyMain.Input.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  1466.                 TweenService:Create(KeyMain.Input.InputBox, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1467.                 TweenService:Create(KeyMain.NoteTitle, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1468.                 TweenService:Create(KeyMain.Input.HidenInput,TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1469.                 TweenService:Create(KeyMain.NoteMessage, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1470.                 TweenService:Create(KeyMain.Hide, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  1471.                 TweenService:Create(KeyMain.HideP, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  1472.                 wait(0.51)
  1473.                 ArrayFieldLibrary:Destroy()
  1474.                 KeyUI:Destroy()
  1475.             end)
  1476.         else
  1477.             Passthrough = true
  1478.         end
  1479.     end
  1480.     if Settings.KeySystem then
  1481.         repeat wait() until Passthrough
  1482.     end
  1483.     ArrayField.Enabled = true
  1484.     for _,tabbtn in pairs(SideList:GetChildren()) do
  1485.         if tabbtn.ClassName == "Frame" and tabbtn.Name ~= "Placeholder" then
  1486.             TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint),{TextTransparency = 1}):Play()
  1487.             TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Quint),{ImageTransparency = 1}):Play()
  1488.         end
  1489.     end
  1490.     TweenService:Create(Main.SideTabList, TweenInfo.new(0, Enum.EasingStyle.Quint), {BackgroundTransparency = 1,Size = UDim2.new(0,150,0,390),Position = UDim2.new(0,10,0.5,22)}):Play()
  1491.     TweenService:Create(Main.SideTabList.UIStroke, TweenInfo.new(0, Enum.EasingStyle.Quint),{Transparency = 1}):Play()
  1492.     TweenService:Create(Main.SideTabList.RDMT, TweenInfo.new(0, Enum.EasingStyle.Quint),{TextTransparency = 1}):Play()
  1493.     --delay(4,function()
  1494.     --  qNotePrompt({
  1495.     --      Title = 'Preview',
  1496.     --      Description = 'This is a preview for the official ArrayField forum post. Remember that things are subject to change.',
  1497.  
  1498.     --  })
  1499.     --end)
  1500.  
  1501.     TweenService:Create(InfoPrompt,TweenInfo.new(.3,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{
  1502.         Size = UDim2.fromOffset(212,254),BackgroundTransparency = 1
  1503.     }):Play()
  1504.     TweenService:Create(InfoPrompt.ImageLabel,TweenInfo.new(.25,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{
  1505.         ImageTransparency = 1
  1506.     }):Play()
  1507.     TweenService:Create(InfoPrompt.Description,TweenInfo.new(.25,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{
  1508.         TextTransparency = 1
  1509.     }):Play()
  1510.     TweenService:Create(InfoPrompt.Status,TweenInfo.new(.25,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{
  1511.         TextTransparency = 1
  1512.     }):Play()
  1513.     TweenService:Create(InfoPrompt.Title,TweenInfo.new(.25,Enum.EasingStyle.Quad,Enum.EasingDirection.Out),{
  1514.         TextTransparency = 1
  1515.     }):Play()
  1516.  
  1517.     TopList.Template.Visible = false
  1518.     SideList.SideTemplate.Visible = false
  1519.     Notifications.Template.Visible = false
  1520.     Notifications.Visible = true
  1521.     wait(0.5)
  1522.     TweenService:Create(Main, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1523.     TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.55}):Play()
  1524.     wait(0.1)
  1525.     TweenService:Create(LoadingFrame.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1526.     wait(0.05)
  1527.     TweenService:Create(LoadingFrame.Subtitle, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1528.     wait(0.05)
  1529.     TweenService:Create(LoadingFrame.Version, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1530.  
  1531.     Elements.Template.LayoutOrder = 100000
  1532.     Elements.Template.Visible = false
  1533.  
  1534.     Elements.UIPageLayout.FillDirection = Enum.FillDirection.Horizontal
  1535.  
  1536.     -- Tab
  1537.     local FirstTab = false
  1538.     ArrayFieldQuality.Window = {Tabs = {}}
  1539.     local Window = ArrayFieldQuality.Window
  1540.     function Window:CreateTab(Name,Image)
  1541.         Window.Tabs[Name]={Elements = {}}
  1542.         local Tab = Window.Tabs[Name]
  1543.         local SDone = false
  1544.         local TopTabButton,SideTabButton = TopList.Template:Clone(), SideList.SideTemplate:Clone()
  1545.  
  1546.         SideTabButton.Parent = SideList
  1547.         TopTabButton.Parent = TopList
  1548.  
  1549.         TopTabButton.Name=Name SideTabButton.Name=Name
  1550.  
  1551.         TopTabButton.Title.Text = Name SideTabButton.Title.Text = Name
  1552.         SideTabButton.Title.TextWrapped = false TopTabButton.Title.TextWrapped = false
  1553.  
  1554.         TopTabButton.Size = UDim2.new(0, TopTabButton.Title.TextBounds.X + 30, 0, 30)
  1555.  
  1556.         if Image then
  1557.             TopTabButton.Image.Image = "rbxassetid://"..Image
  1558.             SideTabButton.Image.Image = "rbxassetid://"..Image
  1559.  
  1560.             TopTabButton.Title.AnchorPoint = Vector2.new(0, 0.5)
  1561.             TopTabButton.Title.Position = UDim2.new(0, 37, 0.5, 0)
  1562.             TopTabButton.Image.Visible = true
  1563.             TopTabButton.Title.TextXAlignment = Enum.TextXAlignment.Left
  1564.             TopTabButton.Size = UDim2.new(0, TopTabButton.Title.TextBounds.X + 46, 0, 30)
  1565.         end
  1566.  
  1567.         TopTabButton.BackgroundTransparency = 1
  1568.         TopTabButton.Title.TextTransparency = 1
  1569.         TopTabButton.Shadow.ImageTransparency = 1
  1570.         TopTabButton.Image.ImageTransparency = 1
  1571.         TopTabButton.UIStroke.Transparency = 1
  1572.  
  1573.         SideTabButton.BackgroundTransparency = 1
  1574.         SideTabButton.Title.TextTransparency = 1
  1575.         SideTabButton.Shadow.ImageTransparency = 1
  1576.         SideTabButton.Image.ImageTransparency = 1
  1577.         SideTabButton.UIStroke.Transparency = 1
  1578.  
  1579.         TopTabButton.Visible = true
  1580.         SideTabButton.Visible = true
  1581.  
  1582.         --Create Elements Page
  1583.         local TabPage = Elements.Template:Clone()
  1584.         TabPage.Name = Name
  1585.         TabPage.Visible = true
  1586.  
  1587.         TabPage.LayoutOrder = #Elements:GetChildren()
  1588.  
  1589.         for _, TemplateElement in ipairs(TabPage:GetChildren()) do
  1590.             if TemplateElement.ClassName == "Frame" and TemplateElement.Name ~= "Placeholder" then
  1591.                 TemplateElement:Destroy()
  1592.             end
  1593.         end
  1594.  
  1595.         TabPage.Parent = Elements
  1596.         if not FirstTab then
  1597.             Elements.UIPageLayout.Animated = false
  1598.             Elements.UIPageLayout:JumpTo(TabPage)
  1599.             Elements.UIPageLayout.Animated = true
  1600.         end
  1601.  
  1602.         if SelectedTheme ~= ArrayFieldLibrary.Theme.Default then
  1603.             TopTabButton.Shadow.Visible = false
  1604.         end
  1605.         TopTabButton.UIStroke.Color = SelectedTheme.TabStroke
  1606.         --Animate
  1607.         wait(0.1)
  1608.         if FirstTab then
  1609.             TopTabButton.BackgroundColor3 = SelectedTheme.TabBackground
  1610.             TopTabButton.Image.ImageColor3 = SelectedTheme.TabTextColor
  1611.             TopTabButton.Title.TextColor3 = SelectedTheme.TabTextColor
  1612.             TweenService:Create(TopTabButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.7}):Play()
  1613.             TweenService:Create(TopTabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0.2}):Play()
  1614.             TweenService:Create(TopTabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.2}):Play()
  1615.             TweenService:Create(TopTabButton.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  1616.             TweenService:Create(TopTabButton.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play()
  1617.  
  1618.             TweenService:Create(SideTabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0,ImageColor3 = Color3.fromRGB(205, 205, 205)}):Play()
  1619.             TweenService:Create(SideTabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = .2,TextColor3 = Color3.fromRGB(205, 205, 205)}):Play()
  1620.         else
  1621.             FirstTab = Name
  1622.  
  1623.             TopTabButton.BackgroundColor3 = SelectedTheme.TabBackgroundSelected
  1624.             TopTabButton.Image.ImageColor3 = SelectedTheme.SelectedTabTextColor
  1625.             TopTabButton.Title.TextColor3 = SelectedTheme.SelectedTabTextColor
  1626.             TweenService:Create(TopTabButton.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.9}):Play()
  1627.             TweenService:Create(TopTabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play()
  1628.             TweenService:Create(TopTabButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1629.             TweenService:Create(TopTabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1630.  
  1631.             SideTabButton.Image.ImageColor3 = Color3.fromRGB(255, 255, 255)
  1632.             SideTabButton.Title.TextColor3 = Color3.fromRGB(255, 255, 255)
  1633.             TweenService:Create(SideTabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play()
  1634.             TweenService:Create(SideTabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1635.  
  1636.         end
  1637.  
  1638.         local function Pick()
  1639.             if Minimised then return end
  1640.             TweenService:Create(TopTabButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1641.             TweenService:Create(TopTabButton.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  1642.             TweenService:Create(TopTabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1643.             TweenService:Create(TopTabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play()
  1644.             TweenService:Create(TopTabButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.TabBackgroundSelected}):Play()
  1645.             TweenService:Create(TopTabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextColor3 = SelectedTheme.SelectedTabTextColor}):Play()
  1646.             TweenService:Create(TopTabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageColor3 = SelectedTheme.SelectedTabTextColor}):Play()
  1647.             TweenService:Create(TopTabButton.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.9}):Play()
  1648.  
  1649.             TweenService:Create(SideTabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0,ImageColor3 = Color3.fromRGB(255, 255, 255)}):Play()
  1650.             TweenService:Create(SideTabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0,TextColor3 = Color3.fromRGB(255, 255, 255)}):Play()
  1651.             Elements.UIPageLayout:JumpTo(TabPage)
  1652.             for _, OtherTabButton in ipairs(TopList:GetChildren()) do
  1653.                 spawn(function()
  1654.                     if OtherTabButton.Name ~= "Template" and OtherTabButton.ClassName == "Frame" and OtherTabButton ~= TopTabButton and OtherTabButton.Name ~= "Placeholder" then
  1655.                         TweenService:Create(OtherTabButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.TabBackground,BackgroundTransparency = .7}):Play()
  1656.                         TweenService:Create(OtherTabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageColor3 = Color3.fromRGB(240, 240, 240)}):Play()
  1657.                         TweenService:Create(OtherTabButton.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0,Color = Color3.fromRGB(85,85,85)}):Play()
  1658.                         TweenService:Create(OtherTabButton.Shadow, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = .85,ImageColor3 = Color3.fromRGB(20,20,20)}):Play()
  1659.                         TweenService:Create(OtherTabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextColor3 = Color3.fromRGB(240, 240, 240),TextTransparency = .2}):Play()
  1660.                     end
  1661.                 end)
  1662.             end
  1663.             for _,OtherTabButton in ipairs(SideList:GetChildren()) do
  1664.                 spawn(function()
  1665.                     if OtherTabButton.Name ~= "Template" and OtherTabButton.ClassName == "Frame" and OtherTabButton ~= SideTabButton and OtherTabButton.Name ~= "Placeholder" then
  1666.                         TweenService:Create(OtherTabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0,ImageColor3 = Color3.fromRGB(205, 205, 205)}):Play()
  1667.                         TweenService:Create(OtherTabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = .2,TextColor3 = Color3.fromRGB(205, 205, 205)}):Play()   
  1668.                     end
  1669.                 end)
  1670.             end
  1671.  
  1672.         end
  1673.  
  1674.         TopTabButton.Interact.MouseButton1Click:Connect(Pick)
  1675.         SideTabButton.Interact.MouseButton1Click:Connect(Pick)
  1676.  
  1677.         -- Button
  1678.         function Tab:CreateButton(ButtonSettings)
  1679.             local ButtonValue = {Locked = false}
  1680.  
  1681.             local Button = Elements.Template.Button:Clone()
  1682.             ButtonValue.Button = Button
  1683.             Tab.Elements[Button.Name] = {
  1684.                 type = 'button',
  1685.                 section = ButtonSettings.SectionParent,
  1686.                 element = Button
  1687.             }
  1688.             AddInfos(Button,ButtonSettings.Info,'button')
  1689.  
  1690.             Button.Name = ButtonSettings.Name
  1691.             Button.Title.Text = ButtonSettings.Name
  1692.             Button.ElementIndicator.Text = ButtonSettings.Interact or 'button'
  1693.             Button.Visible = true
  1694.  
  1695.             Button.BackgroundTransparency = 1
  1696.             Button.UIStroke.Transparency = 1
  1697.             Button.Title.TextTransparency = 1
  1698.             if ButtonSettings.SectionParent then
  1699.                 Button.Parent = ButtonSettings.SectionParent.Holder
  1700.             else
  1701.                 Button.Parent = TabPage
  1702.             end
  1703.             TweenService:Create(Button, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1704.             TweenService:Create(Button.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  1705.             TweenService:Create(Button.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()   
  1706.  
  1707.             Button.Interact.MouseButton1Click:Connect(function()
  1708.                 if ButtonValue.Locked then return end
  1709.                 local Success, Response = pcall(ButtonSettings.Callback)
  1710.                 if not Success then
  1711.                     TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
  1712.                     TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1713.                     TweenService:Create(Button.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  1714.                     Button.Title.Text = "Callback Error"
  1715.                     print("ArrayField | "..ButtonSettings.Name.." Callback Error " ..tostring(Response))
  1716.                     wait(0.5)
  1717.                     Button.Title.Text = ButtonSettings.Name
  1718.                     TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  1719.                     TweenService:Create(Button.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  1720.                     TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.9}):Play()
  1721.                 else
  1722.                     SaveConfiguration()
  1723.                     TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
  1724.                     TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1725.                     TweenService:Create(Button.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  1726.                     wait(0.2)
  1727.                     TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  1728.                     TweenService:Create(Button.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  1729.                     TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.9}):Play()
  1730.                 end
  1731.             end)
  1732.  
  1733.             Button.MouseEnter:Connect(function()
  1734.                 TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
  1735.                 TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.7}):Play()
  1736.             end)
  1737.  
  1738.             Button.MouseLeave:Connect(function()
  1739.                 TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  1740.                 TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.9}):Play()
  1741.             end)
  1742.  
  1743.             function ButtonValue:Set(NewButton,Interaction)
  1744.                 Button.Title.Text = NewButton or Button.Title.Text
  1745.                 Button.Name = NewButton or Button.Name
  1746.                 Button.ElementIndicator.Text = Interaction or Button.ElementIndicator.Text
  1747.             end
  1748.             function ButtonValue:Destroy()
  1749.                 Button:Destroy()
  1750.             end
  1751.             function ButtonValue:Lock(Reason)
  1752.                 if ButtonValue.Locked then return end
  1753.                 ButtonValue.Locked = true
  1754.                 Button.Lock.Reason.Text = Reason or 'Locked'
  1755.                 TweenService:Create(Button.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 0}):Play()
  1756.                 TweenService:Create(Button.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 0}):Play()
  1757.                 wait(0.2)
  1758.                 if not ButtonValue.Locked then return end --no icon bug
  1759.                 TweenService:Create(Button.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 0}):Play()
  1760.             end
  1761.             function ButtonValue:Unlock()
  1762.                 if not ButtonValue.Locked then return end
  1763.                 ButtonValue.Locked = false
  1764.                 wait(0.2)
  1765.                 TweenService:Create(Button.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 1}):Play()
  1766.                 if ButtonValue.Locked then return end --no icon bug
  1767.                 TweenService:Create(Button.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 1}):Play()
  1768.                 TweenService:Create(Button.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 1}):Play()
  1769.             end
  1770.             function ButtonValue:Visible(bool)
  1771.                 Button.Visible = bool
  1772.             end
  1773.  
  1774.             return ButtonValue
  1775.         end
  1776.  
  1777.         -- Section
  1778.         function Tab:CreateSection(SectionName,Display)
  1779.  
  1780.             local SectionValue = {
  1781.                 Holder = ArrayField.Holding,
  1782.                 Open = true
  1783.             }
  1784.             local Debounce = false
  1785.             local Section = Elements.Template.SectionTitle:Clone()
  1786.             SectionValue.Holder = Section.Holder
  1787.             Section.Title.Text = SectionName
  1788.             Section.Visible = true
  1789.             Section.Parent = TabPage
  1790.  
  1791.             Tab.Elements[SectionName] = {
  1792.                 type = 'section',
  1793.                 display = Display,
  1794.                 sectionholder = Section.Holder,
  1795.                 element = Section
  1796.             }
  1797.  
  1798.             Section.Title.TextTransparency = 1
  1799.             TweenService:Create(Section.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1800.  
  1801.             function SectionValue:Set(NewSection)
  1802.                 Section.Title.Text = NewSection
  1803.             end
  1804.             if Display then
  1805.                 Section._UIPadding_:Destroy()
  1806.                 Section.Holder.Visible = false
  1807.                 Section.BackgroundTransparency = 1
  1808.                 SectionValue.Holder.Parent = ArrayField.Holding
  1809.                 Section.Title.ImageButton.Visible = false
  1810.             end
  1811.             Section.Title.ImageButton.MouseButton1Down:Connect(function()
  1812.                 if Debounce then return end
  1813.                 if SectionValue.Open then
  1814.                     --Section.Holder.Visible = true
  1815.                     Debounce = true
  1816.                     TweenService:Create(Section._UIPadding_, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {PaddingBottom = UDim.new(0,0)}):Play()
  1817.                     for _, element in ipairs(Section.Holder:GetChildren()) do
  1818.                         if element.ClassName == "Frame" then
  1819.                             if element.Name ~= "SectionSpacing" and element.Name ~= "Placeholder" and element.Name ~= 'Topholder' then
  1820.                                 if element.Name == "SectionTitle" then
  1821.                                     TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1822.                                 else
  1823.                                     TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  1824.                                     TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  1825.                                     TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  1826.                                 end
  1827.                                 for _, child in ipairs(element:GetChildren()) do
  1828.                                     if child.ClassName == "Frame" then --or child.ClassName == "TextLabel" or child.ClassName == "TextBox" or child.ClassName == "ImageButton" or child.ClassName == "ImageLabel" then
  1829.                                         child.Visible = false
  1830.                                     end
  1831.                                 end
  1832.                             end
  1833.                             element.Visible = false
  1834.                         end
  1835.                     end
  1836.                     TweenService:Create(Section.Title.ImageButton,TweenInfo.new(0.4,Enum.EasingStyle.Quart,Enum.EasingDirection.Out),{Rotation = 180}):Play()
  1837.                     SectionValue.Open = false
  1838.                     Debounce = false
  1839.                 else
  1840.                     Debounce = true
  1841.                     TweenService:Create(Section._UIPadding_, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {PaddingBottom = UDim.new(0,8)}):Play()
  1842.                     for _, element in ipairs(Section.Holder:GetChildren()) do
  1843.                         if element.ClassName == "Frame" then
  1844.                             if element.Name ~= "SectionSpacing" and element.Name ~= "Placeholder" and element.Name ~= 'Topholder' and not element:FindFirstChild('ColorPickerIs') then
  1845.                                 if element.Name == "SectionTitle" then
  1846.                                     TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1847.                                 else
  1848.                                     TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1849.                                     TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  1850.                                     TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1851.                                 end
  1852.                                 for _, child in ipairs(element:GetChildren()) do
  1853.                                     if (child.ClassName == "Frame" or child.ClassName == "TextLabel" or child.ClassName == "TextBox" or child.ClassName == "ImageButton" or child.ClassName == "ImageLabel") then
  1854.                                         child.Visible = true
  1855.                                     end
  1856.                                 end
  1857.                             elseif element:FindFirstChild('ColorPickerIs') then
  1858.                                 TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1859.                                 TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  1860.                                 TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1861.                                 if element.ColorPickerIs.Value then
  1862.                                     element.ColorSlider.Visible = true
  1863.                                     element.HexInput.Visible = true
  1864.                                     element.RGB.Visible = true
  1865.                                 end
  1866.                                 element.CPBackground.Visible = true
  1867.                                 element.Lock.Visible = true
  1868.                                 element.Interact.Visible = true
  1869.                                 element.Title.Visible = true
  1870.  
  1871.                             end
  1872.                             element.Visible = true
  1873.                         end
  1874.                     end
  1875.                     TweenService:Create(Section.Title.ImageButton,TweenInfo.new(0.4,Enum.EasingStyle.Quart,Enum.EasingDirection.Out),{Rotation = 0}):Play()
  1876.                     SectionValue.Open = true
  1877.                     wait(.3)
  1878.                     Debounce = false
  1879.                 end
  1880.             end)
  1881.             SDone = true
  1882.             function SectionValue:Lock(Reason)
  1883.  
  1884.             end
  1885.             function SectionValue:Unlock(Reason)
  1886.  
  1887.             end
  1888.  
  1889.             return SectionValue
  1890.         end
  1891.  
  1892.         -- Spacing
  1893.         function Tab:CreateSpacing(SectionParent,Size)
  1894.             local Spacing = Elements.Template.SectionSpacing:Clone()
  1895.             Spacing.Visible = true
  1896.             Spacing.Parent = TabPage
  1897.  
  1898.             Spacing.Size = UDim2.fromOffset(475,Size or 6)
  1899.  
  1900.             if SectionParent then
  1901.                 Spacing.Parent = SectionParent.Holder
  1902.             else
  1903.                 Spacing.Parent = TabPage
  1904.             end
  1905.         end
  1906.  
  1907.         -- Label
  1908.         function Tab:CreateLabel(LabelText,SectionParent)
  1909.             local LabelValue = {}
  1910.  
  1911.             local Label = Elements.Template.Label:Clone()
  1912.             Label.Title.Text = LabelText
  1913.             Label.Visible = true
  1914.             Tab.Elements[LabelText] = {
  1915.                 type = 'label',
  1916.                 section = SectionParent,
  1917.                 element = Label
  1918.             }
  1919.             if SectionParent then
  1920.                 Label.Parent = SectionParent.Holder
  1921.             else
  1922.                 Label.Parent = TabPage
  1923.             end
  1924.  
  1925.             Label.BackgroundTransparency = 1
  1926.             Label.UIStroke.Transparency = 1
  1927.             Label.Title.TextTransparency = 1
  1928.  
  1929.             Label.BackgroundColor3 = SelectedTheme.SecondaryElementBackground
  1930.             Label.UIStroke.Color = SelectedTheme.SecondaryElementStroke
  1931.  
  1932.             TweenService:Create(Label, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1933.             TweenService:Create(Label.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  1934.             TweenService:Create(Label.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1935.  
  1936.             function LabelValue:Set(NewLabel)
  1937.                 Label.Title.Text = NewLabel
  1938.             end
  1939.  
  1940.             return LabelValue
  1941.         end
  1942.  
  1943.         -- Paragraph
  1944.         function Tab:CreateParagraph(ParagraphSettings,SectionParent)
  1945.             local ParagraphValue = {}
  1946.  
  1947.             local Paragraph = Elements.Template.Paragraph:Clone()
  1948.             Paragraph.Title.Text = ParagraphSettings.Title
  1949.             Paragraph.Content.Text = ParagraphSettings.Content
  1950.             Paragraph.Visible = true
  1951.  
  1952.             Tab.Elements[ParagraphSettings.Title] = {
  1953.                 type = 'paragraph',
  1954.                 section = ParagraphSettings.SectionParent,
  1955.                 element = Paragraph
  1956.             }
  1957.  
  1958.             if SectionParent or ParagraphSettings.SectionParent.Holder then
  1959.                 Paragraph.Parent = SectionParent.Holder or ParagraphSettings.SectionParent.Holder
  1960.             else
  1961.                 Paragraph.Parent = TabPage
  1962.             end
  1963.  
  1964.             Paragraph.Content.Size = UDim2.new(0, 438, 0, Paragraph.Content.TextBounds.Y)
  1965.             --Paragraph.Content.Position = UDim2.new(0,465, 0,76)
  1966.             Paragraph.Size = UDim2.new(0,465, 0, Paragraph.Content.TextBounds.Y + 40)
  1967.  
  1968.             Paragraph.BackgroundTransparency = 1
  1969.             Paragraph.UIStroke.Transparency = 1
  1970.             Paragraph.Title.TextTransparency = 1
  1971.             Paragraph.Content.TextTransparency = 1
  1972.  
  1973.             Paragraph.BackgroundColor3 = SelectedTheme.SecondaryElementBackground
  1974.             Paragraph.UIStroke.Color = SelectedTheme.SecondaryElementStroke
  1975.  
  1976.             TweenService:Create(Paragraph, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  1977.             TweenService:Create(Paragraph.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  1978.             TweenService:Create(Paragraph.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  1979.             TweenService:Create(Paragraph.Content, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()  
  1980.  
  1981.             function ParagraphValue:Set(NewParagraphSettings)
  1982.                 Paragraph.Title.Text = NewParagraphSettings.Title
  1983.                 Paragraph.Content.Text = NewParagraphSettings.Content
  1984.             end
  1985.  
  1986.             return ParagraphValue
  1987.         end
  1988.  
  1989.         -- Input
  1990.         function Tab:CreateInput(InputSettings)
  1991.             local Input = Elements.Template.Input:Clone()
  1992.             Input.Name = InputSettings.Name
  1993.             Input.Title.Text = InputSettings.Name
  1994.             Input.Visible = true
  1995.             InputSettings.Locked = false
  1996.             Tab.Elements[InputSettings.Name] = {
  1997.                 type = 'input',
  1998.                 section = InputSettings.SectionParent,
  1999.                 element = Input
  2000.             }
  2001.             if InputSettings.SectionParent then
  2002.                 Input.Parent = InputSettings.SectionParent.Holder
  2003.             else
  2004.                 Input.Parent = TabPage
  2005.             end
  2006.             AddInfos(Input,InputSettings.Info,'input')
  2007.             Input.BackgroundTransparency = 1
  2008.             Input.UIStroke.Transparency = 1
  2009.             Input.Title.TextTransparency = 1
  2010.  
  2011.             Input.InputFrame.BackgroundColor3 = SelectedTheme.InputBackground
  2012.             Input.InputFrame.UIStroke.Color = SelectedTheme.InputStroke
  2013.  
  2014.             TweenService:Create(Input, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  2015.             TweenService:Create(Input.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2016.             TweenService:Create(Input.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  2017.  
  2018.             Input.InputFrame.InputBox.PlaceholderText = InputSettings.PlaceholderText
  2019.             Input.InputFrame.Size = UDim2.new(0, Input.InputFrame.InputBox.TextBounds.X + 24, 0, 30)
  2020.  
  2021.             if InputSettings.NumbersOnly or InputSettings.CharacterLimit then
  2022.                 Input.InputFrame.InputBox:GetPropertyChangedSignal('Text'):Connect(function()
  2023.                     if Input.InputFrame.InputBox.Text == '' then return end
  2024.                     if InputSettings.CharacterLimit then Input.InputFrame.InputBox.Text = Input.InputFrame.InputBox.Text:sub(1,InputSettings.CharacterLimit) end
  2025.                     if InputSettings.NumbersOnly then Input.InputFrame.InputBox.Text = Input.InputFrame.InputBox.Text:gsub('%D+', '') end
  2026.                 end)
  2027.             end
  2028.  
  2029.             Input.InputFrame.InputBox.FocusLost:Connect(function(enter)
  2030.                 if InputSettings.OnEnter and not enter then if InputSettings.RemoveTextAfterFocusLost then Input.InputFrame.InputBox.Text = "" end return end
  2031.                 local Success, Response = pcall(function()
  2032.                     InputSettings.Callback(Input.InputFrame.InputBox.Text)
  2033.                 end)
  2034.                 if not Success then
  2035.                     TweenService:Create(Input, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
  2036.                     TweenService:Create(Input.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2037.                     Input.Title.Text = "Callback Error"
  2038.                     print("ArrayField | "..InputSettings.Name.." Callback Error " ..tostring(Response))
  2039.                     wait(0.5)
  2040.                     Input.Title.Text = InputSettings.Name
  2041.                     TweenService:Create(Input, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2042.                     TweenService:Create(Input.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2043.                 end
  2044.  
  2045.                 if InputSettings.RemoveTextAfterFocusLost then Input.InputFrame.InputBox.Text = "" end
  2046.                 SaveConfiguration()
  2047.             end)
  2048.  
  2049.             Input.MouseEnter:Connect(function()
  2050.                 TweenService:Create(Input, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
  2051.             end)
  2052.  
  2053.             Input.MouseLeave:Connect(function()
  2054.                 TweenService:Create(Input, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2055.             end)
  2056.  
  2057.             Input.InputFrame.InputBox:GetPropertyChangedSignal("Text"):Connect(function()
  2058.                 TweenService:Create(Input.InputFrame, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, Input.InputFrame.InputBox.TextBounds.X + 24, 0, 30)}):Play()
  2059.             end)
  2060.  
  2061.             Input.InputFrame.InputBox.Focused:Connect(function()
  2062.                 if InputSettings.Locked then
  2063.                     Input.InputFrame.InputBox:ReleaseFocus() return
  2064.                 end
  2065.             end)
  2066.  
  2067.             function InputSettings:Destroy()
  2068.                 Input:Destroy()
  2069.             end
  2070.             function InputSettings:Lock(Reason)
  2071.                 if InputSettings.Locked then return end
  2072.                 InputSettings.Locked = true
  2073.                 Input.Lock.Reason.Text = Reason or 'Locked'
  2074.                 TweenService:Create(Input.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 0}):Play()
  2075.                 TweenService:Create(Input.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 0}):Play()
  2076.                 wait(0.2)
  2077.                 if not InputSettings.Locked then return end --no icon bug
  2078.                 TweenService:Create(Input.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 0}):Play()
  2079.             end
  2080.             function InputSettings:Unlock()
  2081.                 if not InputSettings.Locked then return end
  2082.                 InputSettings.Locked = false
  2083.                 wait(0.2)
  2084.                 TweenService:Create(Input.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 1}):Play()
  2085.                 if InputSettings.Locked then return end --no icon bug
  2086.                 TweenService:Create(Input.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 1}):Play()
  2087.                 TweenService:Create(Input.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 1}):Play()
  2088.             end
  2089.             function InputSettings:Visible(bool)
  2090.                 Input.Visible = bool
  2091.             end
  2092.             return InputSettings
  2093.         end
  2094.  
  2095.         -- Dropdown
  2096.         function Tab:CreateDropdown(DropdownSettings)
  2097.             local Dropdown = Elements.Template.Dropdown:Clone()
  2098.             local SearchBar = Dropdown.List["-SearchBar"]
  2099.             local Required = 1
  2100.             --local Debounce = false
  2101.             DropdownSettings.Items = {
  2102.                 Selected = {Default = DropdownSettings.Selected or nil}
  2103.             }
  2104.             AddInfos(Dropdown,DropdownSettings,'dropdown')
  2105.             DropdownSettings.Locked = false
  2106.             local Multi = DropdownSettings.MultiSelection or false
  2107.             if string.find(DropdownSettings.Name,"closed") then
  2108.                 Dropdown.Name = "Dropdown"
  2109.             else
  2110.                 Dropdown.Name = DropdownSettings.Name
  2111.             end
  2112.             Dropdown.Title.Text = DropdownSettings.Name
  2113.             Dropdown.Visible = true
  2114.             Tab.Elements[DropdownSettings.Name] = {
  2115.                 type = 'dropdown',
  2116.                 section = DropdownSettings.SectionParent,
  2117.                 element = Dropdown
  2118.             }
  2119.             if DropdownSettings.SectionParent then
  2120.                 Dropdown.Parent = DropdownSettings.SectionParent.Holder
  2121.             else
  2122.                 Dropdown.Parent = TabPage
  2123.             end
  2124.  
  2125.             Dropdown.List.Visible = false
  2126.             Dropdown.BackgroundTransparency = 1
  2127.             Dropdown.UIStroke.Transparency = 1
  2128.             Dropdown.Title.TextTransparency = 1
  2129.  
  2130.             Dropdown.Size = UDim2.new(0,465, 0, 44)
  2131.  
  2132.             TweenService:Create(Dropdown, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  2133.             TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2134.             TweenService:Create(Dropdown.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() 
  2135.  
  2136.  
  2137.             for _, ununusedoption in ipairs(Dropdown.List:GetChildren()) do
  2138.                 if ununusedoption.ClassName == "Frame" and ununusedoption.Name ~= 'PlaceHolder' and ununusedoption.Name ~= "-SearchBar" then
  2139.                     ununusedoption:Destroy()
  2140.                 end
  2141.             end
  2142.  
  2143.             Dropdown.Toggle.Rotation = 180
  2144.  
  2145.             local function RefreshSelected()
  2146.                 if #DropdownSettings.Items.Selected > 1 then
  2147.                     local NT = {}
  2148.                     for _,kj in ipairs(DropdownSettings.Items.Selected) do
  2149.                         NT[#NT+1] = kj.Option.Name
  2150.                     end
  2151.                     Dropdown.Selected.Text = table.concat(NT, ", ")
  2152.                 elseif DropdownSettings.Items.Selected[1] then
  2153.                     Dropdown.Selected.Text = DropdownSettings.Items.Selected[1].Option.Name
  2154.                 else
  2155.                     Dropdown.Selected.Text = "Select an option"
  2156.                 end
  2157.             end
  2158.  
  2159.             Dropdown.Interact.MouseButton1Click:Connect(function()
  2160.                 if DropdownSettings.Locked then return end
  2161.                 TweenService:Create(Dropdown, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
  2162.                 TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2163.                 wait(0.1)
  2164.                 TweenService:Create(Dropdown, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2165.                 TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2166.                 if Debounce then return end
  2167.                 if Dropdown.List.Visible then
  2168.                     Debounce = true
  2169.                     TweenService:Create(Dropdown, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0,465, 0, 44)}):Play()
  2170.                     for _, DropdownOpt in ipairs(Dropdown.List:GetChildren()) do
  2171.                         if DropdownOpt.ClassName == "Frame" and DropdownOpt.Name ~= 'PlaceHolder' and DropdownOpt~= SearchBar then
  2172.                             TweenService:Create(DropdownOpt, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  2173.                             TweenService:Create(DropdownOpt.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2174.                             TweenService:Create(DropdownOpt.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  2175.                         end
  2176.                     end
  2177.                     TweenService:Create(Dropdown.List, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ScrollBarImageTransparency = 1}):Play()
  2178.                     TweenService:Create(Dropdown.Toggle, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Rotation = 180}):Play()  
  2179.                     wait(0.35)
  2180.                     Dropdown.List.Visible = false
  2181.                     Debounce = false
  2182.                 else
  2183.                     TweenService:Create(Dropdown, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0,465, 0, 178)}):Play()
  2184.                     Dropdown.List.Visible = true
  2185.                     TweenService:Create(Dropdown.List, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ScrollBarImageTransparency = 0.7}):Play()
  2186.                     TweenService:Create(Dropdown.Toggle, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Rotation = 0}):Play()
  2187.                     for _, DropdownOpt in ipairs(Dropdown.List:GetChildren()) do
  2188.                         if DropdownOpt.ClassName == "Frame" and DropdownOpt.Name ~= 'PlaceHolder' and DropdownOpt ~= SearchBar then
  2189.                             TweenService:Create(DropdownOpt, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  2190.                             TweenService:Create(DropdownOpt.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2191.                             TweenService:Create(DropdownOpt.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  2192.                         end
  2193.                     end
  2194.                 end
  2195.             end)
  2196.  
  2197.             Dropdown.List['-SearchBar'].Input:GetPropertyChangedSignal('Text'):Connect(function()
  2198.                 local InputText=string.upper(Dropdown.List['-SearchBar'].Input.Text)
  2199.                 for _,item in ipairs(Dropdown.List:GetChildren()) do
  2200.                     if item:IsA('Frame') and item.Name ~= 'Template' and item ~= SearchBar and item.Name ~= 'PlaceHolder' then
  2201.                         if InputText=="" or InputText==" "or string.find(string.upper(item.Name),InputText)~=nil then
  2202.                             TweenService:Create(item, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  2203.                             TweenService:Create(item.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2204.                             TweenService:Create(item.Title, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  2205.                         else
  2206.                             TweenService:Create(item, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  2207.                             TweenService:Create(item.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2208.                             TweenService:Create(item.Title, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  2209.                         end
  2210.                     end
  2211.                 end
  2212.             end)
  2213.  
  2214.             Dropdown.MouseEnter:Connect(function()
  2215.                 if not Dropdown.List.Visible then
  2216.                     TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
  2217.                 end
  2218.             end)
  2219.  
  2220.             Dropdown.MouseLeave:Connect(function()
  2221.                 TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2222.             end)
  2223.  
  2224.             local function Error(text)
  2225.                 TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
  2226.                 TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2227.                 Dropdown.Title.Text = text
  2228.                 wait(0.5)
  2229.                 Dropdown.Title.Text = DropdownSettings.Name
  2230.                 TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2231.                 TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2232.             end
  2233.  
  2234.             local function AddOption(Option,Selecteds)
  2235.                 local DropdownOption = Elements.Template.Dropdown.List.Template:Clone()
  2236.                 DropdownOption:GetPropertyChangedSignal('BackgroundTransparency'):Connect(function()
  2237.                     if DropdownOption.BackgroundTransparency == 1 then
  2238.                         DropdownOption.Visible = false
  2239.                     else
  2240.                         DropdownOption.Visible = true
  2241.                     end
  2242.                 end)
  2243.                 DropdownSettings.Items[Option] = {
  2244.                     Option = DropdownOption,
  2245.                     Selected = false
  2246.                 }
  2247.                 local OptionInTable = DropdownSettings.Items[Option]
  2248.                 DropdownOption.Name = Option.Name or Option
  2249.                 DropdownOption.Title.Text = Option.Name or Option
  2250.                 DropdownOption.Parent = Dropdown.List
  2251.                 DropdownOption.Visible = true
  2252.                 local IsSelected = OptionInTable.Selected
  2253.                 if Selecteds and #Selecteds > 0 then
  2254.                     if typeof(Selecteds) == 'string' then
  2255.                         Selecteds = {Selecteds}
  2256.                     end
  2257.                     for index,Selected in pairs(Selecteds) do
  2258.                         if Selected == Option then
  2259.                             IsSelected = true
  2260.                             OptionInTable.Selected = true
  2261.                             table.insert(DropdownSettings.Items.Selected,OptionInTable)
  2262.                             DropdownSettings.Items.Selected[table.find(DropdownSettings.Items.Selected,OptionInTable)].Selected = true
  2263.                         end
  2264.                     end
  2265.                     RefreshSelected()
  2266.                 end
  2267.  
  2268.                 if IsSelected then
  2269.                     DropdownOption.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
  2270.                 end
  2271.  
  2272.                 if Dropdown.Visible then
  2273.                     DropdownOption.BackgroundTransparency = 0
  2274.                     DropdownOption.UIStroke.Transparency = 0
  2275.                     DropdownOption.Title.TextTransparency = 0
  2276.                 else
  2277.                     DropdownOption.BackgroundTransparency = 1
  2278.                     DropdownOption.UIStroke.Transparency = 1
  2279.                     DropdownOption.Title.TextTransparency = 1
  2280.                 end
  2281.  
  2282.                 DropdownOption.Interact.ZIndex = 50
  2283.                 DropdownOption.Interact.MouseButton1Click:Connect(function()
  2284.                     if DropdownSettings.Locked then return end
  2285.                     if OptionInTable.Selected then
  2286.                         OptionInTable.Selected = false
  2287.                         table.remove(DropdownSettings.Items.Selected,table.find(DropdownSettings.Items.Selected,OptionInTable))
  2288.                         RefreshSelected()
  2289.                         TweenService:Create(DropdownOption, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(30, 30, 30)}):Play()
  2290.                         SaveConfiguration()
  2291.                         return
  2292.                     end
  2293.                     if not Multi and DropdownSettings.Items.Selected[1] then
  2294.                         DropdownSettings.Items.Selected[1].Selected = false
  2295.                         TweenService:Create(DropdownSettings.Items.Selected[1].Option, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(30, 30, 30)}):Play()
  2296.                     end
  2297.                     if not (Multi) then
  2298.                         DropdownSettings.Items.Selected = {OptionInTable}
  2299.                         Dropdown.Selected.Text = Option.Name or Option
  2300.                     else
  2301.                         table.insert(DropdownSettings.Items.Selected,OptionInTable)
  2302.                         RefreshSelected()
  2303.                     end
  2304.  
  2305.                     local Success, Response = pcall(function()
  2306.                         DropdownSettings.Callback(Option)
  2307.                     end)
  2308.                     if not Success then
  2309.                         Error('Callback Error')
  2310.                         print("ArrayField | "..DropdownSettings.Name.." Callback Error " ..tostring(Response))
  2311.                     end
  2312.  
  2313.                     OptionInTable.Selected = true
  2314.  
  2315.                     if not (Multi) then
  2316.                         for _,op in ipairs(DropdownSettings.Items.Selected) do
  2317.                             TweenService:Create(op.Option, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(30, 30, 30)}):Play()
  2318.                         end
  2319.                     end
  2320.                     TweenService:Create(DropdownOption.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2321.                     TweenService:Create(DropdownOption, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(40, 40, 40)}):Play()
  2322.                     Debounce = true
  2323.                     wait(0.2)
  2324.                     TweenService:Create(DropdownOption.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2325.                     wait(0.1)
  2326.                     if not Multi then
  2327.                         TweenService:Create(Dropdown, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0,465, 0, 45)}):Play()
  2328.                         for _, DropdownOpt in ipairs(Dropdown.List:GetChildren()) do
  2329.                             if DropdownOpt.ClassName == "Frame" and DropdownOpt.Name ~= "PlaceHolder" and DropdownOpt ~= SearchBar then
  2330.                                 TweenService:Create(DropdownOpt, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  2331.                                 TweenService:Create(DropdownOpt.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2332.                                 TweenService:Create(DropdownOpt.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  2333.                             end
  2334.                         end
  2335.                         TweenService:Create(Dropdown.List, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ScrollBarImageTransparency = 1}):Play()
  2336.                         TweenService:Create(Dropdown.Toggle, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Rotation = 180}):Play()  
  2337.                         wait(0.35)
  2338.                         Dropdown.List.Visible = false
  2339.  
  2340.                     end
  2341.                     Debounce = false
  2342.                     SaveConfiguration()
  2343.                 end)
  2344.             end
  2345.             local function AddOptions(Options,Selected)
  2346.                 if typeof(Options) == 'table' then
  2347.                     for _, Option in ipairs(Options) do
  2348.                         AddOption(Option,Selected)
  2349.                     end
  2350.                 else
  2351.                     AddOption(Options,Selected)
  2352.                 end
  2353.                 if Settings.ConfigurationSaving then
  2354.                     if Settings.ConfigurationSaving.Enabled and DropdownSettings.Flag then
  2355.                         ArrayFieldLibrary.Flags[DropdownSettings.Flag] = DropdownSettings
  2356.                     end
  2357.                 end
  2358.             end
  2359.             function DropdownSettings:Add(Items,Selected)
  2360.                 AddOptions(Items,Selected)
  2361.             end
  2362.  
  2363.             AddOptions(DropdownSettings.Options,DropdownSettings.CurrentOption)
  2364.  
  2365.             --fix
  2366.             function DropdownSettings:Set(NewOption)
  2367.  
  2368.                 for _,o in pairs(NewOption) do
  2369.  
  2370.                     if typeof(NewOption) == 'table' then
  2371.  
  2372.                         DropdownSettings.Items.Selected = NewOption
  2373.                     else
  2374.                         DropdownSettings.Items.Selected = {NewOption}
  2375.                     end
  2376.                     local Success, Response = pcall(function()
  2377.                         DropdownSettings.Callback(NewOption)
  2378.                     end)
  2379.                     if not Success then
  2380.                         TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
  2381.                         TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2382.                         Dropdown.Title.Text = "Callback Error"
  2383.                         print("ArrayField | "..DropdownSettings.Name.." Callback Error " ..tostring(Response))
  2384.                         wait(0.5)
  2385.                         Dropdown.Title.Text = DropdownSettings.Name
  2386.                         TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2387.                         TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2388.                     end
  2389.                     if DropdownSettings.Items[NewOption] then
  2390.                         local DropdownOption =  DropdownSettings.Items[NewOption]
  2391.                         DropdownOption.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
  2392.  
  2393.                         if Dropdown.Visible then
  2394.                             DropdownOption.BackgroundTransparency = 0
  2395.                             DropdownOption.UIStroke.Transparency = 0
  2396.                             DropdownOption.Title.TextTransparency = 0
  2397.                         else
  2398.                             DropdownOption.BackgroundTransparency = 1
  2399.                             DropdownOption.UIStroke.Transparency = 1
  2400.                             DropdownOption.Title.TextTransparency = 1
  2401.                         end
  2402.  
  2403.                     end
  2404.                 end
  2405.                 --Dropdown.Selected.Text = NewText
  2406.             end
  2407.             function DropdownSettings:Error(text)
  2408.                 Error(text)
  2409.             end
  2410.             function DropdownSettings:Refresh(NewOptions,Selecteds)
  2411.                 DropdownSettings.Items = {}
  2412.                 DropdownSettings.Items.Selected = {}
  2413.                 for _, option in ipairs(Dropdown.List:GetChildren()) do
  2414.                     if option.ClassName == "Frame" and option ~= SearchBar and option.Name ~= "Placeholder" then
  2415.                         option:Destroy()
  2416.                     end
  2417.                 end
  2418.                 AddOptions(NewOptions,Selecteds)
  2419.             end
  2420.             function DropdownSettings:Remove(Item)
  2421.                 if Item.Name ~= "Placeholder" and Item ~= SearchBar then
  2422.                     if DropdownSettings.Items[Item] then
  2423.                         DropdownSettings.Items[Item].Option:Destroy()
  2424.                         table.remove(DropdownSettings.Items,table.find(DropdownSettings.Items,Item))
  2425.                     else
  2426.                         Error('Option not found.')
  2427.                     end
  2428.                 else
  2429.                     SearchBar:Destroy()
  2430.                     Error("why you trynna remove the searchbar? FINE")
  2431.                 end
  2432.                 if Dropdown.Selected.Text == Item then
  2433.                     Dropdown.Selected.Text = ''
  2434.                 end
  2435.             end
  2436.  
  2437.             function DropdownSettings:Destroy()
  2438.                 Dropdown:Destroy()
  2439.             end
  2440.             function DropdownSettings:Lock(Reason)
  2441.                 if DropdownSettings.Locked then return end
  2442.                 DropdownSettings.Locked = true
  2443.                 Debounce = true
  2444.                 TweenService:Create(Dropdown, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0,465, 0, 44)}):Play()
  2445.                 for _, DropdownOpt in ipairs(Dropdown.List:GetChildren()) do
  2446.                     if DropdownOpt.ClassName == "Frame" and DropdownOpt.Name ~= 'PlaceHolder' and DropdownOpt.Name ~= "-SearchBar" then
  2447.                         TweenService:Create(DropdownOpt, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  2448.                         TweenService:Create(DropdownOpt.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2449.                         TweenService:Create(DropdownOpt.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  2450.                     end
  2451.                 end
  2452.                 TweenService:Create(Dropdown.List, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ScrollBarImageTransparency = 1}):Play()
  2453.                 TweenService:Create(Dropdown.Toggle, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Rotation = 180}):Play()  
  2454.                 wait(0.35)
  2455.                 Dropdown.List.Visible = false
  2456.                 Debounce = false
  2457.                 Dropdown.Lock.Reason.Text = Reason or 'Locked'
  2458.                 TweenService:Create(Dropdown.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 0}):Play()
  2459.                 TweenService:Create(Dropdown.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 0}):Play()
  2460.                 wait(0.2)
  2461.                 if not DropdownSettings.Locked then return end --no icon bug
  2462.                 TweenService:Create(Dropdown.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 0}):Play()
  2463.             end
  2464.             function DropdownSettings:Unlock()
  2465.                 if not DropdownSettings.Locked then return end
  2466.                 DropdownSettings.Locked = false
  2467.                 wait(0.2)
  2468.                 TweenService:Create(Dropdown.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 1}):Play()
  2469.                 if DropdownSettings.Locked then return end --no icon bug
  2470.                 TweenService:Create(Dropdown.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 1}):Play()
  2471.                 TweenService:Create(Dropdown.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 1}):Play()
  2472.             end
  2473.             function DropdownSettings:Visible(bool)
  2474.                 Dropdown.Visible = bool
  2475.             end
  2476.             return DropdownSettings
  2477.         end
  2478.  
  2479.         -- Keybind
  2480.         function Tab:CreateKeybind(KeybindSettings)
  2481.             local CheckingForKey = false
  2482.             local Keybind = Elements.Template.Keybind:Clone()
  2483.             Keybind.Name = KeybindSettings.Name
  2484.             Keybind.Title.Text = KeybindSettings.Name
  2485.             Keybind.Visible = true
  2486.             Tab.Elements[KeybindSettings.Name] = {
  2487.                 type = 'keybind',
  2488.                 section = KeybindSettings.SectionParent,
  2489.                 element = Keybind
  2490.             }
  2491.             if KeybindSettings.SectionParent then
  2492.                 Keybind.Parent = KeybindSettings.SectionParent.Holder
  2493.             else
  2494.                 Keybind.Parent = TabPage
  2495.             end
  2496.             AddInfos(Keybind,KeybindSettings,'keybind')
  2497.  
  2498.             Keybind.BackgroundTransparency = 1
  2499.             Keybind.UIStroke.Transparency = 1
  2500.             Keybind.Title.TextTransparency = 1
  2501.  
  2502.             Keybind.KeybindFrame.BackgroundColor3 = SelectedTheme.InputBackground
  2503.             Keybind.KeybindFrame.UIStroke.Color = SelectedTheme.InputStroke
  2504.  
  2505.             TweenService:Create(Keybind, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  2506.             TweenService:Create(Keybind.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2507.             TweenService:Create(Keybind.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()  
  2508.  
  2509.             Keybind.KeybindFrame.KeybindBox.Text = KeybindSettings.CurrentKeybind
  2510.             Keybind.KeybindFrame.Size = UDim2.new(0, Keybind.KeybindFrame.KeybindBox.TextBounds.X + 24, 0, 30)
  2511.  
  2512.             Keybind.KeybindFrame.KeybindBox.Focused:Connect(function()
  2513.                 if KeybindSettings.Locked then
  2514.                     Keybind.KeybindFrame.KeybindBox:ReleaseFocus() return
  2515.                 end
  2516.                 CheckingForKey = true
  2517.                 Keybind.KeybindFrame.KeybindBox.Text = ""
  2518.             end)
  2519.             Keybind.KeybindFrame.KeybindBox.FocusLost:Connect(function()
  2520.                 CheckingForKey = false
  2521.                 if Keybind.KeybindFrame.KeybindBox.Text == nil or "" then
  2522.                     Keybind.KeybindFrame.KeybindBox.Text = KeybindSettings.CurrentKeybind
  2523.                     SaveConfiguration()
  2524.                 end
  2525.             end)
  2526.  
  2527.             Keybind.MouseEnter:Connect(function()
  2528.                 TweenService:Create(Keybind, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
  2529.             end)
  2530.  
  2531.             Keybind.MouseLeave:Connect(function()
  2532.                 TweenService:Create(Keybind, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2533.             end)
  2534.  
  2535.             UserInputService.InputBegan:Connect(function(input, processed)
  2536.  
  2537.                 if CheckingForKey then
  2538.                     if input.KeyCode ~= Enum.KeyCode.Unknown and input.KeyCode ~= Enum.KeyCode.RightShift then
  2539.                         local SplitMessage = string.split(tostring(input.KeyCode), ".")
  2540.                         local NewKeyNoEnum = SplitMessage[3]
  2541.                         Keybind.KeybindFrame.KeybindBox.Text = tostring(NewKeyNoEnum)
  2542.                         KeybindSettings.CurrentKeybind = tostring(NewKeyNoEnum)
  2543.                         Keybind.KeybindFrame.KeybindBox:ReleaseFocus()
  2544.                         SaveConfiguration()
  2545.                     end
  2546.                 elseif KeybindSettings.CurrentKeybind ~= nil and (input.KeyCode == Enum.KeyCode[KeybindSettings.CurrentKeybind] and not processed) then  --Test
  2547.                     local Held = true
  2548.                     local Connection
  2549.                     Connection = input.Changed:Connect(function(prop)
  2550.                         if prop == "UserInputState" then
  2551.                             Connection:Disconnect()
  2552.                             Held = false
  2553.                         end
  2554.                     end)
  2555.  
  2556.                     if not KeybindSettings.HoldToInteract then
  2557.                         local Success, Response = pcall(KeybindSettings.Callback)
  2558.                         if not Success then
  2559.                             TweenService:Create(Keybind, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
  2560.                             TweenService:Create(Keybind.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2561.                             Keybind.Title.Text = "Callback Error"
  2562.                             print("ArrayField | "..KeybindSettings.Name.." Callback Error " ..tostring(Response))
  2563.                             wait(0.5)
  2564.                             Keybind.Title.Text = KeybindSettings.Name
  2565.                             TweenService:Create(Keybind, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2566.                             TweenService:Create(Keybind.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2567.                         end
  2568.                     else
  2569.                         wait(0.25)
  2570.                         if Held then
  2571.                             local Loop; Loop = RunService.Stepped:Connect(function()
  2572.                                 if not Held then
  2573.                                     KeybindSettings.Callback(false) -- maybe pcall this
  2574.                                     Loop:Disconnect()
  2575.                                 else
  2576.                                     KeybindSettings.Callback(true) -- maybe pcall this
  2577.                                 end
  2578.                             end)   
  2579.                         end
  2580.                     end
  2581.                 end
  2582.             end)
  2583.  
  2584.             Keybind.KeybindFrame.KeybindBox:GetPropertyChangedSignal("Text"):Connect(function()
  2585.                 TweenService:Create(Keybind.KeybindFrame, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, Keybind.KeybindFrame.KeybindBox.TextBounds.X + 24, 0, 30)}):Play()
  2586.             end)
  2587.  
  2588.             function KeybindSettings:Set(NewKeybind)
  2589.                 Keybind.KeybindFrame.KeybindBox.Text = tostring(NewKeybind)
  2590.                 KeybindSettings.CurrentKeybind = tostring(NewKeybind)
  2591.                 Keybind.KeybindFrame.KeybindBox:ReleaseFocus()
  2592.                 SaveConfiguration()
  2593.             end
  2594.             function KeybindSettings:Destroy()
  2595.                 Keybind:Destroy()
  2596.             end
  2597.             function KeybindSettings:Lock(Reason)
  2598.                 if KeybindSettings.Locked then return end
  2599.                 KeybindSettings.Locked = true
  2600.                 Keybind.Lock.Reason.Text = Reason or 'Locked'
  2601.                 TweenService:Create(Keybind.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 0}):Play()
  2602.                 TweenService:Create(Keybind.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 0}):Play()
  2603.                 wait(0.2)
  2604.                 if not KeybindSettings.Locked then return end --no icon bug
  2605.                 TweenService:Create(Keybind.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 0}):Play()
  2606.             end
  2607.             function KeybindSettings:Unlock()
  2608.                 if not KeybindSettings.Locked then return end
  2609.                 KeybindSettings.Locked = false
  2610.                 wait(0.2)
  2611.                 TweenService:Create(Keybind.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 1}):Play()
  2612.                 if KeybindSettings.Locked then return end --no icon bug
  2613.                 TweenService:Create(Keybind.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 1}):Play()
  2614.                 TweenService:Create(Keybind.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 1}):Play()
  2615.             end
  2616.             function KeybindSettings:Visible(bool)
  2617.                 Keybind.Visible = bool
  2618.             end
  2619.             if Settings.ConfigurationSaving then
  2620.                 if Settings.ConfigurationSaving.Enabled and KeybindSettings.Flag then
  2621.                     ArrayFieldLibrary.Flags[KeybindSettings.Flag] = KeybindSettings
  2622.                 end
  2623.             end
  2624.             return KeybindSettings
  2625.         end
  2626.  
  2627.         -- Toggle
  2628.         function Tab:CreateToggle(ToggleSettings)
  2629.  
  2630.             local Toggle = Elements.Template.Toggle:Clone()
  2631.             Toggle.Name = ToggleSettings.Name
  2632.             Toggle.Title.Text = ToggleSettings.Name
  2633.             Toggle.Visible = true
  2634.  
  2635.             Toggle.BackgroundTransparency = 1
  2636.             Toggle.UIStroke.Transparency = 1
  2637.             Toggle.Title.TextTransparency = 1
  2638.             Toggle.Switch.BackgroundColor3 = SelectedTheme.ToggleBackground
  2639.             Tab.Elements[Toggle.Name] = {
  2640.                 type = 'toggle',
  2641.                 section = ToggleSettings.SectionParent,
  2642.                 element = Toggle
  2643.             }
  2644.             AddInfos(Toggle,ToggleSettings,'toggle')
  2645.             if ToggleSettings.SectionParent then
  2646.                 Toggle.Parent = ToggleSettings.SectionParent.Holder
  2647.             else
  2648.                 Toggle.Parent = TabPage
  2649.             end
  2650.             if SelectedTheme ~= ArrayFieldLibrary.Theme.Default then
  2651.                 Toggle.Switch.Shadow.Visible = false
  2652.             end
  2653.             ToggleSettings.Locked = false
  2654.             TweenService:Create(Toggle, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  2655.             TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2656.             TweenService:Create(Toggle.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()   
  2657.  
  2658.  
  2659.             if not ToggleSettings.CurrentValue then
  2660.                 Toggle.Switch.Indicator.Position = UDim2.new(1, -40, 0.5, 0)
  2661.                 Toggle.Switch.Indicator.UIStroke.Color = SelectedTheme.ToggleDisabledStroke
  2662.                 Toggle.Switch.Indicator.BackgroundColor3 = SelectedTheme.ToggleDisabled
  2663.                 Toggle.Switch.UIStroke.Color = SelectedTheme.ToggleDisabledOuterStroke
  2664.             else
  2665.                 Toggle.Switch.Indicator.Position = UDim2.new(1, -20, 0.5, 0)
  2666.                 Toggle.Switch.Indicator.UIStroke.Color = SelectedTheme.ToggleEnabledStroke
  2667.                 Toggle.Switch.Indicator.BackgroundColor3 = SelectedTheme.ToggleEnabled
  2668.                 Toggle.Switch.UIStroke.Color = SelectedTheme.ToggleEnabledOuterStroke
  2669.             end
  2670.  
  2671.             Toggle.MouseEnter:Connect(function()
  2672.                 TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
  2673.             end)
  2674.  
  2675.             Toggle.MouseLeave:Connect(function()
  2676.                 TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2677.             end)
  2678.             Toggle.Interact.MouseButton1Click:Connect(function()
  2679.                 if ToggleSettings.Locked then return end
  2680.                 if ToggleSettings.CurrentValue then
  2681.                     ToggleSettings.CurrentValue = false
  2682.                     TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
  2683.                     TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2684.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.45, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = UDim2.new(1, -40, 0.5, 0)}):Play()
  2685.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,12,0,12)}):Play()
  2686.                     TweenService:Create(Toggle.Switch.Indicator.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleDisabledStroke}):Play()
  2687.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = SelectedTheme.ToggleDisabled}):Play()
  2688.                     TweenService:Create(Toggle.Switch.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleDisabledOuterStroke}):Play()
  2689.                     wait(0.05)
  2690.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,17,0,17)}):Play()
  2691.                     wait(0.15)
  2692.                     TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2693.                     TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2694.                 else
  2695.                     ToggleSettings.CurrentValue = true
  2696.                     TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
  2697.                     TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2698.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = UDim2.new(1, -20, 0.5, 0)}):Play()
  2699.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,12,0,12)}):Play()
  2700.                     TweenService:Create(Toggle.Switch.Indicator.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleEnabledStroke}):Play()
  2701.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = SelectedTheme.ToggleEnabled}):Play()
  2702.                     TweenService:Create(Toggle.Switch.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleEnabledOuterStroke}):Play()
  2703.                     wait(0.05)
  2704.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.45, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,17,0,17)}):Play()  
  2705.                     wait(0.15)
  2706.                     TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2707.                     TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()    
  2708.                 end
  2709.  
  2710.                 local Success, Response = pcall(function()
  2711.                     ToggleSettings.Callback(ToggleSettings.CurrentValue)
  2712.                 end)
  2713.                 if not Success then
  2714.                     TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
  2715.                     TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2716.                     Toggle.Title.Text = "Callback Error"
  2717.                     print("ArrayField | "..ToggleSettings.Name.." Callback Error " ..tostring(Response))
  2718.                     wait(0.5)
  2719.                     Toggle.Title.Text = ToggleSettings.Name
  2720.                     TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2721.                     TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2722.                 end
  2723.  
  2724.                 SaveConfiguration()
  2725.             end)
  2726.             function ToggleSettings:Set(NewToggleValue)
  2727.                 if NewToggleValue then
  2728.                     ToggleSettings.CurrentValue = true
  2729.                     TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
  2730.                     TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2731.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = UDim2.new(1, -20, 0.5, 0)}):Play()
  2732.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,12,0,12)}):Play()
  2733.                     TweenService:Create(Toggle.Switch.Indicator.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleEnabledStroke}):Play()
  2734.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = SelectedTheme.ToggleEnabled}):Play()
  2735.                     TweenService:Create(Toggle.Switch.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = Color3.fromRGB(100,100,100)}):Play()
  2736.                     wait(0.05)
  2737.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.45, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,17,0,17)}):Play()  
  2738.                     wait(0.15)
  2739.                     TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2740.                     TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2741.                 else
  2742.                     ToggleSettings.CurrentValue = false
  2743.                     TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
  2744.                     TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2745.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.45, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = UDim2.new(1, -40, 0.5, 0)}):Play()
  2746.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,12,0,12)}):Play()
  2747.                     TweenService:Create(Toggle.Switch.Indicator.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleDisabledStroke}):Play()
  2748.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = SelectedTheme.ToggleDisabled}):Play()
  2749.                     TweenService:Create(Toggle.Switch.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = Color3.fromRGB(65,65,65)}):Play()
  2750.                     wait(0.05)
  2751.                     TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,17,0,17)}):Play()
  2752.                     wait(0.15)
  2753.                     TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2754.                     TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2755.                 end
  2756.                 local Success, Response = pcall(function()
  2757.                     ToggleSettings.Callback(ToggleSettings.CurrentValue)
  2758.                 end)
  2759.                 if not Success then
  2760.                     TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
  2761.                     TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  2762.                     Toggle.Title.Text = "Callback Error"
  2763.                     print("ArrayField | "..ToggleSettings.Name.." Callback Error " ..tostring(Response))
  2764.                     wait(0.5)
  2765.                     Toggle.Title.Text = ToggleSettings.Name
  2766.                     TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  2767.                     TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  2768.                 end
  2769.                 SaveConfiguration()
  2770.             end
  2771.             function ToggleSettings:Destroy()
  2772.                 Toggle:Destroy()
  2773.             end
  2774.             function ToggleSettings:Lock(Reason)
  2775.                 if ToggleSettings.Locked then return end
  2776.                 ToggleSettings.Locked = true
  2777.                 Toggle.Lock.Reason.Text = Reason or 'Locked'
  2778.                 TweenService:Create(Toggle.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 0}):Play()
  2779.                 TweenService:Create(Toggle.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 0}):Play()
  2780.                 wait(0.2)
  2781.                 if not ToggleSettings.Locked then return end --no icon bug
  2782.                 TweenService:Create(Toggle.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 0}):Play()
  2783.             end
  2784.             function ToggleSettings:Unlock()
  2785.                 if not ToggleSettings.Locked then return end
  2786.                 ToggleSettings.Locked = false
  2787.                 wait(0.2)
  2788.                 TweenService:Create(Toggle.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 1}):Play()
  2789.                 if ToggleSettings.Locked then return end --no icon bug
  2790.                 TweenService:Create(Toggle.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 1}):Play()
  2791.                 TweenService:Create(Toggle.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 1}):Play()
  2792.             end
  2793.             function ToggleSettings:Visible(bool)
  2794.                 Toggle.Visible = bool
  2795.             end
  2796.  
  2797.             if Settings.ConfigurationSaving then
  2798.                 if Settings.ConfigurationSaving.Enabled and ToggleSettings.Flag then
  2799.                     ArrayFieldLibrary.Flags[ToggleSettings.Flag] = ToggleSettings
  2800.                 end
  2801.             end
  2802.  
  2803.             return ToggleSettings
  2804.         end
  2805.  
  2806.         -- ColorPicker
  2807.         function Tab:CreateColorPicker(ColorPickerSettings) -- by Throit
  2808.             local ColorPicker = Elements.Template.ColorPicker:Clone()
  2809.             Tab.Elements[ColorPickerSettings.Name] = {
  2810.                 type = 'colorpicker',
  2811.                 section = ColorPickerSettings.SectionParent,
  2812.                 element = ColorPicker
  2813.             }
  2814.             AddInfos(ColorPicker,ColorPickerSettings,'colorpicker')
  2815.             local Background = ColorPicker.CPBackground
  2816.             local Display = Background.Display
  2817.             local Main = Background.MainCP
  2818.             local Slider = ColorPicker.ColorSlider
  2819.             ColorPicker.ColorPickerIs.Value = false
  2820.             ColorPicker.ClipsDescendants = true
  2821.             ColorPicker.Name = ColorPickerSettings.Name
  2822.             ColorPicker.Title.Text = ColorPickerSettings.Name
  2823.             ColorPickerSettings.Locked = false
  2824.             ColorPicker.Visible = true
  2825.             if ColorPickerSettings.SectionParent then
  2826.                 ColorPicker.Parent = ColorPickerSettings.SectionParent.Holder
  2827.             else
  2828.                 ColorPicker.Parent = TabPage
  2829.             end
  2830.             ColorPicker.Size = UDim2.new(0,465,0,40)
  2831.             ColorPicker.ColorSlider.Visible = false
  2832.             ColorPicker.HexInput.Visible = false
  2833.             ColorPicker.RGB.Visible = false
  2834.             Background.Size = UDim2.new(0, 39, 0, 22)
  2835.             Display.BackgroundTransparency = 0
  2836.             Main.MainPoint.ImageTransparency = 1
  2837.             ColorPicker.Interact.Size = UDim2.new(1, 0, 1, 0)
  2838.             ColorPicker.Interact.Position = UDim2.new(0.5, 0, 0.5, 0)
  2839.             ColorPicker.RGB.Position = UDim2.new(0, 17, 0, 70)
  2840.             ColorPicker.HexInput.Position = UDim2.new(0, 17, 0, 90)
  2841.             Main.ImageTransparency = 1
  2842.             Background.BackgroundTransparency = 1
  2843.             local opened  = false
  2844.             local mouse = game.Players.LocalPlayer:GetMouse()
  2845.             Main.Image = "http://www.roblox.com/asset/?id=11415645739"
  2846.             local mainDragging = false
  2847.             local sliderDragging = false
  2848.             ColorPicker.Interact.MouseButton1Down:Connect(function()
  2849.                 if ColorPickerSettings.Locked then return end
  2850.                 if not opened then
  2851.                     ColorPicker.ColorPickerIs.Value = true
  2852.                     opened = true
  2853.                     ColorPicker.ColorSlider.Visible = true
  2854.                     ColorPicker.HexInput.Visible = true
  2855.                     ColorPicker.RGB.Visible = true
  2856.                     TweenService:Create(ColorPicker, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0,465, 0, 120)}):Play()
  2857.                     TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 173, 0, 86)}):Play()
  2858.                     TweenService:Create(Display, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  2859.                     TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Position = UDim2.new(0.289, 0, 0.5, 0)}):Play()
  2860.                     TweenService:Create(ColorPicker.RGB, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 17, 0, 40)}):Play()
  2861.                     TweenService:Create(ColorPicker.HexInput, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 17, 0, 73)}):Play()
  2862.                     TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0.574, 0, 1, 0)}):Play()
  2863.                     TweenService:Create(Main.MainPoint, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play()
  2864.                     TweenService:Create(Main, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 0.1}):Play()
  2865.                     TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  2866.                 else
  2867.                     ColorPicker.ColorPickerIs.Value = false
  2868.                     opened = false
  2869.                     ColorPicker.ColorSlider.Visible = false
  2870.                     ColorPicker.HexInput.Visible = false
  2871.                     ColorPicker.RGB.Visible = false
  2872.                     TweenService:Create(ColorPicker, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0,465, 0,40)}):Play()
  2873.                     TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 39, 0, 22)}):Play()
  2874.                     TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(1, 0, 1, 0)}):Play()
  2875.                     TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Position = UDim2.new(0.5, 0, 0.5, 0)}):Play()
  2876.                     TweenService:Create(ColorPicker.RGB, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 17, 0, 70)}):Play()
  2877.                     TweenService:Create(ColorPicker.HexInput, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 17, 0, 90)}):Play()
  2878.                     TweenService:Create(Display, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  2879.                     TweenService:Create(Main.MainPoint, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  2880.                     TweenService:Create(Main, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  2881.                     TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  2882.                 end
  2883.             end)
  2884.  
  2885.             game:GetService("UserInputService").InputEnded:Connect(function(input, gameProcessed) if input.UserInputType == Enum.UserInputType.MouseButton1 then
  2886.                     mainDragging = false
  2887.                     sliderDragging = false
  2888.                 end end)
  2889.             Main.MouseButton1Down:Connect(function()
  2890.                 if opened and not ColorPickerSettings.Locked then
  2891.                     mainDragging = true
  2892.                 end
  2893.             end)
  2894.             Main.MainPoint.MouseButton1Down:Connect(function()
  2895.                 if opened and not ColorPickerSettings.Locked then
  2896.                     mainDragging = true
  2897.                 end
  2898.             end)
  2899.             Slider.MouseButton1Down:Connect(function()
  2900.                 if ColorPickerSettings.Locked then return end
  2901.                 sliderDragging = true
  2902.             end)
  2903.             Slider.SliderPoint.MouseButton1Down:Connect(function()
  2904.                 if ColorPickerSettings.Locked then return end
  2905.                 sliderDragging = true
  2906.             end)
  2907.  
  2908.             local h,s,v = ColorPickerSettings.Color:ToHSV()
  2909.             local color = Color3.fromHSV(h,s,v)
  2910.             local hex = string.format("#%02X%02X%02X",color.R*0xFF,color.G*0xFF,color.B*0xFF)
  2911.             ColorPicker.HexInput.InputBox.Text = hex
  2912.             local function setDisplay()
  2913.                 --Main
  2914.                 Main.MainPoint.Position = UDim2.new(s,-Main.MainPoint.AbsoluteSize.X/2,1-v,-Main.MainPoint.AbsoluteSize.Y/2)
  2915.                 Main.MainPoint.ImageColor3 = Color3.fromHSV(h,s,v)
  2916.                 Background.BackgroundColor3 = Color3.fromHSV(h,1,1)
  2917.                 Display.BackgroundColor3 = Color3.fromHSV(h,s,v)
  2918.                 --Slider
  2919.                 local x = h * Slider.AbsoluteSize.X
  2920.                 Slider.SliderPoint.Position = UDim2.new(0,x-Slider.SliderPoint.AbsoluteSize.X/2,0.5,0)
  2921.                 Slider.SliderPoint.ImageColor3 = Color3.fromHSV(h,1,1)
  2922.                 local color = Color3.fromHSV(h,s,v)
  2923.                 local r,g,b = math.floor((color.R*255)+0.5),math.floor((color.G*255)+0.5),math.floor((color.B*255)+0.5)
  2924.                 ColorPicker.RGB.RInput.InputBox.Text = tostring(r)
  2925.                 ColorPicker.RGB.GInput.InputBox.Text = tostring(g)
  2926.                 ColorPicker.RGB.BInput.InputBox.Text = tostring(b)
  2927.                 hex = string.format("#%02X%02X%02X",color.R*0xFF,color.G*0xFF,color.B*0xFF)
  2928.                 ColorPicker.HexInput.InputBox.Text = hex
  2929.             end
  2930.             setDisplay()
  2931.             ColorPicker.HexInput.InputBox.FocusLost:Connect(function()
  2932.                 if not pcall(function()
  2933.                         local r, g, b = string.match(ColorPicker.HexInput.InputBox.Text, "^#?(%w%w)(%w%w)(%w%w)$")
  2934.                         local rgbColor = Color3.fromRGB(tonumber(r, 16),tonumber(g, 16), tonumber(b, 16))
  2935.                         h,s,v = rgbColor:ToHSV()
  2936.                         hex = ColorPicker.HexInput.InputBox.Text
  2937.                         setDisplay()
  2938.                         ColorPickerSettings.Color = rgbColor
  2939.                     end)
  2940.                 then
  2941.                     ColorPicker.HexInput.InputBox.Text = hex
  2942.                 end
  2943.                 pcall(function()ColorPickerSettings.Callback(Color3.fromHSV(h,s,v))end)
  2944.                 local r,g,b = math.floor((h*255)+0.5),math.floor((s*255)+0.5),math.floor((v*255)+0.5)
  2945.                 ColorPickerSettings.Color = Color3.fromRGB(r,g,b)
  2946.                 SaveConfiguration()
  2947.             end)
  2948.             --RGB
  2949.             local function rgbBoxes(box,toChange)
  2950.                 local value = tonumber(box.Text)
  2951.                 local color = Color3.fromHSV(h,s,v)
  2952.                 local oldR,oldG,oldB = math.floor((color.R*255)+0.5),math.floor((color.G*255)+0.5),math.floor((color.B*255)+0.5)
  2953.                 local save
  2954.                 if toChange == "R" then save = oldR;oldR = value elseif toChange == "G" then save = oldG;oldG = value else save = oldB;oldB = value end
  2955.                 if value then
  2956.                     value = math.clamp(value,0,255)
  2957.                     h,s,v = Color3.fromRGB(oldR,oldG,oldB):ToHSV()
  2958.  
  2959.                     setDisplay()
  2960.                 else
  2961.                     box.Text = tostring(save)
  2962.                 end
  2963.                 local r,g,b = math.floor((h*255)+0.5),math.floor((s*255)+0.5),math.floor((v*255)+0.5)
  2964.                 ColorPickerSettings.Color = Color3.fromRGB(r,g,b)
  2965.                 SaveConfiguration()
  2966.             end
  2967.  
  2968.             ColorPicker.RGB.RInput.InputBox.FocusLost:connect(function()
  2969.                 rgbBoxes(ColorPicker.RGB.RInput.InputBox,"R")
  2970.                 pcall(function()ColorPickerSettings.Callback(Color3.fromHSV(h,s,v))end)
  2971.             end)
  2972.             ColorPicker.RGB.GInput.InputBox.FocusLost:connect(function()
  2973.                 rgbBoxes(ColorPicker.RGB.GInput.InputBox,"G")
  2974.                 pcall(function()ColorPickerSettings.Callback(Color3.fromHSV(h,s,v))end)
  2975.             end)
  2976.             ColorPicker.RGB.BInput.InputBox.FocusLost:connect(function()
  2977.                 rgbBoxes(ColorPicker.RGB.BInput.InputBox,"B")
  2978.                 pcall(function()ColorPickerSettings.Callback(Color3.fromHSV(h,s,v))end)
  2979.             end)
  2980.  
  2981.             ColorPicker.HexInput.InputBox.Focused:Connect(function()
  2982.                 if ColorPickerSettings.Locked then ColorPicker.HexInput.InputBox:ReleaseFocus() return end
  2983.             end)
  2984.             ColorPicker.RGB.RInput.InputBox.Focused:connect(function()
  2985.                 if ColorPickerSettings.Locked then ColorPicker.RGB.RInput.InputBox:ReleaseFocus() return end
  2986.             end)
  2987.             ColorPicker.RGB.GInput.InputBox.Focused:connect(function()
  2988.                 if ColorPickerSettings.Locked then ColorPicker.RGB.GInput.InputBox:ReleaseFocus() return end
  2989.             end)
  2990.             ColorPicker.RGB.BInput.InputBox.Focused:connect(function()
  2991.                 if ColorPickerSettings.Locked then ColorPicker.RGB.BInput.InputBox:ReleaseFocus() return end
  2992.             end)
  2993.  
  2994.             game:GetService("RunService").RenderStepped:connect(function()
  2995.                 if mainDragging then
  2996.                     local localX = math.clamp(mouse.X-Main.AbsolutePosition.X,0,Main.AbsoluteSize.X)
  2997.                     local localY = math.clamp(mouse.Y-Main.AbsolutePosition.Y,0,Main.AbsoluteSize.Y)
  2998.                     Main.MainPoint.Position = UDim2.new(0,localX-Main.MainPoint.AbsoluteSize.X/2,0,localY-Main.MainPoint.AbsoluteSize.Y/2)
  2999.                     s = localX / Main.AbsoluteSize.X
  3000.                     v = 1 - (localY / Main.AbsoluteSize.Y)
  3001.                     Display.BackgroundColor3 = Color3.fromHSV(h,s,v)
  3002.                     Main.MainPoint.ImageColor3 = Color3.fromHSV(h,s,v)
  3003.                     Background.BackgroundColor3 = Color3.fromHSV(h,1,1)
  3004.                     local color = Color3.fromHSV(h,s,v)
  3005.                     local r,g,b = math.floor((color.R*255)+0.5),math.floor((color.G*255)+0.5),math.floor((color.B*255)+0.5)
  3006.                     ColorPicker.RGB.RInput.InputBox.Text = tostring(r)
  3007.                     ColorPicker.RGB.GInput.InputBox.Text = tostring(g)
  3008.                     ColorPicker.RGB.BInput.InputBox.Text = tostring(b)
  3009.                     ColorPicker.HexInput.InputBox.Text = string.format("#%02X%02X%02X",color.R*0xFF,color.G*0xFF,color.B*0xFF)
  3010.                     pcall(function()ColorPickerSettings.Callback(Color3.fromHSV(h,s,v))end)
  3011.                     ColorPickerSettings.Color = Color3.fromRGB(r,g,b)
  3012.                     SaveConfiguration()
  3013.                 end
  3014.                 if sliderDragging then
  3015.                     local localX = math.clamp(mouse.X-Slider.AbsolutePosition.X,0,Slider.AbsoluteSize.X)
  3016.                     h = localX / Slider.AbsoluteSize.X
  3017.                     Display.BackgroundColor3 = Color3.fromHSV(h,s,v)
  3018.                     Slider.SliderPoint.Position = UDim2.new(0,localX-Slider.SliderPoint.AbsoluteSize.X/2,0.5,0)
  3019.                     Slider.SliderPoint.ImageColor3 = Color3.fromHSV(h,1,1)
  3020.                     Background.BackgroundColor3 = Color3.fromHSV(h,1,1)
  3021.                     Main.MainPoint.ImageColor3 = Color3.fromHSV(h,s,v)
  3022.                     local color = Color3.fromHSV(h,s,v)
  3023.                     local r,g,b = math.floor((color.R*255)+0.5),math.floor((color.G*255)+0.5),math.floor((color.B*255)+0.5)
  3024.                     ColorPicker.RGB.RInput.InputBox.Text = tostring(r)
  3025.                     ColorPicker.RGB.GInput.InputBox.Text = tostring(g)
  3026.                     ColorPicker.RGB.BInput.InputBox.Text = tostring(b)
  3027.                     ColorPicker.HexInput.InputBox.Text = string.format("#%02X%02X%02X",color.R*0xFF,color.G*0xFF,color.B*0xFF)
  3028.                     pcall(function()ColorPickerSettings.Callback(Color3.fromHSV(h,s,v))end)
  3029.                     ColorPickerSettings.Color = Color3.fromRGB(r,g,b)
  3030.                     SaveConfiguration()
  3031.                 end
  3032.             end)
  3033.  
  3034.             if Settings.ConfigurationSaving then
  3035.                 if Settings.ConfigurationSaving.Enabled and ColorPickerSettings.Flag then
  3036.                     ArrayFieldLibrary.Flags[ColorPickerSettings.Flag] = ColorPickerSettings
  3037.                 end
  3038.             end
  3039.  
  3040.             function ColorPickerSettings:Set(RGBColor)
  3041.                 ColorPickerSettings.Color = RGBColor
  3042.                 h,s,v = ColorPickerSettings.Color:ToHSV()
  3043.                 color = Color3.fromHSV(h,s,v)
  3044.                 setDisplay()
  3045.             end
  3046.             function ColorPickerSettings:Destroy()
  3047.                 ColorPicker:Destroy()
  3048.             end
  3049.             function ColorPickerSettings:Lock(Reason)
  3050.                 if ColorPickerSettings.Locked then return end
  3051.                 ColorPicker.ColorPickerIs.Value = false
  3052.                 opened = false
  3053.                 ColorPicker.ColorSlider.Visible = false
  3054.                 ColorPicker.HexInput.Visible = false
  3055.                 ColorPicker.RGB.Visible = false
  3056.                 TweenService:Create(ColorPicker, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0,465, 0,40)}):Play()
  3057.                 TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 39, 0, 22)}):Play()
  3058.                 TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(1, 0, 1, 0)}):Play()
  3059.                 TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Position = UDim2.new(0.5, 0, 0.5, 0)}):Play()
  3060.                 TweenService:Create(ColorPicker.RGB, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 17, 0, 70)}):Play()
  3061.                 TweenService:Create(ColorPicker.HexInput, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 17, 0, 90)}):Play()
  3062.                 TweenService:Create(Display, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  3063.                 TweenService:Create(Main.MainPoint, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  3064.                 TweenService:Create(Main, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
  3065.                 TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play()
  3066.                 ColorPicker.Lock.Reason.Text = Reason or 'Locked'
  3067.                 ColorPickerSettings.Locked = true
  3068.                 TweenService:Create(ColorPicker.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 0}):Play()
  3069.                 TweenService:Create(ColorPicker.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 0}):Play()
  3070.                 wait(0.2)
  3071.                 if not ColorPickerSettings.Locked then return end --no icon bug
  3072.                 TweenService:Create(ColorPicker.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 0}):Play()
  3073.             end
  3074.             function ColorPickerSettings:Unlock()
  3075.                 if not ColorPickerSettings.Locked then return end
  3076.                 ColorPickerSettings.Locked = false
  3077.                 wait(0.2)
  3078.                 TweenService:Create(ColorPicker.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 1}):Play()
  3079.                 if ColorPickerSettings.Locked then return end --no icon bug
  3080.                 TweenService:Create(ColorPicker.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 1}):Play()
  3081.                 TweenService:Create(ColorPicker.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 1}):Play()
  3082.             end
  3083.             function ColorPickerSettings:Visible(bool)
  3084.                 ColorPicker.Visible = bool
  3085.             end
  3086.             return ColorPickerSettings
  3087.         end
  3088.  
  3089.         function Tab:CreateSlider(SliderSettings)
  3090.             local Dragging = false
  3091.             local Slider = Elements.Template.Slider:Clone()
  3092.             Slider.Name = SliderSettings.Name
  3093.             Slider.Title.Text = SliderSettings.Name
  3094.             Slider.Visible = true
  3095.             Tab.Elements[SliderSettings.Name] = {
  3096.                 type = 'slider',
  3097.                 section = SliderSettings.SectionParent,
  3098.                 element = Slider
  3099.             }
  3100.             AddInfos(Slider,SliderSettings,'slider')
  3101.             if SliderSettings.SectionParent then
  3102.                 Slider.Parent = SliderSettings.SectionParent.Holder
  3103.             else
  3104.                 Slider.Parent = TabPage
  3105.             end
  3106.  
  3107.             Slider.BackgroundTransparency = 1
  3108.             Slider.UIStroke.Transparency = 1
  3109.             Slider.Title.TextTransparency = 1
  3110.  
  3111.             if SelectedTheme ~= ArrayFieldLibrary.Theme.Default then
  3112.                 Slider.Main.Shadow.Visible = false
  3113.             end
  3114.  
  3115.             Slider.Main.BackgroundColor3 = SelectedTheme.SliderBackground
  3116.             Slider.Main.UIStroke.Color = SelectedTheme.SliderStroke
  3117.             Slider.Main.Progress.BackgroundColor3 = SelectedTheme.SliderProgress
  3118.  
  3119.             TweenService:Create(Slider, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  3120.             TweenService:Create(Slider.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  3121.             TweenService:Create(Slider.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()   
  3122.  
  3123.             Slider.Main.Progress.Size = UDim2.new(0, Slider.Main.AbsoluteSize.X * ((SliderSettings.CurrentValue + SliderSettings.Range[1]) / (SliderSettings.Range[2] - SliderSettings.Range[1])) > 5 and Slider.Main.AbsoluteSize.X * (SliderSettings.CurrentValue / (SliderSettings.Range[2] - SliderSettings.Range[1])) or 5, 1, 0)
  3124.  
  3125.             if not SliderSettings.Suffix then
  3126.                 Slider.Main.Information.Text = tostring(SliderSettings.CurrentValue)
  3127.             else
  3128.                 Slider.Main.Information.Text = tostring(SliderSettings.CurrentValue) .. " " .. SliderSettings.Suffix
  3129.             end
  3130.  
  3131.  
  3132.             Slider.MouseEnter:Connect(function()
  3133.                 TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
  3134.             end)
  3135.             Slider.Main.Interact.MouseLeave:Connect(function()
  3136.                 Dragging = false
  3137.             end)
  3138.             Slider.MouseLeave:Connect(function()
  3139.                 TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  3140.             end)
  3141.             local function UpdateSlider(X)
  3142.                 local Current = Slider.Main.Progress.AbsolutePosition.X + Slider.Main.Progress.AbsoluteSize.X
  3143.                 local Start = Current
  3144.                 local Location = X
  3145.  
  3146.                 Location = UserInputService:GetMouseLocation().X
  3147.                 Current = Current + 0.025 * (Location - Start)
  3148.  
  3149.                 if Location < Slider.Main.AbsolutePosition.X then
  3150.                     Location = Slider.Main.AbsolutePosition.X
  3151.                 elseif Location > Slider.Main.AbsolutePosition.X + Slider.Main.AbsoluteSize.X then
  3152.                     Location = Slider.Main.AbsolutePosition.X + Slider.Main.AbsoluteSize.X
  3153.                 end
  3154.  
  3155.                 if Current < Slider.Main.AbsolutePosition.X + 5 then
  3156.                     Current = Slider.Main.AbsolutePosition.X + 5
  3157.                 elseif Current > Slider.Main.AbsolutePosition.X + Slider.Main.AbsoluteSize.X then
  3158.                     Current = Slider.Main.AbsolutePosition.X + Slider.Main.AbsoluteSize.X
  3159.                 end
  3160.  
  3161.                 if Current <= Location and (Location - Start) < 0 then
  3162.                     Start = Location
  3163.                 elseif Current >= Location and (Location - Start) > 0 then
  3164.                     Start = Location
  3165.                 end
  3166.                 TweenService:Create(Slider.Main.Progress, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(0, Location - Slider.Main.AbsolutePosition.X > 5 and Location - Slider.Main.AbsolutePosition.X or 5, 1, 0)}):Play()
  3167.                 local NewValue = SliderSettings.Range[1] + (Location - Slider.Main.AbsolutePosition.X) / Slider.Main.AbsoluteSize.X * (SliderSettings.Range[2] - SliderSettings.Range[1])
  3168.  
  3169.                 NewValue = math.floor(NewValue / SliderSettings.Increment + 0.5) * (SliderSettings.Increment * 10000000) / 10000000
  3170.                 if not SliderSettings.Suffix then
  3171.                     Slider.Main.Information.Text = tostring(NewValue)
  3172.                 else
  3173.                     Slider.Main.Information.Text = tostring(NewValue) .. " " .. SliderSettings.Suffix
  3174.                 end
  3175.  
  3176.                 if SliderSettings.CurrentValue ~= NewValue then
  3177.                     local Success, Response = pcall(function()
  3178.                         SliderSettings.Callback(NewValue)
  3179.                     end)
  3180.                     if not Success then
  3181.                         TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
  3182.                         TweenService:Create(Slider.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  3183.                         Slider.Title.Text = "Callback Error"
  3184.                         print("ArrayField | "..SliderSettings.Name.." Callback Error " ..tostring(Response))
  3185.                         wait(0.5)
  3186.                         Slider.Title.Text = SliderSettings.Name
  3187.                         TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  3188.                         TweenService:Create(Slider.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  3189.                     end
  3190.  
  3191.                     SliderSettings.CurrentValue = NewValue
  3192.                     SaveConfiguration()
  3193.                 end
  3194.             end
  3195.             Slider.Main.Interact.MouseButton1Down:Connect(function(X)
  3196.                 if not SliderSettings.Locked then
  3197.                     UpdateSlider(X)
  3198.                     Dragging = true
  3199.                 end
  3200.             end)
  3201.             Slider.Main.Interact.MouseButton1Up:Connect(function(X)
  3202.                 Dragging = false
  3203.             end)
  3204.             Slider.Main.Interact.MouseMoved:Connect(function(X)
  3205.                 if SliderSettings.Locked then return end
  3206.                 if Dragging then
  3207.                     UpdateSlider(X)
  3208.                 end
  3209.             end)
  3210.  
  3211.             function SliderSettings:Set(NewVal)
  3212.                 TweenService:Create(Slider.Main.Progress, TweenInfo.new(0.45, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, Slider.Main.AbsoluteSize.X * ((NewVal + SliderSettings.Range[1]) / (SliderSettings.Range[2] - SliderSettings.Range[1])) > 5 and Slider.Main.AbsoluteSize.X * (NewVal / (SliderSettings.Range[2] - SliderSettings.Range[1])) or 5, 1, 0)}):Play()
  3213.                 Slider.Main.Information.Text = tostring(NewVal) .. " " .. SliderSettings.Suffix
  3214.                 local Success, Response = pcall(function()
  3215.                     SliderSettings.Callback(NewVal)
  3216.                 end)
  3217.                 if not Success then
  3218.                     TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
  3219.                     TweenService:Create(Slider.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
  3220.                     Slider.Title.Text = "Callback Error"
  3221.                     print("ArrayField | "..SliderSettings.Name.." Callback Error " ..tostring(Response))
  3222.                     wait(0.5)
  3223.                     Slider.Title.Text = SliderSettings.Name
  3224.                     TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
  3225.                     TweenService:Create(Slider.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  3226.                 end
  3227.                 SliderSettings.CurrentValue = NewVal
  3228.                 SaveConfiguration()
  3229.             end
  3230.             function SliderSettings:Destroy()
  3231.                 Slider:Destroy()
  3232.             end
  3233.             function SliderSettings:Lock(Reason)
  3234.                 if SliderSettings.Locked then return end
  3235.                 SliderSettings.Locked = true
  3236.                 Slider.Lock.Reason.Text = Reason or 'Locked'
  3237.                 TweenService:Create(Slider.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 0}):Play()
  3238.                 TweenService:Create(Slider.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 0}):Play()
  3239.                 wait(0.2)
  3240.                 if not SliderSettings.Locked then return end --no icon bug
  3241.                 TweenService:Create(Slider.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 0}):Play()
  3242.             end
  3243.             function SliderSettings:Unlock()
  3244.                 if not SliderSettings.Locked then return end
  3245.                 SliderSettings.Locked = false
  3246.                 wait(0.2)
  3247.                 TweenService:Create(Slider.Lock.Reason.Icon,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{ImageTransparency = 1}):Play()
  3248.                 if SliderSettings.Locked then return end --no icon bug
  3249.                 TweenService:Create(Slider.Lock,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{BackgroundTransparency = 1}):Play()
  3250.                 TweenService:Create(Slider.Lock.Reason,TweenInfo.new(0.4,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{TextTransparency = 1}):Play()
  3251.             end
  3252.             function SliderSettings:Visible(bool)
  3253.                 Slider.Visible = bool
  3254.             end
  3255.             if Settings.ConfigurationSaving then
  3256.                 if Settings.ConfigurationSaving.Enabled and SliderSettings.Flag then
  3257.                     ArrayFieldLibrary.Flags[SliderSettings.Flag] = SliderSettings
  3258.                 end
  3259.             end
  3260.             return SliderSettings
  3261.         end
  3262.  
  3263.  
  3264.         return Tab
  3265.     end
  3266.  
  3267.     Elements.Visible = true
  3268.  
  3269.     wait(1.2)
  3270.     TweenService:Create(LoadingFrame.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  3271.     TweenService:Create(LoadingFrame.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  3272.     TweenService:Create(LoadingFrame.Version, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
  3273.     wait(0.2)
  3274.     TweenService:Create(Main, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 475)}):Play()
  3275.     TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.4}):Play()
  3276.  
  3277.     Topbar.BackgroundTransparency = 1
  3278.     Topbar.Divider.Size = UDim2.new(0, 0, 0, 1)
  3279.     Topbar.CornerRepair.BackgroundTransparency = 1
  3280.     Topbar.Title.TextTransparency = 1
  3281.     Topbar.Theme.ImageTransparency = 1
  3282.     Topbar.ChangeSize.ImageTransparency = 1
  3283.     Topbar.Hide.ImageTransparency = 1
  3284.  
  3285.     wait(0.8)
  3286.     Topbar.Visible = true
  3287.     TweenService:Create(Topbar, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  3288.     TweenService:Create(Topbar.CornerRepair, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play()
  3289.     wait(0.1)
  3290.     TweenService:Create(Topbar.Divider, TweenInfo.new(1, Enum.EasingStyle.Quint), {Size = UDim2.new(1, 0, 0, 1)}):Play()
  3291.     wait(0.1)
  3292.     TweenService:Create(Topbar.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  3293.     wait(0.1)
  3294.     TweenService:Create(Topbar.Theme, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.8}):Play()
  3295.     wait(0.1)
  3296.     TweenService:Create(Topbar.ChangeSize, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.8}):Play()
  3297.     wait(0.1)
  3298.     TweenService:Create(Topbar.Hide, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.8}):Play()
  3299.     wait(0.3)
  3300.     function Window:Prompt(PromptSettings)
  3301.         local PromptUI = Prompt.Prompt
  3302.         Prompt.Visible = true
  3303.         Prompt.BackgroundTransparency = 1
  3304.         PromptUI.BackgroundTransparency = 1
  3305.         PromptUI.UIStroke.Transparency = 1
  3306.         PromptUI.Content.TextTransparency = 1
  3307.         PromptUI.Title.TextTransparency = 1
  3308.         PromptUI.Sub.TextTransparency = 1
  3309.         PromptUI.Size = UDim2.new(0,340,0,140)
  3310.         PromptUI.Buttons.Template.Visible = false
  3311.         PromptUI.Buttons.Template.TextLabel.TextTransparency = 1
  3312.         PromptUI.Buttons.Template.UIStroke.Transparency = 1
  3313.         --PromptUI.Buttons.Middle.Visible = false
  3314.         --PromptUI.Buttons.Middle.TextLabel.TextTransparency = 1
  3315.         --PromptUI.Buttons.Middle.UIStroke.Transparency = 1
  3316.  
  3317.         PromptUI.Content.Text = PromptSettings.Content
  3318.         PromptUI.Sub.Text = PromptSettings.SubTitle or ''
  3319.         PromptUI.Title.Text = PromptSettings.Title or ''
  3320.  
  3321.         if PromptSettings.Actions then
  3322.             for name,info in pairs(PromptSettings.Actions) do
  3323.                 print(info)
  3324.                 local Button = PromptUI.Buttons.Template:Clone()
  3325.                 Button.TextLabel.Text = info.Name
  3326.                 Button.Interact.MouseButton1Up:Connect(function()
  3327.                     if not clicked then
  3328.                         local Success, Response = pcall(info.Callback)
  3329.                         clicked = true
  3330.                         if not Success then
  3331.                             ClosePrompt()
  3332.                             print("ArrayField | "..info.Name.." Callback Error " ..tostring(Response))
  3333.                         else
  3334.                             ClosePrompt()
  3335.                         end
  3336.                     end
  3337.                 end)
  3338.                 Button.Name = name
  3339.                 Button.Parent = PromptUI.Buttons -- saving memory
  3340.                 Button.Size = UDim2.fromOffset(Button.TextLabel.TextBounds.X + 24, 30)
  3341.             end
  3342.         end
  3343.  
  3344.         TweenService:Create(Prompt, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = .5}):Play()
  3345.         wait(.2)
  3346.         TweenService:Create(PromptUI, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundTransparency = 0,Size = UDim2.new(0,350,0,150)}):Play()
  3347.         wait(0.2)
  3348.         TweenService:Create(PromptUI.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  3349.         TweenService:Create(PromptUI.Title, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  3350.         TweenService:Create(PromptUI.Content, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  3351.         TweenService:Create(PromptUI.Sub, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  3352.         wait(1)
  3353.         if PromptSettings.Actions then
  3354.             for _,button in pairs(PromptUI.Buttons:GetChildren()) do
  3355.                 if button.Name ~= 'Template' and button.Name ~= 'Middle' and button:IsA('Frame') then
  3356.                     button.Visible = true
  3357.                     TweenService:Create(button.UIStroke,TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  3358.                     TweenService:Create(button.TextLabel,TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  3359.                     wait(.8)
  3360.                 end
  3361.             end
  3362.         else
  3363.             --TweenService:Create(PromptUI.Buttons.Middle.UIStroke,TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play()
  3364.             --TweenService:Create(PromptUI.Buttons.Middle.TextLabel,TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play()
  3365.         end
  3366.     end
  3367.     return Window
  3368. end
  3369.  
  3370.  
  3371. function ArrayFieldLibrary:Destroy()
  3372.     ArrayField:Destroy()
  3373. end
  3374.  
  3375. Topbar.ChangeSize.MouseButton1Click:Connect(function()
  3376.     if Debounce then return end
  3377.     if Minimised then
  3378.         Minimised = false
  3379.         Maximise()
  3380.     else
  3381.         if not SearchHided then SearchHided = true spawn(CloseSearch)  end
  3382.         Minimised = true
  3383.         Minimise()
  3384.     end
  3385. end)
  3386. Topbar.Search.MouseButton1Click:Connect(function()
  3387.     if Debounce or Minimised then return end
  3388.     if SearchHided then
  3389.         OpenSearch()
  3390.         SearchHided = false
  3391.     else
  3392.         SearchHided = true
  3393.         CloseSearch()
  3394.     end
  3395. end)
  3396. Topbar.Type.MouseButton1Click:Connect(function()
  3397.     if Debounce or Minimised then return end
  3398.     if SideBarClosed then
  3399.         Topbar.Type.Image = "rbxassetid://"..6023565894
  3400.         OpenSideBar()
  3401.     else
  3402.         Topbar.Type.Image = "rbxassetid://"..6023565896
  3403.         CloseSideBar()
  3404.     end
  3405. end)
  3406. Topbar.Hide.MouseButton1Click:Connect(function()
  3407.     if Debounce then return end
  3408.     if Hidden then
  3409.         Hidden = false
  3410.         Minimised = false
  3411.         Unhide()
  3412.     else
  3413.         if not SearchHided then SearchHided = true spawn(CloseSearch)  end
  3414.         Hidden = true
  3415.         Hide()
  3416.     end
  3417. end)
  3418.  
  3419. UserInputService.InputBegan:Connect(function(input, processed)
  3420.     if (input.KeyCode == Enum.KeyCode.RightShift and not processed) then
  3421.         if Debounce then return end
  3422.         if Hidden then
  3423.             Hidden = false
  3424.             Unhide()
  3425.         else
  3426.             if not SearchHided then spawn(CloseSearch) end
  3427.             Hidden = true
  3428.             Hide()
  3429.         end
  3430.     end
  3431. end)
  3432.  
  3433. for _, TopbarButton in ipairs(Topbar:GetChildren()) do
  3434.     if TopbarButton.ClassName == "ImageButton" then
  3435.         TopbarButton.MouseEnter:Connect(function()
  3436.             if TopbarButton.Name ~= 'Type' then
  3437.                 TweenService:Create(TopbarButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play()
  3438.             else
  3439.                 TweenService:Create(TopbarButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.2}):Play()
  3440.             end
  3441.         end)
  3442.         TopbarButton.MouseLeave:Connect(function()
  3443.             if TopbarButton.Name ~= 'Type' then
  3444.                 TweenService:Create(TopbarButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.8}):Play()
  3445.             else
  3446.                 TweenService:Create(TopbarButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play()
  3447.             end
  3448.         end)
  3449.  
  3450.         TopbarButton.MouseButton1Click:Connect(function()
  3451.             TweenService:Create(TopbarButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.8}):Play()
  3452.         end)
  3453.     end
  3454. end
  3455.  
  3456.  
  3457. function ArrayFieldLibrary:LoadConfiguration()
  3458.     if CEnabled then
  3459.         pcall(function()
  3460.             if isfile(ConfigurationFolder .. "/" .. CFileName .. ConfigurationExtension) then
  3461.                 LoadConfiguration(readfile(ConfigurationFolder .. "/" .. CFileName .. ConfigurationExtension))
  3462.                 ArrayFieldLibrary:Notify({Title = "Configuration Loaded", Content = "The configuration file for this script has been loaded from a previous session"})
  3463.             end
  3464.         end)
  3465.     end
  3466. end
  3467. task.delay(9, ArrayFieldLibrary.LoadConfiguration, ArrayFieldLibrary)
  3468. return ArrayFieldLibrary
Add Comment
Please, Sign In to add comment