Advertisement
NukeVsCity

UI not for blacks

Aug 13th, 2023 (edited)
10,240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 90.17 KB | None | 0 0
  1. local Player = game:GetService("Players").LocalPlayer
  2. local Mouse = Player:GetMouse()
  3.  
  4. local TextService = game:GetService("TextService")
  5. local TweenService = game:GetService("TweenService")
  6. local RunService = game:GetService("RunService")
  7. local InputService = game:GetService("UserInputService")
  8. local CoreGuiService = game:GetService("CoreGui")
  9. local ContentService = game:GetService("ContentProvider")
  10.  
  11. local Themes = {
  12.     Light = {
  13.         MainFrame = Color3.fromRGB(255,255,255),
  14.         Minimise = Color3.fromRGB(255,255,255),
  15.         MinimiseAccent = Color3.fromRGB(255,255,255),
  16.         Maximise = Color3.fromRGB(255,255,255),
  17.         MaximiseAccent = Color3.fromRGB(255,255,255),
  18.         NavBar = Color3.fromRGB(255, 255, 255),
  19.         NavBarAccent = Color3.fromRGB(255,255,255),
  20.         NavBarInvert = Color3.fromRGB(255,255,255),
  21.         TitleBar = Color3.fromRGB(204, 204, 204),
  22.         TitleBarAccent = Color3.fromRGB(255,255,255),
  23.         Overlay = Color3.fromRGB(204, 204, 204),
  24.         Banner = Color3.fromRGB(204, 204, 204),
  25.         BannerAccent = Color3.fromRGB(255,255,255),
  26.         Content = Color3.fromRGB(255, 255, 255),
  27.         Button = Color3.fromRGB(204, 204, 204),
  28.         ButtonAccent = Color3.fromRGB(255, 255, 255),
  29.         ChipSet = Color3.fromRGB(204, 204, 204),
  30.         ChipSetAccent = Color3.fromRGB(255,255,255),
  31.         DataTable = Color3.fromRGB(204, 204, 204),
  32.         DataTableAccent = Color3.fromRGB(255,255,255),
  33.         Slider = Color3.fromRGB(204, 204, 204),
  34.         SliderAccent = Color3.fromRGB(255,255,255),
  35.         Toggle = Color3.fromRGB(204, 204, 204),
  36.         ToggleAccent = Color3.fromRGB(255, 255, 255),
  37.         Dropdown = Color3.fromRGB(204, 204, 204),
  38.         DropdownAccent = Color3.fromRGB(255, 255, 255),
  39.         ColorPicker = Color3.fromRGB(204, 204, 204),
  40.         ColorPickerAccent = Color3.fromRGB(255,255,255),
  41.         TextField = Color3.fromRGB(255, 255, 255),
  42.         TextFieldAccent = Color3.fromRGB(115, 115, 115),
  43.     },
  44.     Dark = {
  45.         MainFrame = Color3.fromRGB(30,30,30),
  46.         Minimise = Color3.fromRGB(255,106,0),
  47.         MinimiseAccent = Color3.fromRGB(147,59,0),
  48.         Maximise = Color3.fromRGB(25,255,0),
  49.         MaximiseAccent = Color3.fromRGB(0,255,110),
  50.         NavBar = Color3.fromRGB(55,55,55),
  51.         NavBarAccent = Color3.fromRGB(255,255,255),
  52.         NavBarInvert = Color3.fromRGB(235,235,235),
  53.         TitleBar = Color3.fromRGB(55,55,55),
  54.         TitleBarAccent = Color3.fromRGB(255,255,255),
  55.         Overlay = Color3.fromRGB(175,175,175),
  56.         Banner = Color3.fromRGB(55,55,55),
  57.         BannerAccent = Color3.fromRGB(255,255,255),
  58.         Content = Color3.fromRGB(85,85,85),
  59.         Button = Color3.fromRGB(85,85,85),
  60.         ButtonAccent = Color3.fromRGB(255,255,255),
  61.         ChipSet = Color3.fromRGB(235,235,235),
  62.         ChipSetAccent = Color3.fromRGB(85,85,85),
  63.         DataTable = Color3.fromRGB(235,235,235),
  64.         DataTableAccent = Color3.fromRGB(85,85,85),
  65.         Slider = Color3.fromRGB(85,85,85),
  66.         SliderAccent = Color3.fromRGB(235,235,235),
  67.         Toggle = Color3.fromRGB(205,205,205),
  68.         ToggleAccent = Color3.fromRGB(125,125,125),
  69.         Dropdown = Color3.fromRGB(85,85,85),
  70.         DropdownAccent = Color3.fromRGB(235,235,235),
  71.         ColorPicker = Color3.fromRGB(85,85,85),
  72.         ColorPickerAccent = Color3.fromRGB(235,235,235),
  73.         TextField = Color3.fromRGB(175,175,175),
  74.         TextFieldAccent = Color3.fromRGB(255,255,255),
  75.     },
  76.     Mocha = {
  77.         MainFrame = Color3.fromRGB(255,255,255),
  78.         Minimise = Color3.fromRGB(219, 210, 202),
  79.         MinimiseAccent = Color3.fromRGB(219, 210, 202),
  80.         Maximise = Color3.fromRGB(189, 183, 177),
  81.         MaximiseAccent = Color3.fromRGB(189, 183, 177),
  82.         NavBar = Color3.fromRGB(176, 148, 125),
  83.         NavBarAccent = Color3.fromRGB(255,255,255),
  84.         NavBarInvert = Color3.fromRGB(30,30,30),
  85.         TitleBar = Color3.fromRGB(176, 148, 125),
  86.         TitleBarAccent = Color3.fromRGB(255,255,255),
  87.         Overlay = Color3.fromRGB(176, 148, 125),
  88.         Banner = Color3.fromRGB(255,255,255),
  89.         BannerAccent = Color3.fromRGB(176, 148, 125),
  90.         Content = Color3.fromRGB(176, 148, 125),
  91.         Button = Color3.fromRGB(176, 148, 125),
  92.         ButtonAccent = Color3.fromRGB(255,255,255),
  93.         ChipSet = Color3.fromRGB(176, 148, 125),
  94.         ChipSetAccent = Color3.fromRGB(255,255,255),
  95.         DataTable = Color3.fromRGB(176, 148, 125),
  96.         DataTableAccent = Color3.fromRGB(255,255,255),
  97.         Slider = Color3.fromRGB(255,255,255),
  98.         SliderAccent = Color3.fromRGB(176, 148, 125),
  99.         Toggle = Color3.fromRGB(176, 148, 125),
  100.         ToggleAccent = Color3.fromRGB(255,255,255),
  101.         Dropdown = Color3.fromRGB(255,255,255),
  102.         DropdownAccent = Color3.fromRGB(176, 148, 125),
  103.         ColorPicker = Color3.fromRGB(255,255,255),
  104.         ColorPickerAccent = Color3.fromRGB(176, 148, 125),
  105.         TextField = Color3.fromRGB(175,175,175),
  106.         TextFieldAccent = Color3.fromRGB(255,255,255)
  107.     },
  108.     Aqua = {
  109.         MainFrame = Color3.fromRGB(255,255,255),
  110.         Minimise = Color3.fromRGB(219, 210, 202),
  111.         MinimiseAccent = Color3.fromRGB(219, 210, 202),
  112.         Maximise = Color3.fromRGB(189, 183, 177),
  113.         MaximiseAccent = Color3.fromRGB(189, 183, 177),
  114.         NavBar = Color3.fromRGB(116, 112, 140),
  115.         NavBarAccent = Color3.fromRGB(255,255,255),
  116.         NavBarInvert = Color3.fromRGB(30,30,30),
  117.         TitleBar = Color3.fromRGB(116, 112, 140),
  118.         TitleBarAccent = Color3.fromRGB(255,255,255),
  119.         Overlay = Color3.fromRGB(116, 112, 140),
  120.         Banner = Color3.fromRGB(255,255,255),
  121.         BannerAccent = Color3.fromRGB(116, 112, 140),
  122.         Content = Color3.fromRGB(116, 112, 140),
  123.         Button = Color3.fromRGB(116, 112, 140),
  124.         ButtonAccent = Color3.fromRGB(255,255,255),
  125.         ChipSet = Color3.fromRGB(116, 112, 140),
  126.         ChipSetAccent = Color3.fromRGB(255,255,255),
  127.         DataTable = Color3.fromRGB(116, 112, 140),
  128.         DataTableAccent = Color3.fromRGB(255,255,255),
  129.         Slider = Color3.fromRGB(255,255,255),
  130.         SliderAccent = Color3.fromRGB(116, 112, 140),
  131.         Toggle = Color3.fromRGB(116, 112, 140),
  132.         ToggleAccent = Color3.fromRGB(255,255,255),
  133.         Dropdown = Color3.fromRGB(255,255,255),
  134.         DropdownAccent = Color3.fromRGB(116, 112, 140),
  135.         ColorPicker = Color3.fromRGB(255,255,255),
  136.         ColorPickerAccent = Color3.fromRGB(116, 112, 140),
  137.         TextField = Color3.fromRGB(175,175,175),
  138.         TextFieldAccent = Color3.fromRGB(255,255,255)
  139.     },
  140.     Jester = {
  141.         MainFrame = Color3.fromRGB(255,255,255),
  142.         Minimise = Color3.fromRGB(219, 210, 202),
  143.         MinimiseAccent = Color3.fromRGB(219, 210, 202),
  144.         Maximise = Color3.fromRGB(189, 183, 177),
  145.         MaximiseAccent = Color3.fromRGB(189, 183, 177),
  146.         NavBar = Color3.fromRGB(219, 68, 103),
  147.         NavBarAccent = Color3.fromRGB(255,255,255),
  148.         NavBarInvert = Color3.fromRGB(30,30,30),
  149.         TitleBar = Color3.fromRGB(219, 68, 103),
  150.         TitleBarAccent = Color3.fromRGB(255,255,255),
  151.         Overlay = Color3.fromRGB(219, 68, 103),
  152.         Banner = Color3.fromRGB(255,255,255),
  153.         BannerAccent = Color3.fromRGB(219, 68, 103),
  154.         Content = Color3.fromRGB(219, 68, 103),
  155.         Button = Color3.fromRGB(219, 68, 103),
  156.         ButtonAccent = Color3.fromRGB(255,255,255),
  157.         ChipSet = Color3.fromRGB(219, 68, 103),
  158.         ChipSetAccent = Color3.fromRGB(255,255,255),
  159.         DataTable = Color3.fromRGB(219, 68, 103),
  160.         DataTableAccent = Color3.fromRGB(255,255,255),
  161.         Slider = Color3.fromRGB(255,255,255),
  162.         SliderAccent = Color3.fromRGB(219, 68, 103),
  163.         Toggle = Color3.fromRGB(219, 68, 103),
  164.         ToggleAccent = Color3.fromRGB(255,255,255),
  165.         Dropdown = Color3.fromRGB(255,255,255),
  166.         DropdownAccent = Color3.fromRGB(219, 68, 103),
  167.         ColorPicker = Color3.fromRGB(255,255,255),
  168.         ColorPickerAccent = Color3.fromRGB(219, 68, 103),
  169.         TextField = Color3.fromRGB(175,175,175),
  170.         TextFieldAccent = Color3.fromRGB(255,255,255),
  171.     }
  172. }
  173.  
  174. local Types = {
  175.     "RoundFrame",
  176.     "Shadow",
  177.     "Circle",
  178.     "CircleButton",
  179.     "Frame",
  180.     "Label",
  181.     "Button",
  182.     "SmoothButton",
  183.     "Box",
  184.     "ScrollingFrame",
  185.     "Menu",
  186.     "NavBar"
  187. }
  188.  
  189. local ActualTypes = {
  190.     RoundFrame = "ImageLabel",
  191.     Shadow = "ImageLabel",
  192.     Circle = "ImageLabel",
  193.     CircleButton = "ImageButton",
  194.     Frame = "Frame",
  195.     Label = "TextLabel",
  196.     Button = "TextButton",
  197.     SmoothButton = "ImageButton",
  198.     Box = "TextBox",
  199.     ScrollingFrame = "ScrollingFrame",
  200.     Menu = "ImageButton",
  201.     NavBar = "ImageButton"
  202. }
  203.  
  204. local Properties = {
  205.     RoundFrame = {
  206.         BackgroundTransparency = 1,
  207.         Image = "http://www.roblox.com/asset/?id=5554237731",
  208.         ScaleType = Enum.ScaleType.Slice,
  209.         SliceCenter = Rect.new(3,3,297,297)
  210.     },
  211.     SmoothButton = {
  212.         AutoButtonColor = false,
  213.         BackgroundTransparency = 1,
  214.         Image = "http://www.roblox.com/asset/?id=5554237731",
  215.         ScaleType = Enum.ScaleType.Slice,
  216.         SliceCenter = Rect.new(3,3,297,297)
  217.     },
  218.     Shadow = {
  219.         Name = "Shadow",
  220.         BackgroundTransparency = 1,
  221.         Image = "http://www.roblox.com/asset/?id=5554236805",
  222.         ScaleType = Enum.ScaleType.Slice,
  223.         SliceCenter = Rect.new(23,23,277,277),
  224.         Size = UDim2.fromScale(1,1) + UDim2.fromOffset(30,30),
  225.         Position = UDim2.fromOffset(-15,-15)
  226.     },
  227.     Circle = {
  228.         BackgroundTransparency = 1,
  229.         Image = "http://www.roblox.com/asset/?id=5554831670"
  230.     },
  231.     CircleButton = {
  232.         BackgroundTransparency = 1,
  233.         AutoButtonColor = false,
  234.         Image = "http://www.roblox.com/asset/?id=5554831670"
  235.     },
  236.     Frame = {
  237.         BackgroundTransparency = 1,
  238.         BorderSizePixel = 0,
  239.         Size = UDim2.fromScale(1,1)
  240.     },
  241.     Label = {
  242.         BackgroundTransparency = 1,
  243.         Position = UDim2.fromOffset(5,0),
  244.         Size = UDim2.fromScale(1,1) - UDim2.fromOffset(5,0),
  245.         TextSize = 14,
  246.         TextXAlignment = Enum.TextXAlignment.Left
  247.     },
  248.     Button = {
  249.         BackgroundTransparency = 1,
  250.         Position = UDim2.fromOffset(5,0),
  251.         Size = UDim2.fromScale(1,1) - UDim2.fromOffset(5,0),
  252.         TextSize = 14,
  253.         TextXAlignment = Enum.TextXAlignment.Left
  254.     },
  255.     Box = {
  256.         BackgroundTransparency = 1,
  257.         Position = UDim2.fromOffset(5,0),
  258.         Size = UDim2.fromScale(1,1) - UDim2.fromOffset(5,0),
  259.         TextSize = 14,
  260.         TextXAlignment = Enum.TextXAlignment.Left
  261.     },
  262.     ScrollingFrame = {
  263.         BackgroundTransparency = 1,
  264.         ScrollBarThickness = 0,
  265.         CanvasSize = UDim2.fromScale(0,0),
  266.         Size = UDim2.fromScale(1,1)
  267.     },
  268.     Menu = {
  269.         Name = "More",
  270.         AutoButtonColor = false,
  271.         BackgroundTransparency = 1,
  272.         Image = "http://www.roblox.com/asset/?id=5555108481",
  273.         Size = UDim2.fromOffset(20,20),
  274.         Position = UDim2.fromScale(1,0.5) - UDim2.fromOffset(25,10)
  275.     },
  276.     NavBar = {
  277.         Name = "SheetToggle",
  278.         Image = "http://www.roblox.com/asset/?id=5576439039",
  279.         BackgroundTransparency = 1,
  280.         Size = UDim2.fromOffset(20,20),
  281.         Position = UDim2.fromOffset(5,5),
  282.         AutoButtonColor = false
  283.     }
  284. }
  285.  
  286. function FindType(String)
  287.     for _, Type in next, Types do
  288.         if Type:sub(1, #String):lower() == String:lower() then
  289.             return Type
  290.         end
  291.     end
  292.     return false
  293. end
  294.  
  295. local Objects = {}
  296.  
  297. function Objects.new(Type)
  298.     local TargetType = FindType(Type)
  299.     if TargetType then
  300.         local NewImage = Instance.new(ActualTypes[TargetType])
  301.         if Properties[TargetType] then
  302.             for Property, Value in next, Properties[TargetType] do
  303.                 NewImage[Property] = Value
  304.             end
  305.         end
  306.         return NewImage
  307.     else
  308.         return Instance.new(Type)
  309.     end
  310. end
  311.  
  312. local function GetXY(GuiObject)
  313.     local Max, May = GuiObject.AbsoluteSize.X, GuiObject.AbsoluteSize.Y
  314.     local Px, Py = math.clamp(Mouse.X - GuiObject.AbsolutePosition.X, 0, Max), math.clamp(Mouse.Y - GuiObject.AbsolutePosition.Y, 0, May)
  315.     return Px/Max, Py/May
  316. end
  317.  
  318. local function CircleAnim(GuiObject, EndColour, StartColour)
  319.     local PX, PY = GetXY(GuiObject)
  320.     local Circle = Objects.new("Circle")
  321.     Circle.Size = UDim2.fromScale(0,0)
  322.     Circle.Position = UDim2.fromScale(PX,PY)
  323.     Circle.ImageColor3 = StartColour or GuiObject.ImageColor3
  324.     Circle.ZIndex = 200
  325.     Circle.Parent = GuiObject
  326.     local Size = GuiObject.AbsoluteSize.X
  327.     TweenService:Create(Circle, TweenInfo.new(1), {Position = UDim2.fromScale(PX,PY) - UDim2.fromOffset(Size/2,Size/2), ImageTransparency = 1, ImageColor3 = EndColour, Size = UDim2.fromOffset(Size,Size)}):Play()
  328.     spawn(function()
  329.         wait(2)
  330.         Circle:Destroy()
  331.     end)
  332. end
  333.  
  334. local Material = {}
  335.  
  336. local Styles = {
  337.     [1] = "Normal",
  338.     [2] = "Invert",
  339.     [3] = "Sheets"
  340. }
  341.  
  342. local ThisTheme
  343.  
  344. local NavBar = {
  345.     Normal = function()
  346.         local NewNavBar = Objects.new("Round")
  347.         NewNavBar.Name = "NavBar"
  348.         NewNavBar.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-10,30)
  349.         NewNavBar.Position = UDim2.fromOffset(5,35)
  350.         NewNavBar.ImageColor3 = ThisTheme.NavBar
  351.         NewNavBar.ZIndex = 100
  352.  
  353.         local NavBarShadow = Objects.new("Shadow")
  354.         NavBarShadow.ImageColor3 = ThisTheme.NavBar
  355.         NavBarShadow.Parent = NewNavBar
  356.         NavBarShadow.ZIndex = 100
  357.  
  358.         local NavBarContent = Objects.new("Frame")
  359.         NavBarContent.Name = "Content"
  360.         NavBarContent.Parent = NewNavBar
  361.  
  362.         NavBarContent.ChildAdded:Connect(function(Child)
  363.             pcall(function()
  364.                 local Children = #NavBarContent:GetChildren() - 2
  365.                 TweenService:Create(Child, TweenInfo.new(1), {TextTransparency = (Children > 1) and 0.5 or 0}):Play()
  366.             end)
  367.             pcall(function()
  368.                 local Children = #NavBarContent:GetChildren() - 2
  369.                 TweenService:Create(Child, TweenInfo.new(1), {ImageTransparency = (Children > 1) and 0.5 or 0}):Play()
  370.             end)
  371.             pcall(function()
  372.                 local Children = #NavBarContent:GetChildren() - 2
  373.                 TweenService:Create(Child:FindFirstChildWhichIsA("ImageLabel"), TweenInfo.new(1), {ImageTransparency = (Children > 1) and 0.5 or 0}):Play()
  374.             end)
  375.             pcall(function()
  376.                 Child.TextColor3 = ThisTheme.NavBarAccent
  377.             end)
  378.             pcall(function()
  379.                 Child:FindFirstChildWhichIsA("ImageLabel").ImageColor3 = ThisTheme.NavBarAccent
  380.             end)
  381.             pcall(function()
  382.                 Child.ImageColor3 = ThisTheme.NavBarAccent
  383.             end)
  384.         end)
  385.  
  386.         local NavBarList = Objects.new("UIListLayout")
  387.         NavBarList.FillDirection = Enum.FillDirection.Horizontal
  388.         NavBarList.HorizontalAlignment = Enum.HorizontalAlignment.Left
  389.         NavBarList.VerticalAlignment = Enum.VerticalAlignment.Center
  390.         NavBarList.SortOrder = Enum.SortOrder.LayoutOrder
  391.         NavBarList.Parent = NavBarContent
  392.  
  393.         local NavBarPadding = Objects.new("UIPadding")
  394.         NavBarPadding.PaddingLeft = UDim.new(0,5)
  395.         NavBarPadding.Parent = NavBarContent
  396.  
  397.         return NewNavBar, NavBarContent
  398.     end,
  399.     Invert = function()
  400.         local NewNavBar = Objects.new("Round")
  401.         NewNavBar.Name = "NavBar"
  402.         NewNavBar.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-10,30)
  403.         NewNavBar.Position = UDim2.fromOffset(5,35)
  404.         NewNavBar.ImageColor3 = ThisTheme.NavBarAccent
  405.         NewNavBar.ImageTransparency = 1
  406.         NewNavBar.ZIndex = 100
  407.  
  408.         local NavBarShadow = Objects.new("Shadow")
  409.         NavBarShadow.ImageColor3 = ThisTheme.NavBarInvert
  410.         NavBarShadow.ImageTransparency = 1
  411.         NavBarShadow.Parent = NewNavBar
  412.         NavBarShadow.ZIndex = 100
  413.  
  414.         TweenService:Create(NewNavBar, TweenInfo.new(1), {ImageTransparency = 0}):Play()
  415.         TweenService:Create(NavBarShadow, TweenInfo.new(1), {ImageTransparency = 0}):Play()
  416.  
  417.         local NavBarContent = Objects.new("Frame")
  418.         NavBarContent.Name = "Content"
  419.         NavBarContent.Parent = NewNavBar
  420.  
  421.         NavBarContent.ChildAdded:Connect(function(Child)
  422.             pcall(function()
  423.                 local Children = #NavBarContent:GetChildren() - 2
  424.                 TweenService:Create(Child, TweenInfo.new(1), {TextTransparency = (Children > 1) and 0.5 or 0}):Play()
  425.             end)
  426.             pcall(function()
  427.                 local Children = #NavBarContent:GetChildren() - 2
  428.                 TweenService:Create(Child, TweenInfo.new(1), {ImageTransparency = (Children > 1) and 0.5 or 0}):Play()
  429.             end)
  430.             pcall(function()
  431.                 local Children = #NavBarContent:GetChildren() - 2
  432.                 TweenService:Create(Child:FindFirstChildWhichIsA("ImageLabel"), TweenInfo.new(1), {ImageTransparency = (Children > 1) and 0.5 or 0}):Play()
  433.             end)
  434.             pcall(function()
  435.                 Child.TextColor3 = ThisTheme.NavBar
  436.             end)
  437.             pcall(function()
  438.                 Child:FindFirstChildWhichIsA("ImageLabel").ImageColor3 = ThisTheme.NavBar
  439.             end)
  440.             pcall(function()
  441.                 Child.ImageColor3 = ThisTheme.NavBar
  442.             end)
  443.         end)
  444.  
  445.         local NavBarList = Objects.new("UIListLayout")
  446.         NavBarList.FillDirection = Enum.FillDirection.Horizontal
  447.         NavBarList.HorizontalAlignment = Enum.HorizontalAlignment.Left
  448.         NavBarList.VerticalAlignment = Enum.VerticalAlignment.Center
  449.         NavBarList.SortOrder = Enum.SortOrder.LayoutOrder
  450.         NavBarList.Parent = NavBarContent
  451.  
  452.         local NavBarPadding = Objects.new("UIPadding")
  453.         NavBarPadding.PaddingLeft = UDim.new(0,5)
  454.         NavBarPadding.Parent = NavBarContent
  455.  
  456.         return NewNavBar, NavBarContent
  457.     end,
  458.     Sheets = function()
  459.         local NewNavBar = Objects.new("Round")
  460.         NewNavBar.ClipsDescendants = true
  461.         NewNavBar.Name = "NavBar"
  462.         NewNavBar.Size = UDim2.fromScale(0,1) - UDim2.fromOffset(0,30)
  463.         NewNavBar.Position = UDim2.fromOffset(0,30)
  464.         NewNavBar.ImageColor3 = ThisTheme.NavBarAccent
  465.         NewNavBar.ZIndex = 100
  466.  
  467.         local NavBarOverlay = Objects.new("Frame")
  468.         NavBarOverlay.Name = "Overlay"
  469.         NavBarOverlay.BackgroundColor3 = ThisTheme.NavBar
  470.         NavBarOverlay.BackgroundTransparency = 1
  471.         NavBarOverlay.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(0,30)
  472.         NavBarOverlay.Position = UDim2.fromOffset(0,30)
  473.         NavBarOverlay.ZIndex = 75
  474.  
  475.         local NavBarMenu = Objects.new("NavBar")
  476.         NavBarMenu.ZIndex = 100
  477.  
  478.         local NavBarShadow = Objects.new("Shadow")
  479.         NavBarShadow.ImageColor3 = ThisTheme.NavBar
  480.         NavBarShadow.Parent = NewNavBar
  481.         NavBarShadow.ZIndex = 100
  482.  
  483.         local Effect1, Effect2, Effect3 = Objects.new("Frame"), Objects.new("Frame"), Objects.new("Frame")
  484.  
  485.         Effect1.ZIndex = 100
  486.         Effect2.ZIndex = 100
  487.         Effect3.ZIndex = 100
  488.  
  489.         Effect1.BackgroundTransparency = 0
  490.         Effect2.BackgroundTransparency = 0
  491.         Effect3.BackgroundTransparency = 0
  492.  
  493.         Effect1.BackgroundColor3 = ThisTheme.NavBarAccent
  494.         Effect2.BackgroundColor3 = ThisTheme.NavBarAccent
  495.         Effect3.BackgroundColor3 = ThisTheme.NavBar
  496.  
  497.         Effect1.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,5)
  498.         Effect2.Size = UDim2.fromScale(0,1) + UDim2.fromOffset(5,0)
  499.         Effect3.Size = UDim2.fromScale(0,1) + UDim2.fromOffset(1,0)
  500.  
  501.         Effect1.Position = UDim2.fromScale(0,0)
  502.         Effect2.Position = UDim2.fromScale(1,0) - UDim2.fromOffset(5,0)
  503.         Effect3.Position = UDim2.fromScale(1,0)
  504.  
  505.         Effect1.Parent = NewNavBar
  506.         Effect2.Parent = NewNavBar
  507.         Effect3.Parent = NewNavBar
  508.  
  509.         local NavBarContent = Objects.new("Frame")
  510.         NavBarContent.Name = "Content"
  511.         NavBarContent.Parent = NewNavBar
  512.  
  513.         local NavBarList = Objects.new("UIListLayout")
  514.         NavBarList.FillDirection = Enum.FillDirection.Vertical
  515.         NavBarList.HorizontalAlignment = Enum.HorizontalAlignment.Center
  516.         NavBarList.VerticalAlignment = Enum.VerticalAlignment.Top
  517.         NavBarList.SortOrder = Enum.SortOrder.LayoutOrder
  518.         NavBarList.Parent = NavBarContent
  519.  
  520.         local NavBarPadding = Objects.new("UIPadding")
  521.         NavBarPadding.PaddingLeft = UDim.new(0,5)
  522.         NavBarPadding.PaddingRight = UDim.new(0,5)
  523.         NavBarPadding.PaddingTop = UDim.new(0,5)
  524.         NavBarPadding.PaddingBottom = UDim.new(0,5)
  525.         NavBarPadding.Parent = NavBarContent
  526.  
  527.         NavBarContent.ChildAdded:Connect(function(Child)
  528.             pcall(function()
  529.                 local Children = #NavBarContent:GetChildren() - 2
  530.                 TweenService:Create(Child, TweenInfo.new(1), {TextTransparency = (Children > 1) and 0.5 or 0}):Play()
  531.             end)
  532.             pcall(function()
  533.                 local Children = #NavBarContent:GetChildren() - 2
  534.                 TweenService:Create(Child, TweenInfo.new(1), {ImageTransparency = (Children > 1) and 0.5 or 0}):Play()
  535.             end)
  536.             pcall(function()
  537.                 local Children = #NavBarContent:GetChildren() - 2
  538.                 TweenService:Create(Child:FindFirstChildWhichIsA("ImageLabel"), TweenInfo.new(1), {ImageTransparency = (Children > 1) and 0.5 or 0}):Play()
  539.             end)
  540.             pcall(function()
  541.                 Child.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  542.             end)
  543.             pcall(function()
  544.                 Child:FindFirstChildWhichIsA("ImageLabel").ImageColor3 = ThisTheme.NavBar
  545.             end)
  546.             pcall(function()
  547.                 Child.TextColor3 = ThisTheme.NavBar
  548.             end)
  549.             pcall(function()
  550.                 Child.ImageColor3 = ThisTheme.NavBar
  551.             end)
  552.         end)
  553.  
  554.         return NewNavBar, NavBarContent, NavBarMenu,  NavBarOverlay
  555.     end
  556. }
  557.  
  558. local MainGUI
  559.  
  560. function TryAddMenu(Object, Menu, ReturnTable)
  561.     local Menu = Menu
  562.     local ReturnTable = ReturnTable
  563.     ReturnTable.Object = Object
  564.     local Total = 0
  565.  
  566.     table.foreach(Menu, function(_, Value)
  567.         Total = Total + ((typeof(Value) == "function") and 1 or 0)
  568.     end)
  569.  
  570.     if Total > 0 then
  571.         local MenuToggle = false
  572.  
  573.         local MenuButton = Objects.new("Menu")
  574.         MenuButton.ImageTransparency = 1
  575.         MenuButton.Parent = Object
  576.  
  577.         TweenService:Create(MenuButton, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  578.  
  579.         local Size = Total * 30 + ((Total + 1) * 2)
  580.  
  581.         local MenuBuild = Objects.new("Round")
  582.         MenuBuild.Name = "Menu"
  583.         MenuBuild.ImageColor3 = ThisTheme.ButtonAccent
  584.         MenuBuild.Size = UDim2.fromOffset(120,0)
  585.         MenuBuild.Position = UDim2.fromOffset(MenuButton.AbsolutePosition.X,MenuButton.AbsolutePosition.Y) - UDim2.fromOffset(125,5)
  586.         MenuBuild.ZIndex = 100
  587.         MenuBuild.ClipsDescendants = true
  588.         MenuBuild.Parent = MainGUI
  589.  
  590.         MenuButton:GetPropertyChangedSignal("AbsolutePosition"):Connect(function()
  591.             MenuBuild.Position = UDim2.fromOffset(MenuButton.AbsolutePosition.X,MenuButton.AbsolutePosition.Y) - UDim2.fromOffset(125,5)
  592.         end)
  593.  
  594.         local MenuContent = Objects.new("Frame")
  595.         MenuContent.Name = "Content"
  596.         MenuContent.Parent = MenuBuild
  597.  
  598.         local MenuList = Objects.new("UIListLayout")
  599.         MenuList.Padding = UDim.new(0,2)
  600.         MenuList.Parent = MenuContent
  601.  
  602.         local MenuPadding = Objects.new("UIPadding")
  603.         MenuPadding.PaddingTop = UDim.new(0,2)
  604.         MenuPadding.PaddingRight = UDim.new(0,2)
  605.         MenuPadding.PaddingLeft = UDim.new(0,2)
  606.         MenuPadding.PaddingBottom = UDim.new(0,2)
  607.         MenuPadding.Parent = MenuContent
  608.  
  609.         MenuButton.MouseButton1Down:Connect(function()
  610.             MenuToggle = not MenuToggle
  611.             TweenService:Create(MenuBuild, TweenInfo.new(0.15), {Size = MenuToggle and UDim2.fromOffset(120,Size) or UDim2.fromOffset(120,0)}):Play()
  612.         end)
  613.  
  614.         table.foreach(Menu, function(Option, Value)
  615.             if typeof(Value) == "function" then
  616.                 local MenuOption = Objects.new("SmoothButton")
  617.                 MenuOption.Name = "MenuOption"
  618.                 MenuOption.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  619.                 MenuOption.ImageColor3 = ThisTheme.Button
  620.                 MenuOption.ImageTransparency = 1
  621.                 MenuOption.ZIndex = 150
  622.                 MenuOption.Parent = MenuContent
  623.  
  624.                 local OptionShadow = Objects.new("Shadow")
  625.                 OptionShadow.ImageColor3 = ThisTheme.Button
  626.                 OptionShadow.ImageTransparency = 1
  627.                 OptionShadow.Parent = MenuOption
  628.  
  629.                 local OptionValue = Objects.new("Label")
  630.                 OptionValue.Name = "Value"
  631.                 OptionValue.Position = UDim2.fromScale(0,0)
  632.                 OptionValue.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(5,0)
  633.                 OptionValue.Text = Option
  634.                 OptionValue.TextColor3 = ThisTheme.Button
  635.                 OptionValue.Font = Enum.Font.Gotham
  636.                 OptionValue.TextSize = 12
  637.                 OptionValue.ZIndex = 150
  638.                 OptionValue.TextXAlignment = Enum.TextXAlignment.Right
  639.                 OptionValue.Parent = MenuOption
  640.  
  641.                 MenuOption.MouseButton1Down:Connect(function()
  642.                     Value(ReturnTable)
  643.                     MenuToggle = false
  644.                     TweenService:Create(MenuBuild, TweenInfo.new(0.15), {Size = UDim2.fromOffset(120,0)}):Play()
  645.                 end)
  646.  
  647.                 MenuOption.MouseEnter:Connect(function()
  648.                     TweenService:Create(MenuOption, TweenInfo.new(0.15), {ImageTransparency = 0.8}):Play()
  649.                     TweenService:Create(OptionShadow, TweenInfo.new(0.15), {ImageTransparency = 0.8}):Play()
  650.                 end)
  651.  
  652.                 MenuOption.MouseLeave:Connect(function()
  653.                     TweenService:Create(MenuOption, TweenInfo.new(0.15), {ImageTransparency = 1}):Play()
  654.                     TweenService:Create(OptionShadow, TweenInfo.new(0.15), {ImageTransparency = 1}):Play()
  655.                 end)
  656.             end
  657.         end)
  658.         return true, MenuButton
  659.     end
  660.     return false
  661. end
  662.  
  663. function CreateNewButton(ButtonConfig, Parent)
  664.     local ButtonText = ButtonConfig.Text or "nil button"
  665.     local ButtonCallback = ButtonConfig.Callback or function() print("nil button") end
  666.     local Menu = ButtonConfig.Menu or {}
  667.  
  668.     local Button = Objects.new("SmoothButton")
  669.     Button.Name = "Button"
  670.     Button.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  671.     Button.ImageColor3 = ThisTheme.Button
  672.     Button.ImageTransparency = 1
  673.     Button.Parent = Parent
  674.  
  675.     local ButtonShadow = Objects.new("Shadow")
  676.     ButtonShadow.ImageColor3 = ThisTheme.Button
  677.     ButtonShadow.ImageTransparency = 1
  678.     ButtonShadow.Parent = Button
  679.  
  680.     local ButtonLabel = Objects.new("Label")
  681.     ButtonLabel.Text = ButtonText
  682.     ButtonLabel.TextColor3 = ThisTheme.ButtonAccent
  683.     ButtonLabel.Font = Enum.Font.GothamSemibold
  684.     ButtonLabel.TextSize = 14
  685.     ButtonLabel.ClipsDescendants = true
  686.     ButtonLabel.TextTransparency = 1
  687.     ButtonLabel.Parent = Button
  688.  
  689.     TweenService:Create(Button, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  690.     TweenService:Create(ButtonShadow, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  691.     TweenService:Create(ButtonLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  692.  
  693.     Button.MouseButton1Down:Connect(function()
  694.         CircleAnim(ButtonLabel, ThisTheme.ButtonAccent, ThisTheme.Button)
  695.         ButtonCallback()
  696.     end)
  697.  
  698.     local MenuAdded = TryAddMenu(Button, Menu, {})
  699.  
  700.     return Button, ButtonLabel
  701. end
  702.  
  703. function Material.Load(Config)
  704.     local Style = (Config.Style and math.clamp(Config.Style, 1, 3)) or 1
  705.     local Title = Config.Title or "MaterialLua"
  706.     local SizeX = Config.SizeX or 300
  707.     local SizeY = Config.SizeY or 500
  708.     local Theme = Config.Theme or "Light"
  709.     local Overrides = Config.ColorOverrides or {}
  710.     local Open = true
  711.  
  712.     Theme = Themes[Theme]
  713.  
  714.     ThisTheme = Theme
  715.  
  716.     for KeyOverride, ValueOverride in next, Overrides do
  717.         ThisTheme[KeyOverride] = ValueOverride
  718.     end
  719.  
  720.     pcall(function() OldInstance:Destroy() end);
  721.  
  722.     local function GetExploit()
  723.         local Table = {};
  724.         Table.Synapse = syn;
  725.         Table.ProtoSmasher = pebc_create;
  726.         Table.Sentinel = issentinelclosure;
  727.         Table.ScriptWare = getexecutorname;
  728.  
  729.         for ExploitName, ExploitFunction in next, Table do
  730.             if (ExploitFunction) then
  731.                 return ExploitName;
  732.             end;
  733.         end;
  734.  
  735.         return "Undefined";
  736.     end;
  737.  
  738.     local ProtectFunctions = {};
  739.     ProtectFunctions.Synapse = function(GuiObject) syn.protect_gui(GuiObject); GuiObject.Parent = CoreGuiService; end;
  740.     ProtectFunctions.ProtoSmasher = function(GuiObject) GuiObject.Parent = get_hidden_gui(); end;
  741.     ProtectFunctions.Sentinel = function(GuiObject) GuiObject.Parent = CoreGuiService; end;
  742.     ProtectFunctions.ScriptWare = function(GuiObject) GuiObject.Parent = gethui(); end;
  743.     ProtectFunctions.Undefined = function(GuiObject) GuiObject.Parent = CoreGuiService; end;
  744.  
  745.     local NewInstance = Objects.new("ScreenGui")
  746.     NewInstance.Name = Title
  747.     ProtectFunctions[GetExploit()](NewInstance);
  748.  
  749.     getgenv().OldInstance = NewInstance;
  750.  
  751.     MainGUI = NewInstance
  752.  
  753.     local MainFrame = Objects.new("Round")
  754.     MainFrame.Name = "MainFrame"
  755.     MainFrame.Size = UDim2.fromOffset(0,SizeY)
  756.     MainFrame.Position = UDim2.fromScale(0.5,0.5) - UDim2.fromOffset(SizeX/2,SizeY/2)
  757.     MainFrame.ImageColor3 = Theme.MainFrame
  758.     MainFrame.Parent = NewInstance
  759.  
  760.     TweenService:Create(MainFrame, TweenInfo.new(1), {Size = UDim2.fromOffset(SizeX,SizeY)}):Play()
  761.  
  762.     wait(1)
  763.  
  764.     local MainShadow = Objects.new("Shadow")
  765.     MainShadow.ImageColor3 = Theme.MainFrame
  766.     MainShadow.Parent = MainFrame
  767.  
  768.     local TitleBar = Objects.new("SmoothButton")
  769.     TitleBar.Name = "TitleBar"
  770.     TitleBar.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  771.     TitleBar.ImageColor3 = Theme.TitleBar
  772.     TitleBar.ImageTransparency = 1
  773.     TitleBar.Parent = MainFrame
  774.  
  775.     local ExtraBar = Objects.new("Frame")
  776.     ExtraBar.Name = "Hidden"
  777.     ExtraBar.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,5)
  778.     ExtraBar.Position = UDim2.fromScale(0,1) - UDim2.fromOffset(0,5)
  779.     ExtraBar.BackgroundColor3 = Theme.TitleBar
  780.     ExtraBar.Parent = TitleBar
  781.  
  782.     local TitleShadow = Objects.new("Shadow")
  783.     TitleShadow.ImageColor3 = Theme.TitleBar
  784.     TitleShadow.ImageTransparency = 1
  785.     TitleShadow.Parent = TitleBar
  786.  
  787.     local TitleText = Objects.new("Button")
  788.     TitleText.Name = "Title"
  789.     TitleText.Text = Title
  790.     TitleText.TextColor3 = Theme.TitleBarAccent
  791.     TitleText.TextTransparency = 1
  792.     TitleText.Font = Enum.Font.GothamBold
  793.     TitleText.Parent = TitleBar
  794.  
  795.     TitleText.MouseButton1Down:Connect(function()
  796.         local Mx, My = Mouse.X, Mouse.Y
  797.         local MouseMove, MouseKill
  798.         MouseMove = Mouse.Move:Connect(function()
  799.             local nMx, nMy = Mouse.X, Mouse.Y
  800.             local Dx, Dy = nMx - Mx, nMy - My
  801.             MainFrame.Position = MainFrame.Position + UDim2.fromOffset(Dx, Dy)
  802.             Mx, My = nMx, nMy
  803.         end)
  804.         MouseKill = InputService.InputEnded:Connect(function(UserInput)
  805.             if UserInput.UserInputType == Enum.UserInputType.MouseButton1 then
  806.                 MouseMove:Disconnect()
  807.                 MouseKill:Disconnect()
  808.             end
  809.         end)
  810.     end)
  811.  
  812.     local MinimiseButton = Objects.new("SmoothButton")
  813.     MinimiseButton.Size = UDim2.fromOffset(20,20)
  814.     MinimiseButton.Position = UDim2.fromScale(1,0) + UDim2.fromOffset(-25,5)
  815.     MinimiseButton.ImageColor3 = Theme.Minimise
  816.     MinimiseButton.ImageTransparency = 1
  817.     MinimiseButton.Parent = TitleBar
  818.  
  819.     local MinimiseShadow = Objects.new("Shadow")
  820.     MinimiseShadow.ImageColor3 = Theme.MinimiseAccent
  821.     MinimiseShadow.ImageTransparency = 1
  822.     MinimiseShadow.Parent = MinimiseButton
  823.  
  824.     MinimiseButton.MouseButton1Down:Connect(function()
  825.         Open = not Open
  826.         TweenService:Create(MainShadow, TweenInfo.new(0.15), {ImageTransparency = 1}):Play()
  827.         TweenService:Create(MainFrame, TweenInfo.new(0.15), {Size = Open and UDim2.fromOffset(SizeX,SizeY) or UDim2.fromOffset(SizeX,30)}):Play()
  828.         TweenService:Create(MinimiseButton, TweenInfo.new(0.15), {ImageColor3 = Open and Theme.Minimise or Theme.Maximise}):Play()
  829.         TweenService:Create(MinimiseShadow, TweenInfo.new(0.15), {ImageColor3 = Open and Theme.MinimiseAccent or Theme.MaximiseAccent}):Play()
  830.         if Open then
  831.             wait(0.15)
  832.             MainFrame.ClipsDescendants = false
  833.             TweenService:Create(MainShadow, TweenInfo.new(0.15), {ImageTransparency = 0}):Play()
  834.         else
  835.             MainFrame.ClipsDescendants = true
  836.         end
  837.     end)
  838.  
  839.     local Content = Objects.new("Round")
  840.     Content.Name = "Content"
  841.     Content.ImageColor3 = Theme.Content
  842.     Content.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(10,75)
  843.     Content.Position = UDim2.fromOffset(5,70)
  844.     Content.ImageTransparency = 1
  845.     Content.Parent = MainFrame
  846.  
  847.     local NavigationBar, NavigationBarContent, NavBarMenu, NavBarOverlay = NavBar[Styles[Style]]()
  848.     NavigationBar.Parent = MainFrame
  849.  
  850.     TweenService:Create(TitleBar, TweenInfo.new(1), {ImageTransparency = 0}):Play()
  851.     TweenService:Create(ExtraBar, TweenInfo.new(1), {BackgroundTransparency = 0}):Play()
  852.     TweenService:Create(TitleShadow, TweenInfo.new(1), {ImageTransparency = 0}):Play()
  853.     TweenService:Create(TitleText, TweenInfo.new(1), {TextTransparency = 0}):Play()
  854.     TweenService:Create(MinimiseButton, TweenInfo.new(1), {ImageTransparency = 0}):Play()
  855.     TweenService:Create(MinimiseShadow, TweenInfo.new(1), {ImageTransparency = 0}):Play()
  856.     TweenService:Create(Content, TweenInfo.new(1), {ImageTransparency = 0.8}):Play()
  857.  
  858.     wait(1)
  859.  
  860.     if NavBarMenu then
  861.         TweenService:Create(TitleText, TweenInfo.new(0.5), {
  862.             Size = TitleText.Size - UDim2.fromOffset(25,0),
  863.             Position = TitleText.Position + UDim2.fromOffset(25,0)
  864.         }):Play()
  865.         TweenService:Create(Content, TweenInfo.new(0.5), {
  866.             Size = Content.Size + UDim2.fromOffset(0,35),
  867.             Position = Content.Position - UDim2.fromOffset(0,35)
  868.         }):Play()
  869.  
  870.         NavBarMenu.ImageTransparency = 1
  871.         NavBarMenu.Parent = TitleBar
  872.  
  873.         TweenService:Create(NavBarMenu, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  874.  
  875.         NavBarOverlay.Parent = MainFrame
  876.  
  877.         local MenuToggle = false
  878.  
  879.         NavBarMenu.MouseButton1Down:Connect(function()
  880.             MenuToggle = not MenuToggle
  881.             TweenService:Create(NavigationBar, TweenInfo.new(0.15), {Size = (MenuToggle and UDim2.fromScale(0.5,1) or UDim2.fromScale(0,1)) - UDim2.fromOffset(0,30)}):Play()
  882.             TweenService:Create(NavBarOverlay, TweenInfo.new(0.15), {BackgroundTransparency = MenuToggle and 0.5 or 1}):Play()
  883.             if MenuToggle then
  884.                 wait(0.15)
  885.                 NavigationBar.ClipsDescendants = false
  886.             else
  887.                 NavigationBar.ClipsDescendants = true
  888.             end
  889.         end)
  890.     end
  891.  
  892.     local TabCount = 0
  893.  
  894.     local TabLibrary = {}
  895.  
  896.     local ButtonTrack = {}
  897.     local PageTrack = {}
  898.  
  899.     function TabLibrary.Banner(BannerConfig)
  900.         local BannerText = BannerConfig.Text
  901.         local BannerOptions = BannerConfig.Options or {}
  902.  
  903.         local ExistingBanner, ExistingBannerOverlay = MainFrame:FindFirstChild("BannerOverlay"), MainFrame:FindFirstChild("Banner")
  904.  
  905.         if ExistingBanner then
  906.             ExistingBanner:Destroy()
  907.         end
  908.  
  909.         if ExistingBannerOverlay then
  910.             ExistingBannerOverlay:Destroy()
  911.         end
  912.  
  913.         local BannerOverlay = Objects.new("Frame")
  914.         BannerOverlay.Name = "BannerOverlay"
  915.         BannerOverlay.BackgroundColor3 = Theme.BannerAccent
  916.         BannerOverlay.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(0,30)
  917.         BannerOverlay.Position = UDim2.fromOffset(0,30)
  918.         BannerOverlay.ZIndex = 75
  919.         BannerOverlay.Parent = MainFrame
  920.  
  921.         local TextSize = TextService:GetTextSize(BannerText, 12, Enum.Font.Gotham, Vector2.new(0,0)).X
  922.  
  923.         local Lines = math.ceil((TextSize) / (MainFrame.AbsoluteSize.X - 10))
  924.  
  925.         local BannerSize = UDim2.fromScale(1,0) + UDim2.fromOffset(-10,(Lines*20)+40)
  926.         local BannerPosition = UDim2.fromScale(0,1) + UDim2.fromOffset(5,(-Lines*20)-45)
  927.  
  928.         local Banner = Objects.new("Round")
  929.         Banner.Name = "Banner"
  930.         Banner.ImageTransparency = 1
  931.         Banner.ImageColor3 = Theme.Banner
  932.         Banner.Size = BannerSize
  933.         Banner.Position = BannerPosition
  934.         Banner.ZIndex = 80
  935.         Banner.Parent = MainFrame
  936.  
  937.         local BannerLabel = Objects.new("Label")
  938.         BannerLabel.Name = "Value"
  939.         BannerLabel.Text = BannerText
  940.         BannerLabel.TextColor3 = Theme.BannerAccent
  941.         BannerLabel.TextSize = 12
  942.         BannerLabel.Font = Enum.Font.Gotham
  943.         BannerLabel.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-5,(Lines*20)+5)
  944.         BannerLabel.TextWrapped = true
  945.         BannerLabel.Position = UDim2.fromOffset(5,0)
  946.         BannerLabel.TextTransparency = 1
  947.         BannerLabel.ZIndex = 80
  948.         BannerLabel.Parent = Banner
  949.  
  950.         TweenService:Create(BannerOverlay, TweenInfo.new(0.5), {BackgroundTransparency = 0.5}):Play()
  951.         TweenService:Create(Banner, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  952.         TweenService:Create(BannerLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  953.  
  954.         local BannerContainer = Objects.new("Frame")
  955.         BannerContainer.Name = "Options"
  956.         BannerContainer.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-10,0)
  957.         BannerContainer.Position = UDim2.fromScale(0,1) - UDim2.fromOffset(-5,35)
  958.         BannerContainer.ZIndex = 80
  959.         BannerContainer.ClipsDescendants = true
  960.         BannerContainer.Parent = Banner
  961.  
  962.         local BannerList = Objects.new("UIListLayout")
  963.         BannerList.FillDirection = Enum.FillDirection.Horizontal
  964.         BannerList.HorizontalAlignment = Enum.HorizontalAlignment.Right
  965.         BannerList.SortOrder = Enum.SortOrder.LayoutOrder
  966.         BannerList.Padding = UDim.new(0,5)
  967.         BannerList.Parent = BannerContainer
  968.  
  969.         BannerOptions["Ok"] = function()
  970.             TweenService:Create(BannerContainer, TweenInfo.new(0.5), {Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-10,0)}):Play()
  971.             TweenService:Create(BannerOverlay, TweenInfo.new(0.5), {BackgroundTransparency = 1}):Play()
  972.             TweenService:Create(Banner, TweenInfo.new(0.5), {ImageTransparency = 1}):Play()
  973.             TweenService:Create(BannerLabel, TweenInfo.new(0.5), {TextTransparency = 1}):Play()
  974.         end
  975.  
  976.         table.foreach(BannerOptions, function(Option, Value)
  977.             if typeof(Value) == "function" then
  978.                 local TextSize = TextService:GetTextSize(Option:upper(), 12, Enum.Font.GothamBold, Vector2.new(0,0)).X
  979.  
  980.                 local OptionItem = Objects.new("SmoothButton")
  981.                 OptionItem.ImageColor3 = Theme.BannerAccent
  982.                 OptionItem.ImageTransparency = 0.9
  983.                 OptionItem.Size = UDim2.fromOffset(TextSize+10,30)
  984.                 OptionItem.ZIndex = 80
  985.                 OptionItem.ClipsDescendants = true
  986.                 OptionItem.Parent = BannerContainer
  987.  
  988.                 local OptionLabel = Objects.new("Label")
  989.                 OptionLabel.Text = Option:upper()
  990.                 OptionLabel.TextSize = 12
  991.                 OptionLabel.TextColor3 = Theme.BannerAccent
  992.                 OptionLabel.Font = Enum.Font.GothamBold
  993.                 OptionLabel.Size = UDim2.fromScale(1,1)
  994.                 OptionLabel.Position = UDim2.fromScale(0,0)
  995.                 OptionLabel.TextXAlignment = Enum.TextXAlignment.Center
  996.                 OptionLabel.ZIndex = 80
  997.                 OptionLabel.Parent = OptionItem
  998.  
  999.                 OptionItem.MouseButton1Down:Connect(function()
  1000.                     Value()
  1001.                     CircleAnim(OptionItem, Theme.Banner)
  1002.                 end)
  1003.             end
  1004.         end)
  1005.  
  1006.         TweenService:Create(BannerContainer, TweenInfo.new(0.5), {Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-10,30)}):Play()
  1007.     end
  1008.  
  1009.     function TabLibrary.New(TabConfig)
  1010.         local ImageID = TabConfig.ID
  1011.         local Title = TabConfig.Title
  1012.  
  1013.         local Button
  1014.  
  1015.         if ImageID then
  1016.             if Title then
  1017.                 local Settings = {
  1018.                     TextSize = 12,
  1019.                     Font = Enum.Font.GothamBold,
  1020.                     Vector = Vector2.new(0,0)
  1021.                 }
  1022.  
  1023.                 local TextSize = TextService:GetTextSize(Title:upper(), Settings.TextSize, Settings.Font, Settings.Vector).X
  1024.  
  1025.                 Button = Objects.new("Button")
  1026.                 Button.Name = Title:upper()
  1027.                 Button.TextXAlignment = Enum.TextXAlignment.Right
  1028.                 Button.TextSize = Settings.TextSize
  1029.                 Button.Font = Settings.Font
  1030.                 Button.Text = Title:upper()
  1031.                 Button.Size = UDim2.fromScale(0,1) + UDim2.fromOffset(TextSize+35)
  1032.                 Button.ZIndex = 200
  1033.                 Button.TextTransparency = 1
  1034.             end
  1035.  
  1036.             local FetchURL = "rbxassetid://"..ImageID
  1037.  
  1038.             local Image = RunService:IsStudio() and "http://www.roblox.com/asset/?id=5472131383" or game:GetObjects(FetchURL)[1].Texture
  1039.  
  1040.             local NewImage = Objects.new(Button and "Round" or "SmoothButton")
  1041.             NewImage.Name = ImageID
  1042.             NewImage.BackgroundTransparency = 1
  1043.             NewImage.Size = UDim2.fromOffset(20,20)
  1044.             NewImage.ScaleType = Enum.ScaleType.Stretch
  1045.             NewImage.Image = Image
  1046.             NewImage.ZIndex = 200
  1047.             NewImage.ImageTransparency = 1
  1048.  
  1049.             if Button then
  1050.                 NewImage.Position = UDim2.fromScale(0,0.5) - UDim2.fromOffset(0,10)
  1051.                 NewImage.Parent = Button
  1052.             else
  1053.                 Button = NewImage
  1054.             end
  1055.  
  1056.         else
  1057.             local Settings = {
  1058.                 TextSize = 12,
  1059.                 Font = Enum.Font.GothamBold,
  1060.                 Vector = Vector2.new(0,0)
  1061.             }
  1062.  
  1063.             local TextSize = TextService:GetTextSize(Title:upper(), Settings.TextSize, Settings.Font, Settings.Vector).X
  1064.  
  1065.             Button = Objects.new("Button")
  1066.             Button.Name = Title:upper()
  1067.             Button.TextXAlignment = Enum.TextXAlignment.Center
  1068.             Button.TextSize = Settings.TextSize
  1069.             Button.Font = Settings.Font
  1070.             Button.Text = Title:upper()
  1071.             Button.Size = UDim2.fromScale(0,1) + UDim2.fromOffset(TextSize+10)
  1072.             Button.ZIndex = 200
  1073.             Button.TextTransparency = 1
  1074.         end
  1075.  
  1076.         Button.Parent = NavigationBarContent
  1077.  
  1078.         local PageContentFrame = Objects.new("Scroll")
  1079.         PageContentFrame.Name = Title:upper() or ImageID
  1080.         PageContentFrame.Visible = (TabCount == 0)
  1081.         PageContentFrame.ZIndex = 50
  1082.         PageContentFrame.Parent = Content
  1083.  
  1084.         table.insert(ButtonTrack, Button)
  1085.         table.insert(PageTrack, PageContentFrame)
  1086.  
  1087.         Button.MouseButton1Down:Connect(function()
  1088.             for _, Track in next, ButtonTrack do
  1089.                 if not (Track == Button) then
  1090.                     TweenService:Create(Track, TweenInfo.new(0.15), {TextTransparency = 0.5}):Play()
  1091.                     pcall(function()
  1092.                         TweenService:Create(Track:FindFirstChildWhichIsA("ImageLabel"), TweenInfo.new(0.15), {ImageTransparency = 0.5}):Play()
  1093.                     end)
  1094.                 else
  1095.                     TweenService:Create(Track, TweenInfo.new(0.15), {TextTransparency = 0}):Play()
  1096.                     pcall(function()
  1097.                         TweenService:Create(Track:FindFirstChildWhichIsA("ImageLabel"), TweenInfo.new(0.15), {ImageTransparency = 0}):Play()
  1098.                     end)
  1099.                 end
  1100.             end
  1101.             for _, Track in next, PageTrack do
  1102.                 Track.Visible = (Track == PageContentFrame)
  1103.             end
  1104.         end)
  1105.  
  1106.         local PagePadding = Objects.new("UIPadding")
  1107.         PagePadding.PaddingLeft = UDim.new(0,5)
  1108.         PagePadding.PaddingRight = UDim.new(0,5)
  1109.         PagePadding.PaddingTop = UDim.new(0,5)
  1110.         PagePadding.PaddingBottom = UDim.new(0,5)
  1111.         PagePadding.Parent = PageContentFrame
  1112.  
  1113.         local PageList = Objects.new("UIListLayout")
  1114.         PageList.SortOrder = Enum.SortOrder.LayoutOrder
  1115.         PageList.Padding = UDim.new(0,5)
  1116.         PageList.Parent = PageContentFrame
  1117.  
  1118.         PageList:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
  1119.             PageContentFrame.CanvasSize = UDim2.fromOffset(0,PageList.AbsoluteContentSize.Y+10)
  1120.         end)
  1121.  
  1122.         TabCount = TabCount + 1
  1123.  
  1124.         local OptionLibrary = {}
  1125.  
  1126.         function OptionLibrary.Button(ButtonConfig)
  1127.             local NewButton, ButtonLabel = CreateNewButton(ButtonConfig, PageContentFrame)
  1128.  
  1129.             local ButtonLibrary = {}
  1130.  
  1131.             function ButtonLibrary:SetText(Value)
  1132.                 ButtonLabel.Text = Value
  1133.             end
  1134.  
  1135.             function ButtonLibrary:GetText()
  1136.                 return ButtonLabel.Text
  1137.             end
  1138.  
  1139.             return ButtonLibrary
  1140.         end
  1141.  
  1142.         function OptionLibrary.Dropdown(DropdownConfig)
  1143.             local DropdownText = DropdownConfig.Text or "nil dropdown"
  1144.             local DropdownValue = DropdownConfig.Default
  1145.             local DropdownCallback = DropdownConfig.Callback or function() print("nil dropdown") end
  1146.             local DropdownOptions = DropdownConfig.Options or {}
  1147.             local Menu = DropdownConfig.Menu or {}
  1148.  
  1149.             local Dropdown = Objects.new("Frame")
  1150.             Dropdown.Name = "Dropdown"
  1151.             Dropdown.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  1152.             Dropdown.Parent = PageContentFrame
  1153.  
  1154.             local DropdownBar = Objects.new("Round")
  1155.             DropdownBar.Name = "TitleBar"
  1156.             DropdownBar.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  1157.             DropdownBar.ImageColor3 = Theme.Dropdown
  1158.             DropdownBar.ImageTransparency = 1
  1159.             DropdownBar.Parent = Dropdown
  1160.  
  1161.             local DropdownTitle = Objects.new("Button")
  1162.             DropdownTitle.Name = "Title"
  1163.             DropdownTitle.Font = Enum.Font.GothamSemibold
  1164.             DropdownTitle.Text = DropdownValue and DropdownText..": "..DropdownValue or DropdownText
  1165.             DropdownTitle.TextColor3 = Theme.DropdownAccent
  1166.             DropdownTitle.TextTransparency = 1
  1167.             DropdownTitle.TextSize = 14
  1168.             DropdownTitle.Parent = DropdownBar
  1169.  
  1170.             local DropdownToggle = Objects.new("Round")
  1171.             DropdownToggle.Name = "Container"
  1172.             DropdownToggle.Size = UDim2.fromOffset(24,24)
  1173.             DropdownToggle.Position = UDim2.fromScale(1,0.5) - UDim2.fromOffset(27,12)
  1174.             DropdownToggle.ImageColor3 = Theme.DropdownAccent
  1175.             DropdownToggle.ImageTransparency = 1 -- 0.8
  1176.             DropdownToggle.Parent = DropdownBar
  1177.  
  1178.             local DropdownButton = Objects.new("Round")
  1179.             DropdownButton.Name = "Drop"
  1180.             DropdownButton.Image = "http://www.roblox.com/asset/?id=5574299686"
  1181.             DropdownButton.ScaleType = Enum.ScaleType.Stretch
  1182.             DropdownButton.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(4,4)
  1183.             DropdownButton.Position = UDim2.fromOffset(2,2)
  1184.             DropdownButton.ImageColor3 = Theme.DropdownAccent
  1185.             DropdownButton.ImageTransparency = 1
  1186.             DropdownButton.Parent = DropdownToggle
  1187.  
  1188.             TweenService:Create(DropdownBar, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1189.             TweenService:Create(DropdownTitle, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1190.             TweenService:Create(DropdownToggle, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  1191.             TweenService:Create(DropdownButton, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1192.  
  1193.             local DropdownContent = Objects.new("Frame")
  1194.             DropdownContent.Name = "Content"
  1195.             DropdownContent.Size = UDim2.fromScale(1,0)
  1196.             DropdownContent.Position = UDim2.fromOffset(0,35)
  1197.             DropdownContent.ClipsDescendants = true
  1198.             DropdownContent.Parent = Dropdown
  1199.  
  1200.             local NumberOfOptions = #DropdownOptions
  1201.             local DropToggle = false
  1202.             local DropdownSize = UDim2.fromScale(1,0) + UDim2.fromOffset(0,(NumberOfOptions*20) + ((NumberOfOptions - 1) * 5))
  1203.  
  1204.             local DropdownList = Objects.new("UIListLayout")
  1205.             DropdownList.SortOrder = Enum.SortOrder.LayoutOrder
  1206.             DropdownList.Padding = UDim.new(0,5)
  1207.             DropdownList.Parent = DropdownContent
  1208.  
  1209.             DropdownList:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
  1210.                 if DropToggle then
  1211.                     DropdownContent.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(DropdownList.AbsoluteContentSize.Y)
  1212.                     DropdownSize = UDim2.fromScale(1,0) + UDim2.fromOffset(DropdownList.AbsoluteContentSize.Y)
  1213.                 end
  1214.             end)
  1215.  
  1216.             table.foreach(DropdownOptions, function(_, Value)
  1217.                 local NewButton = CreateNewButton({
  1218.                     Text = Value,
  1219.                     Callback = function() end
  1220.                 }, DropdownContent)
  1221.  
  1222.                 NewButton.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,20)
  1223.                 NewButton.MouseButton1Down:Connect(function()
  1224.                     DropdownCallback(Value)
  1225.                     DropdownTitle.Text = DropdownText..": "..Value
  1226.                     DropdownValue = Value
  1227.                 end)
  1228.             end)
  1229.  
  1230.             DropdownTitle.MouseButton1Down:Connect(function()
  1231.                 DropToggle = not DropToggle
  1232.                 TweenService:Create(DropdownButton, TweenInfo.new(0.15), {Rotation = DropToggle and 135 or 0}):Play()
  1233.                 TweenService:Create(DropdownContent, TweenInfo.new(0.15), {Size = DropToggle and DropdownSize or UDim2.fromScale(1,0)}):Play()
  1234.                 TweenService:Create(Dropdown, TweenInfo.new(0.15), {Size = DropToggle and (DropdownSize + UDim2.fromOffset(0,35)) or (UDim2.fromScale(1,0) + UDim2.fromOffset(0,30))}):Play()
  1235.             end)
  1236.  
  1237.             local MenuAdded, MenuButton = TryAddMenu(DropdownBar, Menu, {})
  1238.  
  1239.             if MenuAdded then
  1240.                 DropdownToggle.Position = DropdownToggle.Position - UDim2.fromOffset(25,0)
  1241.                 MenuButton.ImageColor3 = Theme.DropdownAccent
  1242.             end
  1243.  
  1244.             local DropdownLibrary = {}
  1245.  
  1246.             function DropdownLibrary:SetText(Value)
  1247.                 DropdownTitle.Text = Value
  1248.             end
  1249.  
  1250.             function DropdownLibrary:GetText()
  1251.                 return DropdownTitle.Text
  1252.             end
  1253.  
  1254.             function DropdownLibrary:GetValue()
  1255.                 return DropdownValue
  1256.             end
  1257.  
  1258.             function DropdownLibrary:SetOptions(NewMenu)
  1259.                 DropdownOptions = NewMenu or {}
  1260.                 NumberOfOptions = #DropdownOptions
  1261.                 DropdownSize = UDim2.fromScale(1,0) + UDim2.fromOffset(0,(NumberOfOptions*20) + ((NumberOfOptions - 1) * 5))
  1262.  
  1263.                 if DropdownContent then
  1264.                     DropdownContent:Destroy()
  1265.                 end
  1266.  
  1267.                 TweenService:Create(Dropdown, TweenInfo.new(0.15), {Size = DropToggle and (DropdownSize + UDim2.fromOffset(0,35)) or (UDim2.fromScale(1,0) + UDim2.fromOffset(0,30))}):Play()
  1268.  
  1269.                 DropdownContent = Objects.new("Frame")
  1270.                 DropdownContent.Name = "Content"
  1271.                 DropdownContent.Size = DropToggle and DropdownSize or UDim2.fromScale(1,0)
  1272.                 DropdownContent.Position = UDim2.fromOffset(0,35)
  1273.                 DropdownContent.ClipsDescendants = true
  1274.                 DropdownContent.Parent = Dropdown
  1275.  
  1276.                 local DropdownList = Objects.new("UIListLayout")
  1277.                 DropdownList.SortOrder = Enum.SortOrder.LayoutOrder
  1278.                 DropdownList.Padding = UDim.new(0,5)
  1279.                 DropdownList.Parent = DropdownContent
  1280.  
  1281.                 table.foreach(DropdownOptions, function(_, Value)
  1282.                     local NewButton = CreateNewButton({
  1283.                         Text = Value,
  1284.                         Callback = function() end
  1285.                     }, DropdownContent)
  1286.  
  1287.                     NewButton.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,20)
  1288.                     NewButton.MouseButton1Down:Connect(function()
  1289.                         DropdownCallback(Value)
  1290.                         DropdownTitle.Text = DropdownText..": "..Value
  1291.                         DropdownValue = Value
  1292.                     end)
  1293.                 end)
  1294.             end
  1295.  
  1296.             function DropdownLibrary:GetOptions()
  1297.                 return DropdownOptions
  1298.             end
  1299.  
  1300.             if DropdownOptions.Default then
  1301.                 DropdownTitle.Text = DropdownText..": "..DropdownOptions.Default
  1302.             end
  1303.  
  1304.             return DropdownLibrary
  1305.         end
  1306.  
  1307.         function OptionLibrary.ChipSet(ChipSetConfig)
  1308.             local ChipSetText = ChipSetConfig.Text or "nil chipset"
  1309.             local ChipSetCallback = ChipSetConfig.Callback or function() print("nil chipset") end
  1310.             local ChipSetOptions = ChipSetConfig.Options or {}
  1311.  
  1312.             local TotalOptions = 0
  1313.  
  1314.             table.foreach(ChipSetOptions, function()
  1315.                 TotalOptions = TotalOptions + 1
  1316.             end)
  1317.  
  1318.             if TotalOptions > 0 then
  1319.                 local Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,(TotalOptions*30)+((TotalOptions+1)*5))
  1320.  
  1321.                 local ChipSet = Objects.new("Round")
  1322.                 ChipSet.Name = "ChipSet"
  1323.                 ChipSet.Size = Size
  1324.                 ChipSet.ImageColor3 = Theme.ChipSet
  1325.                 ChipSet.ImageTransparency = 1
  1326.                 ChipSet.Parent = PageContentFrame
  1327.  
  1328.                 local ChipList = Objects.new("UIListLayout")
  1329.                 ChipList.SortOrder = Enum.SortOrder.LayoutOrder
  1330.                 ChipList.Padding = UDim.new(0,5)
  1331.                 ChipList.Parent = ChipSet
  1332.  
  1333.                 local ChipPadding = Objects.new("UIPadding")
  1334.                 ChipPadding.PaddingBottom = UDim.new(0,5)
  1335.                 ChipPadding.PaddingTop = UDim.new(0,5)
  1336.                 ChipPadding.PaddingRight= UDim.new(0,5)
  1337.                 ChipPadding.PaddingLeft = UDim.new(0,5)
  1338.                 ChipPadding.Parent = ChipSet
  1339.  
  1340.                 local BuildTable = {}
  1341.  
  1342.                 table.foreach(ChipSetOptions, function(Key, Value)
  1343.                     if typeof(Value) == "table" then
  1344.                         BuildTable[Key] = Value.Enabled
  1345.                     else
  1346.                         BuildTable[Key] = Value
  1347.                     end
  1348.                 end)
  1349.  
  1350.                 ChipSetCallback(BuildTable)
  1351.  
  1352.                 TweenService:Create(ChipSet, TweenInfo.new(0.5), {ImageTransparency = 0.9}):Play()
  1353.  
  1354.                 table.foreach(ChipSetOptions, function(Key, Value)
  1355.                     local ChipItem = Objects.new("SmoothButton")
  1356.                     ChipItem.Name = "ChipItem"
  1357.                     ChipItem.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  1358.                     ChipItem.ImageColor3 = BuildTable[Key] and Theme.ChipSet or Theme.ChipSetAccent
  1359.                     ChipItem.ImageTransparency = 1
  1360.                     ChipItem.Parent = ChipSet
  1361.  
  1362.                     local ChipShadow = Objects.new("Shadow")
  1363.                     ChipShadow.ImageColor3 = BuildTable[Key] and Theme.ChipSet or Theme.ChipSetAccent
  1364.                     ChipShadow.ImageTransparency = 1
  1365.                     ChipShadow.Parent = ChipItem
  1366.  
  1367.                     local Tick = Objects.new("Round")
  1368.                     Tick.ScaleType = Enum.ScaleType.Stretch
  1369.                     Tick.Image = "http://www.roblox.com/asset/?id=5554953789"
  1370.                     Tick.ImageColor3 = Theme.ChipSetAccent
  1371.                     Tick.ImageTransparency = 1
  1372.                     Tick.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(10,10)
  1373.                     Tick.SizeConstraint = Enum.SizeConstraint.RelativeYY
  1374.                     Tick.Position = UDim2.fromOffset(5,5)
  1375.                     Tick.Parent = ChipItem
  1376.  
  1377.                     local ChipLabel = Objects.new("Label")
  1378.                     ChipLabel.Size = BuildTable[Key] and (UDim2.fromScale(1,1) - UDim2.fromOffset(30)) or (UDim2.fromScale(1,1) - UDim2.fromOffset(5))
  1379.                     ChipLabel.Position = BuildTable[Key] and UDim2.fromOffset(30) or UDim2.fromOffset(5)
  1380.                     ChipLabel.Text = Key
  1381.                     ChipLabel.Font = Enum.Font.Gotham
  1382.                     ChipLabel.TextSize = 12
  1383.                     ChipLabel.TextColor3 = BuildTable[Key] and Theme.ChipSetAccent or Theme.ChipSet
  1384.                     ChipLabel.TextTransparency = 1
  1385.                     ChipLabel.Parent = ChipItem
  1386.  
  1387.                     TweenService:Create(ChipItem, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1388.                     TweenService:Create(ChipShadow, TweenInfo.new(0.5), {ImageTransparency = 0.2}):Play()
  1389.                     TweenService:Create(Tick, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0 or 1}):Play()
  1390.                     TweenService:Create(ChipLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1391.  
  1392.                     local ChipMenu
  1393.  
  1394.                     if typeof(Value) == "table" then
  1395.                         local Menu = Value.Menu or {}
  1396.  
  1397.                         local MenuAdded, MenuButton = TryAddMenu(ChipItem, Menu, {})
  1398.  
  1399.                         MenuButton.ImageColor3 = BuildTable[Key] and Theme.ChipSetAccent or Theme.ChipSet
  1400.  
  1401.                         ChipMenu = MenuButton
  1402.                     end
  1403.  
  1404.                     ChipItem.MouseButton1Down:Connect(function()
  1405.                         BuildTable[Key] = not BuildTable[Key]
  1406.                         local Enabled = BuildTable[Key]
  1407.                         TweenService:Create(ChipItem, TweenInfo.new(0.15), {ImageColor3 = Enabled and Theme.ChipSet or Theme.ChipSetAccent}):Play()
  1408.                         TweenService:Create(ChipShadow, TweenInfo.new(0.15), {ImageColor3 = Enabled and Theme.ChipSet or Theme.ChipSetAccent}):Play()
  1409.                         TweenService:Create(Tick, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0 or 1}):Play()
  1410.                         TweenService:Create(ChipLabel, TweenInfo.new(0.15), {TextColor3 = Enabled and Theme.ChipSetAccent or Theme.ChipSet, Position = Enabled and UDim2.fromOffset(30) or UDim2.fromOffset(5), Size = Enabled and (UDim2.fromScale(1,1) - UDim2.fromOffset(30)) or (UDim2.fromScale(1,1) - UDim2.fromOffset(5))}):Play()
  1411.                         if ChipMenu then
  1412.                             TweenService:Create(ChipMenu, TweenInfo.new(0.15), {ImageColor3 = Enabled and Theme.ChipSetAccent or Theme.ChipSet}):Play()
  1413.                         end
  1414.                         ChipSetCallback(BuildTable)
  1415.                     end)
  1416.                 end)
  1417.  
  1418.                 local ChipSetLibrary = {}
  1419.  
  1420.                 function ChipSetLibrary:SetOptions(NewMenu)
  1421.                     ChipSetOptions = NewMenu or {}
  1422.  
  1423.                     TotalOptions = 0
  1424.  
  1425.                     table.foreach(ChipSetOptions, function()
  1426.                         TotalOptions = TotalOptions + 1
  1427.                     end)
  1428.  
  1429.                     for _, Element in next, ChipSet:GetChildren() do
  1430.                         Element:Destroy()
  1431.                     end
  1432.  
  1433.                     Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,(TotalOptions*30)+((TotalOptions+1)*5))
  1434.  
  1435.                     TweenService:Create(ChipSet, TweenInfo.new(0.15), {Size = Size}):Play()
  1436.  
  1437.                     local ChipList = Objects.new("UIListLayout")
  1438.                     ChipList.SortOrder = Enum.SortOrder.LayoutOrder
  1439.                     ChipList.Padding = UDim.new(0,5)
  1440.                     ChipList.Parent = ChipSet
  1441.  
  1442.                     local ChipPadding = Objects.new("UIPadding")
  1443.                     ChipPadding.PaddingBottom = UDim.new(0,5)
  1444.                     ChipPadding.PaddingTop = UDim.new(0,5)
  1445.                     ChipPadding.PaddingRight= UDim.new(0,5)
  1446.                     ChipPadding.PaddingLeft = UDim.new(0,5)
  1447.                     ChipPadding.Parent = ChipSet
  1448.  
  1449.                     local BuildTable = {}
  1450.  
  1451.                     table.foreach(ChipSetOptions, function(Key, Value)
  1452.                         if typeof(Value) == "table" then
  1453.                             BuildTable[Key] = Value.Enabled
  1454.                         else
  1455.                             BuildTable[Key] = Value
  1456.                         end
  1457.                     end)
  1458.  
  1459.                     ChipSetCallback(BuildTable)
  1460.  
  1461.                     TweenService:Create(ChipSet, TweenInfo.new(0.5), {ImageTransparency = 0.9}):Play()
  1462.  
  1463.                     table.foreach(ChipSetOptions, function(Key, Value)
  1464.                         local ChipItem = Objects.new("SmoothButton")
  1465.                         ChipItem.Name = "ChipItem"
  1466.                         ChipItem.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  1467.                         ChipItem.ImageColor3 = BuildTable[Key] and Theme.ChipSet or Theme.ChipSetAccent
  1468.                         ChipItem.ImageTransparency = 1
  1469.                         ChipItem.Parent = ChipSet
  1470.  
  1471.                         local ChipShadow = Objects.new("Shadow")
  1472.                         ChipShadow.ImageColor3 = BuildTable[Key] and Theme.ChipSet or Theme.ChipSetAccent
  1473.                         ChipShadow.ImageTransparency = 1
  1474.                         ChipShadow.Parent = ChipItem
  1475.  
  1476.                         local Tick = Objects.new("Round")
  1477.                         Tick.ScaleType = Enum.ScaleType.Stretch
  1478.                         Tick.Image = "http://www.roblox.com/asset/?id=5554953789"
  1479.                         Tick.ImageColor3 = Theme.ChipSetAccent
  1480.                         Tick.ImageTransparency = 1
  1481.                         Tick.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(10,10)
  1482.                         Tick.SizeConstraint = Enum.SizeConstraint.RelativeYY
  1483.                         Tick.Position = UDim2.fromOffset(5,5)
  1484.                         Tick.Parent = ChipItem
  1485.  
  1486.                         local ChipLabel = Objects.new("Label")
  1487.                         ChipLabel.Size = BuildTable[Key] and (UDim2.fromScale(1,1) - UDim2.fromOffset(30)) or (UDim2.fromScale(1,1) - UDim2.fromOffset(5))
  1488.                         ChipLabel.Position = BuildTable[Key] and UDim2.fromOffset(30) or UDim2.fromOffset(5)
  1489.                         ChipLabel.Text = Key
  1490.                         ChipLabel.Font = Enum.Font.Gotham
  1491.                         ChipLabel.TextSize = 12
  1492.                         ChipLabel.TextColor3 = BuildTable[Key] and Theme.ChipSetAccent or Theme.ChipSet
  1493.                         ChipLabel.TextTransparency = 1
  1494.                         ChipLabel.Parent = ChipItem
  1495.  
  1496.                         TweenService:Create(ChipItem, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1497.                         TweenService:Create(ChipShadow, TweenInfo.new(0.5), {ImageTransparency = 0.2}):Play()
  1498.                         TweenService:Create(Tick, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0 or 1}):Play()
  1499.                         TweenService:Create(ChipLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1500.  
  1501.                         local ChipMenu
  1502.  
  1503.                         if typeof(Value) == "table" then
  1504.                             local Menu = Value.Menu or {}
  1505.  
  1506.                             local MenuAdded, MenuButton = TryAddMenu(ChipItem, Menu, {})
  1507.  
  1508.                             MenuButton.ImageColor3 = BuildTable[Key] and Theme.ChipSetAccent or Theme.ChipSet
  1509.  
  1510.                             ChipMenu = MenuButton
  1511.                         end
  1512.  
  1513.                         ChipItem.MouseButton1Down:Connect(function()
  1514.                             BuildTable[Key] = not BuildTable[Key]
  1515.                             local Enabled = BuildTable[Key]
  1516.                             TweenService:Create(ChipItem, TweenInfo.new(0.15), {ImageColor3 = Enabled and Theme.ChipSet or Theme.ChipSetAccent}):Play()
  1517.                             TweenService:Create(ChipShadow, TweenInfo.new(0.15), {ImageColor3 = Enabled and Theme.ChipSet or Theme.ChipSetAccent}):Play()
  1518.                             TweenService:Create(Tick, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0 or 1}):Play()
  1519.                             TweenService:Create(ChipLabel, TweenInfo.new(0.15), {TextColor3 = Enabled and Theme.ChipSetAccent or Theme.ChipSet, Position = Enabled and UDim2.fromOffset(30) or UDim2.fromOffset(5), Size = Enabled and (UDim2.fromScale(1,1) - UDim2.fromOffset(30)) or (UDim2.fromScale(1,1) - UDim2.fromOffset(5))}):Play()
  1520.                             if ChipMenu then
  1521.                                 TweenService:Create(ChipMenu, TweenInfo.new(0.15), {ImageColor3 = Enabled and Theme.ChipSetAccent or Theme.ChipSet}):Play()
  1522.                             end
  1523.                             ChipSetCallback(BuildTable)
  1524.                         end)
  1525.                     end)
  1526.                 end
  1527.  
  1528.                 function ChipSetLibrary:GetOptions()
  1529.                     return ChipSetOptions
  1530.                 end
  1531.  
  1532.                 return ChipSetLibrary
  1533.             end
  1534.         end
  1535.  
  1536.         function OptionLibrary.DataTable(DataTableConfig)
  1537.             local DataTableText = DataTableConfig.Text or "nil chipset"
  1538.             local DataTableCallback = DataTableConfig.Callback or function() print("nil chipset") end
  1539.             local DataTableOptions = DataTableConfig.Options or {}
  1540.  
  1541.             local TotalOptions = 0
  1542.  
  1543.             table.foreach(DataTableOptions, function()
  1544.                 TotalOptions = TotalOptions + 1
  1545.             end)
  1546.  
  1547.             if TotalOptions > 0 then
  1548.  
  1549.                 local Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,(TotalOptions*30)+((TotalOptions+1)*5))
  1550.  
  1551.                 local DataTable = Objects.new("Round")
  1552.                 DataTable.Name = "DataTable"
  1553.                 DataTable.Size = Size
  1554.                 DataTable.ImageColor3 = Theme.DataTable
  1555.                 DataTable.ImageTransparency = 1
  1556.                 DataTable.Parent = PageContentFrame
  1557.  
  1558.                 local DataShadow = Objects.new("Shadow")
  1559.                 DataShadow.ImageColor3 = Theme.DataTable
  1560.                 DataShadow.ImageTransparency = 1
  1561.                 DataShadow.Parent = DataTable
  1562.  
  1563.                 local DataContainer = Objects.new("Frame")
  1564.                 DataContainer.Name = "Container"
  1565.                 DataContainer.Parent = DataTable
  1566.  
  1567.                 local DataList = Objects.new("UIListLayout")
  1568.                 DataList.SortOrder = Enum.SortOrder.LayoutOrder
  1569.                 DataList.Padding = UDim.new(0,5)
  1570.                 DataList.Parent = DataContainer
  1571.  
  1572.                 local DataPadding = Objects.new("UIPadding")
  1573.                 DataPadding.PaddingBottom = UDim.new(0,5)
  1574.                 DataPadding.PaddingTop = UDim.new(0,5)
  1575.                 DataPadding.PaddingRight= UDim.new(0,5)
  1576.                 DataPadding.PaddingLeft = UDim.new(0,5)
  1577.                 DataPadding.Parent = DataContainer
  1578.  
  1579.                 local BuildTable = {}
  1580.  
  1581.                 table.foreach(DataTableOptions, function(Key, Value)
  1582.                     if typeof(Value) == "table" then
  1583.                         BuildTable[Key] = Value.Enabled
  1584.                     else
  1585.                         BuildTable[Key] = Value
  1586.                     end
  1587.                 end)
  1588.  
  1589.                 DataTableCallback(BuildTable)
  1590.  
  1591.                 TweenService:Create(DataTable, TweenInfo.new(0.5), {ImageTransparency = 0.9}):Play()
  1592.                 TweenService:Create(DataShadow, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  1593.  
  1594.                 table.foreach(DataTableOptions, function(Key, Value)
  1595.                     local DataItem = Objects.new("SmoothButton")
  1596.                     DataItem.Name = "DataItem"
  1597.                     DataItem.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  1598.                     DataItem.ImageColor3 = BuildTable[Key] and Theme.DataTable or Theme.DataTableAccent
  1599.                     DataItem.ImageTransparency = 1
  1600.                     DataItem.Parent = DataContainer
  1601.  
  1602.                     local DataTracker = Objects.new("Round")
  1603.                     DataTracker.Name = "Tracker"
  1604.                     DataTracker.Size = UDim2.fromOffset(24,24)
  1605.                     DataTracker.Position = UDim2.fromScale(0,0.5) + UDim2.fromOffset(3,-12)
  1606.                     DataTracker.ImageColor3 = Theme.DataTable
  1607.                     DataTracker.ImageTransparency = 1
  1608.                     DataTracker.Parent = DataItem
  1609.  
  1610.                     local Tick = Objects.new("Round")
  1611.                     Tick.Name = "Tick"
  1612.                     Tick.ScaleType = Enum.ScaleType.Stretch
  1613.                     Tick.Image = "http://www.roblox.com/asset/?id=5554953789"
  1614.                     Tick.ImageColor3 = Theme.DataTableAccent
  1615.                     Tick.ImageTransparency = 1
  1616.                     Tick.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(4,4)
  1617.                     Tick.SizeConstraint = Enum.SizeConstraint.RelativeYY
  1618.                     Tick.Position = UDim2.fromOffset(2,2)
  1619.                     Tick.Parent = DataTracker
  1620.  
  1621.                     local DataLabel = Objects.new("Label")
  1622.                     DataLabel.Name = "Value"
  1623.                     DataLabel.Size = (UDim2.fromScale(1,1) - UDim2.fromOffset(30))
  1624.                     DataLabel.Position = UDim2.fromOffset(30) or UDim2.fromOffset(5)
  1625.                     DataLabel.Text = Key
  1626.                     DataLabel.Font = Enum.Font.Gotham
  1627.                     DataLabel.TextSize = 14
  1628.                     DataLabel.TextColor3 = Theme.DataTable
  1629.                     DataLabel.TextTransparency = 1
  1630.                     DataLabel.Parent = DataItem
  1631.  
  1632.                     TweenService:Create(DataItem, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0.8 or 0}):Play()
  1633.                     TweenService:Create(DataTracker, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0 or 0.8}):Play()
  1634.                     TweenService:Create(Tick, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0 or 0.7}):Play()
  1635.                     TweenService:Create(DataLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1636.  
  1637.                     local DataMenu
  1638.  
  1639.                     if typeof(Value) == "table" then
  1640.                         local Menu = Value.Menu or {}
  1641.  
  1642.                         local MenuAdded, MenuButton = TryAddMenu(DataItem, Menu, {})
  1643.  
  1644.                         MenuButton.ImageColor3 = Theme.DataTable
  1645.  
  1646.                         DataMenu = MenuButton
  1647.                     end
  1648.  
  1649.                     DataItem.MouseButton1Down:Connect(function()
  1650.                         BuildTable[Key] = not BuildTable[Key]
  1651.                         local Enabled = BuildTable[Key]
  1652.                         TweenService:Create(DataItem, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0.8 or 0, ImageColor3 = Enabled and Theme.DataTable or Theme.DataTableAccent}):Play()
  1653.                         TweenService:Create(Tick, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0 or 0.7}):Play()
  1654.                         TweenService:Create(DataTracker, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0 or 0.8}):Play()
  1655.                         DataTableCallback(BuildTable)
  1656.                     end)
  1657.                 end)
  1658.  
  1659.                 local DataTableLibrary = {}
  1660.  
  1661.                 function DataTableLibrary:SetOptions(NewMenu)
  1662.                     if DataContainer then
  1663.                         DataContainer:Destroy()
  1664.                     end
  1665.  
  1666.                     DataTableOptions = NewMenu or {}
  1667.  
  1668.                     TotalOptions = 0
  1669.  
  1670.                     table.foreach(DataTableOptions, function()
  1671.                         TotalOptions = TotalOptions + 1
  1672.                     end)
  1673.  
  1674.                     Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,(TotalOptions*30)+((TotalOptions+1)*5))
  1675.  
  1676.                     DataTable.Size = Size
  1677.  
  1678.                     DataContainer = Objects.new("Frame")
  1679.                     DataContainer.Name = "Container"
  1680.                     DataContainer.Parent = DataTable
  1681.  
  1682.                     local DataList = Objects.new("UIListLayout")
  1683.                     DataList.SortOrder = Enum.SortOrder.LayoutOrder
  1684.                     DataList.Padding = UDim.new(0,5)
  1685.                     DataList.Parent = DataContainer
  1686.  
  1687.                     local DataPadding = Objects.new("UIPadding")
  1688.                     DataPadding.PaddingBottom = UDim.new(0,5)
  1689.                     DataPadding.PaddingTop = UDim.new(0,5)
  1690.                     DataPadding.PaddingRight= UDim.new(0,5)
  1691.                     DataPadding.PaddingLeft = UDim.new(0,5)
  1692.                     DataPadding.Parent = DataContainer
  1693.  
  1694.                     local BuildTable = {}
  1695.  
  1696.                     table.foreach(DataTableOptions, function(Key, Value)
  1697.                         if typeof(Value) == "table" then
  1698.                             BuildTable[Key] = Value.Enabled
  1699.                         else
  1700.                             BuildTable[Key] = Value
  1701.                         end
  1702.                     end)
  1703.  
  1704.                     DataTableCallback(BuildTable)
  1705.  
  1706.                     TweenService:Create(DataTable, TweenInfo.new(0.5), {ImageTransparency = 0.9}):Play()
  1707.                     TweenService:Create(DataShadow, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  1708.  
  1709.                     table.foreach(DataTableOptions, function(Key, Value)
  1710.                         local DataItem = Objects.new("SmoothButton")
  1711.                         DataItem.Name = "DataItem"
  1712.                         DataItem.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  1713.                         DataItem.ImageColor3 = BuildTable[Key] and Theme.DataTable or Theme.DataTableAccent
  1714.                         DataItem.ImageTransparency = 1
  1715.                         DataItem.Parent = DataContainer
  1716.  
  1717.                         local DataTracker = Objects.new("Round")
  1718.                         DataTracker.Name = "Tracker"
  1719.                         DataTracker.Size = UDim2.fromOffset(24,24)
  1720.                         DataTracker.Position = UDim2.fromScale(0,0.5) + UDim2.fromOffset(3,-12)
  1721.                         DataTracker.ImageColor3 = Theme.DataTable
  1722.                         DataTracker.ImageTransparency = 1
  1723.                         DataTracker.Parent = DataItem
  1724.  
  1725.                         local Tick = Objects.new("Round")
  1726.                         Tick.Name = "Tick"
  1727.                         Tick.ScaleType = Enum.ScaleType.Stretch
  1728.                         Tick.Image = "http://www.roblox.com/asset/?id=5554953789"
  1729.                         Tick.ImageColor3 = Theme.DataTableAccent
  1730.                         Tick.ImageTransparency = 1
  1731.                         Tick.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(4,4)
  1732.                         Tick.SizeConstraint = Enum.SizeConstraint.RelativeYY
  1733.                         Tick.Position = UDim2.fromOffset(2,2)
  1734.                         Tick.Parent = DataTracker
  1735.  
  1736.                         local DataLabel = Objects.new("Label")
  1737.                         DataLabel.Name = "Value"
  1738.                         DataLabel.Size = (UDim2.fromScale(1,1) - UDim2.fromOffset(30))
  1739.                         DataLabel.Position = UDim2.fromOffset(30) or UDim2.fromOffset(5)
  1740.                         DataLabel.Text = Key
  1741.                         DataLabel.Font = Enum.Font.Gotham
  1742.                         DataLabel.TextSize = 14
  1743.                         DataLabel.TextColor3 = Theme.DataTable
  1744.                         DataLabel.TextTransparency = 1
  1745.                         DataLabel.Parent = DataItem
  1746.  
  1747.                         TweenService:Create(DataItem, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0.8 or 0}):Play()
  1748.                         TweenService:Create(DataTracker, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0 or 0.8}):Play()
  1749.                         TweenService:Create(Tick, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0 or 0.7}):Play()
  1750.                         TweenService:Create(DataLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1751.  
  1752.                         local DataMenu
  1753.  
  1754.                         if typeof(Value) == "table" then
  1755.                             local Menu = Value.Menu or {}
  1756.  
  1757.                             local MenuAdded, MenuButton = TryAddMenu(DataItem, Menu, {})
  1758.  
  1759.                             MenuButton.ImageColor3 = Theme.DataTable
  1760.  
  1761.                             DataMenu = MenuButton
  1762.                         end
  1763.  
  1764.                         DataItem.MouseButton1Down:Connect(function()
  1765.                             BuildTable[Key] = not BuildTable[Key]
  1766.                             local Enabled = BuildTable[Key]
  1767.                             TweenService:Create(DataItem, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0.8 or 0, ImageColor3 = Enabled and Theme.DataTable or Theme.DataTableAccent}):Play()
  1768.                             TweenService:Create(Tick, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0 or 0.7}):Play()
  1769.                             TweenService:Create(DataTracker, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0 or 0.8}):Play()
  1770.                             DataTableCallback(BuildTable)
  1771.                         end)
  1772.                     end)
  1773.                 end
  1774.  
  1775.                 function DataTableLibrary:GetOptions()
  1776.                     return DataTableOptions
  1777.                 end
  1778.  
  1779.                 return DataTableLibrary
  1780.             end
  1781.         end
  1782.  
  1783.         function OptionLibrary.ColorPicker(ColorPickerConfig)
  1784.             local ColorPickerText = ColorPickerConfig.Text or "nil color picker"
  1785.             local ColorPickerCallback = ColorPickerConfig.Callback or function() print("nil color picker") end
  1786.             local ColorPickerDefault = ColorPickerConfig.Default or Color3.fromRGB(255,255,255)
  1787.             local ColorPickerMenu = ColorPickerConfig.Menu or {}
  1788.             local ColorPickerToggle = false
  1789.  
  1790.             local H, S, V = Objects.new("NumberValue"), Objects.new("NumberValue"), Objects.new("NumberValue")
  1791.  
  1792.             H.Value, S.Value, V.Value = Color3.toHSV(ColorPickerDefault)
  1793.  
  1794.             local ColorPicker = Objects.new("SmoothButton")
  1795.             ColorPicker.Name = "ColorPicker"
  1796.             ColorPicker.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,40)
  1797.             ColorPicker.ImageColor3 = Theme.ColorPicker
  1798.             ColorPicker.ImageTransparency = 1
  1799.             ColorPicker.ClipsDescendants = true
  1800.             ColorPicker.Parent = PageContentFrame
  1801.  
  1802.             ColorPicker.MouseButton1Down:Connect(function()
  1803.                 ColorPickerToggle = not ColorPickerToggle
  1804.                 TweenService:Create(ColorPicker, TweenInfo.new(0.15), {Size = UDim2.fromScale(1,0) + (ColorPickerToggle and UDim2.fromOffset(0,115) or UDim2.fromOffset(0,40))}):Play()
  1805.             end)
  1806.  
  1807.             local ColorBar = Objects.new("Round")
  1808.             ColorBar.Name = "TitleBar"
  1809.             ColorBar.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-10,30)
  1810.             ColorBar.Position = UDim2.fromOffset(5,5)
  1811.             ColorBar.ImageColor3 = Theme.ColorPickerAccent
  1812.             ColorBar.ImageTransparency = 1
  1813.             ColorBar.Parent = ColorPicker
  1814.  
  1815.             local ColorShadow = Objects.new("Shadow")
  1816.             ColorShadow.ImageColor3 = Theme.ColorPickerAccent
  1817.             ColorShadow.ImageTransparency = 1
  1818.             ColorShadow.Parent = ColorBar
  1819.  
  1820.             local ColorLabel = Objects.new("Label")
  1821.             ColorLabel.Name = "Title"
  1822.             ColorLabel.Font = Enum.Font.GothamSemibold
  1823.             ColorLabel.TextColor3 = Theme.ColorPickerAccent
  1824.             ColorLabel.TextSize = 14
  1825.             ColorLabel.Text = ColorPickerText
  1826.             ColorLabel.TextTransparency = 1
  1827.             ColorLabel.Parent = ColorBar
  1828.  
  1829.             local ColorTracker = Objects.new("Round")
  1830.             ColorTracker.Name = "Tracker"
  1831.             ColorTracker.Size = UDim2.fromOffset(50,20)
  1832.             ColorTracker.Position = UDim2.fromScale(1,0) + UDim2.fromOffset(-55,5)
  1833.             ColorTracker.ImageColor3 = ColorPickerDefault
  1834.             ColorTracker.ImageTransparency = 1
  1835.             ColorTracker.Parent = ColorBar
  1836.  
  1837.             local TrackerShadow = Objects.new("Shadow")
  1838.             TrackerShadow.ImageColor3 = ColorTracker.ImageColor3
  1839.             TrackerShadow.ImageTransparency = 1
  1840.             TrackerShadow.Parent = ColorTracker
  1841.  
  1842.             ColorTracker:GetPropertyChangedSignal("ImageColor3"):Connect(function()
  1843.                 TrackerShadow.ImageColor3 = ColorTracker.ImageColor3
  1844.             end)
  1845.  
  1846.             local Hue = Objects.new("Round")
  1847.             Hue.Name = "Container"
  1848.             Hue.Position = UDim2.fromOffset(5,40)
  1849.             Hue.Size = UDim2.fromOffset(25,20)
  1850.             Hue.ImageColor3 = Theme.ColorPickerAccent
  1851.             Hue.ImageTransparency = 0.8
  1852.             Hue.Parent = ColorPicker
  1853.  
  1854.             local Saturation = Hue:Clone()
  1855.             Saturation.Position = Saturation.Position + UDim2.fromOffset(0,25)
  1856.             Saturation.Parent = ColorPicker
  1857.  
  1858.             local Value = Saturation:Clone()
  1859.             Value.Position = Value.Position + UDim2.fromOffset(0,25)
  1860.             Value.Parent = ColorPicker
  1861.  
  1862.             local HueLabel = Objects.new("Label")
  1863.             HueLabel.Name = "Label"
  1864.             HueLabel.TextXAlignment = Enum.TextXAlignment.Center
  1865.             HueLabel.Position = UDim2.fromScale(0,0)
  1866.             HueLabel.Size = UDim2.fromScale(1,1)
  1867.             HueLabel.Text = "H"
  1868.             HueLabel.TextColor3 = Theme.ColorPickerAccent
  1869.             HueLabel.TextSize = 12
  1870.             HueLabel.Font = Enum.Font.GothamBold
  1871.             HueLabel.TextTransparency = 1
  1872.             HueLabel.Parent = Hue
  1873.  
  1874.             local SaturationLabel = HueLabel:Clone()
  1875.             SaturationLabel.Text = "S"
  1876.             SaturationLabel.Parent = Saturation
  1877.  
  1878.             local ValueLabel = HueLabel:Clone()
  1879.             ValueLabel.Text = "V"
  1880.             ValueLabel.Parent = Value
  1881.  
  1882.             local function CSK(T,C)
  1883.                 return ColorSequenceKeypoint.new(T,C)
  1884.             end
  1885.  
  1886.             local RainbowGradient = Objects.new("UIGradient")
  1887.             RainbowGradient.Color = ColorSequence.new({
  1888.                 CSK(0, Color3.fromRGB(255,0,0)),
  1889.                 CSK(0.157, Color3.fromRGB(255,0,255)),
  1890.                 CSK(0.323, Color3.fromRGB(0,0,255)),
  1891.                 CSK(0.488, Color3.fromRGB(0,255,255)),
  1892.                 CSK(0.66, Color3.fromRGB(0,255,0)),
  1893.                 CSK(0.817, Color3.fromRGB(255,255,0)),
  1894.                 CSK(1, Color3.fromRGB(255,0,0))
  1895.             })
  1896.  
  1897.             local BlackWhiteGradient = Objects.new("UIGradient")
  1898.             BlackWhiteGradient.Color = ColorSequence.new(
  1899.                 Color3.new(1,1,1),
  1900.                 Color3.new(0,0,0)
  1901.             )
  1902.  
  1903.             local SaturationGradient = Objects.new("UIGradient")
  1904.             SaturationGradient.Color = ColorSequence.new(
  1905.                 Color3.fromHSV(H.Value,1,V.Value),
  1906.                 Color3.new(0,0,0):Lerp(Color3.fromRGB(255,255,255), V.Value)
  1907.             )
  1908.  
  1909.             local HueTracker = Objects.new("SmoothButton")
  1910.             HueTracker.Name = "Tracker"
  1911.             HueTracker.ImageColor3 = Color3.fromRGB(255,255,255)
  1912.             HueTracker.ImageTransparency = 1
  1913.             HueTracker.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-40,20)
  1914.             HueTracker.Position = UDim2.fromOffset(35,40)
  1915.             HueTracker.Parent = ColorPicker
  1916.  
  1917.             local SaturationTracker = HueTracker:Clone()
  1918.             SaturationTracker.Position = SaturationTracker.Position + UDim2.fromOffset(0,25)
  1919.             SaturationTracker.Parent = ColorPicker
  1920.  
  1921.             local ValueTracker = SaturationTracker:Clone()
  1922.             ValueTracker.Position = ValueTracker.Position + UDim2.fromOffset(0,25)
  1923.             ValueTracker.Parent = ColorPicker
  1924.  
  1925.             local HueShadow = Objects.new("Shadow")
  1926.             HueShadow.ImageColor3 = Color3.fromRGB(255,255,255)
  1927.             HueShadow.ImageTransparency = 1
  1928.             HueShadow.Parent = HueTracker
  1929.  
  1930.             local SaturationShadow = HueShadow:Clone()
  1931.             SaturationShadow.Parent = SaturationTracker
  1932.  
  1933.             local ValueShadow = HueShadow:Clone()
  1934.             ValueShadow.Parent = ValueTracker
  1935.  
  1936.             local HueGrad = RainbowGradient:Clone()
  1937.             HueGrad.Parent = HueTracker
  1938.             local HueShadowGrad = RainbowGradient:Clone()
  1939.             HueShadowGrad.Parent = HueShadow
  1940.  
  1941.             local ValueGrad = BlackWhiteGradient:Clone()
  1942.             ValueGrad.Parent = ValueTracker
  1943.             local ValueShadowGrad = BlackWhiteGradient:Clone()
  1944.             ValueShadowGrad.Parent = ValueShadow
  1945.  
  1946.             local SaturationGrad = SaturationGradient:Clone()
  1947.             SaturationGrad.Parent = SaturationTracker
  1948.             local SaturationShadowGrad = SaturationGradient:Clone()
  1949.             SaturationShadowGrad.Parent = SaturationShadow
  1950.  
  1951.             TweenService:Create(ColorPicker, TweenInfo.new(0.5), {ImageTransparency = 0.5}):Play()
  1952.             TweenService:Create(ColorBar, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  1953.             TweenService:Create(ColorShadow, TweenInfo.new(0.5), {ImageTransparency = 0.5}):Play()
  1954.             TweenService:Create(ColorLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1955.             TweenService:Create(HueLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1956.             TweenService:Create(SaturationLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1957.             TweenService:Create(ValueLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1958.             TweenService:Create(ColorTracker, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1959.             TweenService:Create(TrackerShadow, TweenInfo.new(0.5), {ImageTransparency = 0.2}):Play()
  1960.             TweenService:Create(HueTracker, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1961.             TweenService:Create(ValueTracker, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1962.             TweenService:Create(SaturationTracker, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1963.             TweenService:Create(HueShadow, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1964.             TweenService:Create(SaturationShadow, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1965.             TweenService:Create(ValueShadow, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1966.  
  1967.             H:GetPropertyChangedSignal("Value"):Connect(function()
  1968.                 ColorTracker.ImageColor3 = Color3.fromHSV(H.Value,S.Value,V.Value)
  1969.                 SaturationGrad.Color = ColorSequence.new(
  1970.                     Color3.fromHSV(H.Value,1,V.Value),
  1971.                     Color3.fromRGB(0,0,0):Lerp(Color3.fromRGB(255,255,255),V.Value)
  1972.                 )
  1973.                 SaturationShadowGrad.Color = ColorSequence.new(
  1974.                     Color3.fromHSV(H.Value,1,V.Value),
  1975.                     Color3.fromRGB(0,0,0):Lerp(Color3.fromRGB(255,255,255),V.Value)
  1976.                 )
  1977.                 ColorPickerCallback(Color3.fromHSV(H.Value,S.Value,V.Value))
  1978.             end)
  1979.  
  1980.             S:GetPropertyChangedSignal("Value"):Connect(function()
  1981.                 ColorTracker.ImageColor3 = Color3.fromHSV(H.Value,S.Value,V.Value)
  1982.                 SaturationGrad.Color = ColorSequence.new(
  1983.                     Color3.fromHSV(H.Value,1,V.Value),
  1984.                     Color3.fromRGB(0,0,0):Lerp(Color3.fromRGB(255,255,255),V.Value)
  1985.                 )
  1986.                 SaturationShadowGrad.Color = ColorSequence.new(
  1987.                     Color3.fromHSV(H.Value,1,V.Value),
  1988.                     Color3.fromRGB(0,0,0):Lerp(Color3.fromRGB(255,255,255),V.Value)
  1989.                 )
  1990.                 ColorPickerCallback(Color3.fromHSV(H.Value,S.Value,V.Value))
  1991.             end)
  1992.  
  1993.             V:GetPropertyChangedSignal("Value"):Connect(function()
  1994.                 ColorTracker.ImageColor3 = Color3.fromHSV(H.Value,S.Value,V.Value)
  1995.                 SaturationGrad.Color = ColorSequence.new(
  1996.                     Color3.fromHSV(H.Value,1,V.Value),
  1997.                     Color3.fromRGB(0,0,0):Lerp(Color3.fromRGB(255,255,255),V.Value)
  1998.                 )
  1999.                 SaturationShadowGrad.Color = ColorSequence.new(
  2000.                     Color3.fromHSV(H.Value,1,V.Value),
  2001.                     Color3.fromRGB(0,0,0):Lerp(Color3.fromRGB(255,255,255),V.Value)
  2002.                 )
  2003.                 ColorPickerCallback(Color3.fromHSV(H.Value,S.Value,V.Value))
  2004.             end)
  2005.  
  2006.             HueTracker.MouseButton1Down:Connect(function()
  2007.                 H.Value = 1 - GetXY(HueTracker)
  2008.                 local MouseMove, MouseKill
  2009.                 MouseMove = Mouse.Move:Connect(function()
  2010.                     H.Value = 1 - GetXY(HueTracker)
  2011.                 end)
  2012.                 MouseKill = InputService.InputEnded:Connect(function(UserInput)
  2013.                     if UserInput.UserInputType == Enum.UserInputType.MouseButton1 then
  2014.                         MouseMove:Disconnect()
  2015.                         MouseKill:Disconnect()
  2016.                     end
  2017.                 end)
  2018.             end)
  2019.  
  2020.             ValueTracker.MouseButton1Down:Connect(function()
  2021.                 V.Value = 1 - GetXY(HueTracker)
  2022.                 local MouseMove, MouseKill
  2023.                 MouseMove = Mouse.Move:Connect(function()
  2024.                     V.Value = 1 - GetXY(HueTracker)
  2025.                 end)
  2026.                 MouseKill = InputService.InputEnded:Connect(function(UserInput)
  2027.                     if UserInput.UserInputType == Enum.UserInputType.MouseButton1 then
  2028.                         MouseMove:Disconnect()
  2029.                         MouseKill:Disconnect()
  2030.                     end
  2031.                 end)
  2032.             end)
  2033.  
  2034.             SaturationTracker.MouseButton1Down:Connect(function()
  2035.                 S.Value = 1 - GetXY(HueTracker)
  2036.                 local MouseMove, MouseKill
  2037.                 MouseMove = Mouse.Move:Connect(function()
  2038.                     S.Value = 1 - GetXY(HueTracker)
  2039.                 end)
  2040.                 MouseKill = InputService.InputEnded:Connect(function(UserInput)
  2041.                     if UserInput.UserInputType == Enum.UserInputType.MouseButton1 then
  2042.                         MouseMove:Disconnect()
  2043.                         MouseKill:Disconnect()
  2044.                     end
  2045.                 end)
  2046.             end)
  2047.  
  2048.             local MenuAdded, MenuButton = TryAddMenu(ColorLabel, ColorPickerMenu, {})
  2049.  
  2050.             if MenuAdded then
  2051.                 ColorTracker.Position = ColorTracker.Position - UDim2.fromOffset(25,0)
  2052.                 MenuButton.ImageColor3 = Theme.ColorPickerAccent
  2053.             end
  2054.  
  2055.             local ColorPickerLibrary = {}
  2056.  
  2057.             function ColorPickerLibrary:SetText(Value)
  2058.                 ColorLabel.Text = Value
  2059.             end
  2060.  
  2061.             function ColorPickerLibrary:GetText()
  2062.                 return ColorLabel.Text
  2063.             end
  2064.  
  2065.             function ColorPickerLibrary:SetColor(Value)
  2066.                 H.Value, S.Value, V.Value = Color3.toHSV(Value)
  2067.             end
  2068.  
  2069.             function ColorPickerLibrary:GetColor()
  2070.                 return ColorTracker.ImageColor3
  2071.             end
  2072.  
  2073.             return ColorPickerLibrary
  2074.         end
  2075.  
  2076.         function OptionLibrary.Toggle(ToggleConfig)
  2077.             local ToggleText = ToggleConfig.Text or "nil toggle"
  2078.             local ToggleCallback = ToggleConfig.Callback or function() print("nil toggle") end
  2079.             local ToggleDefault = ToggleConfig.Enabled or false
  2080.             local Menu = ToggleConfig.Menu or {}
  2081.  
  2082.             local Toggle = Objects.new("SmoothButton")
  2083.             Toggle.Name = "Toggle"
  2084.             Toggle.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  2085.             Toggle.ImageColor3 = Theme.Toggle
  2086.             Toggle.ImageTransparency = 1
  2087.             Toggle.Parent = PageContentFrame
  2088.  
  2089.             local ToggleTracker = Objects.new("Round")
  2090.             ToggleTracker.Name = "Tracker"
  2091.             ToggleTracker.Image = "rbxassetid://3570695787"
  2092.             ToggleTracker.SliceCenter = Rect.new(100,100,100,100)
  2093.             ToggleTracker.SliceScale = 1
  2094.             ToggleTracker.Size = UDim2.fromOffset(26,12)
  2095.             ToggleTracker.Position = UDim2.fromScale(1,0.5) - UDim2.fromOffset(41,6)
  2096.             ToggleTracker.ImageColor3 = Theme.Toggle
  2097.             ToggleTracker.ImageTransparency = 1
  2098.             ToggleTracker.Parent = Toggle
  2099.  
  2100.             local Dot = Objects.new("Circle")
  2101.             Dot.Name = "Dot"
  2102.             Dot.Size = UDim2.fromOffset(16,16)
  2103.             Dot.Position = UDim2.fromScale(0,0.5) - UDim2.fromOffset(8,8)
  2104.             Dot.ImageColor3 = Theme.ToggleAccent
  2105.             Dot.ImageTransparency = 1
  2106.             Dot.Parent = ToggleTracker
  2107.  
  2108.             local DotShadow = Objects.new("Round")
  2109.             DotShadow.Name = "Shadow"
  2110.             DotShadow.Image = "http://www.roblox.com/asset/?id=5554831957"
  2111.             DotShadow.ScaleType = Enum.ScaleType.Stretch
  2112.             DotShadow.Size = UDim2.fromOffset(31,31)
  2113.             DotShadow.Position = UDim2.fromOffset(-8,-8)
  2114.             DotShadow.ImageColor3 = Theme.Toggle
  2115.             DotShadow.ImageTransparency = 1
  2116.             DotShadow.Parent = Dot
  2117.  
  2118.             local ToggleLabel = Objects.new("Label")
  2119.             ToggleLabel.Font = Enum.Font.GothamSemibold
  2120.             ToggleLabel.TextSize = 14
  2121.             ToggleLabel.Text = ToggleText
  2122.             ToggleLabel.TextColor3 = Theme.Toggle
  2123.             ToggleLabel.TextTransparency = 1
  2124.             ToggleLabel.ClipsDescendants = true
  2125.             ToggleLabel.Parent = Toggle
  2126.  
  2127.             TweenService:Create(Toggle, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  2128.             TweenService:Create(ToggleTracker, TweenInfo.new(0.5), {ImageTransparency = 0.5}):Play()
  2129.             TweenService:Create(Dot, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  2130.             TweenService:Create(DotShadow, TweenInfo.new(0.5), {ImageTransparency = 0.5}):Play()
  2131.             TweenService:Create(ToggleLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  2132.  
  2133.             TweenService:Create(Dot, TweenInfo.new(0.15), {Position = (ToggleDefault and UDim2.fromScale(1,0.5) or UDim2.fromScale(0,0.5)) - UDim2.fromOffset(8,8), ImageColor3 = ToggleDefault and Theme.Toggle or Theme.ToggleAccent}):Play()
  2134.             ToggleCallback(ToggleDefault)
  2135.  
  2136.             Toggle.MouseButton1Down:Connect(function()
  2137.                 ToggleDefault = not ToggleDefault
  2138.                 TweenService:Create(Dot, TweenInfo.new(0.15), {Position = (ToggleDefault and UDim2.fromScale(1,0.5) or UDim2.fromScale(0,0.5)) - UDim2.fromOffset(8,8), ImageColor3 = ToggleDefault and Theme.Toggle or Theme.ToggleAccent}):Play()
  2139.                 ToggleCallback(ToggleDefault)
  2140.                 CircleAnim(ToggleLabel, Theme.ToggleAccent, Theme.Toggle)
  2141.             end)
  2142.  
  2143.             local MenuAdded, MenuButton = TryAddMenu(Toggle, Menu, {})
  2144.  
  2145.             if MenuAdded then
  2146.                 ToggleTracker.Position = ToggleTracker.Position - UDim2.fromOffset(15,0)
  2147.                 MenuButton.ImageColor3 = Theme.Toggle
  2148.             end
  2149.  
  2150.             local ToggleLibrary = {}
  2151.  
  2152.             function ToggleLibrary:SetText(Value)
  2153.                 ToggleLabel.Text = Value
  2154.             end
  2155.  
  2156.             function ToggleLibrary:GetText()
  2157.                 return ToggleLabel.Text
  2158.             end
  2159.  
  2160.             function ToggleLibrary:SetState(Value)
  2161.                 ToggleDefault = Value
  2162.                 TweenService:Create(Dot, TweenInfo.new(0.15), {Position = (ToggleDefault and UDim2.fromScale(1,0.5) or UDim2.fromScale(0,0.5)) - UDim2.fromOffset(8,8), ImageColor3 = ToggleDefault and Theme.Toggle or Theme.ToggleAccent}):Play()
  2163.                 ToggleCallback(ToggleDefault)
  2164.             end
  2165.  
  2166.             function ToggleLibrary:GetState()
  2167.                 return ToggleDefault
  2168.             end
  2169.  
  2170.             return ToggleLibrary
  2171.         end
  2172.  
  2173.         function OptionLibrary.TextField(TextFieldConfig)
  2174.             local TextFieldText = TextFieldConfig.Text or "nil text field"
  2175.             local TextFieldInputType = TextFieldConfig.Type or TextFieldConfig.type or "Default"
  2176.             local TextFieldCallback = TextFieldConfig.Callback or function() print("nil text field") end
  2177.             local Menu = TextFieldConfig.Menu or {}
  2178.  
  2179.             local TextField = Objects.new("Round")
  2180.             TextField.Name = "TextField"
  2181.             TextField.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  2182.             TextField.ImageColor3 = Theme.TextField
  2183.             TextField.ImageTransparency = 1
  2184.             TextField.Parent = PageContentFrame
  2185.  
  2186.             local TextEffect = Objects.new("Frame")
  2187.             TextEffect.Name = "Effect"
  2188.             TextEffect.BackgroundTransparency = 1
  2189.             TextEffect.BackgroundColor3 = Theme.TextField
  2190.             TextEffect.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,2)
  2191.             TextEffect.Position = UDim2.fromScale(0,1) - UDim2.fromOffset(0,2)
  2192.             TextEffect.Parent = TextField
  2193.  
  2194.             local TextShadow = Objects.new("Shadow")
  2195.             TextShadow.ImageColor3 = Theme.TextField
  2196.             TextShadow.ImageTransparency = 1
  2197.             TextShadow.Parent = TextField
  2198.  
  2199.             local TextInput = Objects.new("Box")
  2200.             TextInput.Name = "Value"
  2201.             TextInput.PlaceholderText = TextFieldText
  2202.             TextInput.PlaceholderColor3 = Theme.TextFieldAccent
  2203.             TextInput.TextInputType = Enum.TextInputType[TextFieldInputType]
  2204.             TextInput.TextColor3 = Theme.TextFieldAccent
  2205.             TextInput.Text = ""
  2206.             TextInput.Font = Enum.Font.GothamSemibold
  2207.             TextInput.TextSize = 14
  2208.             TextInput.TextTransparency = 1
  2209.             TextInput.Parent = TextField
  2210.  
  2211.             TweenService:Create(TextField, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  2212.             TweenService:Create(TextEffect, TweenInfo.new(0.5), {BackgroundTransparency = 0.2}):Play()
  2213.             TweenService:Create(TextShadow, TweenInfo.new(0.5), {ImageTransparency = 0.7}):Play()
  2214.             TweenService:Create(TextInput, TweenInfo.new(0.5), {TextTransparency = 0.5}):Play()
  2215.  
  2216.             TextInput.Focused:Connect(function()
  2217.                 TweenService:Create(TextField, TweenInfo.new(0.5), {ImageTransparency = 0.7}):Play()
  2218.                 TweenService:Create(TextInput, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  2219.             end)
  2220.  
  2221.             TextInput.FocusLost:Connect(function()
  2222.                 TweenService:Create(TextField, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  2223.                 TweenService:Create(TextInput, TweenInfo.new(0.5), {TextTransparency = 0.5}):Play()
  2224.                 TextFieldCallback(TextInput.Text)
  2225.             end)
  2226.  
  2227.             local MenuAdded, MenuBar = TryAddMenu(TextField, Menu, {
  2228.                 SetText = function(Value)
  2229.                     TextInput.Text = Value
  2230.                     TextFieldCallback(TextInput.Text)
  2231.                 end
  2232.             })
  2233.  
  2234.             if MenuAdded then
  2235.                 MenuBar.ImageColor3 = Theme.TextFieldAccent
  2236.             end
  2237.  
  2238.             local TextFieldLibrary = {}
  2239.  
  2240.             function TextFieldLibrary:SetText(Value)
  2241.                 TextInput.Text = Value
  2242.             end
  2243.  
  2244.             function TextFieldLibrary:GetText()
  2245.                 return TextInput.Text
  2246.             end
  2247.  
  2248.             return TextFieldLibrary
  2249.         end
  2250.  
  2251.         function OptionLibrary.Label(LabelConfig)
  2252.             local LabelText = LabelConfig.Text or "nil label"
  2253.  
  2254.             local LabelContainer = Objects.new("Round")
  2255.             LabelContainer.Name = "Label"
  2256.             LabelContainer.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,20)
  2257.             LabelContainer.ImageColor3 = Theme.MainFrame
  2258.             LabelContainer.Parent = PageContentFrame
  2259.  
  2260.             local LabelContent = Objects.new("Label")
  2261.             LabelContent.TextColor3 = Theme.ChipSet
  2262.             LabelContent.Text = LabelText:upper()
  2263.             LabelContent.TextSize = 12
  2264.             LabelContent.Font = Enum.Font.GothamSemibold
  2265.             LabelContent.Size = UDim2.fromScale(1,1) + UDim2.fromOffset(-5,0)
  2266.             LabelContent.Position = UDim2.fromOffset(5,0)
  2267.             LabelContent.Parent = LabelContainer
  2268.  
  2269.             local LabelOptions = {}
  2270.  
  2271.             function LabelOptions.SetText(Text)
  2272.                 LabelContent.Text = Text
  2273.             end
  2274.  
  2275.             return LabelOptions
  2276.         end
  2277.  
  2278.         function OptionLibrary.Slider(SliderConfig)
  2279.             local SliderText = SliderConfig.Text or "nil slider"
  2280.             local SliderCallback = SliderConfig.Callback or function() print("nil slider") end
  2281.             local SliderMin = SliderConfig.Min or 0
  2282.             local SliderMax = SliderConfig.Max or 100
  2283.             local SliderPrecision = SliderConfig.Precision or 0
  2284.             local Menu = SliderConfig.Menu or {}
  2285.  
  2286.             if SliderMin > SliderMax then
  2287.                 local ValueBefore = SliderMin
  2288.                 SliderMin, SliderMax = SliderMax, ValueBefore
  2289.             end
  2290.  
  2291.             local SliderDef = math.clamp(SliderConfig.Def, SliderMin, SliderMax) or math.clamp(50, SliderMin, SliderMax)
  2292.             local DefaultScale = (SliderDef - SliderMin) / (SliderMax - SliderMin)
  2293.  
  2294.             local Slider = Objects.new("Round")
  2295.             Slider.Name = "Slider"
  2296.             Slider.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,35)
  2297.             Slider.ImageColor3 = Theme.Slider
  2298.             Slider.ImageTransparency = 1
  2299.             Slider.Parent = PageContentFrame
  2300.  
  2301.             local SliderShadow = Objects.new("Shadow")
  2302.             SliderShadow.ImageColor3 = Theme.Slider
  2303.             SliderShadow.ImageTransparency = 1
  2304.             SliderShadow.Parent = Slider
  2305.  
  2306.             local SliderTitle = Objects.new("Label")
  2307.             SliderTitle.TextColor3 = Theme.SliderAccent
  2308.             SliderTitle.Text = SliderText
  2309.             SliderTitle.TextSize = 14
  2310.             SliderTitle.Font = Enum.Font.GothamSemibold
  2311.             SliderTitle.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-5,25)
  2312.             SliderTitle.TextTransparency = 1
  2313.             SliderTitle.Parent = Slider
  2314.  
  2315.             local SliderValue = Objects.new("Label")
  2316.             SliderValue.Text = tostring(SliderDef)
  2317.             SliderValue.TextColor3 = Theme.SliderAccent
  2318.             SliderValue.TextTransparency = 1
  2319.             SliderValue.TextSize = 14
  2320.             SliderValue.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-5,25)
  2321.             SliderValue.Position = UDim2.fromScale(0,0)
  2322.             SliderValue.TextXAlignment = Enum.TextXAlignment.Right
  2323.             SliderValue.Font = Enum.Font.GothamSemibold
  2324.             SliderValue.Parent = Slider
  2325.  
  2326.             local SliderTracker = Objects.new("Frame")
  2327.             SliderTracker.BackgroundColor3 = Theme.SliderAccent
  2328.             SliderTracker.BackgroundTransparency = 1
  2329.             SliderTracker.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-20,3)
  2330.             SliderTracker.Position = UDim2.fromScale(0,1) + UDim2.fromOffset(10,-10)
  2331.             SliderTracker.Parent = Slider
  2332.  
  2333.             local SliderFill = SliderTracker:Clone()
  2334.             SliderFill.BackgroundTransparency = 1
  2335.             SliderFill.Position = UDim2.fromScale(0,0)
  2336.             SliderFill.Size = UDim2.fromScale(DefaultScale,1)
  2337.             SliderFill.Parent = SliderTracker
  2338.  
  2339.             local MinSize = 10
  2340.             local MaxSize = 36
  2341.  
  2342.             local SizeFromScale = (MinSize +  (MaxSize - MinSize)) * DefaultScale
  2343.             SizeFromScale = SizeFromScale - (SizeFromScale % 2)
  2344.  
  2345.             local SliderDot = Objects.new("CircleButton")
  2346.             SliderDot.Size = UDim2.fromOffset(10,10)
  2347.             SliderDot.Position = UDim2.fromScale(DefaultScale,0.5) - UDim2.fromOffset(5,5)
  2348.             SliderDot.ImageColor3 = Theme.SliderAccent
  2349.             SliderDot.ImageTransparency = 1
  2350.             SliderDot.ZIndex = 50
  2351.             SliderDot.Parent = SliderTracker
  2352.  
  2353.             local SliderFadedDot = Objects.new("Circle")
  2354.             SliderFadedDot.Size = UDim2.fromOffset(SizeFromScale,SizeFromScale)
  2355.             SliderFadedDot.Position = UDim2.fromScale(0.5,0.5) - UDim2.fromOffset(SizeFromScale/2,SizeFromScale/2)
  2356.             SliderFadedDot.ImageColor3 = Theme.SliderAccent
  2357.             SliderFadedDot.ImageTransparency = 1
  2358.             SliderFadedDot.ZIndex = 50
  2359.             SliderFadedDot.Parent = SliderDot
  2360.  
  2361.             TweenService:Create(Slider, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  2362.             TweenService:Create(SliderShadow, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  2363.             TweenService:Create(SliderTitle, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  2364.             TweenService:Create(SliderValue, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  2365.             TweenService:Create(SliderTracker, TweenInfo.new(0.5), {BackgroundTransparency = 0.5}):Play()
  2366.             TweenService:Create(SliderFill, TweenInfo.new(0.5), {BackgroundTransparency = 0}):Play()
  2367.             TweenService:Create(SliderDot, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  2368.  
  2369.             SliderDot.MouseButton1Down:Connect(function()
  2370.                 TweenService:Create(SliderFadedDot, TweenInfo.new(0.15), {ImageTransparency = 0.8}):Play()
  2371.                 local MouseMove, MouseKill
  2372.                 MouseMove = Mouse.Move:Connect(function()
  2373.                     local Px = GetXY(SliderTracker)
  2374.                     local SizeFromScale = (MinSize +  (MaxSize - MinSize)) * Px
  2375.                     local Power = 10 ^ SliderPrecision
  2376.                     local Value = math.floor((SliderMin + ((SliderMax - SliderMin) * Px)) * Power) / Power
  2377.                     SizeFromScale = SizeFromScale - (SizeFromScale % 2)
  2378.                     TweenService:Create(SliderDot, TweenInfo.new(0.15), {Position = UDim2.fromScale(Px,0.5) - UDim2.fromOffset(5,5)}):Play()
  2379.                     TweenService:Create(SliderFill, TweenInfo.new(0.15), {Size = UDim2.fromScale(Px, 1)}):Play()
  2380.                     SliderFadedDot.Size = UDim2.fromOffset(SizeFromScale,SizeFromScale)
  2381.                     SliderFadedDot.Position = UDim2.fromScale(0.5,0.5) - UDim2.fromOffset(SizeFromScale/2,SizeFromScale/2)
  2382.                     SliderValue.Text = tostring(Value)
  2383.                     SliderCallback(Value)
  2384.                 end)
  2385.                 MouseKill = InputService.InputEnded:Connect(function(UserInput)
  2386.                     if UserInput.UserInputType == Enum.UserInputType.MouseButton1 then
  2387.                         TweenService:Create(SliderFadedDot, TweenInfo.new(0.15), {ImageTransparency = 1}):Play()
  2388.                         MouseMove:Disconnect()
  2389.                         MouseKill:Disconnect()
  2390.                     end
  2391.                 end)
  2392.             end)
  2393.  
  2394.             local MenuAdded, MenuButton = TryAddMenu(Slider, Menu, {})
  2395.  
  2396.             if MenuAdded then
  2397.                 SliderValue.Position = SliderValue.Position - UDim2.fromOffset(25,0)
  2398.                 SliderTracker.Size = SliderTracker.Size - UDim2.fromOffset(20,0)
  2399.                 MenuButton.ImageColor3 = Theme.SliderAccent
  2400.             end
  2401.  
  2402.             local SliderLibrary = {}
  2403.  
  2404.             function SliderLibrary:SetText(Value)
  2405.                 SliderTitle.Text = Value
  2406.             end
  2407.  
  2408.             function SliderLibrary:GetText()
  2409.                 return SliderTitle.Text
  2410.             end
  2411.  
  2412.             function SliderLibrary:GetValue()
  2413.                 return tonumber(SliderValue.Text)
  2414.             end
  2415.  
  2416.             function SliderLibrary:SetMin(Value)
  2417.                 SliderMin = Value
  2418.                 local SliderDef = math.clamp(SliderConfig.Def, SliderMin, SliderMax) or math.clamp(50, SliderMin, SliderMax)
  2419.                 local DefaultScale =  (SliderDef - SliderMin) / (SliderMax - SliderMin)
  2420.                 local SizeFromScale = (MinSize +  (MaxSize - MinSize)) * DefaultScale
  2421.                 SizeFromScale = SizeFromScale - (SizeFromScale % 2)
  2422.                 SliderDot.Position = UDim2.fromScale(DefaultScale,0.5) - UDim2.fromOffset(SizeFromScale/2,SizeFromScale/2)
  2423.             end
  2424.  
  2425.             function SliderLibrary:SetMax(Value)
  2426.                 SliderMax = Value
  2427.                 local SliderDef = math.clamp(SliderConfig.Def, SliderMin, SliderMax) or math.clamp(50, SliderMin, SliderMax)
  2428.                 local DefaultScale =  (SliderDef - SliderMin) / (SliderMax - SliderMin)
  2429.                 local SizeFromScale = (MinSize +  (MaxSize - MinSize)) * DefaultScale
  2430.                 SizeFromScale = SizeFromScale - (SizeFromScale % 2)
  2431.                 SliderDot.Position = UDim2.fromScale(DefaultScale,0.5) - UDim2.fromOffset(SizeFromScale/2,SizeFromScale/2)
  2432.             end
  2433.  
  2434.             function SliderLibrary:GetMin()
  2435.                 return SliderMin
  2436.             end
  2437.  
  2438.             function SliderLibrary:GetMax()
  2439.                 return SliderMax
  2440.             end
  2441.  
  2442.             return SliderLibrary
  2443.         end
  2444.  
  2445.         return OptionLibrary
  2446.     end
  2447.  
  2448.     return TabLibrary
  2449. end
  2450.  
  2451. return Material
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement