Potato228

Libray UI 2

Apr 15th, 2022 (edited)
1,170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 89.50 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,106,0),
  15.         MinimiseAccent = Color3.fromRGB(147,59,0),
  16.         Maximise = Color3.fromRGB(25,255,0),
  17.         MaximiseAccent = Color3.fromRGB(0,255,110),
  18.         NavBar = Color3.fromRGB(124,37,255),
  19.         NavBarAccent = Color3.fromRGB(255,255,255),
  20.         NavBarInvert = Color3.fromRGB(30,30,30),
  21.         TitleBar = Color3.fromRGB(124,37,255),
  22.         TitleBarAccent = Color3.fromRGB(255,255,255),
  23.         Overlay = Color3.fromRGB(124,37,255),
  24.         Banner = Color3.fromRGB(255,255,255),
  25.         BannerAccent = Color3.fromRGB(124,37,255),
  26.         Content = Color3.fromRGB(124,37,255),
  27.         Button = Color3.fromRGB(124,37,255),
  28.         ButtonAccent = Color3.fromRGB(255,255,255),
  29.         ChipSet = Color3.fromRGB(124,37,255),
  30.         ChipSetAccent = Color3.fromRGB(255,255,255),
  31.         DataTable = Color3.fromRGB(124,37,255),
  32.         DataTableAccent = Color3.fromRGB(255,255,255),
  33.         Slider = Color3.fromRGB(255,255,255),
  34.         SliderAccent = Color3.fromRGB(124,37,255),
  35.         Toggle = Color3.fromRGB(124,37,255),
  36.         ToggleAccent = Color3.fromRGB(255,255,255),
  37.         Dropdown = Color3.fromRGB(255,255,255),
  38.         DropdownAccent = Color3.fromRGB(124,37,255),
  39.         ColorPicker = Color3.fromRGB(255,255,255),
  40.         ColorPickerAccent = Color3.fromRGB(124,37,255),
  41.         TextField = Color3.fromRGB(124,37,255),
  42.         TextFieldAccent = Color3.fromRGB(124,37,255),
  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(98, 98, 98),
  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 DropdownCallback = DropdownConfig.Callback or function() print("nil dropdown") end
  1145.             local DropdownOptions = DropdownConfig.Options or {}
  1146.             local Menu = DropdownConfig.Menu or {}
  1147.  
  1148.             local Dropdown = Objects.new("Frame")
  1149.             Dropdown.Name = "Dropdown"
  1150.             Dropdown.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  1151.             Dropdown.Parent = PageContentFrame
  1152.  
  1153.             local DropdownBar = Objects.new("Round")
  1154.             DropdownBar.Name = "TitleBar"
  1155.             DropdownBar.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  1156.             DropdownBar.ImageColor3 = Theme.Dropdown
  1157.             DropdownBar.ImageTransparency = 1
  1158.             DropdownBar.Parent = Dropdown
  1159.  
  1160.             local DropdownTitle = Objects.new("Button")
  1161.             DropdownTitle.Name = "Title"
  1162.             DropdownTitle.Font = Enum.Font.GothamSemibold
  1163.             DropdownTitle.Text = DropdownText
  1164.             DropdownTitle.TextColor3 = Theme.DropdownAccent
  1165.             DropdownTitle.TextTransparency = 1
  1166.             DropdownTitle.TextSize = 14
  1167.             DropdownTitle.Parent = DropdownBar
  1168.  
  1169.             local DropdownToggle = Objects.new("Round")
  1170.             DropdownToggle.Name = "Container"
  1171.             DropdownToggle.Size = UDim2.fromOffset(24,24)
  1172.             DropdownToggle.Position = UDim2.fromScale(1,0.5) - UDim2.fromOffset(27,12)
  1173.             DropdownToggle.ImageColor3 = Theme.DropdownAccent
  1174.             DropdownToggle.ImageTransparency = 1 -- 0.8
  1175.             DropdownToggle.Parent = DropdownBar
  1176.  
  1177.             local DropdownButton = Objects.new("Round")
  1178.             DropdownButton.Name = "Drop"
  1179.             DropdownButton.Image = "http://www.roblox.com/asset/?id=5574299686"
  1180.             DropdownButton.ScaleType = Enum.ScaleType.Stretch
  1181.             DropdownButton.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(4,4)
  1182.             DropdownButton.Position = UDim2.fromOffset(2,2)
  1183.             DropdownButton.ImageColor3 = Theme.DropdownAccent
  1184.             DropdownButton.ImageTransparency = 1
  1185.             DropdownButton.Parent = DropdownToggle
  1186.  
  1187.             TweenService:Create(DropdownBar, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1188.             TweenService:Create(DropdownTitle, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1189.             TweenService:Create(DropdownToggle, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  1190.             TweenService:Create(DropdownButton, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1191.  
  1192.             local DropdownContent = Objects.new("Frame")
  1193.             DropdownContent.Name = "Content"
  1194.             DropdownContent.Size = UDim2.fromScale(1,0)
  1195.             DropdownContent.Position = UDim2.fromOffset(0,35)
  1196.             DropdownContent.ClipsDescendants = true
  1197.             DropdownContent.Parent = Dropdown
  1198.  
  1199.             local NumberOfOptions = #DropdownOptions
  1200.             local DropToggle = false
  1201.             local DropdownSize = UDim2.fromScale(1,0) + UDim2.fromOffset(0,(NumberOfOptions*20) + ((NumberOfOptions - 1) * 5))
  1202.  
  1203.             local DropdownList = Objects.new("UIListLayout")
  1204.             DropdownList.SortOrder = Enum.SortOrder.LayoutOrder
  1205.             DropdownList.Padding = UDim.new(0,5)
  1206.             DropdownList.Parent = DropdownContent
  1207.  
  1208.             DropdownList:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
  1209.                 if DropToggle then
  1210.                     DropdownContent.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(DropdownList.AbsoluteContentSize.Y)
  1211.                     DropdownSize = UDim2.fromScale(1,0) + UDim2.fromOffset(DropdownList.AbsoluteContentSize.Y)
  1212.                 end
  1213.             end)
  1214.  
  1215.             table.foreach(DropdownOptions, function(_, Value)
  1216.                 local NewButton = CreateNewButton({
  1217.                     Text = Value,
  1218.                     Callback = function() end
  1219.                 }, DropdownContent)
  1220.  
  1221.                 NewButton.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,20)
  1222.                 NewButton.MouseButton1Down:Connect(function()
  1223.                     DropdownCallback(Value)
  1224.                     DropdownTitle.Text = DropdownText..": "..Value
  1225.                 end)
  1226.             end)
  1227.  
  1228.             DropdownTitle.MouseButton1Down:Connect(function()
  1229.                 DropToggle = not DropToggle
  1230.                 TweenService:Create(DropdownButton, TweenInfo.new(0.15), {Rotation = DropToggle and 135 or 0}):Play()
  1231.                 TweenService:Create(DropdownContent, TweenInfo.new(0.15), {Size = DropToggle and DropdownSize or UDim2.fromScale(1,0)}):Play()
  1232.                 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()
  1233.             end)
  1234.  
  1235.             local MenuAdded, MenuButton = TryAddMenu(DropdownBar, Menu, {})
  1236.  
  1237.             if MenuAdded then
  1238.                 DropdownToggle.Position = DropdownToggle.Position - UDim2.fromOffset(25,0)
  1239.                 MenuButton.ImageColor3 = Theme.DropdownAccent
  1240.             end
  1241.  
  1242.             local DropdownLibrary = {}
  1243.  
  1244.             function DropdownLibrary:SetText(Value)
  1245.                 DropdownTitle.Text = Value
  1246.             end
  1247.  
  1248.             function DropdownLibrary:GetText()
  1249.                 return DropdownTitle.Text
  1250.             end
  1251.  
  1252.             function DropdownLibrary:SetOptions(NewMenu)
  1253.                 DropdownOptions = NewMenu or {}
  1254.                 NumberOfOptions = #DropdownOptions
  1255.                 DropdownSize = UDim2.fromScale(1,0) + UDim2.fromOffset(0,(NumberOfOptions*20) + ((NumberOfOptions - 1) * 5))
  1256.  
  1257.                 if DropdownContent then
  1258.                     DropdownContent:Destroy()
  1259.                 end
  1260.  
  1261.                 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()
  1262.  
  1263.                 DropdownContent = Objects.new("Frame")
  1264.                 DropdownContent.Name = "Content"
  1265.                 DropdownContent.Size = DropToggle and DropdownSize or UDim2.fromScale(1,0)
  1266.                 DropdownContent.Position = UDim2.fromOffset(0,35)
  1267.                 DropdownContent.ClipsDescendants = true
  1268.                 DropdownContent.Parent = Dropdown
  1269.  
  1270.                 local DropdownList = Objects.new("UIListLayout")
  1271.                 DropdownList.SortOrder = Enum.SortOrder.LayoutOrder
  1272.                 DropdownList.Padding = UDim.new(0,5)
  1273.                 DropdownList.Parent = DropdownContent
  1274.  
  1275.                 table.foreach(DropdownOptions, function(_, Value)
  1276.                     local NewButton = CreateNewButton({
  1277.                         Text = Value,
  1278.                         Callback = function() end
  1279.                     }, DropdownContent)
  1280.  
  1281.                     NewButton.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,20)
  1282.                     NewButton.MouseButton1Down:Connect(function()
  1283.                         DropdownCallback(Value)
  1284.                         DropdownTitle.Text = DropdownText..": "..Value
  1285.                     end)
  1286.                 end)
  1287.             end
  1288.  
  1289.             function DropdownLibrary:GetOptions()
  1290.                 return DropdownOptions
  1291.             end
  1292.  
  1293.             return DropdownLibrary
  1294.         end
  1295.  
  1296.         function OptionLibrary.ChipSet(ChipSetConfig)
  1297.             local ChipSetText = ChipSetConfig.Text or "nil chipset"
  1298.             local ChipSetCallback = ChipSetConfig.Callback or function() print("nil chipset") end
  1299.             local ChipSetOptions = ChipSetConfig.Options or {}
  1300.  
  1301.             local TotalOptions = 0
  1302.  
  1303.             table.foreach(ChipSetOptions, function()
  1304.                 TotalOptions = TotalOptions + 1
  1305.             end)
  1306.  
  1307.             if TotalOptions > 0 then
  1308.                 local Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,(TotalOptions*30)+((TotalOptions+1)*5))
  1309.  
  1310.                 local ChipSet = Objects.new("Round")
  1311.                 ChipSet.Name = "ChipSet"
  1312.                 ChipSet.Size = Size
  1313.                 ChipSet.ImageColor3 = Theme.ChipSet
  1314.                 ChipSet.ImageTransparency = 1
  1315.                 ChipSet.Parent = PageContentFrame
  1316.  
  1317.                 local ChipList = Objects.new("UIListLayout")
  1318.                 ChipList.SortOrder = Enum.SortOrder.LayoutOrder
  1319.                 ChipList.Padding = UDim.new(0,5)
  1320.                 ChipList.Parent = ChipSet
  1321.  
  1322.                 local ChipPadding = Objects.new("UIPadding")
  1323.                 ChipPadding.PaddingBottom = UDim.new(0,5)
  1324.                 ChipPadding.PaddingTop = UDim.new(0,5)
  1325.                 ChipPadding.PaddingRight= UDim.new(0,5)
  1326.                 ChipPadding.PaddingLeft = UDim.new(0,5)
  1327.                 ChipPadding.Parent = ChipSet
  1328.  
  1329.                 local BuildTable = {}
  1330.  
  1331.                 table.foreach(ChipSetOptions, function(Key, Value)
  1332.                     if typeof(Value) == "table" then
  1333.                         BuildTable[Key] = Value.Enabled
  1334.                     else
  1335.                         BuildTable[Key] = Value
  1336.                     end
  1337.                 end)
  1338.  
  1339.                 ChipSetCallback(BuildTable)
  1340.  
  1341.                 TweenService:Create(ChipSet, TweenInfo.new(0.5), {ImageTransparency = 0.9}):Play()
  1342.  
  1343.                 table.foreach(ChipSetOptions, function(Key, Value)
  1344.                     local ChipItem = Objects.new("SmoothButton")
  1345.                     ChipItem.Name = "ChipItem"
  1346.                     ChipItem.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  1347.                     ChipItem.ImageColor3 = BuildTable[Key] and Theme.ChipSet or Theme.ChipSetAccent
  1348.                     ChipItem.ImageTransparency = 1
  1349.                     ChipItem.Parent = ChipSet
  1350.  
  1351.                     local ChipShadow = Objects.new("Shadow")
  1352.                     ChipShadow.ImageColor3 = BuildTable[Key] and Theme.ChipSet or Theme.ChipSetAccent
  1353.                     ChipShadow.ImageTransparency = 1
  1354.                     ChipShadow.Parent = ChipItem
  1355.  
  1356.                     local Tick = Objects.new("Round")
  1357.                     Tick.ScaleType = Enum.ScaleType.Stretch
  1358.                     Tick.Image = "http://www.roblox.com/asset/?id=5554953789"
  1359.                     Tick.ImageColor3 = Theme.ChipSetAccent
  1360.                     Tick.ImageTransparency = 1
  1361.                     Tick.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(10,10)
  1362.                     Tick.SizeConstraint = Enum.SizeConstraint.RelativeYY
  1363.                     Tick.Position = UDim2.fromOffset(5,5)
  1364.                     Tick.Parent = ChipItem
  1365.  
  1366.                     local ChipLabel = Objects.new("Label")
  1367.                     ChipLabel.Size = BuildTable[Key] and (UDim2.fromScale(1,1) - UDim2.fromOffset(30)) or (UDim2.fromScale(1,1) - UDim2.fromOffset(5))
  1368.                     ChipLabel.Position = BuildTable[Key] and UDim2.fromOffset(30) or UDim2.fromOffset(5)
  1369.                     ChipLabel.Text = Key
  1370.                     ChipLabel.Font = Enum.Font.Gotham
  1371.                     ChipLabel.TextSize = 12
  1372.                     ChipLabel.TextColor3 = BuildTable[Key] and Theme.ChipSetAccent or Theme.ChipSet
  1373.                     ChipLabel.TextTransparency = 1
  1374.                     ChipLabel.Parent = ChipItem
  1375.  
  1376.                     TweenService:Create(ChipItem, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1377.                     TweenService:Create(ChipShadow, TweenInfo.new(0.5), {ImageTransparency = 0.2}):Play()
  1378.                     TweenService:Create(Tick, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0 or 1}):Play()
  1379.                     TweenService:Create(ChipLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1380.  
  1381.                     local ChipMenu
  1382.  
  1383.                     if typeof(Value) == "table" then
  1384.                         local Menu = Value.Menu or {}
  1385.  
  1386.                         local MenuAdded, MenuButton = TryAddMenu(ChipItem, Menu, {})
  1387.  
  1388.                         MenuButton.ImageColor3 = BuildTable[Key] and Theme.ChipSetAccent or Theme.ChipSet
  1389.  
  1390.                         ChipMenu = MenuButton
  1391.                     end
  1392.  
  1393.                     ChipItem.MouseButton1Down:Connect(function()
  1394.                         BuildTable[Key] = not BuildTable[Key]
  1395.                         local Enabled = BuildTable[Key]
  1396.                         TweenService:Create(ChipItem, TweenInfo.new(0.15), {ImageColor3 = Enabled and Theme.ChipSet or Theme.ChipSetAccent}):Play()
  1397.                         TweenService:Create(ChipShadow, TweenInfo.new(0.15), {ImageColor3 = Enabled and Theme.ChipSet or Theme.ChipSetAccent}):Play()
  1398.                         TweenService:Create(Tick, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0 or 1}):Play()
  1399.                         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()
  1400.                         if ChipMenu then
  1401.                             TweenService:Create(ChipMenu, TweenInfo.new(0.15), {ImageColor3 = Enabled and Theme.ChipSetAccent or Theme.ChipSet}):Play()
  1402.                         end
  1403.                         ChipSetCallback(BuildTable)
  1404.                     end)
  1405.                 end)
  1406.  
  1407.                 local ChipSetLibrary = {}
  1408.  
  1409.                 function ChipSetLibrary:SetOptions(NewMenu)
  1410.                     ChipSetOptions = NewMenu or {}
  1411.  
  1412.                     TotalOptions = 0
  1413.  
  1414.                     table.foreach(ChipSetOptions, function()
  1415.                         TotalOptions = TotalOptions + 1
  1416.                     end)
  1417.  
  1418.                     for _, Element in next, ChipSet:GetChildren() do
  1419.                         Element:Destroy()
  1420.                     end
  1421.  
  1422.                     Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,(TotalOptions*30)+((TotalOptions+1)*5))
  1423.  
  1424.                     TweenService:Create(ChipSet, TweenInfo.new(0.15), {Size = Size}):Play()
  1425.  
  1426.                     local ChipList = Objects.new("UIListLayout")
  1427.                     ChipList.SortOrder = Enum.SortOrder.LayoutOrder
  1428.                     ChipList.Padding = UDim.new(0,5)
  1429.                     ChipList.Parent = ChipSet
  1430.  
  1431.                     local ChipPadding = Objects.new("UIPadding")
  1432.                     ChipPadding.PaddingBottom = UDim.new(0,5)
  1433.                     ChipPadding.PaddingTop = UDim.new(0,5)
  1434.                     ChipPadding.PaddingRight= UDim.new(0,5)
  1435.                     ChipPadding.PaddingLeft = UDim.new(0,5)
  1436.                     ChipPadding.Parent = ChipSet
  1437.  
  1438.                     local BuildTable = {}
  1439.  
  1440.                     table.foreach(ChipSetOptions, function(Key, Value)
  1441.                         if typeof(Value) == "table" then
  1442.                             BuildTable[Key] = Value.Enabled
  1443.                         else
  1444.                             BuildTable[Key] = Value
  1445.                         end
  1446.                     end)
  1447.  
  1448.                     ChipSetCallback(BuildTable)
  1449.  
  1450.                     TweenService:Create(ChipSet, TweenInfo.new(0.5), {ImageTransparency = 0.9}):Play()
  1451.  
  1452.                     table.foreach(ChipSetOptions, function(Key, Value)
  1453.                         local ChipItem = Objects.new("SmoothButton")
  1454.                         ChipItem.Name = "ChipItem"
  1455.                         ChipItem.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  1456.                         ChipItem.ImageColor3 = BuildTable[Key] and Theme.ChipSet or Theme.ChipSetAccent
  1457.                         ChipItem.ImageTransparency = 1
  1458.                         ChipItem.Parent = ChipSet
  1459.  
  1460.                         local ChipShadow = Objects.new("Shadow")
  1461.                         ChipShadow.ImageColor3 = BuildTable[Key] and Theme.ChipSet or Theme.ChipSetAccent
  1462.                         ChipShadow.ImageTransparency = 1
  1463.                         ChipShadow.Parent = ChipItem
  1464.  
  1465.                         local Tick = Objects.new("Round")
  1466.                         Tick.ScaleType = Enum.ScaleType.Stretch
  1467.                         Tick.Image = "http://www.roblox.com/asset/?id=5554953789"
  1468.                         Tick.ImageColor3 = Theme.ChipSetAccent
  1469.                         Tick.ImageTransparency = 1
  1470.                         Tick.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(10,10)
  1471.                         Tick.SizeConstraint = Enum.SizeConstraint.RelativeYY
  1472.                         Tick.Position = UDim2.fromOffset(5,5)
  1473.                         Tick.Parent = ChipItem
  1474.  
  1475.                         local ChipLabel = Objects.new("Label")
  1476.                         ChipLabel.Size = BuildTable[Key] and (UDim2.fromScale(1,1) - UDim2.fromOffset(30)) or (UDim2.fromScale(1,1) - UDim2.fromOffset(5))
  1477.                         ChipLabel.Position = BuildTable[Key] and UDim2.fromOffset(30) or UDim2.fromOffset(5)
  1478.                         ChipLabel.Text = Key
  1479.                         ChipLabel.Font = Enum.Font.Gotham
  1480.                         ChipLabel.TextSize = 12
  1481.                         ChipLabel.TextColor3 = BuildTable[Key] and Theme.ChipSetAccent or Theme.ChipSet
  1482.                         ChipLabel.TextTransparency = 1
  1483.                         ChipLabel.Parent = ChipItem
  1484.  
  1485.                         TweenService:Create(ChipItem, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1486.                         TweenService:Create(ChipShadow, TweenInfo.new(0.5), {ImageTransparency = 0.2}):Play()
  1487.                         TweenService:Create(Tick, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0 or 1}):Play()
  1488.                         TweenService:Create(ChipLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1489.  
  1490.                         local ChipMenu
  1491.  
  1492.                         if typeof(Value) == "table" then
  1493.                             local Menu = Value.Menu or {}
  1494.  
  1495.                             local MenuAdded, MenuButton = TryAddMenu(ChipItem, Menu, {})
  1496.  
  1497.                             MenuButton.ImageColor3 = BuildTable[Key] and Theme.ChipSetAccent or Theme.ChipSet
  1498.  
  1499.                             ChipMenu = MenuButton
  1500.                         end
  1501.  
  1502.                         ChipItem.MouseButton1Down:Connect(function()
  1503.                             BuildTable[Key] = not BuildTable[Key]
  1504.                             local Enabled = BuildTable[Key]
  1505.                             TweenService:Create(ChipItem, TweenInfo.new(0.15), {ImageColor3 = Enabled and Theme.ChipSet or Theme.ChipSetAccent}):Play()
  1506.                             TweenService:Create(ChipShadow, TweenInfo.new(0.15), {ImageColor3 = Enabled and Theme.ChipSet or Theme.ChipSetAccent}):Play()
  1507.                             TweenService:Create(Tick, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0 or 1}):Play()
  1508.                             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()
  1509.                             if ChipMenu then
  1510.                                 TweenService:Create(ChipMenu, TweenInfo.new(0.15), {ImageColor3 = Enabled and Theme.ChipSetAccent or Theme.ChipSet}):Play()
  1511.                             end
  1512.                             ChipSetCallback(BuildTable)
  1513.                         end)
  1514.                     end)
  1515.                 end
  1516.  
  1517.                 function ChipSetLibrary:GetOptions()
  1518.                     return ChipSetOptions
  1519.                 end
  1520.  
  1521.                 return ChipSetLibrary
  1522.             end
  1523.         end
  1524.  
  1525.         function OptionLibrary.DataTable(DataTableConfig)
  1526.             local DataTableText = DataTableConfig.Text or "nil chipset"
  1527.             local DataTableCallback = DataTableConfig.Callback or function() print("nil chipset") end
  1528.             local DataTableOptions = DataTableConfig.Options or {}
  1529.  
  1530.             local TotalOptions = 0
  1531.  
  1532.             table.foreach(DataTableOptions, function()
  1533.                 TotalOptions = TotalOptions + 1
  1534.             end)
  1535.  
  1536.             if TotalOptions > 0 then
  1537.  
  1538.                 local Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,(TotalOptions*30)+((TotalOptions+1)*5))
  1539.  
  1540.                 local DataTable = Objects.new("Round")
  1541.                 DataTable.Name = "DataTable"
  1542.                 DataTable.Size = Size
  1543.                 DataTable.ImageColor3 = Theme.DataTable
  1544.                 DataTable.ImageTransparency = 1
  1545.                 DataTable.Parent = PageContentFrame
  1546.  
  1547.                 local DataShadow = Objects.new("Shadow")
  1548.                 DataShadow.ImageColor3 = Theme.DataTable
  1549.                 DataShadow.ImageTransparency = 1
  1550.                 DataShadow.Parent = DataTable
  1551.  
  1552.                 local DataContainer = Objects.new("Frame")
  1553.                 DataContainer.Name = "Container"
  1554.                 DataContainer.Parent = DataTable
  1555.  
  1556.                 local DataList = Objects.new("UIListLayout")
  1557.                 DataList.SortOrder = Enum.SortOrder.LayoutOrder
  1558.                 DataList.Padding = UDim.new(0,5)
  1559.                 DataList.Parent = DataContainer
  1560.  
  1561.                 local DataPadding = Objects.new("UIPadding")
  1562.                 DataPadding.PaddingBottom = UDim.new(0,5)
  1563.                 DataPadding.PaddingTop = UDim.new(0,5)
  1564.                 DataPadding.PaddingRight= UDim.new(0,5)
  1565.                 DataPadding.PaddingLeft = UDim.new(0,5)
  1566.                 DataPadding.Parent = DataContainer
  1567.  
  1568.                 local BuildTable = {}
  1569.  
  1570.                 table.foreach(DataTableOptions, function(Key, Value)
  1571.                     if typeof(Value) == "table" then
  1572.                         BuildTable[Key] = Value.Enabled
  1573.                     else
  1574.                         BuildTable[Key] = Value
  1575.                     end
  1576.                 end)
  1577.  
  1578.                 DataTableCallback(BuildTable)
  1579.  
  1580.                 TweenService:Create(DataTable, TweenInfo.new(0.5), {ImageTransparency = 0.9}):Play()
  1581.                 TweenService:Create(DataShadow, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  1582.  
  1583.                 table.foreach(DataTableOptions, function(Key, Value)
  1584.                     local DataItem = Objects.new("SmoothButton")
  1585.                     DataItem.Name = "DataItem"
  1586.                     DataItem.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  1587.                     DataItem.ImageColor3 = BuildTable[Key] and Theme.DataTable or Theme.DataTableAccent
  1588.                     DataItem.ImageTransparency = 1
  1589.                     DataItem.Parent = DataContainer
  1590.  
  1591.                     local DataTracker = Objects.new("Round")
  1592.                     DataTracker.Name = "Tracker"
  1593.                     DataTracker.Size = UDim2.fromOffset(24,24)
  1594.                     DataTracker.Position = UDim2.fromScale(0,0.5) + UDim2.fromOffset(3,-12)
  1595.                     DataTracker.ImageColor3 = Theme.DataTable
  1596.                     DataTracker.ImageTransparency = 1
  1597.                     DataTracker.Parent = DataItem
  1598.  
  1599.                     local Tick = Objects.new("Round")
  1600.                     Tick.Name = "Tick"
  1601.                     Tick.ScaleType = Enum.ScaleType.Stretch
  1602.                     Tick.Image = "http://www.roblox.com/asset/?id=5554953789"
  1603.                     Tick.ImageColor3 = Theme.DataTableAccent
  1604.                     Tick.ImageTransparency = 1
  1605.                     Tick.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(4,4)
  1606.                     Tick.SizeConstraint = Enum.SizeConstraint.RelativeYY
  1607.                     Tick.Position = UDim2.fromOffset(2,2)
  1608.                     Tick.Parent = DataTracker
  1609.  
  1610.                     local DataLabel = Objects.new("Label")
  1611.                     DataLabel.Name = "Value"
  1612.                     DataLabel.Size = (UDim2.fromScale(1,1) - UDim2.fromOffset(30))
  1613.                     DataLabel.Position = UDim2.fromOffset(30) or UDim2.fromOffset(5)
  1614.                     DataLabel.Text = Key
  1615.                     DataLabel.Font = Enum.Font.Gotham
  1616.                     DataLabel.TextSize = 14
  1617.                     DataLabel.TextColor3 = Theme.DataTable
  1618.                     DataLabel.TextTransparency = 1
  1619.                     DataLabel.Parent = DataItem
  1620.  
  1621.                     TweenService:Create(DataItem, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0.8 or 0}):Play()
  1622.                     TweenService:Create(DataTracker, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0 or 0.8}):Play()
  1623.                     TweenService:Create(Tick, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0 or 0.7}):Play()
  1624.                     TweenService:Create(DataLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1625.  
  1626.                     local DataMenu
  1627.  
  1628.                     if typeof(Value) == "table" then
  1629.                         local Menu = Value.Menu or {}
  1630.  
  1631.                         local MenuAdded, MenuButton = TryAddMenu(DataItem, Menu, {})
  1632.  
  1633.                         MenuButton.ImageColor3 = Theme.DataTable
  1634.  
  1635.                         DataMenu = MenuButton
  1636.                     end
  1637.  
  1638.                     DataItem.MouseButton1Down:Connect(function()
  1639.                         BuildTable[Key] = not BuildTable[Key]
  1640.                         local Enabled = BuildTable[Key]
  1641.                         TweenService:Create(DataItem, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0.8 or 0, ImageColor3 = Enabled and Theme.DataTable or Theme.DataTableAccent}):Play()
  1642.                         TweenService:Create(Tick, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0 or 0.7}):Play()
  1643.                         TweenService:Create(DataTracker, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0 or 0.8}):Play()
  1644.                         DataTableCallback(BuildTable)
  1645.                     end)
  1646.                 end)
  1647.  
  1648.                 local DataTableLibrary = {}
  1649.  
  1650.                 function DataTableLibrary:SetOptions(NewMenu)
  1651.                     if DataContainer then
  1652.                         DataContainer:Destroy()
  1653.                     end
  1654.  
  1655.                     DataTableOptions = NewMenu or {}
  1656.  
  1657.                     TotalOptions = 0
  1658.  
  1659.                     table.foreach(DataTableOptions, function()
  1660.                         TotalOptions = TotalOptions + 1
  1661.                     end)
  1662.  
  1663.                     Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,(TotalOptions*30)+((TotalOptions+1)*5))
  1664.  
  1665.                     DataTable.Size = Size
  1666.  
  1667.                     DataContainer = Objects.new("Frame")
  1668.                     DataContainer.Name = "Container"
  1669.                     DataContainer.Parent = DataTable
  1670.  
  1671.                     local DataList = Objects.new("UIListLayout")
  1672.                     DataList.SortOrder = Enum.SortOrder.LayoutOrder
  1673.                     DataList.Padding = UDim.new(0,5)
  1674.                     DataList.Parent = DataContainer
  1675.  
  1676.                     local DataPadding = Objects.new("UIPadding")
  1677.                     DataPadding.PaddingBottom = UDim.new(0,5)
  1678.                     DataPadding.PaddingTop = UDim.new(0,5)
  1679.                     DataPadding.PaddingRight= UDim.new(0,5)
  1680.                     DataPadding.PaddingLeft = UDim.new(0,5)
  1681.                     DataPadding.Parent = DataContainer
  1682.  
  1683.                     local BuildTable = {}
  1684.  
  1685.                     table.foreach(DataTableOptions, function(Key, Value)
  1686.                         if typeof(Value) == "table" then
  1687.                             BuildTable[Key] = Value.Enabled
  1688.                         else
  1689.                             BuildTable[Key] = Value
  1690.                         end
  1691.                     end)
  1692.  
  1693.                     DataTableCallback(BuildTable)
  1694.  
  1695.                     TweenService:Create(DataTable, TweenInfo.new(0.5), {ImageTransparency = 0.9}):Play()
  1696.                     TweenService:Create(DataShadow, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  1697.  
  1698.                     table.foreach(DataTableOptions, function(Key, Value)
  1699.                         local DataItem = Objects.new("SmoothButton")
  1700.                         DataItem.Name = "DataItem"
  1701.                         DataItem.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  1702.                         DataItem.ImageColor3 = BuildTable[Key] and Theme.DataTable or Theme.DataTableAccent
  1703.                         DataItem.ImageTransparency = 1
  1704.                         DataItem.Parent = DataContainer
  1705.  
  1706.                         local DataTracker = Objects.new("Round")
  1707.                         DataTracker.Name = "Tracker"
  1708.                         DataTracker.Size = UDim2.fromOffset(24,24)
  1709.                         DataTracker.Position = UDim2.fromScale(0,0.5) + UDim2.fromOffset(3,-12)
  1710.                         DataTracker.ImageColor3 = Theme.DataTable
  1711.                         DataTracker.ImageTransparency = 1
  1712.                         DataTracker.Parent = DataItem
  1713.  
  1714.                         local Tick = Objects.new("Round")
  1715.                         Tick.Name = "Tick"
  1716.                         Tick.ScaleType = Enum.ScaleType.Stretch
  1717.                         Tick.Image = "http://www.roblox.com/asset/?id=5554953789"
  1718.                         Tick.ImageColor3 = Theme.DataTableAccent
  1719.                         Tick.ImageTransparency = 1
  1720.                         Tick.Size = UDim2.fromScale(1,1) - UDim2.fromOffset(4,4)
  1721.                         Tick.SizeConstraint = Enum.SizeConstraint.RelativeYY
  1722.                         Tick.Position = UDim2.fromOffset(2,2)
  1723.                         Tick.Parent = DataTracker
  1724.  
  1725.                         local DataLabel = Objects.new("Label")
  1726.                         DataLabel.Name = "Value"
  1727.                         DataLabel.Size = (UDim2.fromScale(1,1) - UDim2.fromOffset(30))
  1728.                         DataLabel.Position = UDim2.fromOffset(30) or UDim2.fromOffset(5)
  1729.                         DataLabel.Text = Key
  1730.                         DataLabel.Font = Enum.Font.Gotham
  1731.                         DataLabel.TextSize = 14
  1732.                         DataLabel.TextColor3 = Theme.DataTable
  1733.                         DataLabel.TextTransparency = 1
  1734.                         DataLabel.Parent = DataItem
  1735.  
  1736.                         TweenService:Create(DataItem, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0.8 or 0}):Play()
  1737.                         TweenService:Create(DataTracker, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0 or 0.8}):Play()
  1738.                         TweenService:Create(Tick, TweenInfo.new(0.5), {ImageTransparency = BuildTable[Key] and 0 or 0.7}):Play()
  1739.                         TweenService:Create(DataLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1740.  
  1741.                         local DataMenu
  1742.  
  1743.                         if typeof(Value) == "table" then
  1744.                             local Menu = Value.Menu or {}
  1745.  
  1746.                             local MenuAdded, MenuButton = TryAddMenu(DataItem, Menu, {})
  1747.  
  1748.                             MenuButton.ImageColor3 = Theme.DataTable
  1749.  
  1750.                             DataMenu = MenuButton
  1751.                         end
  1752.  
  1753.                         DataItem.MouseButton1Down:Connect(function()
  1754.                             BuildTable[Key] = not BuildTable[Key]
  1755.                             local Enabled = BuildTable[Key]
  1756.                             TweenService:Create(DataItem, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0.8 or 0, ImageColor3 = Enabled and Theme.DataTable or Theme.DataTableAccent}):Play()
  1757.                             TweenService:Create(Tick, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0 or 0.7}):Play()
  1758.                             TweenService:Create(DataTracker, TweenInfo.new(0.15), {ImageTransparency = Enabled and 0 or 0.8}):Play()
  1759.                             DataTableCallback(BuildTable)
  1760.                         end)
  1761.                     end)
  1762.                 end
  1763.  
  1764.                 function DataTableLibrary:GetOptions()
  1765.                     return DataTableOptions
  1766.                 end
  1767.  
  1768.                 return DataTableLibrary
  1769.             end
  1770.         end
  1771.  
  1772.         function OptionLibrary.ColorPicker(ColorPickerConfig)
  1773.             local ColorPickerText = ColorPickerConfig.Text or "nil color picker"
  1774.             local ColorPickerCallback = ColorPickerConfig.Callback or function() print("nil color picker") end
  1775.             local ColorPickerDefault = ColorPickerConfig.Default or Color3.fromRGB(255,255,255)
  1776.             local ColorPickerMenu = ColorPickerConfig.Menu or {}
  1777.             local ColorPickerToggle = false
  1778.  
  1779.             local H, S, V = Objects.new("NumberValue"), Objects.new("NumberValue"), Objects.new("NumberValue")
  1780.  
  1781.             H.Value, S.Value, V.Value = Color3.toHSV(ColorPickerDefault)
  1782.  
  1783.             local ColorPicker = Objects.new("SmoothButton")
  1784.             ColorPicker.Name = "ColorPicker"
  1785.             ColorPicker.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,40)
  1786.             ColorPicker.ImageColor3 = Theme.ColorPicker
  1787.             ColorPicker.ImageTransparency = 1
  1788.             ColorPicker.ClipsDescendants = true
  1789.             ColorPicker.Parent = PageContentFrame
  1790.  
  1791.             ColorPicker.MouseButton1Down:Connect(function()
  1792.                 ColorPickerToggle = not ColorPickerToggle
  1793.                 TweenService:Create(ColorPicker, TweenInfo.new(0.15), {Size = UDim2.fromScale(1,0) + (ColorPickerToggle and UDim2.fromOffset(0,115) or UDim2.fromOffset(0,40))}):Play()
  1794.             end)
  1795.  
  1796.             local ColorBar = Objects.new("Round")
  1797.             ColorBar.Name = "TitleBar"
  1798.             ColorBar.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-10,30)
  1799.             ColorBar.Position = UDim2.fromOffset(5,5)
  1800.             ColorBar.ImageColor3 = Theme.ColorPickerAccent
  1801.             ColorBar.ImageTransparency = 1
  1802.             ColorBar.Parent = ColorPicker
  1803.  
  1804.             local ColorShadow = Objects.new("Shadow")
  1805.             ColorShadow.ImageColor3 = Theme.ColorPickerAccent
  1806.             ColorShadow.ImageTransparency = 1
  1807.             ColorShadow.Parent = ColorBar
  1808.  
  1809.             local ColorLabel = Objects.new("Label")
  1810.             ColorLabel.Name = "Title"
  1811.             ColorLabel.Font = Enum.Font.GothamSemibold
  1812.             ColorLabel.TextColor3 = Theme.ColorPickerAccent
  1813.             ColorLabel.TextSize = 14
  1814.             ColorLabel.Text = ColorPickerText
  1815.             ColorLabel.TextTransparency = 1
  1816.             ColorLabel.Parent = ColorBar
  1817.  
  1818.             local ColorTracker = Objects.new("Round")
  1819.             ColorTracker.Name = "Tracker"
  1820.             ColorTracker.Size = UDim2.fromOffset(50,20)
  1821.             ColorTracker.Position = UDim2.fromScale(1,0) + UDim2.fromOffset(-55,5)
  1822.             ColorTracker.ImageColor3 = ColorPickerDefault
  1823.             ColorTracker.ImageTransparency = 1
  1824.             ColorTracker.Parent = ColorBar
  1825.  
  1826.             local TrackerShadow = Objects.new("Shadow")
  1827.             TrackerShadow.ImageColor3 = ColorTracker.ImageColor3
  1828.             TrackerShadow.ImageTransparency = 1
  1829.             TrackerShadow.Parent = ColorTracker
  1830.  
  1831.             ColorTracker:GetPropertyChangedSignal("ImageColor3"):Connect(function()
  1832.                 TrackerShadow.ImageColor3 = ColorTracker.ImageColor3
  1833.             end)
  1834.  
  1835.             local Hue = Objects.new("Round")
  1836.             Hue.Name = "Container"
  1837.             Hue.Position = UDim2.fromOffset(5,40)
  1838.             Hue.Size = UDim2.fromOffset(25,20)
  1839.             Hue.ImageColor3 = Theme.ColorPickerAccent
  1840.             Hue.ImageTransparency = 0.8
  1841.             Hue.Parent = ColorPicker
  1842.  
  1843.             local Saturation = Hue:Clone()
  1844.             Saturation.Position = Saturation.Position + UDim2.fromOffset(0,25)
  1845.             Saturation.Parent = ColorPicker
  1846.  
  1847.             local Value = Saturation:Clone()
  1848.             Value.Position = Value.Position + UDim2.fromOffset(0,25)
  1849.             Value.Parent = ColorPicker
  1850.  
  1851.             local HueLabel = Objects.new("Label")
  1852.             HueLabel.Name = "Label"
  1853.             HueLabel.TextXAlignment = Enum.TextXAlignment.Center
  1854.             HueLabel.Position = UDim2.fromScale(0,0)
  1855.             HueLabel.Size = UDim2.fromScale(1,1)
  1856.             HueLabel.Text = "H"
  1857.             HueLabel.TextColor3 = Theme.ColorPickerAccent
  1858.             HueLabel.TextSize = 12
  1859.             HueLabel.Font = Enum.Font.GothamBold
  1860.             HueLabel.TextTransparency = 1
  1861.             HueLabel.Parent = Hue
  1862.  
  1863.             local SaturationLabel = HueLabel:Clone()
  1864.             SaturationLabel.Text = "S"
  1865.             SaturationLabel.Parent = Saturation
  1866.  
  1867.             local ValueLabel = HueLabel:Clone()
  1868.             ValueLabel.Text = "V"
  1869.             ValueLabel.Parent = Value
  1870.  
  1871.             local function CSK(T,C)
  1872.                 return ColorSequenceKeypoint.new(T,C)
  1873.             end
  1874.  
  1875.             local RainbowGradient = Objects.new("UIGradient")
  1876.             RainbowGradient.Color = ColorSequence.new({
  1877.                 CSK(0, Color3.fromRGB(255,0,0)),
  1878.                 CSK(0.157, Color3.fromRGB(255,0,255)),
  1879.                 CSK(0.323, Color3.fromRGB(0,0,255)),
  1880.                 CSK(0.488, Color3.fromRGB(0,255,255)),
  1881.                 CSK(0.66, Color3.fromRGB(0,255,0)),
  1882.                 CSK(0.817, Color3.fromRGB(255,255,0)),
  1883.                 CSK(1, Color3.fromRGB(255,0,0))
  1884.             })
  1885.  
  1886.             local BlackWhiteGradient = Objects.new("UIGradient")
  1887.             BlackWhiteGradient.Color = ColorSequence.new(
  1888.                 Color3.new(1,1,1),
  1889.                 Color3.new(0,0,0)
  1890.             )
  1891.  
  1892.             local SaturationGradient = Objects.new("UIGradient")
  1893.             SaturationGradient.Color = ColorSequence.new(
  1894.                 Color3.fromHSV(H.Value,1,V.Value),
  1895.                 Color3.new(0,0,0):Lerp(Color3.fromRGB(255,255,255), V.Value)
  1896.             )
  1897.  
  1898.             local HueTracker = Objects.new("SmoothButton")
  1899.             HueTracker.Name = "Tracker"
  1900.             HueTracker.ImageColor3 = Color3.fromRGB(255,255,255)
  1901.             HueTracker.ImageTransparency = 1
  1902.             HueTracker.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-40,20)
  1903.             HueTracker.Position = UDim2.fromOffset(35,40)
  1904.             HueTracker.Parent = ColorPicker
  1905.  
  1906.             local SaturationTracker = HueTracker:Clone()
  1907.             SaturationTracker.Position = SaturationTracker.Position + UDim2.fromOffset(0,25)
  1908.             SaturationTracker.Parent = ColorPicker
  1909.  
  1910.             local ValueTracker = SaturationTracker:Clone()
  1911.             ValueTracker.Position = ValueTracker.Position + UDim2.fromOffset(0,25)
  1912.             ValueTracker.Parent = ColorPicker
  1913.  
  1914.             local HueShadow = Objects.new("Shadow")
  1915.             HueShadow.ImageColor3 = Color3.fromRGB(255,255,255)
  1916.             HueShadow.ImageTransparency = 1
  1917.             HueShadow.Parent = HueTracker
  1918.  
  1919.             local SaturationShadow = HueShadow:Clone()
  1920.             SaturationShadow.Parent = SaturationTracker
  1921.  
  1922.             local ValueShadow = HueShadow:Clone()
  1923.             ValueShadow.Parent = ValueTracker
  1924.  
  1925.             local HueGrad = RainbowGradient:Clone()
  1926.             HueGrad.Parent = HueTracker
  1927.             local HueShadowGrad = RainbowGradient:Clone()
  1928.             HueShadowGrad.Parent = HueShadow
  1929.  
  1930.             local ValueGrad = BlackWhiteGradient:Clone()
  1931.             ValueGrad.Parent = ValueTracker
  1932.             local ValueShadowGrad = BlackWhiteGradient:Clone()
  1933.             ValueShadowGrad.Parent = ValueShadow
  1934.  
  1935.             local SaturationGrad = SaturationGradient:Clone()
  1936.             SaturationGrad.Parent = SaturationTracker
  1937.             local SaturationShadowGrad = SaturationGradient:Clone()
  1938.             SaturationShadowGrad.Parent = SaturationShadow
  1939.  
  1940.             TweenService:Create(ColorPicker, TweenInfo.new(0.5), {ImageTransparency = 0.5}):Play()
  1941.             TweenService:Create(ColorBar, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  1942.             TweenService:Create(ColorShadow, TweenInfo.new(0.5), {ImageTransparency = 0.5}):Play()
  1943.             TweenService:Create(ColorLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1944.             TweenService:Create(HueLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1945.             TweenService:Create(SaturationLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1946.             TweenService:Create(ValueLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  1947.             TweenService:Create(ColorTracker, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1948.             TweenService:Create(TrackerShadow, TweenInfo.new(0.5), {ImageTransparency = 0.2}):Play()
  1949.             TweenService:Create(HueTracker, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1950.             TweenService:Create(ValueTracker, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1951.             TweenService:Create(SaturationTracker, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1952.             TweenService:Create(HueShadow, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1953.             TweenService:Create(SaturationShadow, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1954.             TweenService:Create(ValueShadow, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  1955.  
  1956.             H:GetPropertyChangedSignal("Value"):Connect(function()
  1957.                 ColorTracker.ImageColor3 = Color3.fromHSV(H.Value,S.Value,V.Value)
  1958.                 SaturationGrad.Color = ColorSequence.new(
  1959.                     Color3.fromHSV(H.Value,1,V.Value),
  1960.                     Color3.fromRGB(0,0,0):Lerp(Color3.fromRGB(255,255,255),V.Value)
  1961.                 )
  1962.                 SaturationShadowGrad.Color = ColorSequence.new(
  1963.                     Color3.fromHSV(H.Value,1,V.Value),
  1964.                     Color3.fromRGB(0,0,0):Lerp(Color3.fromRGB(255,255,255),V.Value)
  1965.                 )
  1966.                 ColorPickerCallback(Color3.fromHSV(H.Value,S.Value,V.Value))
  1967.             end)
  1968.  
  1969.             S:GetPropertyChangedSignal("Value"):Connect(function()
  1970.                 ColorTracker.ImageColor3 = Color3.fromHSV(H.Value,S.Value,V.Value)
  1971.                 SaturationGrad.Color = ColorSequence.new(
  1972.                     Color3.fromHSV(H.Value,1,V.Value),
  1973.                     Color3.fromRGB(0,0,0):Lerp(Color3.fromRGB(255,255,255),V.Value)
  1974.                 )
  1975.                 SaturationShadowGrad.Color = ColorSequence.new(
  1976.                     Color3.fromHSV(H.Value,1,V.Value),
  1977.                     Color3.fromRGB(0,0,0):Lerp(Color3.fromRGB(255,255,255),V.Value)
  1978.                 )
  1979.                 ColorPickerCallback(Color3.fromHSV(H.Value,S.Value,V.Value))
  1980.             end)
  1981.  
  1982.             V:GetPropertyChangedSignal("Value"):Connect(function()
  1983.                 ColorTracker.ImageColor3 = Color3.fromHSV(H.Value,S.Value,V.Value)
  1984.                 SaturationGrad.Color = ColorSequence.new(
  1985.                     Color3.fromHSV(H.Value,1,V.Value),
  1986.                     Color3.fromRGB(0,0,0):Lerp(Color3.fromRGB(255,255,255),V.Value)
  1987.                 )
  1988.                 SaturationShadowGrad.Color = ColorSequence.new(
  1989.                     Color3.fromHSV(H.Value,1,V.Value),
  1990.                     Color3.fromRGB(0,0,0):Lerp(Color3.fromRGB(255,255,255),V.Value)
  1991.                 )
  1992.                 ColorPickerCallback(Color3.fromHSV(H.Value,S.Value,V.Value))
  1993.             end)
  1994.  
  1995.             HueTracker.MouseButton1Down:Connect(function()
  1996.                 H.Value = 1 - GetXY(HueTracker)
  1997.                 local MouseMove, MouseKill
  1998.                 MouseMove = Mouse.Move:Connect(function()
  1999.                     H.Value = 1 - GetXY(HueTracker)
  2000.                 end)
  2001.                 MouseKill = InputService.InputEnded:Connect(function(UserInput)
  2002.                     if UserInput.UserInputType == Enum.UserInputType.MouseButton1 then
  2003.                         MouseMove:Disconnect()
  2004.                         MouseKill:Disconnect()
  2005.                     end
  2006.                 end)
  2007.             end)
  2008.  
  2009.             ValueTracker.MouseButton1Down:Connect(function()
  2010.                 V.Value = 1 - GetXY(HueTracker)
  2011.                 local MouseMove, MouseKill
  2012.                 MouseMove = Mouse.Move:Connect(function()
  2013.                     V.Value = 1 - GetXY(HueTracker)
  2014.                 end)
  2015.                 MouseKill = InputService.InputEnded:Connect(function(UserInput)
  2016.                     if UserInput.UserInputType == Enum.UserInputType.MouseButton1 then
  2017.                         MouseMove:Disconnect()
  2018.                         MouseKill:Disconnect()
  2019.                     end
  2020.                 end)
  2021.             end)
  2022.  
  2023.             SaturationTracker.MouseButton1Down:Connect(function()
  2024.                 S.Value = 1 - GetXY(HueTracker)
  2025.                 local MouseMove, MouseKill
  2026.                 MouseMove = Mouse.Move:Connect(function()
  2027.                     S.Value = 1 - GetXY(HueTracker)
  2028.                 end)
  2029.                 MouseKill = InputService.InputEnded:Connect(function(UserInput)
  2030.                     if UserInput.UserInputType == Enum.UserInputType.MouseButton1 then
  2031.                         MouseMove:Disconnect()
  2032.                         MouseKill:Disconnect()
  2033.                     end
  2034.                 end)
  2035.             end)
  2036.  
  2037.             local MenuAdded, MenuButton = TryAddMenu(ColorLabel, ColorPickerMenu, {})
  2038.  
  2039.             if MenuAdded then
  2040.                 ColorTracker.Position = ColorTracker.Position - UDim2.fromOffset(25,0)
  2041.                 MenuButton.ImageColor3 = Theme.ColorPickerAccent
  2042.             end
  2043.  
  2044.             local ColorPickerLibrary = {}
  2045.  
  2046.             function ColorPickerLibrary:SetText(Value)
  2047.                 ColorLabel.Text = Value
  2048.             end
  2049.  
  2050.             function ColorPickerLibrary:GetText()
  2051.                 return ColorLabel.Text
  2052.             end
  2053.  
  2054.             function ColorPickerLibrary:SetColor(Value)
  2055.                 H.Value, S.Value, V.Value = Color3.toHSV(Value)
  2056.             end
  2057.  
  2058.             function ColorPickerLibrary:GetColor()
  2059.                 return ColorTracker.ImageColor3
  2060.             end
  2061.  
  2062.             return ColorPickerLibrary
  2063.         end
  2064.  
  2065.         function OptionLibrary.Toggle(ToggleConfig)
  2066.             local ToggleText = ToggleConfig.Text or "nil toggle"
  2067.             local ToggleCallback = ToggleConfig.Callback or function() print("nil toggle") end
  2068.             local ToggleDefault = ToggleConfig.Enabled or false
  2069.             local Menu = ToggleConfig.Menu or {}
  2070.  
  2071.             local Toggle = Objects.new("SmoothButton")
  2072.             Toggle.Name = "Toggle"
  2073.             Toggle.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  2074.             Toggle.ImageColor3 = Theme.Toggle
  2075.             Toggle.ImageTransparency = 1
  2076.             Toggle.Parent = PageContentFrame
  2077.  
  2078.             local ToggleTracker = Objects.new("Round")
  2079.             ToggleTracker.Name = "Tracker"
  2080.             ToggleTracker.Image = "rbxassetid://3570695787"
  2081.             ToggleTracker.SliceCenter = Rect.new(100,100,100,100)
  2082.             ToggleTracker.SliceScale = 1
  2083.             ToggleTracker.Size = UDim2.fromOffset(26,12)
  2084.             ToggleTracker.Position = UDim2.fromScale(1,0.5) - UDim2.fromOffset(41,6)
  2085.             ToggleTracker.ImageColor3 = Theme.Toggle
  2086.             ToggleTracker.ImageTransparency = 1
  2087.             ToggleTracker.Parent = Toggle
  2088.  
  2089.             local Dot = Objects.new("Circle")
  2090.             Dot.Name = "Dot"
  2091.             Dot.Size = UDim2.fromOffset(16,16)
  2092.             Dot.Position = UDim2.fromScale(0,0.5) - UDim2.fromOffset(8,8)
  2093.             Dot.ImageColor3 = Theme.ToggleAccent
  2094.             Dot.ImageTransparency = 1
  2095.             Dot.Parent = ToggleTracker
  2096.  
  2097.             local DotShadow = Objects.new("Round")
  2098.             DotShadow.Name = "Shadow"
  2099.             DotShadow.Image = "http://www.roblox.com/asset/?id=5554831957"
  2100.             DotShadow.ScaleType = Enum.ScaleType.Stretch
  2101.             DotShadow.Size = UDim2.fromOffset(31,31)
  2102.             DotShadow.Position = UDim2.fromOffset(-8,-8)
  2103.             DotShadow.ImageColor3 = Theme.Toggle
  2104.             DotShadow.ImageTransparency = 1
  2105.             DotShadow.Parent = Dot
  2106.  
  2107.             local ToggleLabel = Objects.new("Label")
  2108.             ToggleLabel.Font = Enum.Font.GothamSemibold
  2109.             ToggleLabel.TextSize = 14
  2110.             ToggleLabel.Text = ToggleText
  2111.             ToggleLabel.TextColor3 = Theme.Toggle
  2112.             ToggleLabel.TextTransparency = 1
  2113.             ToggleLabel.ClipsDescendants = true
  2114.             ToggleLabel.Parent = Toggle
  2115.  
  2116.             TweenService:Create(Toggle, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  2117.             TweenService:Create(ToggleTracker, TweenInfo.new(0.5), {ImageTransparency = 0.5}):Play()
  2118.             TweenService:Create(Dot, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  2119.             TweenService:Create(DotShadow, TweenInfo.new(0.5), {ImageTransparency = 0.5}):Play()
  2120.             TweenService:Create(ToggleLabel, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  2121.  
  2122.             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()
  2123.             ToggleCallback(ToggleDefault)
  2124.  
  2125.             Toggle.MouseButton1Down:Connect(function()
  2126.                 ToggleDefault = not ToggleDefault
  2127.                 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()
  2128.                 ToggleCallback(ToggleDefault)
  2129.                 CircleAnim(ToggleLabel, Theme.ToggleAccent, Theme.Toggle)
  2130.             end)
  2131.  
  2132.             local MenuAdded, MenuButton = TryAddMenu(Toggle, Menu, {})
  2133.  
  2134.             if MenuAdded then
  2135.                 ToggleTracker.Position = ToggleTracker.Position - UDim2.fromOffset(15,0)
  2136.                 MenuButton.ImageColor3 = Theme.Toggle
  2137.             end
  2138.  
  2139.             local ToggleLibrary = {}
  2140.  
  2141.             function ToggleLibrary:SetText(Value)
  2142.                 ToggleLabel.Text = Value
  2143.             end
  2144.  
  2145.             function ToggleLibrary:GetText()
  2146.                 return ToggleLabel.Text
  2147.             end
  2148.  
  2149.             function ToggleLibrary:SetState(Value)
  2150.                 ToggleDefault = Value
  2151.                 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()
  2152.                 ToggleCallback(ToggleDefault)
  2153.             end
  2154.  
  2155.             function ToggleLibrary:GetState()
  2156.                 return ToggleDefault
  2157.             end
  2158.  
  2159.             return ToggleLibrary
  2160.         end
  2161.  
  2162.         function OptionLibrary.TextField(TextFieldConfig)
  2163.             local TextFieldText = TextFieldConfig.Text or "nil text field"
  2164.             local TextFieldInputType = TextFieldConfig.Type or TextFieldConfig.type or "Default"
  2165.             local TextFieldCallback = TextFieldConfig.Callback or function() print("nil text field") end
  2166.             local Menu = TextFieldConfig.Menu or {}
  2167.  
  2168.             local TextField = Objects.new("Round")
  2169.             TextField.Name = "TextField"
  2170.             TextField.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,30)
  2171.             TextField.ImageColor3 = Theme.TextField
  2172.             TextField.ImageTransparency = 1
  2173.             TextField.Parent = PageContentFrame
  2174.  
  2175.             local TextEffect = Objects.new("Frame")
  2176.             TextEffect.Name = "Effect"
  2177.             TextEffect.BackgroundTransparency = 1
  2178.             TextEffect.BackgroundColor3 = Theme.TextField
  2179.             TextEffect.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,2)
  2180.             TextEffect.Position = UDim2.fromScale(0,1) - UDim2.fromOffset(0,2)
  2181.             TextEffect.Parent = TextField
  2182.  
  2183.             local TextShadow = Objects.new("Shadow")
  2184.             TextShadow.ImageColor3 = Theme.TextField
  2185.             TextShadow.ImageTransparency = 1
  2186.             TextShadow.Parent = TextField
  2187.  
  2188.             local TextInput = Objects.new("Box")
  2189.             TextInput.Name = "Value"
  2190.             TextInput.PlaceholderText = TextFieldText
  2191.             TextInput.PlaceholderColor3 = Theme.TextFieldAccent
  2192.             TextInput.TextInputType = Enum.TextInputType[TextFieldInputType]
  2193.             TextInput.TextColor3 = Theme.TextFieldAccent
  2194.             TextInput.Text = ""
  2195.             TextInput.Font = Enum.Font.GothamSemibold
  2196.             TextInput.TextSize = 14
  2197.             TextInput.TextTransparency = 1
  2198.             TextInput.Parent = TextField
  2199.  
  2200.             TweenService:Create(TextField, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  2201.             TweenService:Create(TextEffect, TweenInfo.new(0.5), {BackgroundTransparency = 0.2}):Play()
  2202.             TweenService:Create(TextShadow, TweenInfo.new(0.5), {ImageTransparency = 0.7}):Play()
  2203.             TweenService:Create(TextInput, TweenInfo.new(0.5), {TextTransparency = 0.5}):Play()
  2204.  
  2205.             TextInput.Focused:Connect(function()
  2206.                 TweenService:Create(TextField, TweenInfo.new(0.5), {ImageTransparency = 0.7}):Play()
  2207.                 TweenService:Create(TextInput, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  2208.             end)
  2209.  
  2210.             TextInput.FocusLost:Connect(function()
  2211.                 TweenService:Create(TextField, TweenInfo.new(0.5), {ImageTransparency = 0.8}):Play()
  2212.                 TweenService:Create(TextInput, TweenInfo.new(0.5), {TextTransparency = 0.5}):Play()
  2213.                 TextFieldCallback(TextInput.Text)
  2214.             end)
  2215.  
  2216.             local MenuAdded, MenuBar = TryAddMenu(TextField, Menu, {
  2217.                 SetText = function(Value)
  2218.                     TextInput.Text = Value
  2219.                     TextFieldCallback(TextInput.Text)
  2220.                 end
  2221.             })
  2222.  
  2223.             if MenuAdded then
  2224.                 MenuBar.ImageColor3 = Theme.TextFieldAccent
  2225.             end
  2226.  
  2227.             local TextFieldLibrary = {}
  2228.  
  2229.             function TextFieldLibrary:SetText(Value)
  2230.                 TextInput.Text = Value
  2231.             end
  2232.  
  2233.             function TextFieldLibrary:GetText()
  2234.                 return TextInput.Text
  2235.             end
  2236.  
  2237.             return TextFieldLibrary
  2238.         end
  2239.        
  2240.         function OptionLibrary.Label(LabelConfig)
  2241.             local LabelText = LabelConfig.Text or "nil label"
  2242.            
  2243.             local LabelContainer = Objects.new("Round")
  2244.             LabelContainer.Name = "Label"
  2245.             LabelContainer.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,20)
  2246.             LabelContainer.ImageColor3 = Theme.MainFrame
  2247.             LabelContainer.Parent = PageContentFrame
  2248.            
  2249.             local LabelContent = Objects.new("Label")
  2250.             LabelContent.TextColor3 = Theme.ChipSet
  2251.             LabelContent.Text = LabelText:upper()
  2252.             LabelContent.TextSize = 12
  2253.             LabelContent.Font = Enum.Font.GothamSemibold
  2254.             LabelContent.Size = UDim2.fromScale(1,1) + UDim2.fromOffset(-5,0)
  2255.             LabelContent.Position = UDim2.fromOffset(5,0)
  2256.             LabelContent.Parent = LabelContainer
  2257.            
  2258.             local LabelOptions = {}
  2259.            
  2260.             function LabelOptions.SetText(Text)
  2261.                 LabelContent.Text = Text
  2262.             end
  2263.            
  2264.             return LabelOptions
  2265.         end
  2266.  
  2267.         function OptionLibrary.Slider(SliderConfig)
  2268.             local SliderText = SliderConfig.Text or "nil slider"
  2269.             local SliderCallback = SliderConfig.Callback or function() print("nil slider") end
  2270.             local SliderMin = SliderConfig.Min or 0
  2271.             local SliderMax = SliderConfig.Max or 100
  2272.             local Menu = SliderConfig.Menu or {}
  2273.  
  2274.             if SliderMin > SliderMax then
  2275.                 local ValueBefore = SliderMin
  2276.                 SliderMin, SliderMax = SliderMax, ValueBefore
  2277.             end
  2278.  
  2279.             local SliderDef = math.clamp(SliderConfig.Def, SliderMin, SliderMax) or math.clamp(50, SliderMin, SliderMax)
  2280.             local DefaultScale =  (SliderDef - SliderMin) / (SliderMax - SliderMin)
  2281.  
  2282.             local Slider = Objects.new("Round")
  2283.             Slider.Name = "Slider"
  2284.             Slider.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(0,35)
  2285.             Slider.ImageColor3 = Theme.Slider
  2286.             Slider.ImageTransparency = 1
  2287.             Slider.Parent = PageContentFrame
  2288.  
  2289.             local SliderShadow = Objects.new("Shadow")
  2290.             SliderShadow.ImageColor3 = Theme.Slider
  2291.             SliderShadow.ImageTransparency = 1
  2292.             SliderShadow.Parent = Slider
  2293.  
  2294.             local SliderTitle = Objects.new("Label")
  2295.             SliderTitle.TextColor3 = Theme.SliderAccent
  2296.             SliderTitle.Text = SliderText
  2297.             SliderTitle.TextSize = 14
  2298.             SliderTitle.Font = Enum.Font.GothamSemibold
  2299.             SliderTitle.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-5,25)
  2300.             SliderTitle.TextTransparency = 1
  2301.             SliderTitle.Parent = Slider
  2302.  
  2303.             local SliderValue = Objects.new("Label")
  2304.             SliderValue.Text = tostring(SliderDef)
  2305.             SliderValue.TextColor3 = Theme.SliderAccent
  2306.             SliderValue.TextTransparency = 1
  2307.             SliderValue.TextSize = 14
  2308.             SliderValue.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-5,25)
  2309.             SliderValue.Position = UDim2.fromScale(0,0)
  2310.             SliderValue.TextXAlignment = Enum.TextXAlignment.Right
  2311.             SliderValue.Font = Enum.Font.GothamSemibold
  2312.             SliderValue.Parent = Slider
  2313.  
  2314.             local SliderTracker = Objects.new("Frame")
  2315.             SliderTracker.BackgroundColor3 = Theme.SliderAccent
  2316.             SliderTracker.BackgroundTransparency = 1
  2317.             SliderTracker.Size = UDim2.fromScale(1,0) + UDim2.fromOffset(-20,3)
  2318.             SliderTracker.Position = UDim2.fromScale(0,1) + UDim2.fromOffset(10,-10)
  2319.             SliderTracker.Parent = Slider
  2320.  
  2321.             local SliderFill = SliderTracker:Clone()
  2322.             SliderFill.BackgroundTransparency = 1
  2323.             SliderFill.Position = UDim2.fromScale(0,0)
  2324.             SliderFill.Size = UDim2.fromScale(DefaultScale,1)
  2325.             SliderFill.Parent = SliderTracker
  2326.  
  2327.             local MinSize = 10
  2328.             local MaxSize = 36
  2329.  
  2330.             local SizeFromScale = (MinSize +  (MaxSize - MinSize)) * DefaultScale
  2331.             SizeFromScale = SizeFromScale - (SizeFromScale % 2)
  2332.  
  2333.             local SliderDot = Objects.new("CircleButton")
  2334.             SliderDot.Size = UDim2.fromOffset(10,10)
  2335.             SliderDot.Position = UDim2.fromScale(DefaultScale,0.5) - UDim2.fromOffset(5,5)
  2336.             SliderDot.ImageColor3 = Theme.SliderAccent
  2337.             SliderDot.ImageTransparency = 1
  2338.             SliderDot.ZIndex = 50
  2339.             SliderDot.Parent = SliderTracker
  2340.  
  2341.             local SliderFadedDot = Objects.new("Circle")
  2342.             SliderFadedDot.Size = UDim2.fromOffset(SizeFromScale,SizeFromScale)
  2343.             SliderFadedDot.Position = UDim2.fromScale(0.5,0.5) - UDim2.fromOffset(SizeFromScale/2,SizeFromScale/2)
  2344.             SliderFadedDot.ImageColor3 = Theme.SliderAccent
  2345.             SliderFadedDot.ImageTransparency = 1
  2346.             SliderFadedDot.ZIndex = 50
  2347.             SliderFadedDot.Parent = SliderDot
  2348.  
  2349.             TweenService:Create(Slider, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  2350.             TweenService:Create(SliderShadow, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  2351.             TweenService:Create(SliderTitle, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  2352.             TweenService:Create(SliderValue, TweenInfo.new(0.5), {TextTransparency = 0}):Play()
  2353.             TweenService:Create(SliderTracker, TweenInfo.new(0.5), {BackgroundTransparency = 0.5}):Play()
  2354.             TweenService:Create(SliderFill, TweenInfo.new(0.5), {BackgroundTransparency = 0}):Play()
  2355.             TweenService:Create(SliderDot, TweenInfo.new(0.5), {ImageTransparency = 0}):Play()
  2356.  
  2357.             SliderDot.MouseButton1Down:Connect(function()
  2358.                 TweenService:Create(SliderFadedDot, TweenInfo.new(0.15), {ImageTransparency = 0.8}):Play()
  2359.                 local MouseMove, MouseKill
  2360.                 MouseMove = Mouse.Move:Connect(function()
  2361.                     local Px = GetXY(SliderTracker)
  2362.                     local SizeFromScale = (MinSize +  (MaxSize - MinSize)) * Px
  2363.                     local Value = math.floor(SliderMin + ((SliderMax - SliderMin) * Px))
  2364.                     SizeFromScale = SizeFromScale - (SizeFromScale % 2)
  2365.                     TweenService:Create(SliderDot, TweenInfo.new(0.15), {Position = UDim2.fromScale(Px,0.5) - UDim2.fromOffset(5,5)}):Play()
  2366.                     TweenService:Create(SliderFill, TweenInfo.new(0.15), {Size = UDim2.fromScale(Px, 1)}):Play()
  2367.                     SliderFadedDot.Size = UDim2.fromOffset(SizeFromScale,SizeFromScale)
  2368.                     SliderFadedDot.Position = UDim2.fromScale(0.5,0.5) - UDim2.fromOffset(SizeFromScale/2,SizeFromScale/2)
  2369.                     SliderValue.Text = tostring(Value)
  2370.                     SliderCallback(Value)
  2371.                 end)
  2372.                 MouseKill = InputService.InputEnded:Connect(function(UserInput)
  2373.                     if UserInput.UserInputType == Enum.UserInputType.MouseButton1 then
  2374.                         TweenService:Create(SliderFadedDot, TweenInfo.new(0.15), {ImageTransparency = 1}):Play()
  2375.                         MouseMove:Disconnect()
  2376.                         MouseKill:Disconnect()
  2377.                     end
  2378.                 end)
  2379.             end)
  2380.  
  2381.             local MenuAdded, MenuButton = TryAddMenu(Slider, Menu, {})
  2382.  
  2383.             if MenuAdded then
  2384.                 SliderValue.Position = SliderValue.Position - UDim2.fromOffset(25,0)
  2385.                 SliderTracker.Size = SliderTracker.Size - UDim2.fromOffset(20,0)
  2386.                 MenuButton.ImageColor3 = Theme.SliderAccent
  2387.             end
  2388.  
  2389.             local SliderLibrary = {}
  2390.  
  2391.             function SliderLibrary:SetText(Value)
  2392.                 SliderTitle.Text = Value
  2393.             end
  2394.  
  2395.             function SliderLibrary:GetText()
  2396.                 return SliderTitle.Text
  2397.             end
  2398.  
  2399.             function SliderLibrary:SetMin(Value)
  2400.                 SliderMin = Value
  2401.                 local SliderDef = math.clamp(SliderConfig.Def, SliderMin, SliderMax) or math.clamp(50, SliderMin, SliderMax)
  2402.                 local DefaultScale =  (SliderDef - SliderMin) / (SliderMax - SliderMin)
  2403.                 local SizeFromScale = (MinSize +  (MaxSize - MinSize)) * DefaultScale
  2404.                 SizeFromScale = SizeFromScale - (SizeFromScale % 2)
  2405.                 SliderDot.Position = UDim2.fromScale(DefaultScale,0.5) - UDim2.fromOffset(SizeFromScale/2,SizeFromScale/2)
  2406.             end
  2407.  
  2408.             function SliderLibrary:SetMax(Value)
  2409.                 SliderMax = Value
  2410.                 local SliderDef = math.clamp(SliderConfig.Def, SliderMin, SliderMax) or math.clamp(50, SliderMin, SliderMax)
  2411.                 local DefaultScale =  (SliderDef - SliderMin) / (SliderMax - SliderMin)
  2412.                 local SizeFromScale = (MinSize +  (MaxSize - MinSize)) * DefaultScale
  2413.                 SizeFromScale = SizeFromScale - (SizeFromScale % 2)
  2414.                 SliderDot.Position = UDim2.fromScale(DefaultScale,0.5) - UDim2.fromOffset(SizeFromScale/2,SizeFromScale/2)
  2415.             end
  2416.  
  2417.             function SliderLibrary:GetMin()
  2418.                 return SliderMin
  2419.             end
  2420.  
  2421.             function SliderLibrary:GetMax()
  2422.                 return SliderMax
  2423.             end
  2424.  
  2425.             return SliderLibrary
  2426.         end
  2427.  
  2428.         return OptionLibrary
  2429.     end
  2430.  
  2431.     return TabLibrary
  2432. end
  2433.  
  2434. return Material
Add Comment
Please, Sign In to add comment