GUI_Maker_Roblox

Gamesneeze

Sep 28th, 2024
13
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 396.41 KB | None | 0 0
  1. --[[
  2.   Library might be a bit outdated as I did not save it
  3.   Downloaded from history so not sure if this is the most recent version
  4.   Fix the stuff urself if its not
  5. ]]
  6. -- // Variables
  7. local ws = game:GetService("Workspace")
  8. local uis = game:GetService("UserInputService")
  9. local rs = game:GetService("RunService")
  10. local hs = game:GetService("HttpService")
  11. local cas = game:GetService("ContextActionService")
  12. local plrs = game:GetService("Players")
  13. local stats = game:GetService("Stats")
  14. --
  15. local localplayer = plrs.LocalPlayer
  16. --
  17. local mouse = localplayer:GetMouse()
  18. --
  19. local Remove = table.remove
  20. local Unpack = table.unpack
  21. local Find = table.find
  22. -- UI Variables
  23. local library = {
  24.     drawings = {},
  25.     objects = {},
  26.     hidden = {},
  27.     connections = {},
  28.     pointers = {},
  29.     began = {},
  30.     ended = {},
  31.     changed = {},
  32.     colors = {},
  33.     hovers = {},
  34.     Relations = {},
  35.     folders = {
  36.         main = "Atlanta",
  37.         assets = "Atlanta/Images",
  38.         configs = "Atlanta/Configs"
  39.     },
  40.     shared = {
  41.         initialized = false,
  42.         fps = 0,
  43.         ping = 0
  44.     }
  45. }
  46. --
  47. local utility = {
  48.     Keyboard = {
  49.         Letters = {
  50.             "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"
  51.         },
  52.         Modifiers = {
  53.             ["`"] = "~", ["1"] = "!", ["2"] = "@", ["3"] = "#", ["4"] = "$", ["5"] = "%", ["6"] = "^", ["7"] = "&", ["8"] = "*", ["9"] = "(",
  54.             ["0"] = ")", ["-"] = "_", ["="] = "+", ["["] = "{", ["]"] = "}", ["\\"] = "|", [";"] = ":", ["'"] = '"', [","] = "<", ["."] = ".",
  55.             ["/"] = "?"
  56.         },
  57.         InputNames = {
  58.             One = "1", Two = "2", Three = "3", Four = "4", Five = "5", Six = "6", Seven = "7", Eight = "8", Nine = "9", Zero = "0",
  59.             LeftBracket = "[", RightBracket = "]", Semicolon = ";", BackSlash = "\\", Slash = "/", Minus = "-", Equals = "=", Return = "Enter",
  60.             Backquote = "`", CapsLock = "Caps", LeftShift = "LShift", RightShift = "RShift", LeftControl = "LCtrl", RightControl = "RCtrl",
  61.             LeftAlt = "LAlt", RightAlt = "RAlt", Backspace = "Back", Plus = "+", PageUp = "PgUp", PageDown = "PgDown", Delete = "Del",
  62.             Insert = "Ins", NumLock = "NumL", Comma = ",", Period = "."
  63.         }
  64.     }
  65. }
  66. local pages = {}
  67. local sections = {}
  68. -- Theme Variables
  69. --local themes = {}
  70. local theme = {
  71.     accent = Color3.fromRGB(55, 175, 225),
  72.     lightcontrast = Color3.fromRGB(30, 30, 30),
  73.     darkcontrast = Color3.fromRGB(20, 20, 20),
  74.     outline = Color3.fromRGB(0, 0, 0),
  75.     inline = Color3.fromRGB(50, 50, 50),
  76.     textcolor = Color3.fromRGB(255, 255, 255),
  77.     textdark = Color3.fromRGB(175, 175, 175),
  78.     textborder = Color3.fromRGB(0, 0, 0),
  79.     cursoroutline = Color3.fromRGB(10, 10, 10),
  80.     font = 2,
  81.     textsize = 13
  82. }
  83. -- // utility Functions
  84. do
  85.     function utility:Size(xScale,xOffset,yScale,yOffset,instance)
  86.         if instance then
  87.             local x = xScale*instance.Size.x+xOffset
  88.             local y = yScale*instance.Size.y+yOffset
  89.             --
  90.             return Vector2.new(x,y)
  91.         else
  92.             local vx,vy = ws.CurrentCamera.ViewportSize.x,ws.CurrentCamera.ViewportSize.y
  93.             --
  94.             local x = xScale*vx+xOffset
  95.             local y = yScale*vy+yOffset
  96.             --
  97.             return Vector2.new(x,y)
  98.         end
  99.     end
  100.     --
  101.     function utility:Position(xScale,xOffset,yScale,yOffset,instance)
  102.         if instance then
  103.             local x = instance.Position.x+xScale*instance.Size.x+xOffset
  104.             local y = instance.Position.y+yScale*instance.Size.y+yOffset
  105.             --
  106.             return Vector2.new(x,y)
  107.         else
  108.             local vx,vy = ws.CurrentCamera.ViewportSize.x,ws.CurrentCamera.ViewportSize.y
  109.             --
  110.             local x = xScale*vx+xOffset
  111.             local y = yScale*vy+yOffset
  112.             --
  113.             return Vector2.new(x,y)
  114.         end
  115.     end
  116.     --
  117.     function utility:Create(instanceType, instanceOffset, instanceProperties, instanceParent)
  118.         local instanceType = instanceType or "Frame"
  119.         local instanceOffset = instanceOffset or {Vector2.new(0,0)}
  120.         local instanceProperties = instanceProperties or {}
  121.         local instanceHidden = false
  122.         local instance = nil
  123.         --
  124.         if instanceType == "Frame" or instanceType == "frame" then
  125.             local frame = Drawing.new("Square")
  126.             frame.Visible = true
  127.             frame.Filled = true
  128.             frame.Thickness = 0
  129.             frame.Color = Color3.fromRGB(255,255,255)
  130.             frame.Size = Vector2.new(100,100)
  131.             frame.Position = Vector2.new(0,0)
  132.             frame.ZIndex = 50
  133.             frame.Transparency = library.shared.initialized and 1 or 0
  134.             instance = frame
  135.         elseif instanceType == "TextLabel" or instanceType == "textlabel" then
  136.             local text = Drawing.new("Text")
  137.             text.Font = 3
  138.             text.Visible = true
  139.             text.Outline = true
  140.             text.Center = false
  141.             text.Color = Color3.fromRGB(255,255,255)
  142.             text.ZIndex = 50
  143.             text.Transparency = library.shared.initialized and 1 or 0
  144.             instance = text
  145.         elseif instanceType == "Triangle" or instanceType == "triangle" then
  146.             local frame = Drawing.new("Triangle")
  147.             frame.Visible = true
  148.             frame.Filled = true
  149.             frame.Thickness = 0
  150.             frame.Color = Color3.fromRGB(255,255,255)
  151.             frame.ZIndex = 50
  152.             frame.Transparency = library.shared.initialized and 1 or 0
  153.             instance = frame
  154.         elseif instanceType == "Image" or instanceType == "image" then
  155.             local image = Drawing.new("Image")
  156.             image.Size = Vector2.new(12,19)
  157.             image.Position = Vector2.new(0,0)
  158.             image.Visible = true
  159.             image.ZIndex = 50
  160.             image.Transparency = library.shared.initialized and 1 or 0
  161.             instance = image
  162.         elseif instanceType == "Circle" or instanceType == "circle" then
  163.             local circle = Drawing.new("Circle")
  164.             circle.Visible = false
  165.             circle.Color = Color3.fromRGB(255, 0, 0)
  166.             circle.Thickness = 1
  167.             circle.NumSides = 30
  168.             circle.Filled = true
  169.             circle.Transparency = 1
  170.             circle.ZIndex = 50
  171.             circle.Radius = 50
  172.             circle.Transparency = library.shared.initialized and 1 or 0
  173.             instance = circle
  174.         elseif instanceType == "Quad" or instanceType == "quad" then
  175.             local quad = Drawing.new("Quad")
  176.             quad.Visible = false
  177.             quad.Color = Color3.fromRGB(255, 255, 255)
  178.             quad.Thickness = 1.5
  179.             quad.Transparency = 1
  180.             quad.ZIndex = 50
  181.             quad.Filled = false
  182.             quad.Transparency = library.shared.initialized and 1 or 0
  183.             instance = quad
  184.         elseif instanceType == "Line" or instanceType == "line" then
  185.             local line = Drawing.new("Line")
  186.             line.Visible = false
  187.             line.Color = Color3.fromRGB(255, 255, 255)
  188.             line.Thickness = 1.5
  189.             line.Transparency = 1
  190.             line.Thickness = 1.5
  191.             line.ZIndex = 50
  192.             line.Transparency = library.shared.initialized and 1 or 0
  193.             instance = line
  194.         end
  195.         --
  196.         if instance then
  197.             for i, v in pairs(instanceProperties) do
  198.                 if i == "Hidden" or i == "hidden" then
  199.                     instanceHidden = true
  200.                 else
  201.                     if library.shared.initialized then
  202.                         instance[i] = v
  203.                     else
  204.                         if instanceProperties.Hidden or instanceProperties.hidden then
  205.                             instance[i] = v
  206.                         else
  207.                             if i ~= "Transparency" then
  208.                                 instance[i] = v
  209.                             end
  210.                         end
  211.                     end
  212.                 end
  213.             end
  214.             --
  215.             if not instanceHidden then
  216.                 library.drawings[#library.drawings + 1] = {instance, instanceOffset, instanceProperties["Transparency"] or 1}
  217.             else
  218.                 library.hidden[#library.hidden + 1] = {instance}
  219.             end
  220.             --
  221.             if instanceParent then
  222.                 instanceParent[#instanceParent + 1] = instance
  223.             end
  224.             --
  225.             return instance
  226.         end
  227.     end
  228.     --
  229.     function utility:Instance(InstanceType, InstanceProperties)
  230.         local Object = Instance.new(InstanceType)
  231.         --
  232.         for Index, Value in pairs(InstanceProperties) do
  233.             Object[Index] = Value
  234.         end
  235.         --
  236.         library.objects[Object] = true
  237.         --
  238.         return Object
  239.     end
  240.     --
  241.     function utility:RemoveInstance(Object)
  242.         library.objects[Object] = nil
  243.         Object:Remove()
  244.     end
  245.     --
  246.     function utility:UpdateOffset(instance, instanceOffset)
  247.         for i,v in pairs(library.drawings) do
  248.             if v[1] == instance then
  249.                 v[2] = instanceOffset
  250.             end
  251.         end
  252.     end
  253.     --
  254.     function utility:UpdateTransparency(instance, instanceTransparency)
  255.         for i,v in pairs(library.drawings) do
  256.             if v[1] == instance then
  257.                 v[3] = instanceTransparency
  258.             end
  259.         end
  260.     end
  261.     --
  262.     function utility:Remove(instance, hidden)
  263.         library.colors[instance] = nil
  264.         --
  265.         local ind = 0
  266.         --
  267.         for i,v in pairs(hidden and library.hidden or library.drawings) do
  268.             if v[1] == instance then
  269.                 ind = i
  270.                 if hidden then
  271.                     v[1] = nil
  272.                 else
  273.                     v[2] = nil
  274.                     v[1] = nil
  275.                 end
  276.             end
  277.         end
  278.         --
  279.         Remove(hidden and library.hidden or library.drawings, ind)
  280.         instance:Remove()
  281.     end
  282.     --
  283.     function utility:GetSubPrefix(str)
  284.         local str = tostring(str):gsub(" ","")
  285.         local var = ""
  286.         --
  287.         if #str == 2 then
  288.             local sec = string.sub(str,#str,#str+1)
  289.             var = sec == "1" and "st" or sec == "2" and "nd" or sec == "3" and "rd" or "th"
  290.         end
  291.         --
  292.         return var
  293.     end
  294.     --
  295.     function utility:Connection(connectionType, connectionCallback)
  296.         local connection = connectionType:Connect(connectionCallback)
  297.         library.connections[#library.connections + 1] = connection
  298.         --
  299.         return connection
  300.     end
  301.     --
  302.     function utility:Disconnect(connection)
  303.         for i,v in pairs(library.connections) do
  304.             if v == connection then
  305.                 library.connections[i] = nil
  306.                 v:Disconnect()
  307.             end
  308.         end
  309.     end
  310.     --
  311.     function utility:MouseLocation()
  312.         return uis:GetMouseLocation()
  313.     end
  314.     --
  315.     function utility:MouseOverDrawing(values, valuesAdd)
  316.         local valuesAdd = valuesAdd or {}
  317.         local values = {
  318.             (values[1] or 0) + (valuesAdd[1] or 0),
  319.             (values[2] or 0) + (valuesAdd[2] or 0),
  320.             (values[3] or 0) + (valuesAdd[3] or 0),
  321.             (values[4] or 0) + (valuesAdd[4] or 0)
  322.         }
  323.         --
  324.         local mouseLocation = utility:MouseLocation()
  325.         return (mouseLocation.x >= values[1] and mouseLocation.x <= (values[1] + (values[3] - values[1]))) and (mouseLocation.y >= values[2] and mouseLocation.y <= (values[2] + (values[4] - values[2])))
  326.     end
  327.     --
  328.     function utility:GetTextBounds(text, textSize, font)
  329.         local textbounds = Vector2.new(0, 0)
  330.         --
  331.         local textlabel = utility:Create("TextLabel", {Vector2.new(0, 0)}, {
  332.             Text = text,
  333.             Size = textSize,
  334.             Font = font,
  335.             Hidden = true
  336.         })
  337.         --
  338.         textbounds = textlabel.TextBounds
  339.         utility:Remove(textlabel, true)
  340.         --
  341.         return textbounds
  342.     end
  343.     --
  344.     function utility:GetScreenSize()
  345.         return ws.CurrentCamera.ViewportSize
  346.     end
  347.     --
  348.     local http = game:GetService("HttpService")
  349.  
  350.     function utility:LoadImage(instance, imageName, imageLink)
  351.         local data
  352.         local maxRetries = 3
  353.         local retryDelay = 2 -- seconds
  354.    
  355.         -- Check if the image is already cached
  356.         if isfile(library.folders.assets.."/"..imageName..".png") then
  357.             data = readfile(library.folders.assets.."/"..imageName..".png")
  358.         else
  359.             if imageLink then
  360.                 -- Implement retry logic with exponential backoff
  361.                 for attempt = 1, maxRetries do
  362.                     local success, result = pcall(function()
  363.                         return http:GetAsync(imageLink)
  364.                     end)
  365.    
  366.                     if success then
  367.                         data = result
  368.                         writefile(library.folders.assets.."/"..imageName..".png", data)
  369.                         break
  370.                     else
  371.                         if attempt < maxRetries then
  372.                             print("Request failed. Retrying in " .. retryDelay .. " seconds...")
  373.                             wait(retryDelay)
  374.                             retryDelay = retryDelay * 2 -- Exponential backoff
  375.                         else
  376.                             warn("Failed to load image after " .. maxRetries .. " attempts: " .. tostring(result))
  377.                             return
  378.                         end
  379.                     end
  380.                 end
  381.             else
  382.                 return
  383.             end
  384.         end
  385.    
  386.         if data and instance then
  387.             instance.Data = data
  388.         end
  389.     end
  390.     --
  391.     function utility:Lerp(instance, instanceTo, instanceTime)
  392.         local currentTime = 0
  393.         local currentIndex = {}
  394.         local connection
  395.         --
  396.         for i,v in pairs(instanceTo) do
  397.             currentIndex[i] = instance[i]
  398.         end
  399.         --
  400.         local function lerp()
  401.             for i,v in pairs(instanceTo) do
  402.                 instance[i] = ((v - currentIndex[i]) * currentTime / instanceTime) + currentIndex[i]
  403.             end
  404.         end
  405.         --
  406.         connection = utility:Connection(rs.RenderStepped, function(delta)
  407.             if currentTime < instanceTime then
  408.                 currentTime = currentTime + delta
  409.                 lerp()
  410.             else
  411.                 connection:Disconnect()
  412.             end
  413.         end)
  414.     end
  415.     --
  416.     function utility:Combine(table1, table2)
  417.         local table3 = {}
  418.         for i,v in pairs(table1) do table3[i] = v end
  419.         local t = #table3
  420.         for z,x in pairs(table2) do table3[z + t] = x end
  421.         return table3
  422.     end
  423.     --
  424.     function utility:WrapText(Text, Size)
  425.         local Max = (Size / 7)
  426.         --
  427.         return Text:sub(0, Max)
  428.     end
  429.     --
  430.     function utility:InputToString(Input)
  431.         if Input then
  432.             local String = (tostring(Input) .. "."):gsub("%.", ",")
  433.             local Count = 0
  434.             --
  435.             for Value in String:gmatch("(.-),") do
  436.                 Count = Count + 1
  437.                 --
  438.                 if Count == 3 then
  439.                     String = Value:gsub("Keypad", "")
  440.                 end
  441.             end
  442.             --
  443.             if String == "Unknown" or Input.Value == 27 then
  444.                 return "None"
  445.             elseif utility.Keyboard.InputNames[String] then
  446.                 String = utility.Keyboard.InputNames[String]
  447.             end
  448.             --
  449.             return String
  450.         else
  451.             return "None"
  452.         end
  453.     end
  454. end
  455. -- // Library Functions
  456. do
  457.     library.__index = library
  458.     pages.__index = pages
  459.     sections.__index = sections
  460.     --
  461.     function library:Notification(info)
  462.     end
  463.     --
  464.     function library:Loader(info)
  465.         local info = info or {}
  466.         local name = info.name or info.Name or info.title or info.Title or "UI Title"
  467.         local size = info.size or info.Size or Vector2.new(375,359)
  468.         local accent = info.accent or info.Accent or info.color or info.Color or theme.accent
  469.         local callback = info.callback or info.Callback or info.callBack or info.CallBack or function() end
  470.         local pageammount = info.pages or info.Pages or 1
  471.         --
  472.         theme.accent = accent
  473.         --
  474.         local window = {pages = {}, loader = true, isVisible = false, pageammount = pageammount, callback = callback, wminfo = "$$$$$ AntarcticaWare $$$$$ || UID : %u || Ping : %s || Fps : %u", currentPage = nil, fading = false, dragging = false, drag = Vector2.new(0,0), currentContent = {frame = nil, dropdown = nil, multibox = nil, colorpicker = nil, keybind = nil, textbox = nil}}
  475.         --
  476.         local main_frame = utility:Create("Frame", {Vector2.new(0,0)}, {
  477.             Size = utility:Size(0, size.X, 0, size.Y),
  478.             Position = utility:Position(0.5, -(size.X/2) ,0.5, -(size.Y/2)),
  479.             Color = theme.outline
  480.         });window["main_frame"] = main_frame
  481.         --
  482.         library.colors[main_frame] = {
  483.             Color = "outline"
  484.         }
  485.         --
  486.         local frame_inline = utility:Create("Frame", {Vector2.new(1,1), main_frame}, {
  487.             Size = utility:Size(1, -2, 1, -2, main_frame),
  488.             Position = utility:Position(0, 1, 0, 1, main_frame),
  489.             Color = theme.accent
  490.         })
  491.         --
  492.         library.colors[frame_inline] = {
  493.             Color = "accent"
  494.         }
  495.         --
  496.         local inner_frame = utility:Create("Frame", {Vector2.new(1,1), frame_inline}, {
  497.             Size = utility:Size(1, -2, 1, -2, frame_inline),
  498.             Position = utility:Position(0, 1, 0, 1, frame_inline),
  499.             Color = theme.lightcontrast
  500.         })
  501.         --
  502.         library.colors[inner_frame] = {
  503.             Color = "lightcontrast"
  504.         }
  505.         --
  506.         local title = utility:Create("TextLabel", {Vector2.new(4,2), inner_frame}, {
  507.             Text = name,
  508.             Size = theme.textsize,
  509.             Font = theme.font,
  510.             Color = theme.textcolor,
  511.             OutlineColor = theme.textborder,
  512.             Position = utility:Position(0, 4, 0, 2, inner_frame)
  513.         })
  514.         --
  515.         library.colors[title] = {
  516.             OutlineColor = "textborder",
  517.             Color = "textcolor"
  518.         }
  519.         --
  520.         local inner_frame_inline = utility:Create("Frame", {Vector2.new(4,18), inner_frame}, {
  521.             Size = utility:Size(1, -8, 1, -22, inner_frame),
  522.             Position = utility:Position(0, 4, 0, 18, inner_frame),
  523.             Color = theme.inline
  524.         })
  525.         --
  526.         library.colors[inner_frame_inline] = {
  527.             Color = "inline"
  528.         }
  529.         --
  530.         local inner_frame_inline2 = utility:Create("Frame", {Vector2.new(1,1), inner_frame_inline}, {
  531.             Size = utility:Size(1, -2, 1, -2, inner_frame_inline),
  532.             Position = utility:Position(0, 1, 0, 1, inner_frame_inline),
  533.             Color = theme.outline
  534.         })
  535.         --
  536.         library.colors[inner_frame_inline2] = {
  537.             Color = "outline"
  538.         }
  539.         --
  540.         local back_frame = utility:Create("Frame", {Vector2.new(1,1), inner_frame_inline2}, {
  541.             Size = utility:Size(1, -2, 1, -2, inner_frame_inline2),
  542.             Position = utility:Position(0, 1, 0, 1, inner_frame_inline2),
  543.             Color = theme.darkcontrast
  544.         });window["back_frame"] = back_frame
  545.         --
  546.         library.colors[back_frame] = {
  547.             Color = "darkcontrast"
  548.         }
  549.         --
  550.         local tab_frame_inline = utility:Create("Frame", {Vector2.new(4,24), back_frame}, {
  551.             Size = utility:Size(1, -8, 1, -28, back_frame),
  552.             Position = utility:Position(0, 4, 0, 24, back_frame),
  553.             Color = theme.outline
  554.         })
  555.         --
  556.         library.colors[tab_frame_inline] = {
  557.             Color = "outline"
  558.         }
  559.         --
  560.         local tab_frame_inline2 = utility:Create("Frame", {Vector2.new(1,1), tab_frame_inline}, {
  561.             Size = utility:Size(1, -2, 1, -2, tab_frame_inline),
  562.             Position = utility:Position(0, 1, 0, 1, tab_frame_inline),
  563.             Color = theme.inline
  564.         })
  565.         --
  566.         library.colors[tab_frame_inline2] = {
  567.             Color = "inline"
  568.         }
  569.         --
  570.         local tab_frame = utility:Create("Frame", {Vector2.new(1,1), tab_frame_inline2}, {
  571.             Size = utility:Size(1, -2, 1, -2, tab_frame_inline2),
  572.             Position = utility:Position(0, 1, 0, 1, tab_frame_inline2),
  573.             Color = theme.lightcontrast
  574.         });window["tab_frame"] = tab_frame
  575.         --
  576.         library.colors[tab_frame] = {
  577.             Color = "lightcontrast"
  578.         }
  579.         --
  580.         function window:SetName(Name)
  581.             title.Text = Name
  582.         end
  583.         --
  584.         function window:Move(vector)
  585.             for i,v in pairs(library.drawings) do
  586.                 if v[2][2] then
  587.                     v[1].Position = utility:Position(0, v[2][1].X, 0, v[2][1].Y, v[2][2])
  588.                 else
  589.                     v[1].Position = utility:Position(0, vector.X, 0, vector.Y)
  590.                 end
  591.             end
  592.         end
  593.         --
  594.         function window:CloseContent()
  595.             if window.currentContent.dropdown and window.currentContent.dropdown.open then
  596.                 local dropdown = window.currentContent.dropdown
  597.                 dropdown.open = not dropdown.open
  598.                 utility:LoadImage(dropdown.dropdown_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  599.                 --
  600.                 for i,v in pairs(dropdown.holder.drawings) do
  601.                     utility:Remove(v)
  602.                 end
  603.                 --
  604.                 dropdown.holder.drawings = {}
  605.                 dropdown.holder.buttons = {}
  606.                 dropdown.holder.inline = nil
  607.                 --
  608.                 window.currentContent.frame = nil
  609.                 window.currentContent.dropdown = nil
  610.             elseif window.currentContent.multibox and window.currentContent.multibox.open then
  611.                 local multibox = window.currentContent.multibox
  612.                 multibox.open = not multibox.open
  613.                 utility:LoadImage(multibox.multibox_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  614.                 --
  615.                 for i,v in pairs(multibox.holder.drawings) do
  616.                     utility:Remove(v)
  617.                 end
  618.                 --
  619.                 multibox.holder.drawings = {}
  620.                 multibox.holder.buttons = {}
  621.                 multibox.holder.inline = nil
  622.                 --
  623.                 window.currentContent.frame = nil
  624.                 window.currentContent.multibox = nil
  625.             elseif window.currentContent.colorpicker and window.currentContent.colorpicker.open then
  626.                 local colorpicker = window.currentContent.colorpicker
  627.                 colorpicker.open = not colorpicker.open
  628.                 --
  629.                 for i,v in pairs(colorpicker.holder.drawings) do
  630.                     utility:Remove(v)
  631.                 end
  632.                 --
  633.                 colorpicker.holder.drawings = {}
  634.                 --
  635.                 window.currentContent.frame = nil
  636.                 window.currentContent.colorpicker = nil
  637.             elseif window.currentContent.keybind and window.currentContent.keybind.open then
  638.                 local modemenu = window.currentContent.keybind.modemenu
  639.                 window.currentContent.keybind.open = not window.currentContent.keybind.open
  640.                 --
  641.                 for i,v in pairs(modemenu.drawings) do
  642.                     utility:Remove(v)
  643.                 end
  644.                 --
  645.                 modemenu.drawings = {}
  646.                 modemenu.buttons = {}
  647.                 modemenu.frame = nil
  648.                 --
  649.                 window.currentContent.frame = nil
  650.                 window.currentContent.keybind = nil
  651.             elseif window.currentContent.textbox and window.currentContent.textbox.Disconnect then
  652.                 window.currentContent.textbox.Disconnect()
  653.                 window.currentContent.textbox = nil
  654.             end
  655.         end
  656.         --
  657.         function window:IsOverContent()
  658.             local isOver = false
  659.             --
  660.             if window.currentContent.frame and utility:MouseOverDrawing({window.currentContent.frame.Position.X,window.currentContent.frame.Position.Y,window.currentContent.frame.Position.X + window.currentContent.frame.Size.X,window.currentContent.frame.Position.Y + window.currentContent.frame.Size.Y}) then
  661.                 isOver = true
  662.             end
  663.             --
  664.             return isOver
  665.         end
  666.         --
  667.         function window:Unload()
  668.             for i,v in pairs(library.connections) do
  669.                 v:Disconnect()
  670.                 v = nil
  671.             end
  672.             --
  673.             for i,v in next, library.hidden do
  674.                 coroutine.wrap(function()
  675.                     if v[1] and v[1].Remove and v[1].__OBJECT_EXISTS then
  676.                         local instance = v[1]
  677.                         v[1] = nil
  678.                         v = nil
  679.                         --
  680.                         instance:Remove()
  681.                     end
  682.                 end)()
  683.             end
  684.             --
  685.             for i,v in pairs(library.drawings) do
  686.                 coroutine.wrap(function()
  687.                     if v[1].__OBJECT_EXISTS then
  688.                         local instance = v[1]
  689.                         v[2] = nil
  690.                         v[1] = nil
  691.                         v = nil
  692.                         --
  693.                         instance:Remove()
  694.                     end
  695.                 end)()
  696.             end
  697.             --
  698.             for i,v in pairs(library.objects) do
  699.                 i:Remove()
  700.             end
  701.             --
  702.             for i,v in pairs(library.began) do
  703.                 v = nil
  704.             end
  705.             --
  706.             for i,v in pairs(library.ended) do
  707.                 v = nil
  708.             end
  709.             --
  710.             for i,v in pairs(library.changed) do
  711.                 v = nil
  712.             end
  713.             --
  714.             library.shared.initialized = false
  715.             library.drawings = {}
  716.             library.objects = {}
  717.             library.hidden = {}
  718.             library.connections = {}
  719.             library.began = {}
  720.             library.ended = {}
  721.             library.changed = {}
  722.             library.pointers = {}
  723.             library.colors = {}
  724.             --
  725.             uis.MouseIconEnabled = true
  726.         end
  727.         --
  728.         function window:Cursor(info)
  729.             window.cursor = {}
  730.             --
  731.             local cursor = utility:Create("Triangle", nil, {
  732.                 Color = theme.cursoroutline,
  733.                 Thickness = 2.5,
  734.                 Filled = false,
  735.                 ZIndex = 65,
  736.                 Hidden = true
  737.             });window.cursor["cursor"] = cursor
  738.             --
  739.             library.colors[cursor] = {
  740.                 Color = "cursoroutline"
  741.             }
  742.             --
  743.             local cursor_inline = utility:Create("Triangle", nil, {
  744.                 Color = theme.accent,
  745.                 Filled = true,
  746.                 Thickness = 0,
  747.                 ZIndex = 65,
  748.                 Hidden = true
  749.             });window.cursor["cursor_inline"] = cursor_inline
  750.             --
  751.             library.colors[cursor_inline] = {
  752.                 Color = "accent"
  753.             }
  754.             --
  755.             utility:Connection(rs.RenderStepped, function()
  756.                 local mouseLocation = utility:MouseLocation()
  757.                 --
  758.                 cursor.PointA = Vector2.new(mouseLocation.X, mouseLocation.Y)
  759.                 cursor.PointB = Vector2.new(mouseLocation.X + 12, mouseLocation.Y + 4)
  760.                 cursor.PointC = Vector2.new(mouseLocation.X + 4, mouseLocation.Y + 12)
  761.                 --
  762.                 cursor_inline.PointA = Vector2.new(mouseLocation.X, mouseLocation.Y)
  763.                 cursor_inline.PointB = Vector2.new(mouseLocation.X + 12, mouseLocation.Y + 4)
  764.                 cursor_inline.PointC = Vector2.new(mouseLocation.X + 4, mouseLocation.Y + 12)
  765.             end)
  766.             --
  767.             uis.MouseIconEnabled = false
  768.             --
  769.             return window.cursor
  770.         end
  771.         --
  772.         function window:Fade()
  773.             window.fading = true
  774.             window.isVisible = not window.isVisible
  775.             --
  776.             spawn(function()
  777.                 for i, v in pairs(library.drawings) do
  778.                     utility:Lerp(v[1], {Transparency = window.isVisible and v[3] or 0}, 0.25)
  779.                 end
  780.             end)
  781.             --
  782.             window.cursor["cursor"].Transparency = window.isVisible and 1 or 0
  783.             window.cursor["cursor_inline"].Transparency = window.isVisible and 1 or 0
  784.             uis.MouseIconEnabled = not window.isVisible
  785.             --
  786.             window.fading = false
  787.         end
  788.         --
  789.         function window:Initialize()
  790.             if window.pages[1] then window.pages[1]:Show() end
  791.             --
  792.             for i,v in pairs(window.pages) do
  793.                 v:Update()
  794.             end
  795.             --
  796.             library.shared.initialized = true
  797.             --
  798.             window:Cursor()
  799.             --
  800.             window:Fade()
  801.         end
  802.         --
  803.         library.began[#library.began + 1] = function(Input)
  804.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and window.isVisible and utility:MouseOverDrawing({main_frame.Position.X,main_frame.Position.Y,main_frame.Position.X + main_frame.Size.X,main_frame.Position.Y + 20}) then
  805.                 local mouseLocation = utility:MouseLocation()
  806.                 --
  807.                 window.dragging = true
  808.                 window.drag = Vector2.new(mouseLocation.X - main_frame.Position.X, mouseLocation.Y - main_frame.Position.Y)
  809.             end
  810.             --
  811.             if window.currentContent.textbox then
  812.                 if Find(utility.Keyboard.Letters, utility:InputToString(Input.KeyCode)) then
  813.                     if uis:IsKeyDown(Enum.KeyCode.LeftShift) then
  814.                         window.currentContent.textbox.Fire((utility:InputToString(Input.KeyCode)):upper())
  815.                     else
  816.                         window.currentContent.textbox.Fire((utility:InputToString(Input.KeyCode)):lower())
  817.                     end
  818.                 elseif utility:InputToString(Input.KeyCode) == "Space" then
  819.                     window.currentContent.textbox.Fire(" ")
  820.                 elseif utility.Keyboard.Modifiers[utility:InputToString(Input.KeyCode)] then
  821.                     if uis:IsKeyDown(Enum.KeyCode.LeftShift) then
  822.                         if utility.Keyboard.Modifiers[utility:InputToString(Input.KeyCode)] then
  823.                             window.currentContent.textbox.Fire(utility.Keyboard.Modifiers[utility:InputToString(Input.KeyCode)])
  824.                         end
  825.                     else
  826.                         window.currentContent.textbox.Fire(utility:InputToString(Input.KeyCode))
  827.                     end
  828.                 elseif utility:InputToString(Input.KeyCode) == "Back" then
  829.                     window.currentContent.textbox.Fire("Backspace")
  830.                     --
  831.                     window.currentContent.textbox.Backspace = {tick(), 0}
  832.                 end
  833.             end
  834.         end
  835.         --
  836.         library.ended[#library.ended + 1] = function(Input)
  837.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and window.dragging then
  838.                 window.dragging = false
  839.                 window.drag = Vector2.new(0, 0)
  840.             end
  841.             --
  842.             if window.currentContent.textbox and window.currentContent.textbox.Fire and window.currentContent.textbox.Backspace then
  843.                 if utility:InputToString(Input.KeyCode) == "Back" then
  844.                     window.currentContent.textbox.Backspace = nil
  845.                 end
  846.             end
  847.         end
  848.         --
  849.         library.changed[#library.changed + 1] = function(Input)
  850.             if window.dragging and window.isVisible then
  851.                 local mouseLocation = utility:MouseLocation()
  852.                 if utility:GetScreenSize().Y-main_frame.Size.Y-5 > 5 then
  853.                     local move = Vector2.new(math.clamp(mouseLocation.X - window.drag.X, 5, utility:GetScreenSize().X-main_frame.Size.X-5), math.clamp(mouseLocation.Y - window.drag.Y, 5, utility:GetScreenSize().Y-main_frame.Size.Y-5))
  854.                     window:Move(move)
  855.                 else
  856.                     local move = Vector2.new(mouseLocation.X - window.drag.X, mouseLocation.Y - window.drag.Y)
  857.                     window:Move(move)
  858.                 end
  859.             end
  860.         end
  861.         --
  862.         library.began[#library.began + 1] = function(Input)
  863.             if Input.KeyCode == Enum.KeyCode.P then
  864.                 local plrs = game:GetService("Players")
  865.                 local plr = plrs.LocalPlayer
  866.                 if #plrs:GetPlayers() <= 1 then
  867.                     plr:Kick("\nRejoining...")
  868.                     wait()
  869.                     game:GetService('TeleportService'):Teleport(game.PlaceId, plr)
  870.                 else
  871.                     game:GetService('TeleportService'):TeleportToPlaceInstance(game.PlaceId, game.JobId, plr)
  872.                 end
  873.             elseif Input.KeyCode == Enum.KeyCode.U then
  874.                 window:Unload()
  875.             end
  876.         end
  877.         --
  878.         utility:Connection(uis.InputBegan,function(Input)
  879.             for _, func in pairs(library.began) do
  880.                 if not window.dragging then
  881.                     local e,s = pcall(function()
  882.                         func(Input)
  883.                     end)
  884.                 else
  885.                     break
  886.                 end
  887.             end
  888.         end)
  889.         --
  890.         utility:Connection(uis.InputEnded,function(Input)
  891.             for _, func in pairs(library.ended) do
  892.                 local e,s = pcall(function()
  893.                     func(Input)
  894.                 end)
  895.             end
  896.         end)
  897.         --
  898.         utility:Connection(uis.InputChanged,function()
  899.             for _, func in pairs(library.changed) do
  900.                 local e,s = pcall(function()
  901.                     func()
  902.                 end)
  903.             end
  904.         end)
  905.         --
  906.         utility:Connection(rs.RenderStepped,function()
  907.             if window.currentContent.textbox and window.currentContent.textbox.Fire and window.currentContent.textbox.Backspace then
  908.                 local Time = (tick() - window.currentContent.textbox.Backspace[1])
  909.                 --
  910.                 if Time > 0.4 then
  911.                     window.currentContent.textbox.Backspace[2] = window.currentContent.textbox.Backspace[2] + 1
  912.                     --
  913.                     if (window.currentContent.textbox.Backspace[2] % 5 == 0) then
  914.                         window.currentContent.textbox.Fire("Backspace")
  915.                     end
  916.                 end
  917.             end
  918.         end)
  919.         --
  920.         utility:Connection(ws.CurrentCamera:GetPropertyChangedSignal("ViewportSize"),function()
  921.             window:Move(Vector2.new((utility:GetScreenSize().X/2) - (size.X/2), (utility:GetScreenSize().Y/2) - (size.Y/2)))
  922.         end)
  923.         --
  924.         return setmetatable(window, library)
  925.     end
  926.     --
  927.     function library:New(info)
  928.         local info = info or {}
  929.         local name = info.name or info.Name or info.title or info.Title or "UI Title"
  930.         local size = info.size or info.Size or Vector2.new(504,604)
  931.         local accent = info.accent or info.Accent or info.color or info.Color or theme.accent
  932.         local callback = info.callback or info.Callback or info.callBack or info.CallBack or function() end
  933.         local style = info.style or info.Style or 1
  934.         local pageammount = info.PageAmmount
  935.         --
  936.         theme.accent = accent
  937.         --
  938.         local window = {pages = {}, loader = style == 2, init = false, pageammount = pageammount, isVisible = false, callback = callback, uibind = Enum.KeyCode.Z, wminfo = "$$$$$ AntarcticaWare $$$$$ || UID : %u || Ping : %s || Fps : %u", currentPage = nil, fading = false, dragging = false, drag = Vector2.new(0,0), currentContent = {frame = nil, dropdown = nil, multibox = nil, colorpicker = nil, keybind = nil, textbox = nil}}
  939.         --
  940.         local main_frame = utility:Create("Frame", {Vector2.new(0,0)}, {
  941.             Size = utility:Size(0, size.X, 0, size.Y),
  942.             Position = utility:Position(0.5, -(size.X/2) ,0.5, -(size.Y/2)),
  943.             Color = theme.outline
  944.         });window["main_frame"] = main_frame
  945.         --
  946.         library.colors[main_frame] = {
  947.             Color = "outline"
  948.         }
  949.         --
  950.         local frame_inline = utility:Create("Frame", {Vector2.new(1,1), main_frame}, {
  951.             Size = utility:Size(1, -2, 1, -2, main_frame),
  952.             Position = utility:Position(0, 1, 0, 1, main_frame),
  953.             Color = theme.accent
  954.         })
  955.         --
  956.         library.colors[frame_inline] = {
  957.             Color = "accent"
  958.         }
  959.         --
  960.         local inner_frame = utility:Create("Frame", {Vector2.new(1,1), frame_inline}, {
  961.             Size = utility:Size(1, -2, 1, -2, frame_inline),
  962.             Position = utility:Position(0, 1, 0, 1, frame_inline),
  963.             Color = theme.lightcontrast
  964.         })
  965.         --
  966.         library.colors[inner_frame] = {
  967.             Color = "lightcontrast"
  968.         }
  969.         --
  970.         local title = utility:Create("TextLabel", {Vector2.new(4,2), inner_frame}, {
  971.             Text = name,
  972.             Size = theme.textsize,
  973.             Font = theme.font,
  974.             Color = theme.textcolor,
  975.             OutlineColor = theme.textborder,
  976.             Position = utility:Position(0, 4, 0, 2, inner_frame)
  977.         })
  978.         --
  979.         library.colors[title] = {
  980.             OutlineColor = "textborder",
  981.             Color = "textcolor"
  982.         }
  983.         --
  984.         local inner_frame_inline = utility:Create("Frame", {Vector2.new(4,18), inner_frame}, {
  985.             Size = utility:Size(1, -8, 1, -22, inner_frame),
  986.             Position = utility:Position(0, 4, 0, 18, inner_frame),
  987.             Color = theme.inline
  988.         })
  989.         --
  990.         library.colors[inner_frame_inline] = {
  991.             Color = "inline"
  992.         }
  993.         --
  994.         local inner_frame_inline2 = utility:Create("Frame", {Vector2.new(1,1), inner_frame_inline}, {
  995.             Size = utility:Size(1, -2, 1, -2, inner_frame_inline),
  996.             Position = utility:Position(0, 1, 0, 1, inner_frame_inline),
  997.             Color = theme.outline
  998.         })
  999.         --
  1000.         library.colors[inner_frame_inline2] = {
  1001.             Color = "outline"
  1002.         }
  1003.         --
  1004.         local back_frame = utility:Create("Frame", {Vector2.new(1,1), inner_frame_inline2}, {
  1005.             Size = utility:Size(1, -2, 1, -2, inner_frame_inline2),
  1006.             Position = utility:Position(0, 1, 0, 1, inner_frame_inline2),
  1007.             Color = theme.darkcontrast
  1008.         });window["back_frame"] = back_frame
  1009.         --
  1010.         library.colors[back_frame] = {
  1011.             Color = "darkcontrast"
  1012.         }
  1013.         --
  1014.         local tab_frame_inline = utility:Create("Frame", {Vector2.new(4,24), back_frame}, {
  1015.             Size = utility:Size(1, -8, 1, -28, back_frame),
  1016.             Position = utility:Position(0, 4, 0, 24, back_frame),
  1017.             Color = theme.outline
  1018.         })
  1019.         --
  1020.         library.colors[tab_frame_inline] = {
  1021.             Color = "outline"
  1022.         }
  1023.         --
  1024.         local tab_frame_inline2 = utility:Create("Frame", {Vector2.new(1,1), tab_frame_inline}, {
  1025.             Size = utility:Size(1, -2, 1, -2, tab_frame_inline),
  1026.             Position = utility:Position(0, 1, 0, 1, tab_frame_inline),
  1027.             Color = theme.inline
  1028.         })
  1029.         --
  1030.         library.colors[tab_frame_inline2] = {
  1031.             Color = "inline"
  1032.         }
  1033.         --
  1034.         local tab_frame = utility:Create("Frame", {Vector2.new(1,1), tab_frame_inline2}, {
  1035.             Size = utility:Size(1, -2, 1, -2, tab_frame_inline2),
  1036.             Position = utility:Position(0, 1, 0, 1, tab_frame_inline2),
  1037.             Color = theme.lightcontrast
  1038.         });window["tab_frame"] = tab_frame
  1039.         --
  1040.         library.colors[tab_frame] = {
  1041.             Color = "lightcontrast"
  1042.         }
  1043.         --
  1044.         function ColorLerp(Value, MinColor, MaxColor)
  1045.             if Value <= 0 then return MaxColor end
  1046.             if Value >= 100 then return MinColor end
  1047.             --
  1048.             return Color3.new(
  1049.                 MaxColor.R + (MinColor.R - MaxColor.R) * Value,
  1050.                 MaxColor.G + (MinColor.G - MaxColor.G) * Value,
  1051.                 MaxColor.B + (MinColor.B - MaxColor.B) * Value
  1052.             )
  1053.         end
  1054.         -- // Esp Preview
  1055.         do
  1056.             window.VisualPreview = {
  1057.                 Size = {X = 5, Y = 0},
  1058.                 Color1 = Color3.fromRGB(0, 255, 0),
  1059.                 Color2 = Color3.fromRGB(255, 0, 0),
  1060.                 HealthBarFade = 0,
  1061.                 Fading = false,
  1062.                 State = false,
  1063.                 Visible = true,
  1064.                 Drawings = {},
  1065.                 Components = {
  1066.                     Box = {
  1067.                         Outline = nil,
  1068.                         Box = nil,
  1069.                         Fill = nil
  1070.                     },
  1071.                     HealthBar = {
  1072.                         Outline = nil,
  1073.                         Box = nil,
  1074.                         Value = nil
  1075.                     },
  1076.                     Skeleton = {
  1077.                         Head = {},
  1078.                         Torso = {},
  1079.                         LeftArm = {},
  1080.                         RightArm = {},
  1081.                         Hips = {},
  1082.                         LeftLeg = {},
  1083.                         RightLeg = {},
  1084.                         HipsTorso = {}
  1085.                     },
  1086.                     Chams = {
  1087.                         Head = {},
  1088.                         Torso = {},
  1089.                         LeftArm = {},
  1090.                         RightArm = {},
  1091.                         LeftLeg = {},
  1092.                         RightLeg = {}
  1093.                     },
  1094.                     Title = {
  1095.                         Text = nil
  1096.                     },
  1097.                     Distance = {
  1098.                         Text = nil
  1099.                     },
  1100.                     Tool = {
  1101.                         Text = nil
  1102.                     },
  1103.                     Flags = {
  1104.                         Text = nil
  1105.                     }
  1106.                 }
  1107.             }
  1108.             --
  1109.             local esppreview_frame = utility:Create("Frame", {Vector2.new(main_frame.Size.X + 5,0), main_frame}, {
  1110.                 Size = utility:Size(0, 236, 0, 339),
  1111.                 Position = utility:Position(1, 5, 0, 0, main_frame),
  1112.                 Color = theme.outline
  1113.             }, window.VisualPreview.Drawings)
  1114.             --
  1115.             library.colors[esppreview_frame] = {
  1116.                 Color = "outline"
  1117.             }
  1118.             --
  1119.             local esppreview_inline = utility:Create("Frame", {Vector2.new(1,1), esppreview_frame}, {
  1120.                 Size = utility:Size(1, -2, 1, -2, esppreview_frame),
  1121.                 Position = utility:Position(0, 1, 0, 1, esppreview_frame),
  1122.                 Color = theme.accent
  1123.             }, window.VisualPreview.Drawings)
  1124.             --
  1125.             library.colors[esppreview_inline] = {
  1126.                 Color = "accent"
  1127.             }
  1128.             --
  1129.             local esppreview_inner = utility:Create("Frame", {Vector2.new(1,1), esppreview_inline}, {
  1130.                 Size = utility:Size(1, -2, 1, -2, esppreview_inline),
  1131.                 Position = utility:Position(0, 1, 0, 1, esppreview_inline),
  1132.                 Color = theme.lightcontrast
  1133.             }, window.VisualPreview.Drawings)
  1134.             --
  1135.             library.colors[esppreview_inner] = {
  1136.                 Color = "lightcontrast"
  1137.             }
  1138.             --
  1139.             local esppreview_title = utility:Create("TextLabel", {Vector2.new(4,2), esppreview_inner}, {
  1140.                 Text = "ESP Preview",
  1141.                 Size = theme.textsize,
  1142.                 Font = theme.font,
  1143.                 Color = theme.textcolor,
  1144.                 OutlineColor = theme.textborder,
  1145.                 Position = utility:Position(0, 4, 0, 2, esppreview_inner)
  1146.             }, window.VisualPreview.Drawings)
  1147.             --
  1148.             local esppreview_visiblebutton = utility:Create("TextLabel", {Vector2.new(esppreview_inner.Size.X - (5 + 7),2), esppreview_inner}, {
  1149.                 Text = "O",
  1150.                 Size = theme.textsize,
  1151.                 Font = theme.font,
  1152.                 Color = theme.textcolor,
  1153.                 OutlineColor = theme.textborder,
  1154.                 Position = utility:Position(1, -(5 + 7), 0, 2, esppreview_inner)
  1155.             }, window.VisualPreview.Drawings)
  1156.             --
  1157.             library.colors[esppreview_title] = {
  1158.                 OutlineColor = "textborder",
  1159.                 Color = "textcolor"
  1160.             }
  1161.             --
  1162.             local esppreview_inner_inline = utility:Create("Frame", {Vector2.new(4,18), esppreview_inner}, {
  1163.                 Size = utility:Size(1, -8, 1, -22, esppreview_inner),
  1164.                 Position = utility:Position(0, 4, 0, 18, esppreview_inner),
  1165.                 Color = theme.inline
  1166.             }, window.VisualPreview.Drawings)
  1167.             --
  1168.             library.colors[esppreview_inner_inline] = {
  1169.                 Color = "inline"
  1170.             }
  1171.             --
  1172.             local esppreview_inner_outline = utility:Create("Frame", {Vector2.new(1,1), esppreview_inner_inline}, {
  1173.                 Size = utility:Size(1, -2, 1, -2, esppreview_inner_inline),
  1174.                 Position = utility:Position(0, 1, 0, 1, esppreview_inner_inline),
  1175.                 Color = theme.outline
  1176.             }, window.VisualPreview.Drawings)
  1177.             --
  1178.             library.colors[esppreview_inner_outline] = {
  1179.                 Color = "outline"
  1180.             }
  1181.             --
  1182.             local esppreview_inner_frame = utility:Create("Frame", {Vector2.new(1,1), esppreview_inner_outline}, {
  1183.                 Size = utility:Size(1, -2, 1, -2, esppreview_inner_outline),
  1184.                 Position = utility:Position(0, 1, 0, 1, esppreview_inner_outline),
  1185.                 Color = theme.darkcontrast
  1186.             }, window.VisualPreview.Drawings)
  1187.             --
  1188.             library.colors[esppreview_inner_frame] = {
  1189.                 Color = "darkcontrast"
  1190.             }
  1191.             --
  1192.             local esppreview_frame_previewbox = utility:Create("Frame", {Vector2.new(10,10), esppreview_inner_frame}, {
  1193.                 Size = utility:Size(1, -20, 1, -20, esppreview_inner_frame),
  1194.                 Position = utility:Position(0, 10, 0, 10, esppreview_inner_frame),
  1195.                 Color = Color3.fromRGB(0, 0, 0),
  1196.                 Transparency = 0
  1197.             })
  1198.             --
  1199.             local BoxSize = utility:Size(1, -7, 1, -55, esppreview_frame_previewbox)
  1200.             local healthbaroutline
  1201.             local healthbar
  1202.             local healthvalue
  1203.             local boxoutline
  1204.             --
  1205.             function window.VisualPreview:UpdateHealthBar()
  1206.                 window.VisualPreview.HealthBarFade = window.VisualPreview.HealthBarFade + 0.015
  1207.                 local Smoothened = (math.acos(math.cos(window.VisualPreview.HealthBarFade * math.pi)) / math.pi)
  1208.                 local Size = (healthbaroutline.Size.Y - 2) * Smoothened
  1209.                 local Color = ColorLerp(Smoothened, window.VisualPreview.Color1, window.VisualPreview.Color2)
  1210.                 --
  1211.                 healthvalue.Text = "<- " .. math.round(Smoothened * 100)
  1212.                 healthvalue.Color = Color
  1213.                 healthbar.Color = Color
  1214.                 healthbar.Size = utility:Size(1, -2, 0, Size, healthbaroutline)
  1215.                 healthbar.Position = utility:Position(0, 1, 1, -Size - 1, healthbaroutline)
  1216.                 utility:UpdateOffset(healthbar, {Vector2.new(1, healthbaroutline.Size.Y - Size - 1), healthbaroutline})
  1217.             end
  1218.             --
  1219.             function window.VisualPreview:UpdateHealthValue(Size)
  1220.                 local New = Vector2.new(healthbar.Position.X + (5 - Size), math.clamp(healthbar.Position.Y + 5, 0, (healthbar.Position.Y) + (healthbar.Size.Y) - 18))
  1221.                 --
  1222.                 healthvalue.Position = New
  1223.                 utility:UpdateOffset(healthvalue, {Vector2.new(5 - Size, New.Y - healthbar.Position.Y), healthbar})
  1224.             end
  1225.             --
  1226.             function window.VisualPreview:ValidateSize(Side, Size)
  1227.                 if not (window.VisualPreview.Size[Side] == Size) then
  1228.                     window.VisualPreview.Size[Side] = Size
  1229.                     --
  1230.                     esppreview_frame.Size = utility:Size(0, 231 + window.VisualPreview.Size[Side], 0, 339)
  1231.                     esppreview_inline.Size = utility:Size(1, -2, 1, -2, esppreview_frame)
  1232.                     esppreview_inner.Size = utility:Size(1, -2, 1, -2, esppreview_inline)
  1233.                     esppreview_inner_inline.Size = utility:Size(1, -8, 1, -22, esppreview_inner)
  1234.                     esppreview_inner_outline.Size = utility:Size(1, -2, 1, -2, esppreview_inner_inline)
  1235.                     esppreview_inner_frame.Size = utility:Size(1, -2, 1, -2, esppreview_inner_outline)
  1236.                     esppreview_frame_previewbox.Size = utility:Size(1, -20, 1, -20, esppreview_inner_frame)
  1237.                     --
  1238.                     esppreview_visiblebutton.Position = utility:Position(1, -(5 + 7), 0, 2, esppreview_inner)
  1239.                     esppreview_frame_previewbox.Position = utility:Position(0, 10, 0, 10, esppreview_inner_frame)
  1240.                     --
  1241.                     utility:UpdateOffset(esppreview_visiblebutton, {Vector2.new(esppreview_inner.Size.X - (5 + 7),2), esppreview_inner})
  1242.                     utility:UpdateOffset(esppreview_frame_previewbox, {Vector2.new(10,10), esppreview_inner_frame})
  1243.                     utility:UpdateOffset(boxoutline, {Vector2.new(esppreview_frame_previewbox.Size.X - BoxSize.X - 1, 20), esppreview_frame_previewbox})
  1244.                     --
  1245.                     window:Move(main_frame.Position + Vector2.new(0, 0))
  1246.                 end
  1247.             end
  1248.             --
  1249.             function window.VisualPreview:SetPreviewState(State)
  1250.                 window.VisualPreview.Fading = true
  1251.                 window.VisualPreview.State = State
  1252.                 --
  1253.                 task.spawn(function()
  1254.                     for Index, Value in pairs(window.VisualPreview.Drawings) do
  1255.                         utility:Lerp(Index, {Transparency = window.VisualPreview.State and Value or 0}, 0.2)
  1256.                         utility:UpdateTransparency(Index, window.VisualPreview.State and Value or 0)
  1257.                     end
  1258.                 end)
  1259.                 --
  1260.                 window.VisualPreview.Fading = false
  1261.             end
  1262.             --
  1263.             function window.VisualPreview:SetComponentProperty(Component, Property, State, Index)
  1264.                 for Index2, Value in pairs(window.VisualPreview.Components[Component]) do
  1265.                     if Index then
  1266.                         Value[Index][Property] = State
  1267.                         --
  1268.                         if Property == "Transparency" then
  1269.                             utility:UpdateTransparency(Value[Index], State)
  1270.                             if window.VisualPreview.Drawings[Value[Index]] then
  1271.                                 window.VisualPreview.Drawings[Value[Index]] = State
  1272.                             end
  1273.                         end
  1274.                     else
  1275.                         Value[Property] = State
  1276.                         --
  1277.                         if Property == "Transparency" then
  1278.                             utility:UpdateTransparency(Value, State)
  1279.                             if window.VisualPreview.Drawings[Value] then
  1280.                                 window.VisualPreview.Drawings[Value] = State
  1281.                             end
  1282.                         end
  1283.                     end
  1284.                 end
  1285.             end
  1286.             --
  1287.             function window.VisualPreview:SetComponentSelfProperty(Component, Self, Property, State, Index)
  1288.                 if Index then
  1289.                     window.VisualPreview.Components[Component][Self][Index][Property] = State
  1290.                     --
  1291.                     if Property == "Transparency" then
  1292.                         utility:UpdateTransparency(window.VisualPreview.Components[Component][Self][Index], State)
  1293.                         if window.VisualPreview.Drawings[window.VisualPreview.Components[Component][Self][Index]] then
  1294.                             window.VisualPreview.Drawings[window.VisualPreview.Components[Component][Self][Index]] = State
  1295.                         end
  1296.                     end
  1297.                 else
  1298.                     window.VisualPreview.Components[Component][Self][Property] = State
  1299.                     --
  1300.                     if Property == "Transparency" then
  1301.                         utility:UpdateTransparency(window.VisualPreview.Components[Component][Self], State)
  1302.                         if window.VisualPreview.Drawings[window.VisualPreview.Components[Component][Self]] then
  1303.                             window.VisualPreview.Drawings[window.VisualPreview.Components[Component][Self]] = State
  1304.                         end
  1305.                     end
  1306.                 end
  1307.             end
  1308.             --
  1309.             library.began[#library.began + 1] = function(Input)
  1310.                 if Input.UserInputType == Enum.UserInputType.MouseButton1 and esppreview_visiblebutton.Visible and window.isVisible and utility:MouseOverDrawing({esppreview_visiblebutton.Position.X, esppreview_visiblebutton.Position.Y, esppreview_visiblebutton.Position.X + esppreview_visiblebutton.TextBounds.X, esppreview_visiblebutton.Position.Y + esppreview_visiblebutton.TextBounds.Y}) and not window:IsOverContent() then
  1311.                     window.VisualPreview.Visible = not window.VisualPreview.Visible
  1312.                     esppreview_visiblebutton.Text = window.VisualPreview.Visible and "O" or "0"
  1313.                 end
  1314.             end
  1315.             --
  1316.             do -- Preview Stuff
  1317.                 local preview_boxoutline = utility:Create("Frame", {Vector2.new(esppreview_frame_previewbox.Size.X - BoxSize.X - 1, 20), esppreview_frame_previewbox}, {
  1318.                     Size = BoxSize,
  1319.                     Position = utility:Position(1, -(BoxSize.X - 1), 0, 20, esppreview_frame_previewbox),
  1320.                     Color = Color3.fromRGB(0, 0, 0),
  1321.                     Filled = false,
  1322.                     Thickness = 2.5
  1323.                 }, window.VisualPreview.Drawings);boxoutline = preview_boxoutline
  1324.                 --
  1325.                 local preview_box = utility:Create("Frame", {Vector2.new(0, 0), preview_boxoutline}, {
  1326.                     Size = utility:Size(1, 0, 1, 0, preview_boxoutline),
  1327.                     Position = utility:Position(0, 0, 0, 0, preview_boxoutline),
  1328.                     Color = Color3.fromRGB(255, 255, 255),
  1329.                     Filled = false,
  1330.                     Thickness = 0.6
  1331.                 }, window.VisualPreview.Drawings)
  1332.                 --
  1333.                 local preview_heatlhbaroutline = utility:Create("Frame", {Vector2.new(-6, -1), preview_boxoutline}, {
  1334.                     Size = utility:Size(0, 4, 1, 2, preview_boxoutline),
  1335.                     Position = utility:Position(0, -6, 0, -1, preview_boxoutline),
  1336.                     Color = Color3.fromRGB(0, 0, 0),
  1337.                     Filled = true
  1338.                 }, window.VisualPreview.Drawings);healthbaroutline = preview_heatlhbaroutline
  1339.                 --
  1340.                 local preview_heatlhbar = utility:Create("Frame", {Vector2.new(1, 1), preview_heatlhbaroutline}, {
  1341.                     Size = utility:Size(1, -2, 1, -2, preview_heatlhbaroutline),
  1342.                     Position = utility:Position(0, 1, 0, 1, preview_heatlhbaroutline),
  1343.                     Color = Color3.fromRGB(255, 0, 0),
  1344.                     Filled = true
  1345.                 }, window.VisualPreview.Drawings);healthbar = preview_heatlhbar
  1346.                 --
  1347.                 local preview_title = utility:Create("TextLabel", {Vector2.new(preview_box.Size.X / 2, -20), preview_box}, {
  1348.                     Text = "Username",
  1349.                     Size = theme.textsize,
  1350.                     Font = theme.font,
  1351.                     Color = theme.textcolor,
  1352.                     OutlineColor = theme.textborder,
  1353.                     Center = true,
  1354.                     Position = utility:Position(0.5, 0, 0, -20, preview_box)
  1355.                 }, window.VisualPreview.Drawings)
  1356.                 --
  1357.                 local preview_distance = utility:Create("TextLabel", {Vector2.new(preview_box.Size.X / 2, preview_box.Size.Y + 5), preview_box}, {
  1358.                     Text = "25m",
  1359.                     Size = theme.textsize,
  1360.                     Font = theme.font,
  1361.                     Color = theme.textcolor,
  1362.                     OutlineColor = theme.textborder,
  1363.                     Center = true,
  1364.                     Position = utility:Position(0.5, 0, 1, 5, preview_box)
  1365.                 }, window.VisualPreview.Drawings)
  1366.                 --
  1367.                 local preview_tool = utility:Create("TextLabel", {Vector2.new(preview_box.Size.X / 2, preview_box.Size.Y + 20), preview_box}, {
  1368.                     Text = "Weapon",
  1369.                     Size = theme.textsize,
  1370.                     Font = theme.font,
  1371.                     Color = theme.textcolor,
  1372.                     OutlineColor = theme.textborder,
  1373.                     Center = true,
  1374.                     Position = utility:Position(0.5, 0, 1, 20, preview_box)
  1375.                 }, window.VisualPreview.Drawings)
  1376.                 --
  1377.                 local preview_character = utility:Create("Frame", {Vector2.new(46/2, 40/2), preview_box}, {
  1378.                     Size = utility:Size(1, -46, 1, -40, preview_box),
  1379.                     Position = utility:Position(0, (46/2), 0, (40/2), preview_box),
  1380.                     Color = Color3.fromRGB(255, 255, 255),
  1381.                     Transparency = 0
  1382.                 }, window.VisualPreview.Drawings)
  1383.                 --
  1384.                 do -- Chams
  1385.                     for Index = 1, 2 do
  1386.                         local transparency = Index == 1 and 0.75 or 0.5
  1387.                         local color = Index == 1 and Color3.fromRGB(93, 62, 152) or Color3.fromRGB(255, 255, 255)
  1388.                         --
  1389.                         local extrasize = Index == 1 and 4 or 0
  1390.                         local extraoffset = Index == 1 and -2 or 0
  1391.                         --
  1392.                         local preview_character_head = utility:Create("Frame", {Vector2.new((preview_character.Size.X * 0.35) + (extraoffset), extraoffset), preview_character}, {
  1393.                             Size = utility:Size(0.3, extrasize, 0.2, 0, preview_character),
  1394.                             Position = utility:Position(0.35, extraoffset, 0, extraoffset, preview_character),
  1395.                             Color = color,
  1396.                             Transparency = transparency
  1397.                         }, window.VisualPreview.Drawings)
  1398.                         --
  1399.                         local preview_character_torso = utility:Create("Frame", {Vector2.new((preview_character.Size.X * 0.25) + (extraoffset), (preview_character.Size.Y * 0.2) + (extraoffset)), preview_character}, {
  1400.                             Size = utility:Size(0.5, extrasize, 0.4, extrasize, preview_character),
  1401.                             Position = utility:Position(0.25, extraoffset, 0.2, extraoffset, preview_character),
  1402.                             Color = color,
  1403.                             Transparency = transparency
  1404.                         }, window.VisualPreview.Drawings)
  1405.                         --
  1406.                         local preview_character_leftarm = utility:Create("Frame", {Vector2.new(extraoffset, (preview_character.Size.Y * 0.2) + (extraoffset)), preview_character}, {
  1407.                             Size = utility:Size(0.25, 0, 0.4, extrasize, preview_character),
  1408.                             Position = utility:Position(0, extraoffset, 0.2, extraoffset, preview_character),
  1409.                             Color = color,
  1410.                             Transparency = transparency
  1411.                         }, window.VisualPreview.Drawings)
  1412.                         --
  1413.                         local preview_character_rightarm = utility:Create("Frame", {Vector2.new((preview_character.Size.X * 0.75) + (extraoffset + extrasize), (preview_character.Size.Y * 0.2) + (extraoffset)), preview_character}, {
  1414.                             Size = utility:Size(0.25, 0, 0.4, extrasize, preview_character),
  1415.                             Position = utility:Position(0.75, extraoffset, 0.2, extraoffset, preview_character),
  1416.                             Color = color,
  1417.                             Transparency = transparency
  1418.                         }, window.VisualPreview.Drawings)
  1419.                         --
  1420.                         local preview_character_leftleg = utility:Create("Frame", {Vector2.new((preview_character.Size.X * 0.25) + (extraoffset), (preview_character.Size.Y * 0.6) + (extraoffset + extrasize)), preview_character}, {
  1421.                             Size = utility:Size(0.25, extrasize / 2, 0.4, 0, preview_character),
  1422.                             Position = utility:Position(0.25, extraoffset, 0.6, extraoffset + extrasize, preview_character),
  1423.                             Color = color,
  1424.                             Transparency = transparency
  1425.                         }, window.VisualPreview.Drawings)
  1426.                         --
  1427.                         local preview_character_rightleg = utility:Create("Frame", {Vector2.new((preview_character.Size.X * 0.5) + (extraoffset + (extrasize / 2)), (preview_character.Size.Y * 0.6) + (extraoffset + extrasize)), preview_character}, {
  1428.                             Size = utility:Size(0.25, extrasize / 2, 0.4, 0, preview_character),
  1429.                             Position = utility:Position(0.25, extraoffset, 0.6, extraoffset + extrasize, preview_character),
  1430.                             Color = color,
  1431.                             Transparency = transparency
  1432.                         }, window.VisualPreview.Drawings)
  1433.                         --
  1434.                         window.VisualPreview.Components.Chams["Head"][Index] = preview_character_head
  1435.                         window.VisualPreview.Components.Chams["Torso"][Index] = preview_character_torso
  1436.                         window.VisualPreview.Components.Chams["LeftArm"][Index] = preview_character_leftarm
  1437.                         window.VisualPreview.Components.Chams["RightArm"][Index] = preview_character_rightarm
  1438.                         window.VisualPreview.Components.Chams["LeftLeg"][Index] = preview_character_leftleg
  1439.                         window.VisualPreview.Components.Chams["RightLeg"][Index] = preview_character_rightleg
  1440.                     end
  1441.                 end
  1442.                 --
  1443.                 do -- Skeleton
  1444.                     for Index = 1, 2 do
  1445.                         local skeletonsize = Vector2.new(Index == 1 and 3 or 1, Index == 1 and -10 or -12)
  1446.                         local skeletonoffset = Vector2.new(Index == 1 and -1 or 0, Index == 1 and 5 or 6)
  1447.                         local transparency = 0.5
  1448.                         local color = Index == 1 and Color3.fromRGB(0, 0, 0) or Color3.fromRGB(255, 255, 255)
  1449.                         --
  1450.                         local preview_skeleton_head = utility:Create("Frame", {Vector2.new((window.VisualPreview.Components.Chams["Head"][2].Size.X * 0.5) + skeletonoffset.X, (window.VisualPreview.Components.Chams["Head"][2].Size.Y * 0.5) + skeletonoffset.Y), window.VisualPreview.Components.Chams["Head"][2]}, {
  1451.                             Size = utility:Size(0, skeletonsize.X, 0.5, 0, window.VisualPreview.Components.Chams["Head"][2]),
  1452.                             Position = utility:Position(0.5, skeletonoffset.X, 0.5, skeletonoffset.Y, window.VisualPreview.Components.Chams["Head"][2]),
  1453.                             Color = color,
  1454.                             Transparency = transparency
  1455.                         }, window.VisualPreview.Drawings)
  1456.                         --
  1457.                         local preview_skeleton_torso = utility:Create("Frame", {Vector2.new((window.VisualPreview.Components.Chams["Torso"][2].Size.X * 0) + skeletonoffset.X - (window.VisualPreview.Components.Chams["LeftArm"][2].Size.X / 2) + (Index == 1 and 3 or 1), skeletonoffset.Y), window.VisualPreview.Components.Chams["Torso"][2]}, {
  1458.                             Size = utility:Size(1, skeletonsize.X + window.VisualPreview.Components.Chams["LeftArm"][2].Size.X - (Index == 1 and 6 or 2), 0, skeletonsize.X, window.VisualPreview.Components.Chams["Torso"][2]),
  1459.                             Position = utility:Position(0, skeletonoffset.X - (window.VisualPreview.Components.Chams["LeftArm"][2].Size.X / 2) + (Index == 1 and 3 or 1), 0, skeletonoffset.Y, window.VisualPreview.Components.Chams["Torso"][2]),
  1460.                             Color = color,
  1461.                             Transparency = transparency
  1462.                         }, window.VisualPreview.Drawings)
  1463.                         --
  1464.                         local preview_skeleton_leftarm = utility:Create("Frame", {Vector2.new((window.VisualPreview.Components.Chams["LeftArm"][2].Size.X * 0.5) + skeletonoffset.X, skeletonoffset.Y), window.VisualPreview.Components.Chams["LeftArm"][2]}, {
  1465.                             Size = utility:Size(0, skeletonsize.X, 1, skeletonsize.Y, window.VisualPreview.Components.Chams["LeftArm"][2]),
  1466.                             Position = utility:Position(0.5, skeletonoffset.X, 0, skeletonoffset.Y, window.VisualPreview.Components.Chams["LeftArm"][2]),
  1467.                             Color = color,
  1468.                             Transparency = transparency
  1469.                         }, window.VisualPreview.Drawings)
  1470.                         --
  1471.                         local preview_skeleton_rightarm = utility:Create("Frame", {Vector2.new((window.VisualPreview.Components.Chams["RightArm"][2].Size.X * 0.5) + skeletonoffset.X, skeletonoffset.Y), window.VisualPreview.Components.Chams["RightArm"][2]}, {
  1472.                             Size = utility:Size(0, skeletonsize.X, 1, skeletonsize.Y, window.VisualPreview.Components.Chams["RightArm"][2]),
  1473.                             Position = utility:Position(0.5, skeletonoffset.X, 0, skeletonoffset.Y, window.VisualPreview.Components.Chams["RightArm"][2]),
  1474.                             Color = color,
  1475.                             Transparency = transparency
  1476.                         }, window.VisualPreview.Drawings)
  1477.                         --
  1478.                         local preview_skeleton_hips = utility:Create("Frame", {Vector2.new((window.VisualPreview.Components.Chams["LeftLeg"][2].Size.X * 1) + skeletonoffset.X - (window.VisualPreview.Components.Chams["LeftLeg"][2].Size.X / 2) + (Index == 1 and 3 or 1), skeletonoffset.Y), window.VisualPreview.Components.Chams["LeftLeg"][2]}, {
  1479.                             Size = utility:Size(1, skeletonsize.X - (Index == 1 and 6 or 2), 0, skeletonsize.X, window.VisualPreview.Components.Chams["LeftLeg"][2]),
  1480.                             Position = utility:Position(0.5, skeletonoffset.X + (Index == 1 and 3 or 1), 0, skeletonoffset.Y, window.VisualPreview.Components.Chams["LeftLeg"][2]),
  1481.                             Color = color,
  1482.                             Transparency = transparency
  1483.                         }, window.VisualPreview.Drawings)
  1484.                         --
  1485.                         local preview_skeleton_leftleg = utility:Create("Frame", {Vector2.new((window.VisualPreview.Components.Chams["LeftLeg"][2].Size.X * 0.5) + skeletonoffset.X, skeletonoffset.Y), window.VisualPreview.Components.Chams["LeftLeg"][2]}, {
  1486.                             Size = utility:Size(0, skeletonsize.X, 1, skeletonsize.Y, window.VisualPreview.Components.Chams["LeftLeg"][2]),
  1487.                             Position = utility:Position(0.5, skeletonoffset.X, 0, skeletonoffset.Y, window.VisualPreview.Components.Chams["LeftLeg"][2]),
  1488.                             Color = color,
  1489.                             Transparency = transparency
  1490.                         }, window.VisualPreview.Drawings)
  1491.                         --
  1492.                         local preview_skeleton_rightleg = utility:Create("Frame", {Vector2.new((window.VisualPreview.Components.Chams["RightLeg"][2].Size.X * 0.5) + skeletonoffset.X, skeletonoffset.Y), window.VisualPreview.Components.Chams["RightLeg"][2]}, {
  1493.                             Size = utility:Size(0, skeletonsize.X, 1, skeletonsize.Y, window.VisualPreview.Components.Chams["RightLeg"][2]),
  1494.                             Position = utility:Position(0.5, skeletonoffset.X, 0, skeletonoffset.Y, window.VisualPreview.Components.Chams["RightLeg"][2]),
  1495.                             Color = color,
  1496.                             Transparency = transparency
  1497.                         }, window.VisualPreview.Drawings)
  1498.                         --
  1499.                         local preview_skeleton_hipstorso = utility:Create("Frame", {Vector2.new((window.VisualPreview.Components.Chams["Torso"][2].Size.X * 0.5) + skeletonoffset.X, skeletonoffset.Y + (Index == 1 and 3 or 1)), window.VisualPreview.Components.Chams["Torso"][2]}, {
  1500.                             Size = utility:Size(0, skeletonsize.X, 1, Index == 1 and -3 or -1, window.VisualPreview.Components.Chams["Torso"][2]),
  1501.                             Position = utility:Position(0.5, skeletonoffset.X, 0, skeletonoffset.Y + (Index == 1 and 3 or 1), window.VisualPreview.Components.Chams["Torso"][2]),
  1502.                             Color = color,
  1503.                             Transparency = transparency
  1504.                         }, window.VisualPreview.Drawings)
  1505.                         --
  1506.                         window.VisualPreview.Components.Skeleton["Head"][Index] = preview_skeleton_head
  1507.                         window.VisualPreview.Components.Skeleton["Torso"][Index] = preview_skeleton_torso
  1508.                         window.VisualPreview.Components.Skeleton["LeftArm"][Index] = preview_skeleton_leftarm
  1509.                         window.VisualPreview.Components.Skeleton["RightArm"][Index] = preview_skeleton_rightarm
  1510.                         window.VisualPreview.Components.Skeleton["Hips"][Index] = preview_skeleton_hips
  1511.                         window.VisualPreview.Components.Skeleton["LeftLeg"][Index] = preview_skeleton_leftleg
  1512.                         window.VisualPreview.Components.Skeleton["RightLeg"][Index] = preview_skeleton_rightleg
  1513.                         window.VisualPreview.Components.Skeleton["HipsTorso"][Index] = preview_skeleton_hipstorso
  1514.                     end
  1515.                 end
  1516.                 --
  1517.                 local preview_boxfill = utility:Create("Frame", {Vector2.new(1, 1), preview_boxoutline}, {
  1518.                     Size = utility:Size(1, -2, 1, -2, preview_boxoutline),
  1519.                     Position = utility:Position(0, 1, 0, 1, preview_boxoutline),
  1520.                     Color = Color3.fromRGB(255, 255, 255),
  1521.                     Filled = true,
  1522.                     Transparency = 0.9
  1523.                 }, window.VisualPreview.Drawings)
  1524.                 --
  1525.                 local preview_flags = utility:Create("TextLabel", {Vector2.new(preview_box.Size.X -56, 5), preview_box}, {
  1526.                     Text = "Flags ->", --Display\nMoving\nJumping\nDesynced"
  1527.                     Size = theme.textsize,
  1528.                     Font = theme.font,
  1529.                     Color = Color3.fromRGB(255, 255, 255),
  1530.                     OutlineColor = theme.textborder,
  1531.                     Center = false,
  1532.                     Position = utility:Position(1, -56, 0, 5, preview_box)
  1533.                 }, window.VisualPreview.Drawings)
  1534.                 --
  1535.                 local preview_healthbarvalue = utility:Create("TextLabel", {Vector2.new(0, 5), preview_heatlhbar}, {
  1536.                     Text = "<- Number", --Display\nMoving\nJumping\nDesynced"
  1537.                     Size = theme.textsize,
  1538.                     Font = theme.font,
  1539.                     Color = Color3.fromRGB(0, 255, 0),
  1540.                     OutlineColor = theme.textborder,
  1541.                     Center = false,
  1542.                     Position = utility:Position(0, 0, 0, 5, preview_heatlhbar)
  1543.                 }, window.VisualPreview.Drawings);healthvalue = preview_healthbarvalue
  1544.                 --
  1545.                 window.VisualPreview.Components.Title["Text"] = preview_title
  1546.                 window.VisualPreview.Components.Distance["Text"] = preview_distance
  1547.                 window.VisualPreview.Components.Tool["Text"] = preview_tool
  1548.                 window.VisualPreview.Components.Flags["Text"] = preview_flags
  1549.                 window.VisualPreview.Components.Box["Outline"] = preview_boxoutline
  1550.                 window.VisualPreview.Components.Box["Box"] = preview_box
  1551.                 window.VisualPreview.Components.Box["Fill"] = preview_boxfill
  1552.                 window.VisualPreview.Components.HealthBar["Outline"] = preview_heatlhbaroutline
  1553.                 window.VisualPreview.Components.HealthBar["Box"] = preview_heatlhbar
  1554.                 window.VisualPreview.Components.HealthBar["Value"] = preview_healthbarvalue
  1555.             end
  1556.             --
  1557.             do -- New Drawings
  1558.                 local NewDrawings = {}
  1559.                 --
  1560.                 for Index, Value in pairs(library.drawings) do
  1561.                     if Value[1] and table.find(window.VisualPreview.Drawings, Value[1]) then
  1562.                         NewDrawings[Value[1]] = Value[3]
  1563.                     end
  1564.                 end
  1565.                 --
  1566.                 window.VisualPreview.Drawings = NewDrawings
  1567.             end
  1568.         end
  1569.         --
  1570.         function window:SetName(Name)
  1571.             title.Text = Name
  1572.         end
  1573.         --
  1574.         function window:GetConfig()
  1575.             local config = {}
  1576.             --
  1577.             for i,v in pairs(library.pointers) do
  1578.                 if typeof(v:Get()) == "table" and v:Get().Transparency then
  1579.                     local hue, sat, val = v:Get().Color:ToHSV()
  1580.                     config[i] = {Color = {hue, sat, val}, Transparency = v:Get().Transparency}
  1581.                 else
  1582.                     config[i] = v:Get()
  1583.                 end
  1584.             end
  1585.             --
  1586.             return game:GetService("HttpService"):JSONEncode(config)
  1587.         end
  1588.         --
  1589.         function window:LoadConfig(config)
  1590.             local config = hs:JSONDecode(config)
  1591.             --
  1592.             for i,v in pairs(config) do
  1593.                 if library.pointers[i] then
  1594.                     library.pointers[i]:Set(v)
  1595.                 end
  1596.             end
  1597.         end
  1598.         --
  1599.         function window:Move(vector)
  1600.             for i,v in pairs(library.drawings) do
  1601.                 if v[1].Visible then
  1602.                     if v[2][2] then
  1603.                         v[1].Position = utility:Position(0, v[2][1].X, 0, v[2][1].Y, v[2][2])
  1604.                     else
  1605.                         v[1].Position = utility:Position(0, vector.X, 0, vector.Y)
  1606.                     end
  1607.                 end
  1608.             end
  1609.         end
  1610.         --
  1611.         function window:CloseContent()
  1612.             if window.currentContent.dropdown and window.currentContent.dropdown.open then
  1613.                 local dropdown = window.currentContent.dropdown
  1614.                 dropdown.open = not dropdown.open
  1615.                 utility:LoadImage(dropdown.dropdown_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  1616.                 --
  1617.                 for i,v in pairs(dropdown.holder.drawings) do
  1618.                     utility:Remove(v)
  1619.                 end
  1620.                 --
  1621.                 dropdown.holder.drawings = {}
  1622.                 dropdown.holder.buttons = {}
  1623.                 dropdown.holder.inline = nil
  1624.                 --
  1625.                 window.currentContent.frame = nil
  1626.                 window.currentContent.dropdown = nil
  1627.             elseif window.currentContent.multibox and window.currentContent.multibox.open then
  1628.                 local multibox = window.currentContent.multibox
  1629.                 multibox.open = not multibox.open
  1630.                 utility:LoadImage(multibox.multibox_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  1631.                 --
  1632.                 for i,v in pairs(multibox.holder.drawings) do
  1633.                     utility:Remove(v)
  1634.                 end
  1635.                 --
  1636.                 multibox.holder.drawings = {}
  1637.                 multibox.holder.buttons = {}
  1638.                 multibox.holder.inline = nil
  1639.                 --
  1640.                 window.currentContent.frame = nil
  1641.                 window.currentContent.multibox = nil
  1642.             elseif window.currentContent.colorpicker and window.currentContent.colorpicker.open then
  1643.                 local colorpicker = window.currentContent.colorpicker
  1644.                 colorpicker.open = not colorpicker.open
  1645.                 --
  1646.                 for i,v in pairs(colorpicker.holder.drawings) do
  1647.                     utility:Remove(v)
  1648.                 end
  1649.                 --
  1650.                 colorpicker.holder.drawings = {}
  1651.                 --
  1652.                 window.currentContent.frame = nil
  1653.                 window.currentContent.colorpicker = nil
  1654.             elseif window.currentContent.keybind and window.currentContent.keybind.open then
  1655.                 local modemenu = window.currentContent.keybind.modemenu
  1656.                 window.currentContent.keybind.open = not window.currentContent.keybind.open
  1657.                 --
  1658.                 for i,v in pairs(modemenu.drawings) do
  1659.                     utility:Remove(v)
  1660.                 end
  1661.                 --
  1662.                 modemenu.drawings = {}
  1663.                 modemenu.buttons = {}
  1664.                 modemenu.frame = nil
  1665.                 --
  1666.                 window.currentContent.frame = nil
  1667.                 window.currentContent.keybind = nil
  1668.             elseif window.currentContent.textbox and window.currentContent.textbox.Disconnect then
  1669.                 if window.currentContent.textbox.Item.oldenter ~= window.currentContent.textbox.Item.current then
  1670.                     window.currentContent.textbox.Item.oldenter = window.currentContent.textbox.Item.current
  1671.                     task.spawn(function()
  1672.                         window.currentContent.textbox.Item.callback(window.currentContent.textbox.Item.current, true)
  1673.                     end)
  1674.                 end
  1675.                 window.currentContent.textbox.Disconnect()
  1676.                 window.currentContent.textbox = nil
  1677.             end
  1678.         end
  1679.         --
  1680.         function window:IsOverContent()
  1681.             local isOver = false
  1682.             --
  1683.             if window.currentContent.frame and utility:MouseOverDrawing({window.currentContent.frame.Position.X,window.currentContent.frame.Position.Y,window.currentContent.frame.Position.X + window.currentContent.frame.Size.X,window.currentContent.frame.Position.Y + window.currentContent.frame.Size.Y}) then
  1684.                 isOver = true
  1685.             end
  1686.             --
  1687.             return isOver
  1688.         end
  1689.         --
  1690.         function window:Unload()
  1691.             for i,v in pairs(library.connections) do
  1692.                 v:Disconnect()
  1693.                 v = nil
  1694.             end
  1695.             --
  1696.             for i,v in next, library.hidden do
  1697.                 coroutine.wrap(function()
  1698.                     if v[1] and v[1].Remove and v[1].__OBJECT_EXISTS then
  1699.                         local instance = v[1]
  1700.                         v[1] = nil
  1701.                         v = nil
  1702.                         --
  1703.                         instance:Remove()
  1704.                     end
  1705.                 end)()
  1706.             end
  1707.             --
  1708.             for i,v in pairs(library.drawings) do
  1709.                 coroutine.wrap(function()
  1710.                     if v[1].__OBJECT_EXISTS then
  1711.                         local instance = v[1]
  1712.                         v[2] = nil
  1713.                         v[1] = nil
  1714.                         v = nil
  1715.                         --
  1716.                         instance:Remove()
  1717.                     end
  1718.                 end)()
  1719.             end
  1720.             --
  1721.             for i,v in pairs(library.objects) do
  1722.                 i:Remove()
  1723.             end
  1724.             --
  1725.             for i,v in pairs(library.began) do
  1726.                 v = nil
  1727.             end
  1728.             --
  1729.             for i,v in pairs(library.ended) do
  1730.                 v = nil
  1731.             end
  1732.             --
  1733.             for i,v in pairs(library.changed) do
  1734.                 v = nil
  1735.             end
  1736.             --
  1737.             library.drawings = {}
  1738.             library.objects = {}
  1739.             library.hidden = {}
  1740.             library.connections = {}
  1741.             library.began = {}
  1742.             library.ended = {}
  1743.             library.changed = {}
  1744.             --
  1745.             uis.MouseIconEnabled = true
  1746.         end
  1747.         --
  1748.         function window:Watermark(info)
  1749.             window.watermark = {visible = false}
  1750.             --
  1751.             local info = info or {}
  1752.             local watermark_name = info.name or info.Name or info.title or info.Title or window.wminfo
  1753.             --
  1754.             local text_bounds = utility:GetTextBounds(watermark_name, theme.textsize, theme.font)
  1755.             --
  1756.             local watermark_outline = utility:Create("Frame", {Vector2.new(100,38/2-10)}, {
  1757.                 Size = utility:Size(0, text_bounds.X+20, 0, 21),
  1758.                 Position = utility:Position(0, 100, 0, 38/2-10),
  1759.                 Hidden = true,
  1760.                 ZIndex = 60,
  1761.                 Color = theme.outline,
  1762.                 Visible = window.watermark.visible
  1763.             })window.watermark.outline = watermark_outline
  1764.             --
  1765.             library.colors[watermark_outline] = {
  1766.                 Color = "outline"
  1767.             }
  1768.             --
  1769.             local watermark_inline = utility:Create("Frame", {Vector2.new(1,1), watermark_outline}, {
  1770.                 Size = utility:Size(1, -2, 1, -2, watermark_outline),
  1771.                 Position = utility:Position(0, 1, 0, 1, watermark_outline),
  1772.                 Hidden = true,
  1773.                 ZIndex = 60,
  1774.                 Color = theme.inline,
  1775.                 Visible = window.watermark.visible
  1776.             })
  1777.             --
  1778.             library.colors[watermark_inline] = {
  1779.                 Color = "inline"
  1780.             }
  1781.             --
  1782.             local watermark_frame = utility:Create("Frame", {Vector2.new(1,1), watermark_inline}, {
  1783.                 Size = utility:Size(1, -2, 1, -2, watermark_inline),
  1784.                 Position = utility:Position(0, 1, 0, 1, watermark_inline),
  1785.                 Hidden = true,
  1786.                 ZIndex = 60,
  1787.                 Color = theme.lightcontrast,
  1788.                 Visible = window.watermark.visible
  1789.             })
  1790.             --
  1791.             library.colors[watermark_frame] = {
  1792.                 Color = "lightcontrast"
  1793.             }
  1794.             --
  1795.             local watermark_accent = utility:Create("Frame", {Vector2.new(0,0), watermark_frame}, {
  1796.                 Size = utility:Size(1, 0, 0, 1, watermark_frame),
  1797.                 Position = utility:Position(0, 0, 0, 0, watermark_frame),
  1798.                 Hidden = true,
  1799.                 ZIndex = 60,
  1800.                 Color = theme.accent,
  1801.                 Visible = window.watermark.visible
  1802.             })
  1803.             --
  1804.             library.colors[watermark_accent] = {
  1805.                 Color = "accent"
  1806.             }
  1807.             --
  1808.             local watermark_title = utility:Create("TextLabel", {Vector2.new(2 + 6,4), watermark_outline}, {
  1809.                 Text = "Failed Loading Watermark.",
  1810.                 Size = theme.textsize,
  1811.                 Font = theme.font,
  1812.                 Color = theme.textcolor,
  1813.                 OutlineColor = theme.textborder,
  1814.                 Hidden = true,
  1815.                 ZIndex = 60,
  1816.                 Position = utility:Position(0, 2 + 6, 0, 4, watermark_outline),
  1817.                 Visible = window.watermark.visible
  1818.             })
  1819.             --
  1820.             library.colors[watermark_title] = {
  1821.                 OutlineColor = "textborder",
  1822.                 Color = "textcolor"
  1823.             }
  1824.             --
  1825.             function window.watermark:UpdateSize()
  1826.                 watermark_outline.Size = utility:Size(0, watermark_title.TextBounds.X + 4 + (6*2), 0, 21)
  1827.                 watermark_inline.Size = utility:Size(1, -2, 1, -2, watermark_outline)
  1828.                 watermark_frame.Size = utility:Size(1, -2, 1, -2, watermark_inline)
  1829.                 watermark_accent.Size = utility:Size(1, 0, 0, 1, watermark_frame)
  1830.             end
  1831.             --
  1832.             function window.watermark:Visibility()
  1833.                 watermark_outline.Visible = window.watermark.visible
  1834.                 watermark_inline.Visible = window.watermark.visible
  1835.                 watermark_frame.Visible = window.watermark.visible
  1836.                 watermark_accent.Visible = window.watermark.visible
  1837.                 watermark_title.Visible = window.watermark.visible
  1838.             end
  1839.             --
  1840.             function window.watermark:Update(updateType, updateValue)
  1841.                 if updateType == "Visible" then
  1842.                     window.watermark.visible = updateValue
  1843.                     window.watermark:Visibility()
  1844.                 end
  1845.             end
  1846.             --
  1847.             window.watermark:UpdateSize()
  1848.             --
  1849.             local temp = tick()
  1850.             local Tick = tick()
  1851.             --
  1852.             utility:Connection(rs.RenderStepped, function(FPS)
  1853.                 library.shared.fps = math.floor(1 / math.abs(temp - tick()))
  1854.                 temp = tick()
  1855.                 library.shared.ping = stats.Network:FindFirstChild("ServerStatsItem") and tostring(math.round(stats.Network.ServerStatsItem["Data Ping"]:GetValue())) or "Unknown"
  1856.                 --
  1857.                 task.spawn(function()
  1858.                     if (tick() - Tick) > 0.15 then
  1859.                         watermark_title.Text = window.wminfo:gsub("$PING", library.shared.ping):gsub("$FPS", library.shared.fps)
  1860.                         window.watermark:UpdateSize()
  1861.                         --
  1862.                         Tick = tick()
  1863.                     end
  1864.                 end)
  1865.             end)
  1866.             --
  1867.             return window.watermark
  1868.         end
  1869.         --
  1870.         function window:KeybindsList(info)
  1871.             window.keybindslist = {visible = false, keybinds = {}}
  1872.             --
  1873.             local info = info or {}
  1874.             --
  1875.             local keybindslist_outline = utility:Create("Frame", {Vector2.new(10,(utility:GetScreenSize().Y/2)-200)}, {
  1876.                 Size = utility:Size(0, 180, 0, 22),
  1877.                 Position = utility:Position(0, 10, 0.4, 0),
  1878.                 Hidden = true,
  1879.                 ZIndex = 55,
  1880.                 Color = theme.outline,
  1881.                 Visible = window.keybindslist.visible
  1882.             })window.keybindslist.outline = keybindslist_outline
  1883.             --
  1884.             library.colors[keybindslist_outline] = {
  1885.                 Color = "outline"
  1886.             }
  1887.             --
  1888.             local keybindslist_inline = utility:Create("Frame", {Vector2.new(1,1), keybindslist_outline}, {
  1889.                 Size = utility:Size(1, -2, 1, -2, keybindslist_outline),
  1890.                 Position = utility:Position(0, 1, 0, 1, keybindslist_outline),
  1891.                 Hidden = true,
  1892.                 ZIndex = 55,
  1893.                 Color = theme.inline,
  1894.                 Visible = window.keybindslist.visible
  1895.             })
  1896.             --
  1897.             library.colors[keybindslist_inline] = {
  1898.                 Color = "inline"
  1899.             }
  1900.             --
  1901.             local keybindslist_frame = utility:Create("Frame", {Vector2.new(1,1), keybindslist_inline}, {
  1902.                 Size = utility:Size(1, -2, 1, -2, keybindslist_inline),
  1903.                 Position = utility:Position(0, 1, 0, 1, keybindslist_inline),
  1904.                 Hidden = true,
  1905.                 ZIndex = 55,
  1906.                 Color = theme.lightcontrast,
  1907.                 Visible = window.keybindslist.visible
  1908.             })
  1909.             --
  1910.             library.colors[keybindslist_frame] = {
  1911.                 Color = "lightcontrast"
  1912.             }
  1913.             --
  1914.             local keybindslist_accent = utility:Create("Frame", {Vector2.new(0,0), keybindslist_frame}, {
  1915.                 Size = utility:Size(1, 0, 0, 1, keybindslist_frame),
  1916.                 Position = utility:Position(0, 0, 0, 0, keybindslist_frame),
  1917.                 Hidden = true,
  1918.                 ZIndex = 55,
  1919.                 Color = theme.accent,
  1920.                 Visible = window.keybindslist.visible
  1921.             })
  1922.             --
  1923.             library.colors[keybindslist_accent] = {
  1924.                 Color = "accent"
  1925.             }
  1926.             --
  1927.             local keybindslist_title = utility:Create("TextLabel", {Vector2.new(keybindslist_outline.Size.X/2,4), keybindslist_outline}, {
  1928.                 Text = "[ Keybinds ]",
  1929.                 Size = theme.textsize,
  1930.                 Font = theme.font,
  1931.                 Color = theme.textcolor,
  1932.                 OutlineColor = theme.textborder,
  1933.                 Center = true,
  1934.                 Hidden = true,
  1935.                 ZIndex = 55,
  1936.                 Position = utility:Position(0.5, 0, 0, 5, keybindslist_outline),
  1937.                 Visible = window.keybindslist.visible
  1938.             })
  1939.             --
  1940.             library.colors[keybindslist_title] = {
  1941.                 OutlineColor = "textborder",
  1942.                 Color = "textcolor"
  1943.             }
  1944.             --
  1945.             function window.keybindslist:Resort()
  1946.                 local index = 0
  1947.                 for i,v in pairs(window.keybindslist.keybinds) do
  1948.                     v:Move(0 + (index*17))
  1949.                     --
  1950.                     index = index + 1
  1951.                 end
  1952.             end
  1953.             --
  1954.             function window.keybindslist:Add(keybindname, keybindvalue)
  1955.                 if keybindname and keybindvalue and not window.keybindslist.keybinds[keybindname] then
  1956.                     local keybindTable = {}
  1957.                     --
  1958.                     local keybind_outline = utility:Create("Frame", {Vector2.new(0,keybindslist_outline.Size.Y-1), keybindslist_outline}, {
  1959.                         Size = utility:Size(1, 0, 0, 18, keybindslist_outline),
  1960.                         Position = utility:Position(0, 0, 1, -1, keybindslist_outline),
  1961.                         Hidden = true,
  1962.                         ZIndex = 55,
  1963.                         Color = theme.outline,
  1964.                         Visible = window.keybindslist.visible
  1965.                     })
  1966.                     --
  1967.                     library.colors[keybind_outline] = {
  1968.                         Color = "outline"
  1969.                     }
  1970.                     --
  1971.                     local keybind_inline = utility:Create("Frame", {Vector2.new(1,1), keybind_outline}, {
  1972.                         Size = utility:Size(1, -2, 1, -2, keybind_outline),
  1973.                         Position = utility:Position(0, 1, 0, 1, keybind_outline),
  1974.                         Hidden = true,
  1975.                         ZIndex = 55,
  1976.                         Color = theme.inline,
  1977.                         Visible = window.keybindslist.visible
  1978.                     })
  1979.                     --
  1980.                     library.colors[keybind_inline] = {
  1981.                         Color = "inline"
  1982.                     }
  1983.                     --
  1984.                     local keybind_frame = utility:Create("Frame", {Vector2.new(1,1), keybind_inline}, {
  1985.                         Size = utility:Size(1, -2, 1, -2, keybind_inline),
  1986.                         Position = utility:Position(0, 1, 0, 1, keybind_inline),
  1987.                         Hidden = true,
  1988.                         ZIndex = 55,
  1989.                         Color = theme.darkcontrast,
  1990.                         Visible = window.keybindslist.visible
  1991.                     })
  1992.                     --
  1993.                     library.colors[keybind_frame] = {
  1994.                         Color = "darkcontrast"
  1995.                     }
  1996.                     --
  1997.                     local keybind_title = utility:Create("TextLabel", {Vector2.new(4,3), keybind_outline}, {
  1998.                         Text = keybindname,
  1999.                         Size = theme.textsize,
  2000.                         Font = theme.font,
  2001.                         Color = theme.textcolor,
  2002.                         OutlineColor = theme.textborder,
  2003.                         Center = false,
  2004.                         Hidden = true,
  2005.                         ZIndex = 55,
  2006.                         Position = utility:Position(0, 4, 0, 3, keybind_outline),
  2007.                         Visible = window.keybindslist.visible
  2008.                     })
  2009.                     --
  2010.                     library.colors[keybind_title] = {
  2011.                         OutlineColor = "textborder",
  2012.                         Color = "textcolor"
  2013.                     }
  2014.                     --
  2015.                     local keybind_value = utility:Create("TextLabel", {Vector2.new(keybind_outline.Size.X - 4 - utility:GetTextBounds(keybindname, theme.textsize, theme.font).X,3), keybind_outline}, {
  2016.                         Text = "["..keybindvalue.."]",
  2017.                         Size = theme.textsize,
  2018.                         Font = theme.font,
  2019.                         Color = theme.textcolor,
  2020.                         OutlineColor = theme.textborder,
  2021.                         Hidden = true,
  2022.                         ZIndex = 55,
  2023.                         Position = utility:Position(1, -4 - utility:GetTextBounds(keybindname, theme.textsize, theme.font).X, 0, 3, keybind_outline),
  2024.                         Visible = window.keybindslist.visible
  2025.                     })
  2026.                     --
  2027.                     library.colors[keybind_value] = {
  2028.                         OutlineColor = "textborder",
  2029.                         Color = "textcolor"
  2030.                     }
  2031.                     --
  2032.                     function keybindTable:Move(yPos)
  2033.                         keybind_outline.Position = utility:Position(0, 0, 1, -1 + yPos, keybindslist_outline)
  2034.                         keybind_inline.Position = utility:Position(0, 1, 0, 1, keybind_outline)
  2035.                         keybind_frame.Position = utility:Position(0, 1, 0, 1, keybind_inline)
  2036.                         keybind_title.Position = utility:Position(0, 4, 0, 3, keybind_outline)
  2037.                         keybind_value.Position = utility:Position(1, -4 - keybind_value.TextBounds.X, 0, 3, keybind_outline)
  2038.                     end
  2039.                     --
  2040.                     function keybindTable:Remove()
  2041.                         utility:Remove(keybind_outline, true)
  2042.                         utility:Remove(keybind_inline, true)
  2043.                         utility:Remove(keybind_frame, true)
  2044.                         utility:Remove(keybind_title, true)
  2045.                         utility:Remove(keybind_value, true)
  2046.                         --
  2047.                         window.keybindslist.keybinds[keybindname] = nil
  2048.                         keybindTable = nil
  2049.                     end
  2050.                     --
  2051.                     function keybindTable:Visibility()
  2052.                         keybind_outline.Visible = window.keybindslist.visible
  2053.                         keybind_inline.Visible = window.keybindslist.visible
  2054.                         keybind_frame.Visible = window.keybindslist.visible
  2055.                         keybind_title.Visible = window.keybindslist.visible
  2056.                         keybind_value.Visible = window.keybindslist.visible
  2057.                     end
  2058.                     --
  2059.                     window.keybindslist.keybinds[keybindname] = keybindTable
  2060.                     window.keybindslist:Resort()
  2061.                 end
  2062.             end
  2063.             --
  2064.             function window.keybindslist:Remove(keybindname)
  2065.                 if keybindname and window.keybindslist.keybinds[keybindname] then
  2066.                     window.keybindslist.keybinds[keybindname]:Remove()
  2067.                     window.keybindslist.keybinds[keybindname] = nil
  2068.                     window.keybindslist:Resort()
  2069.                 end
  2070.             end
  2071.             --
  2072.             function window.keybindslist:Visibility()
  2073.                 keybindslist_outline.Visible = window.keybindslist.visible
  2074.                 keybindslist_inline.Visible = window.keybindslist.visible
  2075.                 keybindslist_frame.Visible = window.keybindslist.visible
  2076.                 keybindslist_accent.Visible = window.keybindslist.visible
  2077.                 keybindslist_title.Visible = window.keybindslist.visible
  2078.                 --
  2079.                 for i,v in pairs(window.keybindslist.keybinds) do
  2080.                     v:Visibility()
  2081.                 end
  2082.             end
  2083.             --
  2084.             function window.keybindslist:Update(updateType, updateValue)
  2085.                 if updateType == "Visible" then
  2086.                     window.keybindslist.visible = updateValue
  2087.                     window.keybindslist:Visibility()
  2088.                 end
  2089.             end
  2090.             --
  2091.             utility:Connection(ws.CurrentCamera:GetPropertyChangedSignal("ViewportSize"),function()
  2092.                 keybindslist_outline.Position = utility:Position(0, 10, 0.4, 0)
  2093.                 keybindslist_inline.Position = utility:Position(0, 1, 0, 1, keybindslist_outline)
  2094.                 keybindslist_frame.Position = utility:Position(0, 1, 0, 1, keybindslist_inline)
  2095.                 keybindslist_accent.Position = utility:Position(0, 0, 0, 0, keybindslist_frame)
  2096.                 keybindslist_title.Position = utility:Position(0.5, 0, 0, 5, keybindslist_outline)
  2097.                 --
  2098.                 window.keybindslist:Resort()
  2099.             end)
  2100.         end
  2101.         --
  2102.         function window:StatusList(info)
  2103.             window.statuslist = {visible = false, statuses = {}}
  2104.             --
  2105.             local info = info or {}
  2106.             --
  2107.             local statuslist_outline = utility:Create("Frame", {Vector2.new(10,(utility:GetScreenSize().Y/2)-200)}, {
  2108.                 Size = utility:Size(0, 150, 0, 22),
  2109.                 Position = utility:Position(1, -160, 0.4, 0),
  2110.                 Hidden = true,
  2111.                 ZIndex = 55,
  2112.                 Color = theme.outline,
  2113.                 Visible = window.statuslist.visible
  2114.             })window.statuslist.outline = statuslist_outline
  2115.             --
  2116.             library.colors[statuslist_outline] = {
  2117.                 Color = "outline"
  2118.             }
  2119.             --
  2120.             local statuslist_inline = utility:Create("Frame", {Vector2.new(1,1), statuslist_outline}, {
  2121.                 Size = utility:Size(1, -2, 1, -2, statuslist_outline),
  2122.                 Position = utility:Position(0, 1, 0, 1, statuslist_outline),
  2123.                 Hidden = true,
  2124.                 ZIndex = 55,
  2125.                 Color = theme.inline,
  2126.                 Visible = window.statuslist.visible
  2127.             })
  2128.             --
  2129.             library.colors[statuslist_inline] = {
  2130.                 Color = "inline"
  2131.             }
  2132.             --
  2133.             local statuslist_frame = utility:Create("Frame", {Vector2.new(1,1), statuslist_inline}, {
  2134.                 Size = utility:Size(1, -2, 1, -2, statuslist_inline),
  2135.                 Position = utility:Position(0, 1, 0, 1, statuslist_inline),
  2136.                 Hidden = true,
  2137.                 ZIndex = 55,
  2138.                 Color = theme.lightcontrast,
  2139.                 Visible = window.statuslist.visible
  2140.             })
  2141.             --
  2142.             library.colors[statuslist_frame] = {
  2143.                 Color = "lightcontrast"
  2144.             }
  2145.             --
  2146.             local statuslist_accent = utility:Create("Frame", {Vector2.new(0,0), statuslist_frame}, {
  2147.                 Size = utility:Size(1, 0, 0, 1, statuslist_frame),
  2148.                 Position = utility:Position(0, 0, 0, 0, statuslist_frame),
  2149.                 Hidden = true,
  2150.                 ZIndex = 55,
  2151.                 Color = theme.accent,
  2152.                 Visible = window.statuslist.visible
  2153.             })
  2154.             --
  2155.             library.colors[statuslist_accent] = {
  2156.                 Color = "accent"
  2157.             }
  2158.             --
  2159.             local statuslist_title = utility:Create("TextLabel", {Vector2.new(statuslist_outline.Size.X/2,4), statuslist_outline}, {
  2160.                 Text = "[ Statuses ]",
  2161.                 Size = theme.textsize,
  2162.                 Font = theme.font,
  2163.                 Color = theme.textcolor,
  2164.                 OutlineColor = theme.textborder,
  2165.                 Center = true,
  2166.                 Hidden = true,
  2167.                 ZIndex = 55,
  2168.                 Position = utility:Position(0.5, 0, 0, 5, statuslist_outline),
  2169.                 Visible = window.statuslist.visible
  2170.             })
  2171.             --
  2172.             library.colors[statuslist_title] = {
  2173.                 OutlineColor = "textborder",
  2174.                 Color = "textcolor"
  2175.             }
  2176.             --
  2177.             function window.statuslist:Resort()
  2178.                 local index = 0
  2179.                 for i,v in pairs(window.statuslist.statuses) do
  2180.                     v:Move(0 + (index*17))
  2181.                     --
  2182.                     index = index + 1
  2183.                 end
  2184.             end
  2185.             --
  2186.             function window.statuslist:Add(statusname)
  2187.                 if statusname and not window.statuslist.statuses[statusname] then
  2188.                     local statusTable = {}
  2189.                     --
  2190.                     local status_outline = utility:Create("Frame", {Vector2.new(0,statuslist_outline.Size.Y-1), statuslist_outline}, {
  2191.                         Size = utility:Size(1, 0, 0, 18, statuslist_outline),
  2192.                         Position = utility:Position(0, 0, 1, -1, statuslist_outline),
  2193.                         Hidden = true,
  2194.                         ZIndex = 55,
  2195.                         Color = theme.outline,
  2196.                         Visible = window.statuslist.visible
  2197.                     })
  2198.                     --
  2199.                     library.colors[status_outline] = {
  2200.                         Color = "outline"
  2201.                     }
  2202.                     --
  2203.                     local status_inline = utility:Create("Frame", {Vector2.new(1,1), status_outline}, {
  2204.                         Size = utility:Size(1, -2, 1, -2, status_outline),
  2205.                         Position = utility:Position(0, 1, 0, 1, status_outline),
  2206.                         Hidden = true,
  2207.                         ZIndex = 55,
  2208.                         Color = theme.inline,
  2209.                         Visible = window.statuslist.visible
  2210.                     })
  2211.                     --
  2212.                     library.colors[status_inline] = {
  2213.                         Color = "inline"
  2214.                     }
  2215.                     --
  2216.                     local status_frame = utility:Create("Frame", {Vector2.new(1,1), status_inline}, {
  2217.                         Size = utility:Size(1, -2, 1, -2, status_inline),
  2218.                         Position = utility:Position(0, 1, 0, 1, status_inline),
  2219.                         Hidden = true,
  2220.                         ZIndex = 55,
  2221.                         Color = theme.darkcontrast,
  2222.                         Visible = window.statuslist.visible
  2223.                     })
  2224.                     --
  2225.                     library.colors[status_frame] = {
  2226.                         Color = "darkcontrast"
  2227.                     }
  2228.                     --
  2229.                     local status_title = utility:Create("TextLabel", {Vector2.new(4,3), status_outline}, {
  2230.                         Text = statusname,
  2231.                         Size = theme.textsize,
  2232.                         Font = theme.font,
  2233.                         Color = theme.textcolor,
  2234.                         OutlineColor = theme.textborder,
  2235.                         Center = false,
  2236.                         Hidden = true,
  2237.                         ZIndex = 55,
  2238.                         Position = utility:Position(0, 4, 0, 3, status_outline),
  2239.                         Visible = window.statuslist.visible
  2240.                     })
  2241.                     --
  2242.                     library.colors[status_title] = {
  2243.                         OutlineColor = "textborder",
  2244.                         Color = "textcolor"
  2245.                     }
  2246.                     --
  2247.                     function statusTable:Move(yPos)
  2248.                         status_outline.Position = utility:Position(0, 0, 1, -1 + yPos, statuslist_outline)
  2249.                         status_inline.Position = utility:Position(0, 1, 0, 1, status_outline)
  2250.                         status_frame.Position = utility:Position(0, 1, 0, 1, status_inline)
  2251.                         status_title.Position = utility:Position(0, 4, 0, 3, status_outline)
  2252.                     end
  2253.                     --
  2254.                     function statusTable:Remove()
  2255.                         utility:Remove(status_outline, true)
  2256.                         utility:Remove(status_inline, true)
  2257.                         utility:Remove(status_frame, true)
  2258.                         utility:Remove(status_title, true)
  2259.                         --
  2260.                         window.statuslist.statuses[statusname] = nil
  2261.                         statusTable = nil
  2262.                     end
  2263.                     --
  2264.                     function statusTable:Visibility()
  2265.                         status_outline.Visible = window.statuslist.visible
  2266.                         status_inline.Visible = window.statuslist.visible
  2267.                         status_frame.Visible = window.statuslist.visible
  2268.                         status_title.Visible = window.statuslist.visible
  2269.                     end
  2270.                     --
  2271.                     window.statuslist.statuses[statusname] = statusTable
  2272.                     window.statuslist:Resort()
  2273.                 end
  2274.             end
  2275.             --
  2276.             function window.statuslist:Remove(statusname)
  2277.                 if statusname and window.statuslist.statuses[statusname] then
  2278.                     window.statuslist.statuses[statusname]:Remove()
  2279.                     window.statuslist.statuses[statusname] = nil
  2280.                     window.statuslist:Resort()
  2281.                 end
  2282.             end
  2283.             --
  2284.             function window.statuslist:Visibility()
  2285.                 statuslist_outline.Visible = window.statuslist.visible
  2286.                 statuslist_inline.Visible = window.statuslist.visible
  2287.                 statuslist_frame.Visible = window.statuslist.visible
  2288.                 statuslist_accent.Visible = window.statuslist.visible
  2289.                 statuslist_title.Visible = window.statuslist.visible
  2290.                 --
  2291.                 for i,v in pairs(window.statuslist.statuses) do
  2292.                     v:Visibility()
  2293.                 end
  2294.             end
  2295.             --
  2296.             function window.statuslist:Update(updateType, updateValue)
  2297.                 if updateType == "Visible" then
  2298.                     window.statuslist.visible = updateValue
  2299.                     window.statuslist:Visibility()
  2300.                 end
  2301.             end
  2302.             --
  2303.             utility:Connection(ws.CurrentCamera:GetPropertyChangedSignal("ViewportSize"),function()
  2304.                 statuslist_outline.Position = utility:Position(1, -160, 0.4, 0)
  2305.                 statuslist_inline.Position = utility:Position(0, 1, 0, 1, statuslist_outline)
  2306.                 statuslist_frame.Position = utility:Position(0, 1, 0, 1, statuslist_inline)
  2307.                 statuslist_accent.Position = utility:Position(0, 0, 0, 0, statuslist_frame)
  2308.                 statuslist_title.Position = utility:Position(0.5, 0, 0, 5, statuslist_outline)
  2309.                 --
  2310.                 window.statuslist:Resort()
  2311.             end)
  2312.         end
  2313.         --
  2314.         function window:Cursor(info)
  2315.             window.cursor = {}
  2316.             --
  2317.             local cursor = utility:Create("Triangle", nil, {
  2318.                 Color = theme.cursoroutline,
  2319.                 Thickness = 2.5,
  2320.                 Filled = false,
  2321.                 ZIndex = 65,
  2322.                 Hidden = true
  2323.             });window.cursor["cursor"] = cursor
  2324.             --
  2325.             library.colors[cursor] = {
  2326.                 Color = "cursoroutline"
  2327.             }
  2328.             --
  2329.             local cursor_inline = utility:Create("Triangle", nil, {
  2330.                 Color = theme.accent,
  2331.                 Filled = true,
  2332.                 Thickness = 0,
  2333.                 ZIndex = 65,
  2334.                 Hidden = true
  2335.             });window.cursor["cursor_inline"] = cursor_inline
  2336.             --
  2337.             library.colors[cursor_inline] = {
  2338.                 Color = "accent"
  2339.             }
  2340.             --
  2341.             utility:Connection(rs.RenderStepped, function()
  2342.                 local mouseLocation = utility:MouseLocation()
  2343.                 --
  2344.                 cursor.PointA = Vector2.new(mouseLocation.X, mouseLocation.Y)
  2345.                 cursor.PointB = Vector2.new(mouseLocation.X + 12, mouseLocation.Y + 4)
  2346.                 cursor.PointC = Vector2.new(mouseLocation.X + 4, mouseLocation.Y + 12)
  2347.                 --
  2348.                 cursor_inline.PointA = Vector2.new(mouseLocation.X, mouseLocation.Y)
  2349.                 cursor_inline.PointB = Vector2.new(mouseLocation.X + 12, mouseLocation.Y + 4)
  2350.                 cursor_inline.PointC = Vector2.new(mouseLocation.X + 4, mouseLocation.Y + 12)
  2351.             end)
  2352.             --
  2353.             uis.MouseIconEnabled = false
  2354.             --
  2355.             return window.cursor
  2356.         end
  2357.         --
  2358.         function window:Fade()
  2359.             window.fading = true
  2360.             window.isVisible = not window.isVisible
  2361.             --
  2362.             spawn(function()
  2363.                 for i, v in pairs(library.drawings) do
  2364.                     utility:Lerp(v[1], {Transparency = window.isVisible and v[3] or 0}, 0.25)
  2365.                 end
  2366.             end)
  2367.             --
  2368.             window.cursor["cursor"].Transparency = window.isVisible and 1 or 0
  2369.             window.cursor["cursor_inline"].Transparency = window.isVisible and 1 or 0
  2370.             uis.MouseIconEnabled = not window.isVisible
  2371.             --
  2372.             window.fading = false
  2373.         end
  2374.         --
  2375.         function window:Initialize()
  2376.             window.pages[1]:Show()
  2377.             --
  2378.             for i,v in pairs(window.pages) do
  2379.                 v:Update()
  2380.             end
  2381.             --
  2382.             library.shared.initialized = true
  2383.             --
  2384.             window:Watermark()
  2385.             window:KeybindsList()
  2386.             window:StatusList()
  2387.             window:Cursor()
  2388.             --
  2389.             window.init = true
  2390.             --
  2391.             window:Fade()
  2392.         end
  2393.         --
  2394.         library.began[#library.began + 1] = function(Input)
  2395.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and window.isVisible and utility:MouseOverDrawing({main_frame.Position.X,main_frame.Position.Y,main_frame.Position.X + main_frame.Size.X,main_frame.Position.Y + 20}) then
  2396.                 local mouseLocation = utility:MouseLocation()
  2397.                 --
  2398.                 window.dragging = true
  2399.                 window.drag = Vector2.new(mouseLocation.X - main_frame.Position.X, mouseLocation.Y - main_frame.Position.Y)
  2400.             end
  2401.             --
  2402.             if window.currentContent.textbox then
  2403.                 if Find(utility.Keyboard.Letters, utility:InputToString(Input.KeyCode)) then
  2404.                     if uis:IsKeyDown(Enum.KeyCode.LeftShift) then
  2405.                         window.currentContent.textbox.Fire((utility:InputToString(Input.KeyCode)):upper())
  2406.                     else
  2407.                         window.currentContent.textbox.Fire((utility:InputToString(Input.KeyCode)):lower())
  2408.                     end
  2409.                 elseif utility:InputToString(Input.KeyCode) == "Space" then
  2410.                     window.currentContent.textbox.Fire(" ")
  2411.                 elseif utility.Keyboard.Modifiers[utility:InputToString(Input.KeyCode)] then
  2412.                     if uis:IsKeyDown(Enum.KeyCode.LeftShift) then
  2413.                         if utility.Keyboard.Modifiers[utility:InputToString(Input.KeyCode)] then
  2414.                             window.currentContent.textbox.Fire(utility.Keyboard.Modifiers[utility:InputToString(Input.KeyCode)])
  2415.                         end
  2416.                     else
  2417.                         window.currentContent.textbox.Fire(utility:InputToString(Input.KeyCode))
  2418.                     end
  2419.                 elseif utility:InputToString(Input.KeyCode) == "Back" then
  2420.                     window.currentContent.textbox.Fire("Backspace")
  2421.                     --
  2422.                     window.currentContent.textbox.Backspace = {tick(), 0}
  2423.                 end
  2424.             end
  2425.         end
  2426.         --
  2427.         library.ended[#library.ended + 1] = function(Input)
  2428.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and window.dragging then
  2429.                 window.dragging = false
  2430.                 window.drag = Vector2.new(0, 0)
  2431.             end
  2432.             --
  2433.             if window.currentContent.textbox and window.currentContent.textbox.Fire and window.currentContent.textbox.Backspace then
  2434.                 if utility:InputToString(Input.KeyCode) == "Back" then
  2435.                     window.currentContent.textbox.Backspace = nil
  2436.                 end
  2437.             end
  2438.         end
  2439.         --
  2440.         library.changed[#library.changed + 1] = function(Input)
  2441.             if window.dragging and window.isVisible then
  2442.                 local mouseLocation = utility:MouseLocation()
  2443.                 if utility:GetScreenSize().Y-main_frame.Size.Y-5 > 5 then
  2444.                     local move = Vector2.new(math.clamp(mouseLocation.X - window.drag.X, 5, utility:GetScreenSize().X-main_frame.Size.X-5), math.clamp(mouseLocation.Y - window.drag.Y, 5, utility:GetScreenSize().Y-main_frame.Size.Y-5))
  2445.                     window:Move(move)
  2446.                 else
  2447.                     local move = Vector2.new(mouseLocation.X - window.drag.X, mouseLocation.Y - window.drag.Y)
  2448.                     window:Move(move)
  2449.                 end
  2450.             end
  2451.         end
  2452.         --
  2453.         library.began[#library.began + 1] = function(Input)
  2454.             if Input.KeyCode == window.uibind then
  2455.                 window:Fade()
  2456.             end
  2457.             --[[
  2458.             if Input.KeyCode == Enum.KeyCode.P then
  2459.                 local plrs = game:GetService("Players")
  2460.                 local plr = plrs.LocalPlayer
  2461.                 if #plrs:GetPlayers() <= 1 then
  2462.                     plr:Kick("\nRejoining...")
  2463.                     wait()
  2464.                     game:GetService('TeleportService'):Teleport(game.PlaceId, plr)
  2465.                 else
  2466.                     game:GetService('TeleportService'):TeleportToPlaceInstance(game.PlaceId, game.JobId, plr)
  2467.                 end
  2468.             end]]
  2469.         end
  2470.         --
  2471.         utility:Connection(uis.InputBegan,function(Input)
  2472.             for _, func in pairs(library.began) do
  2473.                 if not window.dragging then
  2474.                     local e,s = pcall(function()
  2475.                         func(Input)
  2476.                     end)
  2477.                 else
  2478.                     break
  2479.                 end
  2480.             end
  2481.         end)
  2482.         --
  2483.         utility:Connection(uis.InputEnded,function(Input)
  2484.             for _, func in pairs(library.ended) do
  2485.                 local e,s = pcall(function()
  2486.                     func(Input)
  2487.                 end)
  2488.             end
  2489.         end)
  2490.         --
  2491.         utility:Connection(uis.InputChanged,function()
  2492.             for _, func in pairs(library.changed) do
  2493.                 local e,s = pcall(function()
  2494.                     func()
  2495.                 end)
  2496.             end
  2497.         end)
  2498.         --
  2499.         utility:Connection(rs.RenderStepped,function()
  2500.             if window.currentContent.textbox and window.currentContent.textbox.Fire and window.currentContent.textbox.Backspace then
  2501.                 local Time = (tick() - window.currentContent.textbox.Backspace[1])
  2502.                 --
  2503.                 if Time > 0.4 then
  2504.                     window.currentContent.textbox.Backspace[2] = window.currentContent.textbox.Backspace[2] + 1
  2505.                     --
  2506.                     if (window.currentContent.textbox.Backspace[2] % 5 == 0) then
  2507.                         window.currentContent.textbox.Fire("Backspace")
  2508.                     end
  2509.                 end
  2510.             end
  2511.         end)
  2512.         --
  2513.         utility:Connection(ws.CurrentCamera:GetPropertyChangedSignal("ViewportSize"),function()
  2514.             window:Move(Vector2.new((utility:GetScreenSize().X/2) - (size.X/2), (utility:GetScreenSize().Y/2) - (size.Y/2)))
  2515.         end)
  2516.         --
  2517.         return setmetatable(window, library)
  2518.     end
  2519.     --
  2520.     function library:Page(info)
  2521.         local info = info or {}
  2522.         local name = info.name or info.Name or info.title or info.Title or "New Page"
  2523.         --
  2524.         local window = self
  2525.         --
  2526.         local page = {open = false, sections = {}, sectionOffset = {left = 0, right = 0}, window = window}
  2527.         --
  2528.         local position = 4
  2529.         --
  2530.         for i,v in pairs(window.pages) do
  2531.             position = position + (v.page_button.Size.X+2)
  2532.         end
  2533.         --
  2534.         local textbounds = utility:GetTextBounds(name, theme.textsize, theme.font)
  2535.         --
  2536.         local page_button = utility:Create("Frame", {Vector2.new(position,4), window.back_frame}, {
  2537.             Size = utility:Size(0, window.pageammount and (((window.back_frame.Size.X - 8 - ((window.pageammount - 1) * 2)) / window.pageammount)) or (textbounds.X+20), 0, 21),
  2538.             Position = utility:Position(0, position, 0, 4, window.back_frame),
  2539.             Color = theme.outline
  2540.         });page["page_button"] = page_button
  2541.         --
  2542.         library.colors[page_button] = {
  2543.             Color = "outline"
  2544.         }
  2545.         --
  2546.         local page_button_inline = utility:Create("Frame", {Vector2.new(1,1), page_button}, {
  2547.             Size = utility:Size(1, -2, 1, -1, page_button),
  2548.             Position = utility:Position(0, 1, 0, 1, page_button),
  2549.             Color = theme.inline
  2550.         });page["page_button_inline"] = page_button_inline
  2551.         --
  2552.         library.colors[page_button_inline] = {
  2553.             Color = "inline"
  2554.         }
  2555.         --
  2556.         local page_button_color = utility:Create("Frame", {Vector2.new(1,1), page_button_inline}, {
  2557.             Size = utility:Size(1, -2, 1, -1, page_button_inline),
  2558.             Position = utility:Position(0, 1, 0, 1, page_button_inline),
  2559.             Color = theme.darkcontrast
  2560.         });page["page_button_color"] = page_button_color
  2561.         --
  2562.         library.colors[page_button_color] = {
  2563.             Color = "darkcontrast"
  2564.         }
  2565.         --
  2566.         local page_button_title = utility:Create("TextLabel", {Vector2.new(utility:Position(0.5, 0, 0, 2, page_button_color).X - page_button_color.Position.X,2), page_button_color}, {
  2567.             Text = name,
  2568.             Size = theme.textsize,
  2569.             Font = theme.font,
  2570.             Color = theme.textdark,
  2571.             Center = true,
  2572.             OutlineColor = theme.textborder,
  2573.             Position = utility:Position(0.5, 0, 0, 2, page_button_color)
  2574.         });page["page_button_title"] = page_button_title
  2575.         --
  2576.         library.colors[page_button_title] = {
  2577.             OutlineColor = "textborder",
  2578.             Color = "textdark"
  2579.         }
  2580.         --
  2581.         window.pages[#window.pages + 1] = page
  2582.         --
  2583.         function page:GetTotalYSize(Side)
  2584.             local TotalYSize = 0
  2585.             --
  2586.             for i,v in pairs(page.sections) do
  2587.                 if v.side == Side then
  2588.                     TotalYSize = TotalYSize + v.section_inline.Size.Y + 5
  2589.                 end
  2590.             end
  2591.             --
  2592.             return TotalYSize
  2593.         end
  2594.         --
  2595.         function page:Update()
  2596.             page.sectionOffset["left"] = 0
  2597.             page.sectionOffset["right"] = 0
  2598.             --
  2599.             for i,v in pairs(page.sections) do
  2600.                 if v.side then
  2601.                     utility:UpdateOffset(v.section_inline, {Vector2.new(v.side == "right" and (window.tab_frame.Size.X/2)+2 or 5,5 + page["sectionOffset"][v.side]), window.tab_frame})
  2602.                     v:Update(page.sectionOffset[v.side] + 10)
  2603.                     page.sectionOffset[v.side] = page.sectionOffset[v.side] + v.section_inline.Size.Y + 5
  2604.                 else
  2605.                     page.sectionOffset["left"] = page.sectionOffset["left"] + v["playerList_inline"].Size.Y + 5
  2606.                     page.sectionOffset["right"] = page.sectionOffset["right"] + v["playerList_inline"].Size.Y + 5
  2607.                 end
  2608.             end
  2609.             --
  2610.             window:Move(window.main_frame.Position)
  2611.         end
  2612.         --
  2613.         function page:Show()
  2614.             if window.currentPage then
  2615.                 window.currentPage.page_button_color.Size = utility:Size(1, -2, 1, -1, window.currentPage.page_button_inline)
  2616.                 window.currentPage.page_button_color.Color = theme.darkcontrast
  2617.                 window.currentPage.page_button_title.Color = theme.textdark
  2618.                 window.currentPage.open = false
  2619.                 --
  2620.                 library.colors[window.currentPage.page_button_color] = {
  2621.                     Color = "darkcontrast"
  2622.                 }
  2623.                 --
  2624.                 library.colors[window.currentPage.page_button_title] = {
  2625.                     OutlineColor = "textborder",
  2626.                     Color = "textdark"
  2627.                 }
  2628.                 --
  2629.                 for i,v in pairs(window.currentPage.sections) do
  2630.                     for z,x in pairs(v.visibleContent) do
  2631.                         x.Visible = false
  2632.                     end
  2633.                 end
  2634.                 --
  2635.                 window:CloseContent()
  2636.             end
  2637.             --
  2638.             window.currentPage = page
  2639.             page_button_color.Size = utility:Size(1, -2, 1, 0, page_button_inline)
  2640.             page_button_color.Color = theme.lightcontrast
  2641.             page_button_title.Color = theme.textcolor
  2642.             page.open = true
  2643.             --
  2644.             library.colors[page_button_color] = {
  2645.                 Color = "lightcontrast"
  2646.             }
  2647.             --
  2648.             library.colors[page_button_title] = {
  2649.                 OutlineColor = "textborder",
  2650.                 Color = "textcolor"
  2651.             }
  2652.             --
  2653.             for i,v in pairs(page.sections) do
  2654.                 for z,x in pairs(v.visibleContent) do
  2655.                     x.Visible = true
  2656.                 end
  2657.             end
  2658.             --
  2659.             window.callback(name, window.currentPage)
  2660.             window:Move(window.main_frame.Position)
  2661.         end
  2662.         --
  2663.         library.began[#library.began + 1] = function(Input)
  2664.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and utility:MouseOverDrawing({page_button.Position.X,page_button.Position.Y,page_button.Position.X + page_button.Size.X,page_button.Position.Y + page_button.Size.Y}) and window.currentPage ~= page then
  2665.                 page:Show()
  2666.             end
  2667.         end
  2668.         --
  2669.         return setmetatable(page, pages)
  2670.     end
  2671.     --
  2672.     function pages:Section(info)
  2673.         local window = self.window
  2674.         local info = info or {}
  2675.         local name = info.name or info.Name or info.title or info.Title or "New Section"
  2676.         local size = info.size or info.Size
  2677.         local fill = info.fill or info.Fill
  2678.         local side = window.loader and "left" or (info.side or info.Side or "left")
  2679.         side = side:lower()
  2680.         local page = self
  2681.         local section = {window = window, page = page, visibleContent = {}, currentAxis = 20, side = side}
  2682.         --
  2683.         local section_inline = utility:Create("Frame", {Vector2.new(side == "right" and (window.tab_frame.Size.X/2)+2 or 5,5 + page["sectionOffset"][side]), window.tab_frame}, {
  2684.             Size = utility:Size(window.loader and 1 or 0.5, window.loader and -10 or -7, 0, size or 22, window.tab_frame),
  2685.             Position = utility:Position(side == "right" and 0.5 or 0, side == "right" and 2 or 5, 0, 5 + page.sectionOffset[side], window.tab_frame),
  2686.             Color = theme.inline,
  2687.             Visible = page.open
  2688.         }, section.visibleContent);section["section_inline"] = section_inline
  2689.         --
  2690.         library.colors[section_inline] = {
  2691.             Color = "inline"
  2692.         }
  2693.         --
  2694.         local section_outline = utility:Create("Frame", {Vector2.new(1,1), section_inline}, {
  2695.             Size = utility:Size(1, -2, 1, -2, section_inline),
  2696.             Position = utility:Position(0, 1, 0, 1, section_inline),
  2697.             Color = theme.outline,
  2698.             Visible = page.open
  2699.         }, section.visibleContent);section["section_outline"] = section_outline
  2700.         --
  2701.         library.colors[section_outline] = {
  2702.             Color = "outline"
  2703.         }
  2704.         --
  2705.         local section_frame = utility:Create("Frame", {Vector2.new(1,1), section_outline}, {
  2706.             Size = utility:Size(1, -2, 1, -2, section_outline),
  2707.             Position = utility:Position(0, 1, 0, 1, section_outline),
  2708.             Color = theme.darkcontrast,
  2709.             Visible = page.open
  2710.         }, section.visibleContent);section["section_frame"] = section_frame
  2711.         --
  2712.         library.colors[section_frame] = {
  2713.             Color = "darkcontrast"
  2714.         }
  2715.         --
  2716.         local section_accent = utility:Create("Frame", {Vector2.new(0,0), section_frame}, {
  2717.             Size = utility:Size(1, 0, 0, 2, section_frame),
  2718.             Position = utility:Position(0, 0, 0, 0, section_frame),
  2719.             Color = theme.accent,
  2720.             Visible = page.open
  2721.         }, section.visibleContent);section["section_accent"] = section_accent
  2722.         --
  2723.         library.colors[section_accent] = {
  2724.             Color = "accent"
  2725.         }
  2726.         --
  2727.         local section_title = utility:Create("TextLabel", {Vector2.new(3,3), section_frame}, {
  2728.             Text = name,
  2729.             Size = theme.textsize,
  2730.             Font = theme.font,
  2731.             Color = theme.textcolor,
  2732.             OutlineColor = theme.textborder,
  2733.             Position = utility:Position(0, 3, 0, 3, section_frame),
  2734.             Visible = page.open
  2735.         }, section.visibleContent);section["section_title"] = section_title
  2736.         --
  2737.         library.colors[section_title] = {
  2738.             OutlineColor = "textborder",
  2739.             Color = "textcolor"
  2740.         }
  2741.         --
  2742.         function section:Update(Padding)
  2743.             section_inline.Size = utility:Size(window.loader and 1 or 0.5, window.loader and -10 or -7, 0, fill and (window.tab_frame.Size.Y - (Padding or 0)) or (size or (section.currentAxis+4)), window.tab_frame)
  2744.             section_outline.Size = utility:Size(1, -2, 1, -2, section_inline)
  2745.             section_frame.Size = utility:Size(1, -2, 1, -2, section_outline)
  2746.         end
  2747.         --
  2748.         page.sectionOffset[side] = page.sectionOffset[side] + 100 + 5
  2749.         page.sections[#page.sections + 1] = section
  2750.         --
  2751.         return setmetatable(section, sections)
  2752.     end
  2753.     --
  2754.     function pages:MultiSection(info)
  2755.         local info = info or {}
  2756.         local msections = info.sections or info.Sections or {}
  2757.         local side = info.side or info.Side or "left"
  2758.         local size = info.size or info.Size or 150
  2759.         local fill = info.fill or info.Fill
  2760.         local callback = info.callback or info.Callback or info.callBack or info.CallBack or function() end
  2761.         side = side:lower()
  2762.         local window = self.window
  2763.         local page = self
  2764.         local multiSection = {window = window, page = page, sections = {}, backup = {}, visibleContent = {}, currentSection = nil, side = side}
  2765.         --
  2766.         local multiSection_inline = utility:Create("Frame", {Vector2.new(side == "right" and (window.tab_frame.Size.X/2)+2 or 5,5 + page["sectionOffset"][side]), window.tab_frame}, {
  2767.             Size = utility:Size(window.loader and 1 or 0.5, window.loader and -10 or -7, 0, size, window.tab_frame),
  2768.             Position = utility:Position(side == "right" and 0.5 or 0, side == "right" and 2 or 5, 0, 5 + page.sectionOffset[side], window.tab_frame),
  2769.             Color = theme.inline,
  2770.             Visible = page.open
  2771.         }, multiSection.visibleContent);multiSection["section_inline"] = multiSection_inline
  2772.         --
  2773.         library.colors[multiSection_inline] = {
  2774.             Color = "inline"
  2775.         }
  2776.         --
  2777.         local multiSection_outline = utility:Create("Frame", {Vector2.new(1,1), multiSection_inline}, {
  2778.             Size = utility:Size(1, -2, 1, -2, multiSection_inline),
  2779.             Position = utility:Position(0, 1, 0, 1, multiSection_inline),
  2780.             Color = theme.outline,
  2781.             Visible = page.open
  2782.         }, multiSection.visibleContent);multiSection["section_outline"] = multiSection_outline
  2783.         --
  2784.         library.colors[multiSection_outline] = {
  2785.             Color = "outline"
  2786.         }
  2787.         --
  2788.         local multiSection_frame = utility:Create("Frame", {Vector2.new(1,1), multiSection_outline}, {
  2789.             Size = utility:Size(1, -2, 1, -2, multiSection_outline),
  2790.             Position = utility:Position(0, 1, 0, 1, multiSection_outline),
  2791.             Color = theme.darkcontrast,
  2792.             Visible = page.open
  2793.         }, multiSection.visibleContent);multiSection["section_frame"] = multiSection_frame
  2794.         --
  2795.         library.colors[multiSection_frame] = {
  2796.             Color = "darkcontrast"
  2797.         }
  2798.         --
  2799.         local multiSection_backFrame = utility:Create("Frame", {Vector2.new(0,2), multiSection_frame}, {
  2800.             Size = utility:Size(1, 0, 0, 17, multiSection_frame),
  2801.             Position = utility:Position(0, 0, 0, 2, multiSection_frame),
  2802.             Color = theme.lightcontrast,
  2803.             Visible = page.open
  2804.         }, multiSection.visibleContent)
  2805.         --
  2806.         library.colors[multiSection_backFrame] = {
  2807.             Color = "lightcontrast"
  2808.         }
  2809.         --
  2810.         local multiSection_bottomFrame = utility:Create("Frame", {Vector2.new(0,multiSection_backFrame.Size.Y - 1), multiSection_backFrame}, {
  2811.             Size = utility:Size(1, 0, 0, 1, multiSection_backFrame),
  2812.             Position = utility:Position(0, 0, 1, -1, multiSection_backFrame),
  2813.             Color = theme.outline,
  2814.             Visible = page.open
  2815.         }, multiSection.visibleContent)
  2816.         --
  2817.         library.colors[multiSection_bottomFrame] = {
  2818.             Color = "outline"
  2819.         }
  2820.         --
  2821.         local multiSection_accent = utility:Create("Frame", {Vector2.new(0,0), multiSection_frame}, {
  2822.             Size = utility:Size(1, 0, 0, 2, multiSection_frame),
  2823.             Position = utility:Position(0, 0, 0, 0, multiSection_frame),
  2824.             Color = theme.accent,
  2825.             Visible = page.open
  2826.         }, multiSection.visibleContent);multiSection["section_accent"] = multiSection_accent
  2827.         --
  2828.         library.colors[multiSection_accent] = {
  2829.             Color = "accent"
  2830.         }
  2831.         --
  2832.         function multiSection:Update(Padding)
  2833.             multiSection_inline.Size = utility:Size(window.loader and 1 or 0.5, window.loader and -10 or -7, 0, fill and (window.tab_frame.Size.Y - (Padding or 0)) or size, window.tab_frame)
  2834.             multiSection_outline.Size = utility:Size(1, -2, 1, -2, multiSection_inline)
  2835.             multiSection_frame.Size = utility:Size(1, -2, 1, -2, multiSection_outline)
  2836.             --
  2837.             for Index, Value in pairs(multiSection.sections) do
  2838.                 Value:Update(Padding)
  2839.             end
  2840.         end
  2841.         --
  2842.         for i,v in pairs(msections) do
  2843.             local msection = {window = window, page = page, currentAxis = 24, sections = {}, visibleContent = {}, section_inline = multiSection_inline, section_outline = multiSection_outline, section_frame = multiSection_frame, section_accent = multiSection_accent}
  2844.             --
  2845.             local textBounds = utility:GetTextBounds(v, theme.textsize, theme.font)
  2846.             --
  2847.             local msection_frame = utility:Create("Frame", {Vector2.new(((i - 1) * (1 / #msections)) * multiSection_backFrame.Size.X,0), multiSection_backFrame}, {
  2848.                 Size = utility:Size(1 / #msections, 0, 1, -1, multiSection_backFrame),
  2849.                 Position = utility:Position((i - 1) * (1 / #msections), 0, 0, 0, multiSection_backFrame),
  2850.                 Color = i == 1 and theme.darkcontrast or theme.lightcontrast,
  2851.                 Visible = page.open
  2852.             }, multiSection.visibleContent);msection["msection_frame"] = msection_frame
  2853.             --
  2854.             library.colors[msection_frame] = {
  2855.                 Color = i == 1 and "darkcontrast" or "lightcontrast"
  2856.             }
  2857.             --
  2858.             local msection_line = utility:Create("Frame", {Vector2.new(msection_frame.Size.X - (i == #msections and 0 or 1),0), msection_frame}, {
  2859.                 Size = utility:Size(0, 1, 1, 0, msection_frame),
  2860.                 Position = utility:Position(1, -(i == #msections and 0 or 1), 0, 0, msection_frame),
  2861.                 Color = theme.outline,
  2862.                 Visible = page.open
  2863.             }, multiSection.visibleContent)
  2864.             --
  2865.             library.colors[msection_line] = {
  2866.                 Color = "outline"
  2867.             }
  2868.             --
  2869.             local msection_title = utility:Create("TextLabel", {Vector2.new(msection_frame.Size.X * 0.5,1), msection_frame}, {
  2870.                 Text = v,
  2871.                 Size = theme.textsize,
  2872.                 Font = theme.font,
  2873.                 Color = theme.textcolor,
  2874.                 OutlineColor = theme.textborder,
  2875.                 Center = true,
  2876.                 Position = utility:Position(0.5, 0, 0, 1, msection_frame),
  2877.                 Visible = page.open
  2878.             }, multiSection.visibleContent)
  2879.             --
  2880.             library.colors[msection_title] = {
  2881.                 OutlineColor = "textborder",
  2882.                 Color = "textcolor"
  2883.             }
  2884.             --
  2885.             local msection_bottomline = utility:Create("Frame", {Vector2.new(0,msection_frame.Size.Y), msection_frame}, {
  2886.                 Size = utility:Size(1, (i == #msections and 0 or -1), 0, 1, msection_frame),
  2887.                 Position = utility:Position(0, 0, 1, 0, msection_frame),
  2888.                 Color = i == 1 and theme.darkcontrast or theme.outline,
  2889.                 Visible = page.open
  2890.             }, multiSection.visibleContent);msection["msection_bottomline"] = msection_bottomline
  2891.             --
  2892.             library.colors[msection_bottomline] = {
  2893.                 Color = i == 1 and "darkcontrast" or "outline"
  2894.             }
  2895.             --
  2896.             function msection:Update()
  2897.                 if multiSection.currentSection == msection then
  2898.                     multiSection.visibleContent = utility:Combine(multiSection.backup, multiSection.currentSection.visibleContent)
  2899.                 else
  2900.                     for z,x in pairs(msection.visibleContent) do
  2901.                         x.Visible = false
  2902.                     end
  2903.                 end
  2904.             end
  2905.             --
  2906.             library.began[#library.began + 1] = function(Input)
  2907.                 if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and page.open and  utility:MouseOverDrawing({msection_frame.Position.X,msection_frame.Position.Y,msection_frame.Position.X + msection_frame.Size.X,msection_frame.Position.Y + msection_frame.Size.Y}) and multiSection.currentSection ~= msection and not window:IsOverContent() then
  2908.                     multiSection.currentSection.msection_frame.Color = theme.lightcontrast
  2909.                     multiSection.currentSection.msection_bottomline.Color = theme.outline
  2910.                     --
  2911.                     library.colors[multiSection.currentSection.msection_frame] = {
  2912.                         Color = "lightcontrast"
  2913.                     }
  2914.                     --
  2915.                     library.colors[multiSection.currentSection.msection_bottomline] = {
  2916.                         Color = "outline"
  2917.                     }
  2918.                     --
  2919.                     for i,v in pairs(multiSection.currentSection.visibleContent) do
  2920.                         v.Visible = false
  2921.                     end
  2922.                     --
  2923.                     multiSection.currentSection = msection
  2924.                     msection_frame.Color = theme.darkcontrast
  2925.                     msection_bottomline.Color = theme.darkcontrast
  2926.                     --
  2927.                     library.colors[msection_frame] = {
  2928.                         Color = "darkcontrast"
  2929.                     }
  2930.                     --
  2931.                     library.colors[msection_bottomline] = {
  2932.                         Color = "darkcontrast"
  2933.                     }
  2934.                     --
  2935.                     for i,v in pairs(multiSection.currentSection.visibleContent) do
  2936.                         v.Visible = true
  2937.                     end
  2938.                     --
  2939.                     multiSection.visibleContent = utility:Combine(multiSection.backup, multiSection.currentSection.visibleContent)
  2940.                     --
  2941.                     callback(v, msection)
  2942.                     window:Move(window.main_frame.Position)
  2943.                 end
  2944.             end
  2945.             --
  2946.             if i == 1 then
  2947.                 multiSection.currentSection = msection
  2948.                 callback(v, msection)
  2949.             end
  2950.             --
  2951.             multiSection.sections[#multiSection.sections + 1] = setmetatable(msection, sections)
  2952.         end
  2953.         --
  2954.         for z,x in pairs(multiSection.visibleContent) do
  2955.             multiSection.backup[z] = x
  2956.         end
  2957.         --
  2958.         page.sectionOffset[side] = page.sectionOffset[side] + 100 + 5
  2959.         page.sections[#page.sections + 1] = multiSection
  2960.         --
  2961.         return Unpack(multiSection.sections)
  2962.     end
  2963.     --
  2964.     function pages:PlayerList(info)
  2965.         local info = info or {}
  2966.         --
  2967.         local window = self.window
  2968.         local page = self
  2969.         --
  2970.         local playerList = {window = window, page = page, visibleContent = {}, buttons = {}, currentAxis = 20, scrollingindex = 0, scrolling = {false, nil}, items = {}, players = {}}
  2971.         --
  2972.         local playerList_inline = utility:Create("Frame", {Vector2.new(5,5), window.tab_frame}, {
  2973.             Size = utility:Size(1, -10, 0, ((10 * 22) + 4) + 20 + 60 + 12, window.tab_frame),
  2974.             Position = utility:Position(0, 5, 0, 5, window.tab_frame),
  2975.             Color = theme.inline,
  2976.             Visible = page.open
  2977.         }, playerList.visibleContent);playerList["playerList_inline"] = playerList_inline
  2978.         --
  2979.         library.colors[playerList_inline] = {
  2980.             Color = "inline"
  2981.         }
  2982.         --
  2983.         local playerList_outline = utility:Create("Frame", {Vector2.new(1,1), playerList_inline}, {
  2984.             Size = utility:Size(1, -2, 1, -2, playerList_inline),
  2985.             Position = utility:Position(0, 1, 0, 1, playerList_inline),
  2986.             Color = theme.outline,
  2987.             Visible = page.open
  2988.         }, playerList.visibleContent);playerList["playerList_outline"] = playerList_outline
  2989.         --
  2990.         library.colors[playerList_outline] = {
  2991.             Color = "outline"
  2992.         }
  2993.         --
  2994.         local playerList_frame = utility:Create("Frame", {Vector2.new(1,1), playerList_outline}, {
  2995.             Size = utility:Size(1, -2, 1, -2, playerList_outline),
  2996.             Position = utility:Position(0, 1, 0, 1, playerList_outline),
  2997.             Color = theme.darkcontrast,
  2998.             Visible = page.open
  2999.         }, playerList.visibleContent);playerList["playerList_frame"] = playerList_frame
  3000.         --
  3001.         library.colors[playerList_frame] = {
  3002.             Color = "darkcontrast"
  3003.         }
  3004.         --
  3005.         local playerList_accent = utility:Create("Frame", {Vector2.new(0,0), playerList_frame}, {
  3006.             Size = utility:Size(1, 0, 0, 2, playerList_frame),
  3007.             Position = utility:Position(0, 0, 0, 0, playerList_frame),
  3008.             Color = theme.accent,
  3009.             Visible = page.open
  3010.         }, playerList.visibleContent);playerList["playerList_accent"] = playerList_accent
  3011.         --
  3012.         library.colors[playerList_accent] = {
  3013.             Color = "accent"
  3014.         }
  3015.         --
  3016.         local playerList_title = utility:Create("TextLabel", {Vector2.new(3,3), playerList_frame}, {
  3017.             Text = "Player List - 0 Players",
  3018.             Size = theme.textsize,
  3019.             Font = theme.font,
  3020.             Color = theme.textcolor,
  3021.             OutlineColor = theme.textborder,
  3022.             Position = utility:Position(0, 3, 0, 3, playerList_frame),
  3023.             Visible = page.open
  3024.         }, playerList.visibleContent)
  3025.         --
  3026.         library.colors[playerList_title] = {
  3027.             OutlineColor = "textborder",
  3028.             Color = "textcolor"
  3029.         }
  3030.         --
  3031.         local list_outline = utility:Create("Frame", {Vector2.new(4,20), playerList_frame}, {
  3032.             Size = utility:Size(1, -8, 0, ((10 * 22) + 4), playerList_frame),
  3033.             Position = utility:Position(0, 4, 0, 20, playerList_frame),
  3034.             Color = theme.outline,
  3035.             Visible = page.open
  3036.         }, playerList.visibleContent)
  3037.         --
  3038.         library.colors[list_outline] = {
  3039.             Color = "outline"
  3040.         }
  3041.         --
  3042.         local list_inline = utility:Create("Frame", {Vector2.new(1,1), list_outline}, {
  3043.             Size = utility:Size(1, -2, 1, -2, list_outline),
  3044.             Position = utility:Position(0, 1, 0, 1, list_outline),
  3045.             Color = theme.inline,
  3046.             Visible = page.open
  3047.         }, playerList.visibleContent)
  3048.         --
  3049.         library.colors[list_inline] = {
  3050.             Color = "inline"
  3051.         }
  3052.         --
  3053.         local list_frame = utility:Create("Frame", {Vector2.new(1,1), list_inline}, {
  3054.             Size = utility:Size(1, -10, 1, -2, list_inline),
  3055.             Position = utility:Position(0, 1, 0, 1, list_inline),
  3056.             Color = theme.lightcontrast,
  3057.             Visible = page.open
  3058.         }, playerList.visibleContent)
  3059.         --
  3060.         library.colors[list_frame] = {
  3061.             Color = "lightcontrast"
  3062.         }
  3063.         --
  3064.         local list_scroll = utility:Create("Frame", {Vector2.new(list_inline.Size.X - 9,1), list_inline}, {
  3065.             Size = utility:Size(0, 8, 1, -2, list_inline),
  3066.             Position = utility:Position(1, -9, 0, 1, list_inline),
  3067.             Color = theme.darkcontrast,
  3068.             Visible = page.open
  3069.         }, playerList.visibleContent)
  3070.         --
  3071.         library.colors[list_scroll] = {
  3072.             Color = "darkcontrast"
  3073.         }
  3074.         --
  3075.         local list_bar = utility:Create("Frame", {Vector2.new(1,1), list_scroll}, {
  3076.             Size = utility:Size(1, -2, 0.5, -2, list_scroll),
  3077.             Position = utility:Position(0, 1, 0, 1, list_scroll),
  3078.             Color = theme.accent,
  3079.             Visible = page.open
  3080.         }, playerList.visibleContent)
  3081.         --
  3082.         library.colors[list_bar] = {
  3083.             Color = "accent"
  3084.         }
  3085.         --
  3086.         local list_gradient = utility:Create("Image", {Vector2.new(0,0), list_frame}, {
  3087.             Size = utility:Size(1, 0, 1, 0, list_frame),
  3088.             Position = utility:Position(0, 0, 0 , 0, list_frame),
  3089.             Transparency = 0.25,
  3090.             Visible = page.open
  3091.         }, playerList.visibleContent)
  3092.         --
  3093.         for Index = 1, 10 do
  3094.             local item = {}
  3095.             local listitemposition = (Index - 1) * 22
  3096.             --
  3097.             local listitem_line
  3098.             --
  3099.             if Index ~= 10 then
  3100.                 listitem_line = utility:Create("Frame", {Vector2.new(3,listitemposition + 21), list_frame}, {
  3101.                     Size = utility:Size(1, -6, 0, 2, list_frame),
  3102.                     Position = utility:Position(0, 3, 0, listitemposition + 21, list_frame),
  3103.                     Transparency = 0,
  3104.                     Color = theme.outline,
  3105.                     Visible = page.open
  3106.                 }, playerList.visibleContent)
  3107.                 --
  3108.                 library.colors[listitem_line] = {
  3109.                     Color = "outline"
  3110.                 }
  3111.             end
  3112.             --
  3113.             local listitem_firstline = utility:Create("Frame", {Vector2.new(1/3 * list_frame.Size.X,listitemposition + 3), list_frame}, {
  3114.                 Size = utility:Size(0, 2, 0, 16, list_frame),
  3115.                 Position = utility:Position(1/3, 1, 0, listitemposition + 3, list_frame),
  3116.                 Transparency = 0,
  3117.                 Color = theme.outline,
  3118.                 Visible = page.open
  3119.             }, playerList.visibleContent)
  3120.             --
  3121.             library.colors[listitem_firstline] = {
  3122.                 Color = "outline"
  3123.             }
  3124.             --
  3125.             local listitem_secondline = utility:Create("Frame", {Vector2.new(2/3 * list_frame.Size.X,listitemposition + 3), list_frame}, {
  3126.                 Size = utility:Size(0, 2, 0, 16, list_frame),
  3127.                 Position = utility:Position(2/3, 1, 0, listitemposition + 3, list_frame),
  3128.                 Transparency = 0,
  3129.                 Color = theme.outline,
  3130.                 Visible = page.open
  3131.             }, playerList.visibleContent)
  3132.             --
  3133.             library.colors[listitem_secondline] = {
  3134.                 Color = "outline"
  3135.             }
  3136.             --
  3137.             local listitem_username = utility:Create("TextLabel", {Vector2.new(4, 4 + listitemposition), list_frame}, {
  3138.                 Text = "",
  3139.                 Size = theme.textsize,
  3140.                 Font = theme.font,
  3141.                 Color = theme.textcolor,
  3142.                 OutlineColor = theme.textborder,
  3143.                 Position = utility:Position(0, 4, 0, 4 + listitemposition, list_frame),
  3144.                 Visible = page.open
  3145.             }, playerList.visibleContent)
  3146.             --
  3147.             library.colors[listitem_username] = {
  3148.                 OutlineColor = "textborder",
  3149.                 Color = "textcolor"
  3150.             }
  3151.             --
  3152.             local listitem_team = utility:Create("TextLabel", {Vector2.new(6 + (1/3 * list_frame.Size.X), 4 + listitemposition), list_frame}, {
  3153.                 Text = "",
  3154.                 Size = theme.textsize,
  3155.                 Font = theme.font,
  3156.                 Color = theme.textcolor,
  3157.                 OutlineColor = theme.textborder,
  3158.                 Position = utility:Position(1/3, 6, 0, 4 + listitemposition, list_frame),
  3159.                 Visible = page.open
  3160.             }, playerList.visibleContent)
  3161.             --
  3162.             library.colors[listitem_team] = {
  3163.                 OutlineColor = "textborder",
  3164.                 Color = "textcolor"
  3165.             }
  3166.             --
  3167.             local listitem_status = utility:Create("TextLabel", {Vector2.new(6 + (2/3 * list_frame.Size.X), 4 + listitemposition), list_frame}, {
  3168.                 Text = "",
  3169.                 Size = theme.textsize,
  3170.                 Font = theme.font,
  3171.                 Color = theme.textcolor,
  3172.                 OutlineColor = theme.textborder,
  3173.                 Position = utility:Position(2/3, 6, 0, 4 + listitemposition, list_frame),
  3174.                 Visible = page.open
  3175.             }, playerList.visibleContent)
  3176.             --
  3177.             library.colors[listitem_status] = {
  3178.                 OutlineColor = "textborder",
  3179.                 Color = "textcolor"
  3180.             }
  3181.             --
  3182.             function item:Set(enabled, selected)
  3183.                 if listitem_line then
  3184.                     if window.isVisible then
  3185.                         listitem_line.Transparency = enabled and 0.3 or 0
  3186.                     end
  3187.                     --
  3188.                     utility:UpdateTransparency(listitem_line, enabled and 0.3 or 0)
  3189.                 end
  3190.                 --
  3191.                 if window.isVisible then
  3192.                     listitem_firstline.Transparency = enabled and 0.3 or 0
  3193.                     listitem_secondline.Transparency = enabled and 0.3 or 0
  3194.                 end
  3195.                 --
  3196.                 utility:UpdateTransparency(listitem_firstline, enabled and 0.3 or 0)
  3197.                 utility:UpdateTransparency(listitem_secondline, enabled and 0.3 or 0)
  3198.                 --
  3199.                 if enabled then
  3200.                     listitem_username.Text = selected[2]
  3201.                     listitem_team.Text = selected[1].Team and tostring(selected[1].Team) or "None"
  3202.                     listitem_status.Text = selected[3]
  3203.                     --
  3204.                     listitem_username.Color = selected[4] and theme.accent or theme.textcolor
  3205.                     listitem_status.Color = selected[3] == "Local Player" and Color3.fromRGB(200, 55, 200) or selected[3] == "Priority" and Color3.fromRGB(55, 55, 200) or selected[3] == "Friend" and Color3.fromRGB(55, 200, 55) or selected[3] == "Enemy" and Color3.fromRGB(200, 55, 55) or theme.textcolor
  3206.                     --
  3207.                     library.colors[listitem_username] = {
  3208.                         OutlineColor = "textborder",
  3209.                         Color = selected[4] and "accent" or "textcolor"
  3210.                     }
  3211.                     --
  3212.                     library.colors[listitem_status] = {
  3213.                         OutlineColor = "textborder",
  3214.                         Color = selected[3] == "None" and "textcolor" or nil
  3215.                     }
  3216.                 else
  3217.                     listitem_username.Text = ""
  3218.                     listitem_team.Text = ""
  3219.                     listitem_status.Text = ""
  3220.                 end
  3221.             end
  3222.             --
  3223.             playerList.items[#playerList.items + 1] = item
  3224.         end
  3225.         --
  3226.         local options_iconoutline = utility:Create("Frame", {Vector2.new(0,list_outline.Size.Y + 4), list_outline}, {
  3227.             Size = utility:Size(0, 60, 0, 60, list_outline),
  3228.             Position = utility:Position(0, 0, 1, 4, list_outline),
  3229.             Color = theme.outline,
  3230.             Visible = page.open
  3231.         }, playerList.visibleContent)
  3232.         --
  3233.         library.colors[options_iconoutline] = {
  3234.             Color = "outline"
  3235.         }
  3236.         --
  3237.         local options_iconinline = utility:Create("Frame", {Vector2.new(1,1), options_iconoutline}, {
  3238.             Size = utility:Size(1, -2, 1, -2, options_iconoutline),
  3239.             Position = utility:Position(0, 1, 0, 1, options_iconoutline),
  3240.             Color = theme.inline,
  3241.             Visible = page.open
  3242.         }, playerList.visibleContent)
  3243.         --
  3244.         library.colors[options_iconinline] = {
  3245.             Color = "inline"
  3246.         }
  3247.         --
  3248.         local options_iconframe = utility:Create("Frame", {Vector2.new(1,1), options_iconinline}, {
  3249.             Size = utility:Size(1, -2, 1, -2, options_iconinline),
  3250.             Position = utility:Position(0, 1, 0, 1, options_iconinline),
  3251.             Color = theme.lightcontrast,
  3252.             Visible = page.open
  3253.         }, playerList.visibleContent)
  3254.         --
  3255.         library.colors[options_iconframe] = {
  3256.             Color = "lightcontrast"
  3257.         }
  3258.         --
  3259.         local options_avatar = utility:Create("Image", {Vector2.new(0,0), options_iconframe}, {
  3260.             Size = utility:Size(1, 0, 1, 0, options_iconframe),
  3261.             Position = utility:Position(0, 0, 0 , 0, options_iconframe),
  3262.             Transparency = 0.8,
  3263.             Visible = page.open
  3264.         }, playerList.visibleContent)
  3265.         --
  3266.         local options_loadingtext = utility:Create("TextLabel", {Vector2.new((options_iconoutline.Size.X / 2) - 1, (options_iconoutline.Size.X / 2) - 10), options_iconframe}, {
  3267.             Text = "..?",
  3268.             Size = theme.textsize,
  3269.             Font = theme.font,
  3270.             Color = theme.textdark,
  3271.             OutlineColor = theme.textborder,
  3272.             Position = utility:Position(0.5, -1, 0.5, -10, options_iconframe),
  3273.             Center = true,
  3274.             Visible = page.open
  3275.         }, playerList.visibleContent)
  3276.         --
  3277.         library.colors[options_loadingtext] = {
  3278.             OutlineColor = "textborder",
  3279.             Color = "textdark"
  3280.         }
  3281.         --
  3282.         local options_title = utility:Create("TextLabel", {Vector2.new(options_iconoutline.Size.X + 5, 0), options_iconoutline}, {
  3283.             Text = "No player selected.", -- ("Display Name : %s\nName : %s\nHealth : %s/%s"):format("gg_bbot", "1envo", "100", "100")
  3284.             Size = theme.textsize,
  3285.             Font = theme.font,
  3286.             Color = theme.textcolor,
  3287.             OutlineColor = theme.textborder,
  3288.             Position = utility:Position(1, 5, 0, 0, options_iconoutline),
  3289.             Visible = page.open
  3290.         }, playerList.visibleContent)
  3291.         --
  3292.         library.colors[options_title] = {
  3293.             OutlineColor = "textborder",
  3294.             Color = "textcolor"
  3295.         }
  3296.         --
  3297.         for Index = 1, 1 do
  3298.             local button = {
  3299.                 open = false,
  3300.                 current = "None",
  3301.                 options = {"None", "Friend", "Enemy", "Priority"},
  3302.                 holder = {buttons = {}, drawings = {}},
  3303.                 selection = nil
  3304.             }
  3305.             --
  3306.             local button_outline = utility:Create("Frame", {Vector2.new(list_outline.Size.X - 180, list_outline.Size.Y + (Index == 1 and 10 or 36)), list_outline}, {
  3307.                 Size = utility:Size(0, 180, 0, 22, list_outline),
  3308.                 Position = utility:Position(1, -180, 1, Index == 1 and 10 or 36, list_outline),
  3309.                 Color = theme.outline,
  3310.                 Visible = page.open
  3311.             }, playerList.visibleContent)
  3312.             --
  3313.             library.colors[button_outline] = {
  3314.                 Color = "outline"
  3315.             }
  3316.             --
  3317.             local button_inline = utility:Create("Frame", {Vector2.new(1,1), button_outline}, {
  3318.                 Size = utility:Size(1, -2, 1, -2, button_outline),
  3319.                 Position = utility:Position(0, 1, 0, 1, button_outline),
  3320.                 Color = theme.inline,
  3321.                 Visible = page.open
  3322.             }, playerList.visibleContent)
  3323.             --
  3324.             library.colors[button_inline] = {
  3325.                 Color = "inline"
  3326.             }
  3327.             --
  3328.             local button_frame = utility:Create("Frame", {Vector2.new(1,1), button_inline}, {
  3329.                 Size = utility:Size(1, -2, 1, -2, button_inline),
  3330.                 Position = utility:Position(0, 1, 0, 1, button_inline),
  3331.                 Color = theme.lightcontrast,
  3332.                 Visible = page.open
  3333.             }, playerList.visibleContent)
  3334.             --
  3335.             library.colors[button_frame] = {
  3336.                 Color = "lightcontrast"
  3337.             }
  3338.             --
  3339.             local button_gradient = utility:Create("Image", {Vector2.new(0,0), button_frame}, {
  3340.                 Size = utility:Size(1, 0, 1, 0, button_frame),
  3341.                 Position = utility:Position(0, 0, 0 , 0, button_frame),
  3342.                 Transparency = 0.5,
  3343.                 Visible = page.open
  3344.             }, playerList.visibleContent)
  3345.             --
  3346.             local button_title = utility:Create("TextLabel", {Vector2.new(button_frame.Size.X/2,1), button_frame}, {
  3347.                 Text = Index == 1 and "Prioritise" or "Friendly",
  3348.                 Size = theme.textsize,
  3349.                 Font = theme.font,
  3350.                 Color = theme.textcolor,
  3351.                 OutlineColor = theme.textborder,
  3352.                 Center = true,
  3353.                 Position = utility:Position(0.5, 0, 0, 1, button_frame),
  3354.                 Visible = page.open
  3355.             }, playerList.visibleContent)
  3356.             --
  3357.             library.colors[button_title] = {
  3358.                 OutlineColor = "textborder",
  3359.                 Color = "textcolor"
  3360.             }
  3361.             --
  3362.             local button_image = utility:Create("Image", {Vector2.new(button_frame.Size.X - 15,button_frame.Size.Y/2 - 3), button_frame}, {
  3363.                 Size = utility:Size(0, 9, 0, 6, button_frame),
  3364.                 Position = utility:Position(1, -15, 0.5, -3, button_frame),
  3365.                 Visible = page.open
  3366.             }, playerList.visibleContent)
  3367.             --
  3368.             utility:LoadImage(button_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  3369.             --
  3370.             function button:Update(Selection)
  3371.                 local Visible = Selection ~= nil and (Selection[1] ~= localplayer) or false
  3372.                 --
  3373.                 for Index, Value in pairs({button_outline, button_inline, button_frame, button_gradient, button_title, button_image}) do
  3374.                     Value.Visible = page.open and Visible or false
  3375.                     --
  3376.                     if Visible then
  3377.                         local fnd = table.find(playerList.visibleContent, Value)
  3378.                         --
  3379.                         if not fnd then
  3380.                             playerList.visibleContent[#playerList.visibleContent + 1] = Value
  3381.                         end
  3382.                     else
  3383.                         local fnd = table.find(playerList.visibleContent, Value)
  3384.                         --
  3385.                         if fnd then
  3386.                             table.remove(playerList.visibleContent, fnd)
  3387.                         end
  3388.                     end
  3389.                 end
  3390.                 --
  3391.                 if Selection then
  3392.                     button_title.Text = Selection[3]
  3393.                     button.current = Selection[3]
  3394.                     button.selection = Selection
  3395.                 else
  3396.                     button.selection = nil
  3397.                 end
  3398.             end
  3399.             --
  3400.             function button:UpdateValue()
  3401.                 if button.open and button.holder.inline then
  3402.                     for i,v in pairs(button.holder.buttons) do
  3403.                         local value = button.options[i]
  3404.                         --
  3405.                         v[1].Text = value
  3406.                         v[1].Color = value == tostring(button.current) and theme.accent or theme.textcolor
  3407.                         v[1].Position = utility:Position(0, value == tostring(button.current) and 8 or 6, 0, 2, v[2])
  3408.                         library.colors[v[1]] = {
  3409.                             Color = v[1].Text == tostring(button.current) and "accent" or "textcolor"
  3410.                         }
  3411.                         utility:UpdateOffset(v[1], {Vector2.new(v[1].Text == tostring(button.current) and 8 or 6, 2), v[2]})
  3412.                     end
  3413.                 end
  3414.             end
  3415.             --
  3416.             function button:Close()
  3417.                 button.open = not button.open
  3418.                 utility:LoadImage(button_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  3419.                 --
  3420.                 for i,v in pairs(button.holder.drawings) do
  3421.                     utility:Remove(v)
  3422.                 end
  3423.                 --
  3424.                 button.holder.drawings = {}
  3425.                 button.holder.buttons = {}
  3426.                 button.holder.inline = nil
  3427.                 --
  3428.                 window.currentContent.frame = nil
  3429.                 window.currentContent.button = nil
  3430.             end
  3431.             --
  3432.             function button:Open()
  3433.                 window:CloseContent()
  3434.                 button.open = not button.open
  3435.                 utility:LoadImage(button_image, "arrow_up", "https://i.imgur.com/SL9cbQp.png")
  3436.                 --
  3437.                 local button_open_outline = utility:Create("Frame", {Vector2.new(0,21), button_outline}, {
  3438.                     Size = utility:Size(1, 0, 0, 3 + (#button.options * 19), button_outline),
  3439.                     Position = utility:Position(0, 0, 0, 21, button_outline),
  3440.                     Color = theme.outline,
  3441.                     Visible = page.open
  3442.                 }, button.holder.drawings);button.holder.outline = button_open_outline
  3443.                 --
  3444.                 library.colors[button_open_outline] = {
  3445.                     Color = "outline"
  3446.                 }
  3447.                 --
  3448.                 local button_open_inline = utility:Create("Frame", {Vector2.new(1,1), button_open_outline}, {
  3449.                     Size = utility:Size(1, -2, 1, -2, button_open_outline),
  3450.                     Position = utility:Position(0, 1, 0, 1, button_open_outline),
  3451.                     Color = theme.inline,
  3452.                     Visible = page.open
  3453.                 }, button.holder.drawings);button.holder.inline = button_open_inline
  3454.                 --
  3455.                 library.colors[button_open_inline] = {
  3456.                     Color = "inline"
  3457.                 }
  3458.                 --
  3459.                 for Index = 1, (#button.options) do
  3460.                     local Value = button.options[Index]
  3461.                     --
  3462.                     if Value then
  3463.                         local button_value_frame = utility:Create("Frame", {Vector2.new(1,1 + (19 * (Index-1))), button_open_inline}, {
  3464.                             Size = utility:Size(1, -2, 0, 18, button_open_inline),
  3465.                             Position = utility:Position(0, 1, 0, 1 + (19 * (Index-1)), button_open_inline),
  3466.                             Color = theme.lightcontrast,
  3467.                             Visible = page.open
  3468.                         }, button.holder.drawings)
  3469.                         --
  3470.                         library.colors[button_value_frame] = {
  3471.                             Color = "lightcontrast"
  3472.                         }
  3473.                         --
  3474.                         local button_value = utility:Create("TextLabel", {Vector2.new(Value == tostring(button.current) and 8 or 6,2), button_value_frame}, {
  3475.                             Text = Value,
  3476.                             Size = theme.textsize,
  3477.                             Font = theme.font,
  3478.                             Color = Value == tostring(button.current) and theme.accent or theme.textcolor,
  3479.                             OutlineColor = theme.textborder,
  3480.                             Position = utility:Position(0, Value == tostring(button.current) and 8 or 6, 0, 2, button_value_frame),
  3481.                             Visible = page.open
  3482.                         }, button.holder.drawings)
  3483.                         --
  3484.                         button.holder.buttons[#button.holder.buttons + 1] = {button_value, button_value_frame}
  3485.                         --
  3486.                         library.colors[button_value] = {
  3487.                             OutlineColor = "textborder",
  3488.                             Color = Value == tostring(button.current) and "accent" or "textcolor"
  3489.                         }
  3490.                     end
  3491.                 end
  3492.                 --
  3493.                 window.currentContent.frame = button_open_inline
  3494.                 window.currentContent.button = button
  3495.             end
  3496.             --
  3497.             utility:LoadImage(button_gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  3498.             --
  3499.             library.began[#library.began + 1] = function(Input)
  3500.                 if Input.UserInputType == Enum.UserInputType.MouseButton1 and (button_outline.Visible or button.open) and window.isVisible then
  3501.                     if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and button_outline.Visible then
  3502.                         if button.open and button.holder.inline and utility:MouseOverDrawing({button.holder.inline.Position.X, button.holder.inline.Position.Y, button.holder.inline.Position.X + button.holder.inline.Size.X, button.holder.inline.Position.Y + button.holder.inline.Size.Y}) then
  3503.                             for i,v in pairs(button.holder.buttons) do
  3504.                                 local value = button.options[i]
  3505.                                 --
  3506.                                 if utility:MouseOverDrawing({v[2].Position.X, v[2].Position.Y, v[2].Position.X + v[2].Size.X, v[2].Position.Y + v[2].Size.Y}) and value ~= button.current then
  3507.                                     button.current = value
  3508.                                     button_title.Text = button.current
  3509.        
  3510.                                     if button.selection then
  3511.                                         button.selection[3] = value
  3512.                                         playerList:Refresh(button.selection)
  3513.                                     end
  3514.        
  3515.                                     button:UpdateValue()
  3516.                                 end
  3517.                             end
  3518.                         elseif utility:MouseOverDrawing({button_outline.Position.X, button_outline.Position.Y, button_outline.Position.X + button_outline.Size.X, button_outline.Position.Y + button_outline.Size.Y}) and not window:IsOverContent() then
  3519.                             task.spawn(function()
  3520.                                 utility:LoadImage(button_gradient, "gradientdown", "https://i.imgur.com/DzrzUt3.png")
  3521.                                 --
  3522.                                 task.wait(0.15)
  3523.                                 --
  3524.                                 utility:LoadImage(button_gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  3525.                             end)
  3526.                             --
  3527.                             if not button.open then
  3528.                                 button:Open()
  3529.                             else
  3530.                                 button:Close()
  3531.                             end
  3532.                         else
  3533.                             if button.open then
  3534.                                 button:Close()
  3535.                             end
  3536.                         end
  3537.                     elseif Input.UserInputType == Enum.UserInputType.MouseButton1 and button.open then
  3538.                         button:Close()
  3539.                     end
  3540.                 end
  3541.             end
  3542.             --
  3543.             playerList.buttons[#playerList.buttons + 1] = button
  3544.         end
  3545.         --
  3546.         utility:LoadImage(list_gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  3547.         --
  3548.         function playerList:GetSelection()
  3549.             for Index, Value in pairs(playerList.players) do
  3550.                 if Value[4] then
  3551.                     return Value
  3552.                 end
  3553.             end
  3554.         end
  3555.         --
  3556.         function playerList:UpdateScroll()
  3557.             if (#playerList.players - 10) > 0 then
  3558.                 playerList.scrollingindex = math.clamp(playerList.scrollingindex, 0, (#playerList.players - 10))
  3559.                 --
  3560.                 list_bar.Transparency = window.isVisible and 1 or 0
  3561.                 list_bar.Size = utility:Size(1, -2, (10 / #playerList.players), -2, list_scroll)
  3562.                 list_bar.Position = utility:Position(0, 1, 0, 1 + ((((list_scroll.Size.Y - 2) - list_bar.Size.Y) / (#playerList.players - 10)) * playerList.scrollingindex), list_scroll)
  3563.                 utility:UpdateTransparency(list_bar, 1)
  3564.                 utility:UpdateOffset(list_bar, {Vector2.new(1, 1 + ((((list_scroll.Size.Y - 2) - list_bar.Size.Y) / (#playerList.players - 10)) * playerList.scrollingindex)), list_scroll})
  3565.             else
  3566.                 playerList.scrollingindex = 0
  3567.                 list_bar.Transparency = 0
  3568.                 utility:UpdateTransparency(list_bar, 0)
  3569.             end
  3570.             --
  3571.             playerList:Refresh()
  3572.         end
  3573.         --
  3574.         local lastselection
  3575.         --
  3576.         function playerList:Refresh(Relation)
  3577.             for Index, Value in pairs(playerList.items) do
  3578.                 local Found = playerList.players[Index + playerList.scrollingindex]
  3579.                 --
  3580.                 if Found then
  3581.                     Value:Set(true, Found)
  3582.                 else
  3583.                     Value:Set(false)
  3584.                 end
  3585.             end
  3586.             --
  3587.             if Relation then
  3588.                 library.Relations[Relation[1].UserId] = Relation[3] ~= "None" and Relation[3] or nil
  3589.             end
  3590.             --
  3591.             playerList_title.Text = ("Player List - %s Players"):format(#playerList.items - 1)
  3592.             --
  3593.             local Selection = playerList:GetSelection()
  3594.             --
  3595.             playerList.buttons[1]:Update(Selection)
  3596.             --
  3597.             window:Move(window.main_frame.Position)
  3598.             --
  3599.             if Selection then
  3600.                 if lastselection ~= Selection then
  3601.                     lastselection = Selection
  3602.                     --
  3603.                     options_avatar.Data = ""
  3604.                     options_loadingtext.Text = "..?"
  3605.                     --
  3606.                     options_title.Text = ("User ID : %s\nDisplay Name : %s\nName : %s\nHealth : %s/%s"):format(Selection[1].UserId, Selection[1].DisplayName ~= "" and Selection[1].DisplayName or Selection[1].Name, Selection[1].Name, "100", "100")
  3607.                     --
  3608.                     local imagedata = game:HttpGet(("https://www.roblox.com/headshot-thumbnail/image?userId=%s&width=100&height=100&format=png"):format(Selection[1].UserId))
  3609.                     --
  3610.                     if playerList:GetSelection() == Selection then
  3611.                         options_avatar.Data = imagedata
  3612.                         options_loadingtext.Text = ""
  3613.                     end
  3614.                 end
  3615.             else
  3616.                 options_title.Text = "No player selected."
  3617.                 options_avatar.Data = ""
  3618.                 options_loadingtext.Text = "..?"
  3619.                 lastselection = nil
  3620.             end
  3621.         end
  3622.         --
  3623.         function playerList:Update() end
  3624.         --
  3625.         utility:Connection(plrs.PlayerAdded, function(Player)
  3626.             playerList.players[#playerList.players + 1] = {Player, Player.Name, "None", false}
  3627.             --
  3628.             playerList:UpdateScroll()
  3629.         end)
  3630.         --
  3631.         utility:Connection(plrs.PlayerRemoving, function(Player)
  3632.             for Index, Value in pairs(playerList.players) do
  3633.                 if Value[1] == Player then
  3634.                     Remove(playerList.players, Index)
  3635.                 end
  3636.             end
  3637.             --
  3638.             playerList:UpdateScroll()
  3639.         end)
  3640.         --
  3641.         for Index, Value in pairs(plrs:GetPlayers()) do
  3642.             playerList.players[#playerList.players + 1] = {Value, Value.Name, Value == localplayer and "Local Player" or "None", false}
  3643.         end
  3644.         --
  3645.         library.began[#library.began + 1] = function(Input)
  3646.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and list_outline.Visible and window.isVisible then
  3647.                 if utility:MouseOverDrawing({list_bar.Position.X, list_bar.Position.Y, list_bar.Position.X + list_bar.Size.X, list_bar.Position.Y + list_bar.Size.Y}) then
  3648.                     playerList.scrolling = {true, (utility:MouseLocation().Y - list_bar.Position.Y)}
  3649.                 elseif utility:MouseOverDrawing({list_frame.Position.X, list_frame.Position.Y, list_frame.Position.X + list_frame.Size.X, list_frame.Position.Y + list_frame.Size.Y}) and not window:IsOverContent() then
  3650.                     for Index = 1, 10 do
  3651.                         local Found = playerList.players[Index + playerList.scrollingindex]
  3652.                         --
  3653.                         if Found and utility:MouseOverDrawing({list_frame.Position.X, list_frame.Position.Y + 2 + (22 * (Index - 1)), list_frame.Position.X + list_frame.Size.X, list_frame.Position.Y + 2 + (22 * (Index - 1)) + 22}) then
  3654.                             if Found[4] then
  3655.                                 Found[4] = false
  3656.                             else
  3657.                                 for Index2, Value2 in pairs(playerList.players) do
  3658.                                     if Value2 ~= Found then
  3659.                                         Value2[4] = false
  3660.                                     end
  3661.                                 end
  3662.                                 --
  3663.                                 Found[4] = true
  3664.                             end
  3665.                             --
  3666.                             playerList:UpdateScroll()
  3667.                             --
  3668.                             break
  3669.                         end
  3670.                     end
  3671.                 end
  3672.             end
  3673.         end
  3674.         --
  3675.         library.ended[#library.ended + 1] = function(Input)
  3676.             if playerList.scrolling[1] and Input.UserInputType == Enum.UserInputType.MouseButton1 then
  3677.                 playerList.scrolling = {false, nil}
  3678.             end
  3679.         end
  3680.         --
  3681.         library.changed[#library.changed + 1] = function(Input)
  3682.             if playerList.scrolling[1] then
  3683.                 local MouseLocation = utility:MouseLocation()
  3684.                 local Position = math.clamp((MouseLocation.Y - list_scroll.Position.Y - playerList.scrolling[2]), 0, ((list_scroll.Size.Y - list_bar.Size.Y)))
  3685.                 --
  3686.                 playerList.scrollingindex = math.clamp(math.round((((Position + list_scroll.Position.Y) - list_scroll.Position.Y) / ((list_scroll.Size.Y - list_bar.Size.Y))) * (#playerList.players - 10)), 0, #playerList.players - 10)
  3687.                 playerList:UpdateScroll()
  3688.             end
  3689.         end
  3690.         --
  3691.         utility:Connection(mouse.WheelForward,function()
  3692.             if (#playerList.players - 10) > 0 and page.open and list_bar.Visible and utility:MouseOverDrawing({list_frame.Position.X, list_frame.Position.Y, list_frame.Position.X + list_frame.Size.X, list_frame.Position.Y + list_frame.Size.Y}) and not window:IsOverContent() then
  3693.                 playerList.scrollingindex = math.clamp(playerList.scrollingindex - 1, 0, #playerList.players - 10)
  3694.                 playerList:UpdateScroll()
  3695.             end
  3696.         end)
  3697.         --
  3698.         utility:Connection(mouse.WheelBackward,function()
  3699.             if (#playerList.players - 10) > 0 and page.open and list_bar.Visible and utility:MouseOverDrawing({list_frame.Position.X, list_frame.Position.Y, list_frame.Position.X + list_frame.Size.X, list_frame.Position.Y + list_frame.Size.Y}) and not window:IsOverContent() then
  3700.                 playerList.scrollingindex = math.clamp(playerList.scrollingindex + 1, 0, #playerList.players - 10)
  3701.                 playerList:UpdateScroll()
  3702.             end
  3703.         end)
  3704.         --
  3705.         playerList:UpdateScroll()
  3706.         --
  3707.         page.sectionOffset["left"] = page.sectionOffset["left"] + playerList_inline.Size.Y + 5
  3708.         page.sectionOffset["right"] = page.sectionOffset["right"] + playerList_inline.Size.Y + 5
  3709.         page.sections[#page.sections + 1] = playerList
  3710.         return playerList
  3711.     end
  3712.     --
  3713.     function sections:Label(info)
  3714.         local info = info or {}
  3715.         local name = info.name or info.Name or info.title or info.Title or "New Label"
  3716.         local middle = info.middle or info.Middle or info.center or info.Center or false
  3717.         local pointer = info.pointer or info.Pointer or info.flag or info.Flag or nil
  3718.         --
  3719.         local window = self.window
  3720.         local page = self.page
  3721.         local section = self
  3722.         --
  3723.         local label = {axis = section.currentAxis}
  3724.         --
  3725.         local label_title = utility:Create("TextLabel", {Vector2.new(middle and (section.section_frame.Size.X/2) or 4,label.axis), section.section_frame}, {
  3726.             Text = name,
  3727.             Size = theme.textsize,
  3728.             Font = theme.font,
  3729.             Color = theme.textcolor,
  3730.             OutlineColor = theme.textborder,
  3731.             Center = middle,
  3732.             Position = utility:Position(middle and 0.5 or 0, middle and 0 or 4, 0, 0, section.section_frame),
  3733.             Visible = page.open
  3734.         }, section.visibleContent)
  3735.         --
  3736.         library.colors[label_title] = {
  3737.             OutlineColor = "textborder",
  3738.             Color = "textcolor"
  3739.         }
  3740.         --
  3741.         if pointer and tostring(pointer) ~= "" and tostring(pointer) ~= " " and not library.pointers[tostring(pointer)] then
  3742.             library.pointers[tostring(pointer)] = label
  3743.         end
  3744.         --
  3745.         section.currentAxis = section.currentAxis + label_title.TextBounds.Y + 4
  3746.         --
  3747.         return label
  3748.     end
  3749.     --
  3750.     function sections:Toggle(info)
  3751.         local info = info or {}
  3752.         local name = info.name or info.Name or info.title or info.Title or "New Toggle"
  3753.         local def = info.def or info.Def or info.default or info.Default or false
  3754.         local pointer = info.pointer or info.Pointer or info.flag or info.Flag or nil
  3755.         local callback = info.callback or info.callBack or info.Callback or info.CallBack or function()end
  3756.         --
  3757.         local window = self.window
  3758.         local page = self.page
  3759.         local section = self
  3760.         --
  3761.         local toggle = {axis = section.currentAxis, current = def, addedAxis = 0, addedKeybind = nil, colorpickers = 0, keybind = nil}
  3762.         --
  3763.         local toggle_outline = utility:Create("Frame", {Vector2.new(4,toggle.axis), section.section_frame}, {
  3764.             Size = utility:Size(0, 15, 0, 15),
  3765.             Position = utility:Position(0, 4, 0, toggle.axis, section.section_frame),
  3766.             Color = theme.outline,
  3767.             Visible = page.open
  3768.         }, section.visibleContent)
  3769.         --
  3770.         library.colors[toggle_outline] = {
  3771.             Color = "outline"
  3772.         }
  3773.         --
  3774.         local toggle_inline = utility:Create("Frame", {Vector2.new(1,1), toggle_outline}, {
  3775.             Size = utility:Size(1, -2, 1, -2, toggle_outline),
  3776.             Position = utility:Position(0, 1, 0, 1, toggle_outline),
  3777.             Color = theme.inline,
  3778.             Visible = page.open
  3779.         }, section.visibleContent)
  3780.         --
  3781.         library.colors[toggle_inline] = {
  3782.             Color = "inline"
  3783.         }
  3784.         --
  3785.         local toggle_frame = utility:Create("Frame", {Vector2.new(1,1), toggle_inline}, {
  3786.             Size = utility:Size(1, -2, 1, -2, toggle_inline),
  3787.             Position = utility:Position(0, 1, 0, 1, toggle_inline),
  3788.             Color = toggle.current == true and theme.accent or theme.lightcontrast,
  3789.             Visible = page.open
  3790.         }, section.visibleContent)
  3791.         --
  3792.         library.colors[toggle_frame] = {
  3793.             Color = toggle.current == true and "accent" or "lightcontrast"
  3794.         }
  3795.         --
  3796.         local toggle__gradient = utility:Create("Image", {Vector2.new(0,0), toggle_frame}, {
  3797.             Size = utility:Size(1, 0, 1, 0, toggle_frame),
  3798.             Position = utility:Position(0, 0, 0 , 0, toggle_frame),
  3799.             Transparency = 0.5,
  3800.             Visible = page.open
  3801.         }, section.visibleContent)
  3802.         --
  3803.         local toggle_title = utility:Create("TextLabel", {Vector2.new(23,toggle.axis + (15/2) - (utility:GetTextBounds(name, theme.textsize, theme.font).Y/2)), section.section_frame}, {
  3804.             Text = name,
  3805.             Size = theme.textsize,
  3806.             Font = theme.font,
  3807.             Color = theme.textcolor,
  3808.             OutlineColor = theme.textborder,
  3809.             Position = utility:Position(0, 23, 0, toggle.axis + (15/2) - (utility:GetTextBounds(name, theme.textsize, theme.font).Y/2), section.section_frame),
  3810.             Visible = page.open
  3811.         }, section.visibleContent)
  3812.         --
  3813.         library.colors[toggle_title] = {
  3814.             OutlineColor = "textborder",
  3815.             Color = "textcolor"
  3816.         }
  3817.         --
  3818.         utility:LoadImage(toggle__gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  3819.         --
  3820.         function toggle:Get()
  3821.             return toggle.current
  3822.         end
  3823.         --
  3824.         function toggle:Set(bool)
  3825.             if typeof(bool) == "boolean" then
  3826.                 toggle.current = bool
  3827.                 toggle_frame.Color = toggle.current == true and theme.accent or theme.lightcontrast
  3828.                 --
  3829.                 library.colors[toggle_frame] = {
  3830.                     Color = toggle.current == true and "accent" or "lightcontrast"
  3831.                 }
  3832.                 --
  3833.                 callback(toggle.current)
  3834.                 --
  3835.                 if toggle.keybind then
  3836.                     toggle.keybind.active = (bool and (toggle.keybind.mode == "Always" or toggle.keybind.mode == "Off Hold") or false)
  3837.                     toggle.keybind:Callback()
  3838.                     --
  3839.                     if toggle.keybind.mode == "Off Hold" and toggle.current then
  3840.                         window.keybindslist:Add(toggle.keybind.keybindname, toggle.keybind.keybind_value.Text)
  3841.                     else
  3842.                         window.keybindslist:Remove(toggle.keybind.keybindname)
  3843.                     end
  3844.                 end
  3845.             end
  3846.         end
  3847.         --
  3848.         library.colors[toggle_frame] = {
  3849.             Color = toggle.current == true and "accent" or "lightcontrast"
  3850.         }
  3851.         --
  3852.         library.began[#library.began + 1] = function(Input)
  3853.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and toggle_outline.Visible and window.isVisible and page.open and utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + toggle.axis, section.section_frame.Position.X + section.section_frame.Size.X - toggle.addedAxis, section.section_frame.Position.Y + toggle.axis + 15}) and not window:IsOverContent() then
  3854.                 toggle.current = not toggle.current
  3855.                 toggle_frame.Color = toggle.current == true and theme.accent or theme.lightcontrast
  3856.                 --
  3857.                 library.colors[toggle_frame] = {
  3858.                     Color = toggle.current == true and "accent" or "lightcontrast"
  3859.                 }
  3860.                 --
  3861.                 callback(toggle.current)
  3862.                 --
  3863.                 if toggle.keybind then
  3864.                     toggle.keybind.active = (toggle.current and (toggle.keybind.mode == "Always" or toggle.keybind.mode == "Off Hold") or false)
  3865.                     toggle.keybind:Callback()
  3866.                     if toggle.keybind.mode == "Off Hold" and toggle.current then
  3867.                         window.keybindslist:Add(toggle.keybind.keybindname, toggle.keybind.keybind_value.Text)
  3868.                     else
  3869.                         window.keybindslist:Remove(toggle.keybind.keybindname)
  3870.                     end
  3871.                 end
  3872.             end
  3873.         end
  3874.         --
  3875.         if pointer and tostring(pointer) ~= "" and tostring(pointer) ~= " " and not library.pointers[tostring(pointer)] then
  3876.             library.pointers[tostring(pointer)] = toggle
  3877.         end
  3878.         --
  3879.         section.currentAxis = section.currentAxis + 15 + 4
  3880.         --
  3881.         function toggle:Colorpicker(info)
  3882.             local info = info or {}
  3883.             local cpinfo = info.info or info.Info or name
  3884.             local def = info.def or info.Def or info.default or info.Default or Color3.fromRGB(255, 0, 0)
  3885.             local transp = info.transparency or info.Transparency or info.transp or info.Transp or info.alpha or info.Alpha or nil
  3886.             local pointer = info.pointer or info.Pointer or info.flag or info.Flag or nil
  3887.             local callback = info.callback or info.callBack or info.Callback or info.CallBack or function()end
  3888.             --
  3889.             local hh, ss, vv = def:ToHSV()
  3890.             local colorpicker = {toggle, axis = toggle.axis, index = toggle.colorpickers, current = {hh, ss, vv , (transp or 0)}, holding = {picker = false, huepicker = false, transparency = false}, holder = {inline = nil, picker = nil, picker_cursor = nil, huepicker = nil, huepicker_cursor = {}, transparency = nil, transparencybg = nil, transparency_cursor = {}, drawings = {}}}
  3891.             --
  3892.             local colorpicker_outline = utility:Create("Frame", {Vector2.new(section.section_frame.Size.X-(toggle.colorpickers == 0 and (30+4) or (64 + 4)),colorpicker.axis), section.section_frame}, {
  3893.                 Size = utility:Size(0, 30, 0, 15),
  3894.                 Position = utility:Position(1, -(toggle.colorpickers == 0 and (30+4) or (64 + 4)), 0, colorpicker.axis, section.section_frame),
  3895.                 Color = theme.outline,
  3896.                 Visible = page.open
  3897.             }, section.visibleContent)
  3898.             --
  3899.             library.colors[colorpicker_outline] = {
  3900.                 Color = "outline"
  3901.             }
  3902.             --
  3903.             local colorpicker_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_outline}, {
  3904.                 Size = utility:Size(1, -2, 1, -2, colorpicker_outline),
  3905.                 Position = utility:Position(0, 1, 0, 1, colorpicker_outline),
  3906.                 Color = theme.inline,
  3907.                 Visible = page.open
  3908.             }, section.visibleContent)
  3909.             --
  3910.             library.colors[colorpicker_inline] = {
  3911.                 Color = "inline"
  3912.             }
  3913.             --
  3914.             local colorpicker__transparency
  3915.             if transp then
  3916.                 colorpicker__transparency = utility:Create("Image", {Vector2.new(1,1), colorpicker_inline}, {
  3917.                     Size = utility:Size(1, -2, 1, -2, colorpicker_inline),
  3918.                     Position = utility:Position(0, 1, 0 , 1, colorpicker_inline),
  3919.                     Visible = page.open
  3920.                 }, section.visibleContent)
  3921.             end
  3922.             --
  3923.             local colorpicker_frame = utility:Create("Frame", {Vector2.new(1,1), colorpicker_inline}, {
  3924.                 Size = utility:Size(1, -2, 1, -2, colorpicker_inline),
  3925.                 Position = utility:Position(0, 1, 0, 1, colorpicker_inline),
  3926.                 Color = def,
  3927.                 Transparency = transp and (1 - transp) or 1,
  3928.                 Visible = page.open
  3929.             }, section.visibleContent)
  3930.             --
  3931.             local colorpicker__gradient = utility:Create("Image", {Vector2.new(0,0), colorpicker_frame}, {
  3932.                 Size = utility:Size(1, 0, 1, 0, colorpicker_frame),
  3933.                 Position = utility:Position(0, 0, 0 , 0, colorpicker_frame),
  3934.                 Transparency = 0.5,
  3935.                 Visible = page.open
  3936.             }, section.visibleContent)
  3937.             --
  3938.             if transp then
  3939.                 utility:LoadImage(colorpicker__transparency, "cptransp", "https://i.imgur.com/IIPee2A.png")
  3940.             end
  3941.             utility:LoadImage(colorpicker__gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  3942.             --
  3943.             function colorpicker:Set(color, transp_val)
  3944.                 if typeof(color) == "table" then
  3945.                     if color.Color and color.Transparency then
  3946.                         local h, s, v = Unpack(color.Color)
  3947.                         colorpicker.current = {h, s, v , color.Transparency}
  3948.                         colorpicker_frame.Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  3949.                         colorpicker_frame.Transparency = 1 - colorpicker.current[4]
  3950.                         callback(Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3]), colorpicker.current[4])
  3951.                     else
  3952.                         colorpicker.current = color
  3953.                         colorpicker_frame.Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  3954.                         colorpicker_frame.Transparency = 1 - colorpicker.current[4]
  3955.                         callback(Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3]), colorpicker.current[4])
  3956.                     end
  3957.                 elseif typeof(color) == "Color3" then
  3958.                     local h, s, v = color:ToHSV()
  3959.                     colorpicker.current = {h, s, v, (transp_val or 0)}
  3960.                     colorpicker_frame.Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  3961.                     colorpicker_frame.Transparency = 1 - colorpicker.current[4]
  3962.                     callback(Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3]), colorpicker.current[4])
  3963.                 end
  3964.             end
  3965.             --
  3966.             function colorpicker:Refresh()
  3967.                 local mouseLocation = utility:MouseLocation()
  3968.                 if colorpicker.open and colorpicker.holder.picker and colorpicker.holding.picker then
  3969.                     colorpicker.current[2] = math.clamp(mouseLocation.X - colorpicker.holder.picker.Position.X, 0, colorpicker.holder.picker.Size.X) / colorpicker.holder.picker.Size.X
  3970.                     --
  3971.                     colorpicker.current[3] = 1-(math.clamp(mouseLocation.Y - colorpicker.holder.picker.Position.Y, 0, colorpicker.holder.picker.Size.Y) / colorpicker.holder.picker.Size.Y)
  3972.                     --
  3973.                     colorpicker.holder.picker_cursor.Position = utility:Position(colorpicker.current[2], -3, 1-colorpicker.current[3] , -3, colorpicker.holder.picker)
  3974.                     --
  3975.                     utility:UpdateOffset(colorpicker.holder.picker_cursor, {Vector2.new((colorpicker.holder.picker.Size.X*colorpicker.current[2])-3,(colorpicker.holder.picker.Size.Y*(1-colorpicker.current[3]))-3), colorpicker.holder.picker})
  3976.                     --
  3977.                     if colorpicker.holder.transparencybg then
  3978.                         colorpicker.holder.transparencybg.Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  3979.                     end
  3980.                 elseif colorpicker.open and colorpicker.holder.huepicker and colorpicker.holding.huepicker then
  3981.                     colorpicker.current[1] = (math.clamp(mouseLocation.Y - colorpicker.holder.huepicker.Position.Y, 0, colorpicker.holder.huepicker.Size.Y) / colorpicker.holder.huepicker.Size.Y)
  3982.                     --
  3983.                     colorpicker.holder.huepicker_cursor[1].Position = utility:Position(0, -3, colorpicker.current[1], -3, colorpicker.holder.huepicker)
  3984.                     colorpicker.holder.huepicker_cursor[2].Position = utility:Position(0, 1, 0, 1, colorpicker.holder.huepicker_cursor[1])
  3985.                     colorpicker.holder.huepicker_cursor[3].Position = utility:Position(0, 1, 0, 1, colorpicker.holder.huepicker_cursor[2])
  3986.                     colorpicker.holder.huepicker_cursor[3].Color = Color3.fromHSV(colorpicker.current[1], 1, 1)
  3987.                     --
  3988.                     utility:UpdateOffset(colorpicker.holder.huepicker_cursor[1], {Vector2.new(-3,(colorpicker.holder.huepicker.Size.Y*colorpicker.current[1])-3), colorpicker.holder.huepicker})
  3989.                     --
  3990.                     colorpicker.holder.background.Color = Color3.fromHSV(colorpicker.current[1], 1, 1)
  3991.                     --
  3992.                     if colorpicker.holder.transparency_cursor and colorpicker.holder.transparency_cursor[3] then
  3993.                         colorpicker.holder.transparency_cursor[3].Color = Color3.fromHSV(0, 0, 1 - colorpicker.current[4])
  3994.                     end
  3995.                     --
  3996.                     if colorpicker.holder.transparencybg then
  3997.                         colorpicker.holder.transparencybg.Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  3998.                     end
  3999.                 elseif colorpicker.open and colorpicker.holder.transparency and colorpicker.holding.transparency then
  4000.                     colorpicker.current[4] = 1 - (math.clamp(mouseLocation.X - colorpicker.holder.transparency.Position.X, 0, colorpicker.holder.transparency.Size.X) / colorpicker.holder.transparency.Size.X)
  4001.                     --
  4002.                     colorpicker.holder.transparency_cursor[1].Position = utility:Position(1-colorpicker.current[4], -3, 0, -3, colorpicker.holder.transparency)
  4003.                     colorpicker.holder.transparency_cursor[2].Position = utility:Position(0, 1, 0, 1, colorpicker.holder.transparency_cursor[1])
  4004.                     colorpicker.holder.transparency_cursor[3].Position = utility:Position(0, 1, 0, 1, colorpicker.holder.transparency_cursor[2])
  4005.                     colorpicker.holder.transparency_cursor[3].Color = Color3.fromHSV(0, 0, 1 - colorpicker.current[4])
  4006.                     colorpicker_frame.Transparency = (1 - colorpicker.current[4])
  4007.                     --
  4008.                     utility:UpdateTransparency(colorpicker_frame, (1 - colorpicker.current[4]))
  4009.                     utility:UpdateOffset(colorpicker.holder.transparency_cursor[1], {Vector2.new((colorpicker.holder.transparency.Size.X*(1-colorpicker.current[4]))-3,-3), colorpicker.holder.transparency})
  4010.                     --
  4011.                     colorpicker.holder.background.Color = Color3.fromHSV(colorpicker.current[1], 1, 1)
  4012.                 end
  4013.                 --
  4014.                 colorpicker:Set(colorpicker.current)
  4015.             end
  4016.             --
  4017.             function colorpicker:Get()
  4018.                 return {Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3]), Transparency = colorpicker.current[4]}
  4019.             end
  4020.             --
  4021.             library.began[#library.began + 1] = function(Input)
  4022.                 if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and colorpicker_outline.Visible then
  4023.                     if colorpicker.open and colorpicker.holder.inline and utility:MouseOverDrawing({colorpicker.holder.inline.Position.X, colorpicker.holder.inline.Position.Y, colorpicker.holder.inline.Position.X + colorpicker.holder.inline.Size.X, colorpicker.holder.inline.Position.Y + colorpicker.holder.inline.Size.Y}) then
  4024.                         if colorpicker.holder.picker and utility:MouseOverDrawing({colorpicker.holder.picker.Position.X - 2, colorpicker.holder.picker.Position.Y - 2, colorpicker.holder.picker.Position.X - 2 + colorpicker.holder.picker.Size.X + 4, colorpicker.holder.picker.Position.Y - 2 + colorpicker.holder.picker.Size.Y + 4}) then
  4025.                             colorpicker.holding.picker = true
  4026.                             colorpicker:Refresh()
  4027.                         elseif colorpicker.holder.huepicker and utility:MouseOverDrawing({colorpicker.holder.huepicker.Position.X - 2, colorpicker.holder.huepicker.Position.Y - 2, colorpicker.holder.huepicker.Position.X - 2 + colorpicker.holder.huepicker.Size.X + 4, colorpicker.holder.huepicker.Position.Y - 2 + colorpicker.holder.huepicker.Size.Y + 4}) then
  4028.                             colorpicker.holding.huepicker = true
  4029.                             colorpicker:Refresh()
  4030.                         elseif colorpicker.holder.transparency and utility:MouseOverDrawing({colorpicker.holder.transparency.Position.X - 2, colorpicker.holder.transparency.Position.Y - 2, colorpicker.holder.transparency.Position.X - 2 + colorpicker.holder.transparency.Size.X + 4, colorpicker.holder.transparency.Position.Y - 2 + colorpicker.holder.transparency.Size.Y + 4}) then
  4031.                             colorpicker.holding.transparency = true
  4032.                             colorpicker:Refresh()
  4033.                         end
  4034.                     elseif utility:MouseOverDrawing({section.section_frame.Position.X + (section.section_frame.Size.X - (colorpicker.index == 0 and (30 + 4 + 2) or (64 + 4 + 2))), section.section_frame.Position.Y + colorpicker.axis, section.section_frame.Position.X + section.section_frame.Size.X - (colorpicker.index == 1 and 36 or 0), section.section_frame.Position.Y + colorpicker.axis + 15}) and not window:IsOverContent() then
  4035.                         if not colorpicker.open then
  4036.                             window:CloseContent()
  4037.                             colorpicker.open = not colorpicker.open
  4038.                             --
  4039.                             local colorpicker_open_outline = utility:Create("Frame", {Vector2.new(4,colorpicker.axis + 19), section.section_frame}, {
  4040.                                 Size = utility:Size(1, -8, 0, transp and 219 or 200, section.section_frame),
  4041.                                 Position = utility:Position(0, 4, 0, colorpicker.axis + 19, section.section_frame),
  4042.                                 Color = theme.outline
  4043.                             }, colorpicker.holder.drawings);colorpicker.holder.inline = colorpicker_open_outline
  4044.                             --
  4045.                             library.colors[colorpicker_open_outline] = {
  4046.                                 Color = "outline"
  4047.                             }
  4048.                             --
  4049.                             local colorpicker_open_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_outline}, {
  4050.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_outline),
  4051.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_outline),
  4052.                                 Color = theme.inline
  4053.                             }, colorpicker.holder.drawings)
  4054.                             --
  4055.                             library.colors[colorpicker_open_inline] = {
  4056.                                 Color = "inline"
  4057.                             }
  4058.                             --
  4059.                             local colorpicker_open_frame = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_inline}, {
  4060.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_inline),
  4061.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_inline),
  4062.                                 Color = theme.darkcontrast
  4063.                             }, colorpicker.holder.drawings)
  4064.                             --
  4065.                             library.colors[colorpicker_open_frame] = {
  4066.                                 Color = "darkcontrast"
  4067.                             }
  4068.                             --
  4069.                             local colorpicker_open_accent = utility:Create("Frame", {Vector2.new(0,0), colorpicker_open_frame}, {
  4070.                                 Size = utility:Size(1, 0, 0, 2, colorpicker_open_frame),
  4071.                                 Position = utility:Position(0, 0, 0, 0, colorpicker_open_frame),
  4072.                                 Color = theme.accent
  4073.                             }, colorpicker.holder.drawings)
  4074.                             --
  4075.                             library.colors[colorpicker_open_accent] = {
  4076.                                 Color = "accent"
  4077.                             }
  4078.                             --
  4079.                             local colorpicker_title = utility:Create("TextLabel", {Vector2.new(4,2), colorpicker_open_frame}, {
  4080.                                 Text = cpinfo,
  4081.                                 Size = theme.textsize,
  4082.                                 Font = theme.font,
  4083.                                 Color = theme.textcolor,
  4084.                                 OutlineColor = theme.textborder,
  4085.                                 Position = utility:Position(0, 4, 0, 2, colorpicker_open_frame),
  4086.                             }, colorpicker.holder.drawings)
  4087.                             --
  4088.                             library.colors[colorpicker_title] = {
  4089.                                 OutlineColor = "textborder",
  4090.                                 Color = "textcolor"
  4091.                             }
  4092.                             --
  4093.                             local colorpicker_open_picker_outline = utility:Create("Frame", {Vector2.new(4,17), colorpicker_open_frame}, {
  4094.                                 Size = utility:Size(1, -27, 1, transp and -40 or -21, colorpicker_open_frame),
  4095.                                 Position = utility:Position(0, 4, 0, 17, colorpicker_open_frame),
  4096.                                 Color = theme.outline
  4097.                             }, colorpicker.holder.drawings)
  4098.                             --
  4099.                             library.colors[colorpicker_open_picker_outline] = {
  4100.                                 Color = "outline"
  4101.                             }
  4102.                             --
  4103.                             local colorpicker_open_picker_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_picker_outline}, {
  4104.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_picker_outline),
  4105.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_picker_outline),
  4106.                                 Color = theme.inline
  4107.                             }, colorpicker.holder.drawings)
  4108.                             --
  4109.                             library.colors[colorpicker_open_picker_inline] = {
  4110.                                 Color = "inline"
  4111.                             }
  4112.                             --
  4113.                             local colorpicker_open_picker_bg = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_picker_inline}, {
  4114.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_picker_inline),
  4115.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_picker_inline),
  4116.                                 Color = Color3.fromHSV(colorpicker.current[1],1,1)
  4117.                             }, colorpicker.holder.drawings);colorpicker.holder.background = colorpicker_open_picker_bg
  4118.                             --
  4119.                             local colorpicker_open_picker_image = utility:Create("Image", {Vector2.new(0,0), colorpicker_open_picker_bg}, {
  4120.                                 Size = utility:Size(1, 0, 1, 0, colorpicker_open_picker_bg),
  4121.                                 Position = utility:Position(0, 0, 0 , 0, colorpicker_open_picker_bg),
  4122.                             }, colorpicker.holder.drawings);colorpicker.holder.picker = colorpicker_open_picker_image
  4123.                             --
  4124.                             local colorpicker_open_picker_cursor = utility:Create("Image", {Vector2.new((colorpicker_open_picker_image.Size.X*colorpicker.current[2])-3,(colorpicker_open_picker_image.Size.Y*(1-colorpicker.current[3]))-3), colorpicker_open_picker_image}, {
  4125.                                 Size = utility:Size(0, 6, 0, 6, colorpicker_open_picker_image),
  4126.                                 Position = utility:Position(colorpicker.current[2], -3, 1-colorpicker.current[3] , -3, colorpicker_open_picker_image),
  4127.                             }, colorpicker.holder.drawings);colorpicker.holder.picker_cursor = colorpicker_open_picker_cursor
  4128.                             --
  4129.                             local colorpicker_open_huepicker_outline = utility:Create("Frame", {Vector2.new(colorpicker_open_frame.Size.X-19,17), colorpicker_open_frame}, {
  4130.                                 Size = utility:Size(0, 15, 1, transp and -40 or -21, colorpicker_open_frame),
  4131.                                 Position = utility:Position(1, -19, 0, 17, colorpicker_open_frame),
  4132.                                 Color = theme.outline
  4133.                             }, colorpicker.holder.drawings)
  4134.                             --
  4135.                             library.colors[colorpicker_open_huepicker_outline] = {
  4136.                                 Color = "outline"
  4137.                             }
  4138.                             --
  4139.                             local colorpicker_open_huepicker_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_huepicker_outline}, {
  4140.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_huepicker_outline),
  4141.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_huepicker_outline),
  4142.                                 Color = theme.inline
  4143.                             }, colorpicker.holder.drawings)
  4144.                             --
  4145.                             library.colors[colorpicker_open_huepicker_inline] = {
  4146.                                 Color = "inline"
  4147.                             }
  4148.                             --
  4149.                             local colorpicker_open_huepicker_image = utility:Create("Image", {Vector2.new(1,1), colorpicker_open_huepicker_inline}, {
  4150.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_huepicker_inline),
  4151.                                 Position = utility:Position(0, 1, 0 , 1, colorpicker_open_huepicker_inline),
  4152.                             }, colorpicker.holder.drawings);colorpicker.holder.huepicker = colorpicker_open_huepicker_image
  4153.                             --
  4154.                             local colorpicker_open_huepicker_cursor_outline = utility:Create("Frame", {Vector2.new(-3,(colorpicker_open_huepicker_image.Size.Y*colorpicker.current[1])-3), colorpicker_open_huepicker_image}, {
  4155.                                 Size = utility:Size(1, 6, 0, 6, colorpicker_open_huepicker_image),
  4156.                                 Position = utility:Position(0, -3, colorpicker.current[1], -3, colorpicker_open_huepicker_image),
  4157.                                 Color = theme.outline
  4158.                             }, colorpicker.holder.drawings);colorpicker.holder.huepicker_cursor[1] = colorpicker_open_huepicker_cursor_outline
  4159.                             --
  4160.                             library.colors[colorpicker_open_huepicker_cursor_outline] = {
  4161.                                 Color = "outline"
  4162.                             }
  4163.                             --
  4164.                             local colorpicker_open_huepicker_cursor_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_huepicker_cursor_outline}, {
  4165.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_huepicker_cursor_outline),
  4166.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_huepicker_cursor_outline),
  4167.                                 Color = theme.textcolor
  4168.                             }, colorpicker.holder.drawings);colorpicker.holder.huepicker_cursor[2] = colorpicker_open_huepicker_cursor_inline
  4169.                             --
  4170.                             library.colors[colorpicker_open_huepicker_cursor_inline] = {
  4171.                                 Color = "textcolor"
  4172.                             }
  4173.                             --
  4174.                             local colorpicker_open_huepicker_cursor_color = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_huepicker_cursor_inline}, {
  4175.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_huepicker_cursor_inline),
  4176.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_huepicker_cursor_inline),
  4177.                                 Color = Color3.fromHSV(colorpicker.current[1], 1, 1)
  4178.                             }, colorpicker.holder.drawings);colorpicker.holder.huepicker_cursor[3] = colorpicker_open_huepicker_cursor_color
  4179.                             --
  4180.                             if transp then
  4181.                                 local colorpicker_open_transparency_outline = utility:Create("Frame", {Vector2.new(4,colorpicker_open_frame.Size.Y-19), colorpicker_open_frame}, {
  4182.                                     Size = utility:Size(1, -27, 0, 15, colorpicker_open_frame),
  4183.                                     Position = utility:Position(0, 4, 1, -19, colorpicker_open_frame),
  4184.                                     Color = theme.outline
  4185.                                 }, colorpicker.holder.drawings)
  4186.                                 --
  4187.                                 library.colors[colorpicker_open_transparency_outline] = {
  4188.                                     Color = "outline"
  4189.                                 }
  4190.                                 --
  4191.                                 local colorpicker_open_transparency_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_transparency_outline}, {
  4192.                                     Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_outline),
  4193.                                     Position = utility:Position(0, 1, 0, 1, colorpicker_open_transparency_outline),
  4194.                                     Color = theme.inline
  4195.                                 }, colorpicker.holder.drawings)
  4196.                                 --
  4197.                                 library.colors[colorpicker_open_transparency_inline] = {
  4198.                                     Color = "inline"
  4199.                                 }
  4200.                                 --
  4201.                                 local colorpicker_open_transparency_bg = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_transparency_inline}, {
  4202.                                     Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_inline),
  4203.                                     Position = utility:Position(0, 1, 0, 1, colorpicker_open_transparency_inline),
  4204.                                     Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  4205.                                 }, colorpicker.holder.drawings);colorpicker.holder.transparencybg = colorpicker_open_transparency_bg
  4206.                                 --
  4207.                                 local colorpicker_open_transparency_image = utility:Create("Image", {Vector2.new(1,1), colorpicker_open_transparency_inline}, {
  4208.                                     Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_inline),
  4209.                                     Position = utility:Position(0, 1, 0 , 1, colorpicker_open_transparency_inline),
  4210.                                 }, colorpicker.holder.drawings);colorpicker.holder.transparency = colorpicker_open_transparency_image
  4211.                                 --
  4212.                                 local colorpicker_open_transparency_cursor_outline = utility:Create("Frame", {Vector2.new((colorpicker_open_transparency_image.Size.X*(1-colorpicker.current[4]))-3,-3), colorpicker_open_transparency_image}, {
  4213.                                     Size = utility:Size(0, 6, 1, 6, colorpicker_open_transparency_image),
  4214.                                     Position = utility:Position(1-colorpicker.current[4], -3, 0, -3, colorpicker_open_transparency_image),
  4215.                                     Color = theme.outline
  4216.                                 }, colorpicker.holder.drawings);colorpicker.holder.transparency_cursor[1] = colorpicker_open_transparency_cursor_outline
  4217.                                 --
  4218.                                 library.colors[colorpicker_open_transparency_cursor_outline] = {
  4219.                                     Color = "outline"
  4220.                                 }
  4221.                                 --
  4222.                                 local colorpicker_open_transparency_cursor_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_transparency_cursor_outline}, {
  4223.                                     Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_cursor_outline),
  4224.                                     Position = utility:Position(0, 1, 0, 1, colorpicker_open_transparency_cursor_outline),
  4225.                                     Color = theme.textcolor
  4226.                                 }, colorpicker.holder.drawings);colorpicker.holder.transparency_cursor[2] = colorpicker_open_transparency_cursor_inline
  4227.                                 --
  4228.                                 library.colors[colorpicker_open_transparency_cursor_inline] = {
  4229.                                     Color = "textcolor"
  4230.                                 }
  4231.                                 --
  4232.                                 local colorpicker_open_transparency_cursor_color = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_transparency_cursor_inline}, {
  4233.                                     Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_cursor_inline),
  4234.                                     Position = utility:Position(0, 1, 0, 1, colorpicker_open_transparency_cursor_inline),
  4235.                                     Color = Color3.fromHSV(0, 0, 1 - colorpicker.current[4]),
  4236.                                 }, colorpicker.holder.drawings);colorpicker.holder.transparency_cursor[3] = colorpicker_open_transparency_cursor_color
  4237.                                 --
  4238.                                 utility:LoadImage(colorpicker_open_transparency_image, "transp", "https://i.imgur.com/ncssKbH.png")
  4239.                                 --utility:LoadImage(colorpicker_open_transparency_image, "transp", "https://i.imgur.com/VcMAYjL.png")
  4240.                             end
  4241.                             --
  4242.                             utility:LoadImage(colorpicker_open_picker_image, "valsat", "https://i.imgur.com/wpDRqVH.png")
  4243.                             utility:LoadImage(colorpicker_open_picker_cursor, "valsat_cursor", "https://raw.githubusercontent.com/mvonwalk/splix-assets/main/Images-cursor.png")
  4244.                             utility:LoadImage(colorpicker_open_huepicker_image, "hue", "https://i.imgur.com/iEOsHFv.png")
  4245.                             --
  4246.                             window.currentContent.frame = colorpicker_open_inline
  4247.                             window.currentContent.colorpicker = colorpicker
  4248.                         else
  4249.                             colorpicker.open = not colorpicker.open
  4250.                             --
  4251.                             for i,v in pairs(colorpicker.holder.drawings) do
  4252.                                 utility:Remove(v)
  4253.                             end
  4254.                             --
  4255.                             colorpicker.holder.drawings = {}
  4256.                             colorpicker.holder.inline = nil
  4257.                             --
  4258.                             window.currentContent.frame = nil
  4259.                             window.currentContent.colorpicker = nil
  4260.                         end
  4261.                     else
  4262.                         if colorpicker.open then
  4263.                             colorpicker.open = not colorpicker.open
  4264.                             --
  4265.                             for i,v in pairs(colorpicker.holder.drawings) do
  4266.                                 utility:Remove(v)
  4267.                             end
  4268.                             --
  4269.                             colorpicker.holder.drawings = {}
  4270.                             colorpicker.holder.inline = nil
  4271.                             --
  4272.                             window.currentContent.frame = nil
  4273.                             window.currentContent.colorpicker = nil
  4274.                         end
  4275.                     end
  4276.                 elseif Input.UserInputType == Enum.UserInputType.MouseButton1 and colorpicker.open then
  4277.                     colorpicker.open = not colorpicker.open
  4278.                     --
  4279.                     for i,v in pairs(colorpicker.holder.drawings) do
  4280.                         utility:Remove(v)
  4281.                     end
  4282.                     --
  4283.                     colorpicker.holder.drawings = {}
  4284.                     colorpicker.holder.inline = nil
  4285.                     --
  4286.                     window.currentContent.frame = nil
  4287.                     window.currentContent.colorpicker = nil
  4288.                 end
  4289.             end
  4290.             --
  4291.             library.ended[#library.ended + 1] = function(Input)
  4292.                 if Input.UserInputType == Enum.UserInputType.MouseButton1 then
  4293.                     if colorpicker.holding.picker then
  4294.                         colorpicker.holding.picker = not colorpicker.holding.picker
  4295.                     end
  4296.                     if colorpicker.holding.huepicker then
  4297.                         colorpicker.holding.huepicker = not colorpicker.holding.huepicker
  4298.                     end
  4299.                     if colorpicker.holding.transparency then
  4300.                         colorpicker.holding.transparency = not colorpicker.holding.transparency
  4301.                     end
  4302.                 end
  4303.             end
  4304.             --
  4305.             library.changed[#library.changed + 1] = function()
  4306.                 if colorpicker.open and colorpicker.holding.picker or colorpicker.holding.huepicker or colorpicker.holding.transparency then
  4307.                     if window.isVisible then
  4308.                         colorpicker:Refresh()
  4309.                     else
  4310.                         if colorpicker.holding.picker then
  4311.                             colorpicker.holding.picker = not colorpicker.holding.picker
  4312.                         end
  4313.                         if colorpicker.holding.huepicker then
  4314.                             colorpicker.holding.huepicker = not colorpicker.holding.huepicker
  4315.                         end
  4316.                         if colorpicker.holding.transparency then
  4317.                             colorpicker.holding.transparency = not colorpicker.holding.transparency
  4318.                         end
  4319.                     end
  4320.                 end
  4321.             end
  4322.             --
  4323.             if pointer and tostring(pointer) ~= "" and tostring(pointer) ~= " " and not library.pointers[tostring(pointer)] then
  4324.                 library.pointers[tostring(pointer)] = colorpicker
  4325.             end
  4326.             --
  4327.             toggle.addedAxis = toggle.addedAxis + 30 + 4 + 2
  4328.             toggle.colorpickers = toggle.colorpickers + 1
  4329.             --
  4330.             return colorpicker, toggle
  4331.         end
  4332.         --
  4333.         function toggle:Keybind(info)
  4334.             local info = info or {}
  4335.             local def = info.def or info.Def or info.default or info.Default or nil
  4336.             local pointer = info.pointer or info.Pointer or info.flag or info.Flag or nil
  4337.             local mode = info.mode or info.Mode or "Always"
  4338.             local keybindname = info.keybindname or info.keybindName or info.KeybindName or info.Keybindname or nil
  4339.             local callback = info.callback or info.callBack or info.Callback or info.CallBack or function()end
  4340.             --
  4341.             toggle.addedaxis = toggle.addedAxis + 40 + 4 + 2
  4342.             --
  4343.             local keybind = {keybindname = keybindname or name, axis = toggle.axis, current = {}, selecting = false, mode = mode, open = false, modemenu = {buttons = {}, drawings = {}}, active = false}
  4344.             --
  4345.             toggle.keybind = keybind
  4346.             --
  4347.             local allowedKeyCodes = {"Q","W","E","R","T","Y","U","I","O","P","A","S","D","F","G","H","J","K","L","Z","X","C","V","B","N","M","One","Two","Three","Four","Five","Six","Seveen","Eight","Nine","Zero", "Minus", "Equals","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","Insert","Tab","Home","End","LeftAlt","LeftControl","LeftShift","RightAlt","RightControl","RightShift","CapsLock"}
  4348.             local allowedInputTypes = {"MouseButton1","MouseButton2","MouseButton3"}
  4349.             local shortenedInputs = {["MouseButton1"] = "MB1", ["MouseButton2"] = "MB2", ["MouseButton3"] = "MB3", ["Insert"] = "Ins", ["Minus"] = "-", ["Equals"] = "=", ["LeftAlt"] = "LAlt", ["LeftControl"] = "LC", ["LeftShift"] = "LS", ["RightAlt"] = "RAlt", ["RightControl"] = "RC", ["RightShift"] = "RS", ["CapsLock"] = "Caps"}
  4350.             --
  4351.             local keybind_outline = utility:Create("Frame", {Vector2.new(section.section_frame.Size.X-(40+4),keybind.axis), section.section_frame}, {
  4352.                 Size = utility:Size(0, 40, 0, 17),
  4353.                 Position = utility:Position(1, -(40+4), 0, keybind.axis, section.section_frame),
  4354.                 Color = theme.outline,
  4355.                 Visible = page.open
  4356.             }, section.visibleContent)
  4357.             --
  4358.             library.colors[keybind_outline] = {
  4359.                 Color = "outline"
  4360.             }
  4361.             --
  4362.             local keybind_inline = utility:Create("Frame", {Vector2.new(1,1), keybind_outline}, {
  4363.                 Size = utility:Size(1, -2, 1, -2, keybind_outline),
  4364.                 Position = utility:Position(0, 1, 0, 1, keybind_outline),
  4365.                 Color = theme.inline,
  4366.                 Visible = page.open
  4367.             }, section.visibleContent)
  4368.             --
  4369.             library.colors[keybind_inline] = {
  4370.                 Color = "inline"
  4371.             }
  4372.             --
  4373.             local keybind_frame = utility:Create("Frame", {Vector2.new(1,1), keybind_inline}, {
  4374.                 Size = utility:Size(1, -2, 1, -2, keybind_inline),
  4375.                 Position = utility:Position(0, 1, 0, 1, keybind_inline),
  4376.                 Color = theme.lightcontrast,
  4377.                 Visible = page.open
  4378.             }, section.visibleContent)
  4379.             --
  4380.             library.colors[keybind_frame] = {
  4381.                 Color = "lightcontrast"
  4382.             }
  4383.             --
  4384.             local keybind__gradient = utility:Create("Image", {Vector2.new(0,0), keybind_frame}, {
  4385.                 Size = utility:Size(1, 0, 1, 0, keybind_frame),
  4386.                 Position = utility:Position(0, 0, 0 , 0, keybind_frame),
  4387.                 Transparency = 0.5,
  4388.                 Visible = page.open
  4389.             }, section.visibleContent)
  4390.             --
  4391.             local keybind_value = utility:Create("TextLabel", {Vector2.new(keybind_outline.Size.X/2,1), keybind_outline}, {
  4392.                 Text = "...",
  4393.                 Size = theme.textsize,
  4394.                 Font = theme.font,
  4395.                 Color = theme.textcolor,
  4396.                 OutlineColor = theme.textborder,
  4397.                 Center = true,
  4398.                 Position = utility:Position(0.5, 0, 1, 0, keybind_outline),
  4399.                 Visible = page.open
  4400.             }, section.visibleContent);keybind["keybind_value"] = keybind_value
  4401.             --
  4402.             library.colors[keybind_value] = {
  4403.                 OutlineColor = "textborder",
  4404.                 Color = "textcolor"
  4405.             }
  4406.             --
  4407.             utility:LoadImage(keybind__gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  4408.             --
  4409.             function keybind:Shorten(string)
  4410.                 for i,v in pairs(shortenedInputs) do
  4411.                     string = string.gsub(string, i, v)
  4412.                 end
  4413.                 return string
  4414.             end
  4415.             --
  4416.             function keybind:Change(input)
  4417.                 input = input or "..."
  4418.                 local inputTable = {}
  4419.                 --
  4420.                 if input.EnumType then
  4421.                     if input.EnumType == Enum.KeyCode or input.EnumType == Enum.UserInputType then
  4422.                         if Find(allowedKeyCodes, input.Name) or Find(allowedInputTypes, input.Name) then
  4423.                             inputTable = {input.EnumType == Enum.KeyCode and "KeyCode" or "UserInputType", input.Name}
  4424.                             --
  4425.                             keybind.current = inputTable
  4426.                             keybind_value.Text = #keybind.current > 0 and keybind:Shorten(keybind.current[2]) or "..."
  4427.                             --
  4428.                             return true
  4429.                         end
  4430.                     end
  4431.                 end
  4432.                 --
  4433.                 return false
  4434.             end
  4435.             --
  4436.             function keybind:Get()
  4437.                 return keybind.current
  4438.             end
  4439.             --
  4440.             function keybind:Set(tbl)
  4441.                 keybind.current = {tbl[1], tbl[2]}
  4442.                 keybind_value.Text = #keybind.current > 0 and keybind:Shorten(keybind.current[2]) or "..."
  4443.                 --
  4444.                 if tbl[3] then
  4445.                     keybind.mode = tbl[3]
  4446.                     keybind.active = (keybind.mode == "Always" or keybind.mode == "Off Hold") and (toggle.current) or false
  4447.                     --
  4448.                     if keybind.mode == "Off Hold" then
  4449.                         window.keybindslist:Add(keybindname or name, keybind_value.Text)
  4450.                     else
  4451.                         window.keybindslist:Remove(keybindname or name)
  4452.                     end
  4453.                 end
  4454.                 --
  4455.                 if keybind.current[1] and keybind.current[2] then
  4456.                     callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  4457.                 end
  4458.             end
  4459.             --
  4460.             function keybind:Active()
  4461.                 return keybind.active
  4462.             end
  4463.             --
  4464.             function keybind:Reset()
  4465.                 for i,v in pairs(keybind.modemenu.buttons) do
  4466.                     v.Color = v.Text == keybind.mode and theme.accent or theme.textcolor
  4467.                     --
  4468.                     library.colors[v] = {
  4469.                         Color = v.Text == keybind.mode and "accent" or "textcolor"
  4470.                     }
  4471.                 end
  4472.                 --
  4473.                 keybind.active = (keybind.mode == "Always" or keybind.mode == "Off Hold")
  4474.                 --
  4475.                 if keybind.mode == "Off Hold" then
  4476.                     window.keybindslist:Add(keybindname or name, keybind_value.Text)
  4477.                 else
  4478.                     window.keybindslist:Remove(keybindname or name)
  4479.                 end
  4480.                 --
  4481.                 if keybind.current[1] and keybind.current[2] then
  4482.                     callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  4483.                 end
  4484.             end
  4485.             --
  4486.             function keybind:Callback()
  4487.                 if keybind.current[1] and keybind.current[2] then
  4488.                     callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  4489.                 end
  4490.             end
  4491.             --
  4492.             keybind:Change(def)
  4493.             --
  4494.             library.began[#library.began + 1] = function(Input)
  4495.                 if keybind.current[1] and keybind.current[2] then
  4496.                     if Input.KeyCode == Enum[keybind.current[1]][keybind.current[2]] or Input.UserInputType == Enum[keybind.current[1]][keybind.current[2]] then
  4497.                         if keybind.mode == "On Hold" then
  4498.                             local old = keybind.active
  4499.                             keybind.active = toggle:Get()
  4500.                             if keybind.active then window.keybindslist:Add(keybindname or name, keybind_value.Text) else window.keybindslist:Remove(keybindname or name) end
  4501.                             if keybind.active ~= old then callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active) end
  4502.                         elseif keybind.mode == "Off Hold" then
  4503.                             local old = keybind.active
  4504.                             keybind.active = false
  4505.                             if keybind.active then window.keybindslist:Add(keybindname or name, keybind_value.Text) else window.keybindslist:Remove(keybindname or name) end
  4506.                             if keybind.active ~= old then callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active) end
  4507.                         elseif keybind.mode == "Toggle" then
  4508.                             local old = keybind.active
  4509.                             keybind.active = not keybind.active == true and toggle:Get() or false
  4510.                             if keybind.active then window.keybindslist:Add(keybindname or name, keybind_value.Text) else window.keybindslist:Remove(keybindname or name) end
  4511.                             if keybind.active ~= old then callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active) end
  4512.                         end
  4513.                     end
  4514.                 end
  4515.                 --
  4516.                 if keybind.selecting and window.isVisible then
  4517.                     local done = keybind:Change(Input.KeyCode.Name ~= "Unknown" and Input.KeyCode or Input.UserInputType)
  4518.                     if done then
  4519.                         keybind.selecting = false
  4520.                         keybind.active = (keybind.mode == "Always" or keybind.mode == "Off Hold") and true or false
  4521.                         keybind_frame.Color = theme.lightcontrast
  4522.                         --
  4523.                         library.colors[keybind_frame] = {
  4524.                             Color = "lightcontrast"
  4525.                         }
  4526.                         --
  4527.                         window.keybindslist:Remove(keybindname or name)
  4528.                         if keybind.active then window.keybindslist:Add(keybindname or name, keybind_value.Text) else window.keybindslist:Remove(keybindname or name) end
  4529.                         callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  4530.                     end
  4531.                 end
  4532.                 --
  4533.                 if not window.isVisible and keybind.selecting then
  4534.                     keybind.selecting = false
  4535.                     keybind_frame.Color = theme.lightcontrast
  4536.                     --
  4537.                     library.colors[keybind_frame] = {
  4538.                         Color = "lightcontrast"
  4539.                     }
  4540.                 end
  4541.                 --
  4542.                 if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and keybind_outline.Visible then
  4543.                     if utility:MouseOverDrawing({section.section_frame.Position.X + (section.section_frame.Size.X - (40+4+2)), section.section_frame.Position.Y + keybind.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + keybind.axis + 17}) and not window:IsOverContent() and not keybind.selecting then
  4544.                         keybind.selecting = true
  4545.                         keybind_frame.Color = theme.darkcontrast
  4546.                         --
  4547.                         library.colors[keybind_frame] = {
  4548.                             Color = "darkcontrast"
  4549.                         }
  4550.                     end
  4551.                     if keybind.open and keybind.modemenu.frame then
  4552.                         if utility:MouseOverDrawing({keybind.modemenu.frame.Position.X, keybind.modemenu.frame.Position.Y, keybind.modemenu.frame.Position.X + keybind.modemenu.frame.Size.X, keybind.modemenu.frame.Position.Y + keybind.modemenu.frame.Size.Y}) then
  4553.                             local changed = false
  4554.                             --
  4555.                             for i,v in pairs(keybind.modemenu.buttons) do
  4556.                                 if utility:MouseOverDrawing({keybind.modemenu.frame.Position.X, keybind.modemenu.frame.Position.Y + (15 * (i - 1)), keybind.modemenu.frame.Position.X + keybind.modemenu.frame.Size.X, keybind.modemenu.frame.Position.Y + (15 * (i - 1)) + 15}) then
  4557.                                     keybind.mode = v.Text
  4558.                                     changed = true
  4559.                                 end
  4560.                             end
  4561.                             --
  4562.                             if changed then keybind:Reset() end
  4563.                         else
  4564.                             keybind.open = not keybind.open
  4565.                             --
  4566.                             for i,v in pairs(keybind.modemenu.drawings) do
  4567.                                 utility:Remove(v)
  4568.                             end
  4569.                             --
  4570.                             keybind.modemenu.drawings = {}
  4571.                             keybind.modemenu.buttons = {}
  4572.                             keybind.modemenu.frame = nil
  4573.                             --
  4574.                             window.currentContent.frame = nil
  4575.                             window.currentContent.keybind = nil
  4576.                         end
  4577.                     end
  4578.                 end
  4579.                 --
  4580.                 if Input.UserInputType == Enum.UserInputType.MouseButton2 and window.isVisible and keybind_outline.Visible then
  4581.                     if utility:MouseOverDrawing({section.section_frame.Position.X  + (section.section_frame.Size.X - (40+4+2)), section.section_frame.Position.Y + keybind.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + keybind.axis + 17}) and not window:IsOverContent() and not keybind.selecting then
  4582.                         window:CloseContent()
  4583.                         keybind.open = not keybind.open
  4584.                         --
  4585.                         local modemenu = utility:Create("Frame", {Vector2.new(keybind_outline.Size.X + 2,0), keybind_outline}, {
  4586.                             Size = utility:Size(0, 68, 0, 64),
  4587.                             Position = utility:Position(1, 2, 0, 0, keybind_outline),
  4588.                             Color = theme.outline,
  4589.                             Visible = page.open
  4590.                         }, keybind.modemenu.drawings);keybind.modemenu.frame = modemenu
  4591.                         --
  4592.                         library.colors[modemenu] = {
  4593.                             Color = "outline"
  4594.                         }
  4595.                         --
  4596.                         local modemenu_inline = utility:Create("Frame", {Vector2.new(1,1), modemenu}, {
  4597.                             Size = utility:Size(1, -2, 1, -2, modemenu),
  4598.                             Position = utility:Position(0, 1, 0, 1, modemenu),
  4599.                             Color = theme.inline,
  4600.                             Visible = page.open
  4601.                         }, keybind.modemenu.drawings)
  4602.                         --
  4603.                         library.colors[modemenu_inline] = {
  4604.                             Color = "inline"
  4605.                         }
  4606.                         --
  4607.                         local modemenu_frame = utility:Create("Frame", {Vector2.new(1,1), modemenu_inline}, {
  4608.                             Size = utility:Size(1, -2, 1, -2, modemenu_inline),
  4609.                             Position = utility:Position(0, 1, 0, 1, modemenu_inline),
  4610.                             Color = theme.lightcontrast,
  4611.                             Visible = page.open
  4612.                         }, keybind.modemenu.drawings)
  4613.                         --
  4614.                         library.colors[modemenu_frame] = {
  4615.                             Color = "lightcontrast"
  4616.                         }
  4617.                         --
  4618.                         local keybind__gradient = utility:Create("Image", {Vector2.new(0,0), modemenu_frame}, {
  4619.                             Size = utility:Size(1, 0, 1, 0, modemenu_frame),
  4620.                             Position = utility:Position(0, 0, 0 , 0, modemenu_frame),
  4621.                             Transparency = 0.5,
  4622.                             Visible = page.open
  4623.                         }, keybind.modemenu.drawings)
  4624.                         --
  4625.                         utility:LoadImage(keybind__gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  4626.                         --
  4627.                         for i,v in pairs({"Always", "Toggle", "On Hold", "Off Hold"}) do
  4628.                             local button_title = utility:Create("TextLabel", {Vector2.new(modemenu_frame.Size.X/2,15 * (i-1)), modemenu_frame}, {
  4629.                                 Text = v,
  4630.                                 Size = theme.textsize,
  4631.                                 Font = theme.font,
  4632.                                 Color = v == keybind.mode and theme.accent or theme.textcolor,
  4633.                                 Center = true,
  4634.                                 OutlineColor = theme.textborder,
  4635.                                 Position = utility:Position(0.5, 0, 0, 15 * (i-1), modemenu_frame),
  4636.                                 Visible = page.open
  4637.                             }, keybind.modemenu.drawings);keybind.modemenu.buttons[#keybind.modemenu.buttons + 1] = button_title
  4638.                             --
  4639.                             library.colors[button_title] = {
  4640.                                 OutlineColor = "textborder",
  4641.                                 Color = v == keybind.mode and "accent" or "textcolor"
  4642.                             }
  4643.                         end
  4644.                         --
  4645.                         window.currentContent.frame = modemenu
  4646.                         window.currentContent.keybind = keybind
  4647.                     end
  4648.                 end
  4649.             end
  4650.             --
  4651.             library.ended[#library.ended + 1] = function(Input)
  4652.                 if keybind.mode == "On Hold" or keybind.mode == "Off Hold" then
  4653.                     if keybind.current[1] and keybind.current[2] then
  4654.                         if Input.KeyCode == Enum[keybind.current[1]][keybind.current[2]] or Input.UserInputType == Enum[keybind.current[1]][keybind.current[2]] then
  4655.                             if keybind.mode == "On Hold" and keybind.active then
  4656.                                 keybind.active = false
  4657.                                 window.keybindslist:Remove(keybindname or name)
  4658.                                 callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  4659.                             elseif keybind.mode == "Off Hold" and not keybind.active then
  4660.                                 keybind.active = toggle:Get()
  4661.                                 if keybind.active then window.keybindslist:Add(keybindname or name, keybind_value.Text) else window.keybindslist:Remove(keybindname or name) end
  4662.                                 callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  4663.                             end
  4664.                         end
  4665.                     end
  4666.                 end
  4667.             end
  4668.             --
  4669.             if pointer and tostring(pointer) ~= "" and tostring(pointer) ~= " " and not library.pointers[tostring(pointer)] then
  4670.                 library.pointers[tostring(pointer)] = keybind
  4671.             end
  4672.             --
  4673.             toggle.addedAxis = 40+4+2
  4674.             --
  4675.             return keybind
  4676.         end
  4677.         --
  4678.         return toggle
  4679.     end
  4680.     --
  4681.     function sections:Slider(info)
  4682.         local info = info or {}
  4683.         local name = info.name or info.Name or info.title or info.Title
  4684.         local def = info.def or info.Def or info.default or info.Default or 10
  4685.         local min = info.min or info.Min or info.minimum or info.Minimum or 0
  4686.         local max = info.max or info.Max or info.maximum or info.Maximum or 100
  4687.         local maxtext = info.maximumtext or info.Maximumtext or info.maximumText or info.MaximumText or max
  4688.         local sub = info.suffix or info.Suffix or info.ending or info.Ending or info.prefix or info.Prefix or info.measurement or info.Measurement or ""
  4689.         local disable = info.disable or info.Disable or info.disabled or info.disabled or false
  4690.         local decimals = info.decimals or info.Decimals or 1
  4691.         decimals = 1 / decimals
  4692.         local pointer = info.pointer or info.Pointer or info.flag or info.Flag or nil
  4693.         local callback = info.callback or info.callBack or info.Callback or info.CallBack or function()end
  4694.         def = math.clamp(def, min, max)
  4695.         --
  4696.         local window = self.window
  4697.         local page = self.page
  4698.         local section = self
  4699.         --
  4700.         local slider = {min = min, max = max, Disabled = false, sub = sub, decimals = decimals, axis = section.currentAxis, current = -99999, holding = false}
  4701.         --
  4702.         if name then
  4703.             local slider_title = utility:Create("TextLabel", {Vector2.new(4,slider.axis), section.section_frame}, {
  4704.                 Text = name,
  4705.                 Size = theme.textsize,
  4706.                 Font = theme.font,
  4707.                 Color = theme.textcolor,
  4708.                 OutlineColor = theme.textborder,
  4709.                 Position = utility:Position(0, 4, 0, slider.axis, section.section_frame),
  4710.                 Visible = page.open
  4711.             }, section.visibleContent)
  4712.             --
  4713.             library.colors[slider_title] = {
  4714.                 OutlineColor = "textborder",
  4715.                 Color = "textcolor"
  4716.             }
  4717.         end
  4718.         --
  4719.         local slider_outline = utility:Create("Frame", {Vector2.new(4,slider.axis + (name and 15 or 0)), section.section_frame}, {
  4720.             Size = utility:Size(1, -8, 0, 14, section.section_frame),
  4721.             Position = utility:Position(0, 4, 0, slider.axis + (name and 15 or 0), section.section_frame),
  4722.             Color = theme.outline,
  4723.             Visible = page.open
  4724.         }, section.visibleContent)
  4725.         --
  4726.         library.colors[slider_outline] = {
  4727.             Color = "outline"
  4728.         }
  4729.         --
  4730.         local slider_inline = utility:Create("Frame", {Vector2.new(1,1), slider_outline}, {
  4731.             Size = utility:Size(1, -2, 1, -2, slider_outline),
  4732.             Position = utility:Position(0, 1, 0, 1, slider_outline),
  4733.             Color = theme.inline,
  4734.             Visible = page.open
  4735.         }, section.visibleContent)
  4736.         --
  4737.         library.colors[slider_inline] = {
  4738.             Color = "inline"
  4739.         }
  4740.         --
  4741.         local slider_frame = utility:Create("Frame", {Vector2.new(1,1), slider_inline}, {
  4742.             Size = utility:Size(1, -2, 1, -2, slider_inline),
  4743.             Position = utility:Position(0, 1, 0, 1, slider_inline),
  4744.             Color = theme.lightcontrast,
  4745.             Visible = page.open
  4746.         }, section.visibleContent)
  4747.         --
  4748.         library.colors[slider_frame] = {
  4749.             Color = "lightcontrast"
  4750.         }
  4751.         --
  4752.         local slider_slide = utility:Create("Frame", {Vector2.new(1,1), slider_inline}, {
  4753.             Size = utility:Size(0, (slider_frame.Size.X / (slider.max - slider.min) * (slider.current - slider.min)), 1, -2, slider_inline),
  4754.             Position = utility:Position(0, 1, 0, 1, slider_inline),
  4755.             Color = theme.accent,
  4756.             Visible = page.open
  4757.         }, section.visibleContent)
  4758.         --
  4759.         library.colors[slider_slide] = {
  4760.             Color = "accent"
  4761.         }
  4762.         --
  4763.         local slider__gradient = utility:Create("Image", {Vector2.new(0,0), slider_frame}, {
  4764.             Size = utility:Size(1, 0, 1, 0, slider_frame),
  4765.             Position = utility:Position(0, 0, 0 , 0, slider_frame),
  4766.             Transparency = 0.5,
  4767.             Visible = page.open
  4768.         }, section.visibleContent)
  4769.         --
  4770.         local textBounds = utility:GetTextBounds(name, theme.textsize, theme.font)
  4771.         local slider_value = utility:Create("TextLabel", {Vector2.new(slider_outline.Size.X/2,(slider_outline.Size.Y/2) - (textBounds.Y/2)), slider_outline}, {
  4772.             Text = slider.current..slider.sub.."/"..maxtext..slider.sub,
  4773.             Size = theme.textsize,
  4774.             Font = theme.font,
  4775.             Color = theme.textcolor,
  4776.             Center = true,
  4777.             OutlineColor = theme.textborder,
  4778.             Position = utility:Position(0.5, 0, 0, (slider_outline.Size.Y/2) - (textBounds.Y/2), slider_outline),
  4779.             Visible = page.open
  4780.         }, section.visibleContent)
  4781.         --
  4782.         library.colors[slider_value] = {
  4783.             OutlineColor = "textborder",
  4784.             Color = "textcolor"
  4785.         }
  4786.         --
  4787.         utility:LoadImage(slider__gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  4788.         --
  4789.         function slider:Set(value)
  4790.             local oldval = slider.current
  4791.             --
  4792.             slider.current = math.clamp(math.round(value * slider.decimals) / slider.decimals, slider.min, slider.max)
  4793.             --
  4794.             if slider.current ~= oldval then
  4795.                 local disabledtext = disable and ((slider.current <= disable[2] or slider.current >= disable[3]) and disable[1])
  4796.                 local percent = 1 - ((slider.max - slider.current) / (slider.max - slider.min))
  4797.                 slider_value.Text = disabledtext or (slider.current..slider.sub.."/"..maxtext..slider.sub)
  4798.                 slider_slide.Size = utility:Size(0, percent * slider_frame.Size.X, 1, -2, slider_inline)
  4799.                 slider.Disabled = disabledtext ~= nil and disabledtext ~= false
  4800.                 callback(slider.current)
  4801.             end
  4802.         end
  4803.         --
  4804.         function slider:Refresh()
  4805.             local mouseLocation = utility:MouseLocation()
  4806.             local percent = math.clamp(mouseLocation.X - slider_slide.Position.X, 0, slider_frame.Size.X) / slider_frame.Size.X
  4807.             local value = math.round((slider.min + (slider.max - slider.min) * percent) * slider.decimals) / slider.decimals
  4808.             value = math.clamp(value, slider.min, slider.max)
  4809.             slider:Set(value)
  4810.         end
  4811.         --
  4812.         function slider:Get()
  4813.             return slider.current
  4814.         end
  4815.         --
  4816.         slider:Set(def)
  4817.         --
  4818.         library.began[#library.began + 1] = function(Input)
  4819.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and slider_outline.Visible and window.isVisible and page.open and utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + slider.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + slider.axis + (name and 29 or 14)}) and not window:IsOverContent() then
  4820.                 slider.holding = true
  4821.                 slider:Refresh()
  4822.             end
  4823.         end
  4824.         --
  4825.         library.ended[#library.ended + 1] = function(Input)
  4826.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and slider.holding and window.isVisible then
  4827.                 slider.holding = false
  4828.             end
  4829.         end
  4830.         --
  4831.         library.changed[#library.changed + 1] = function(Input)
  4832.             if slider.holding and window.isVisible then
  4833.                 slider:Refresh()
  4834.             end
  4835.         end
  4836.         --
  4837.         if pointer and tostring(pointer) ~= "" and tostring(pointer) ~= " " and not library.pointers[tostring(pointer)] then
  4838.             library.pointers[tostring(pointer)] = slider
  4839.         end
  4840.         --
  4841.         section.currentAxis = section.currentAxis + (name and 29 or 14) + 4
  4842.         --
  4843.         return slider
  4844.     end
  4845.     --
  4846.     function sections:Button(info)
  4847.         local info = info or {}
  4848.         local name = info.name or info.Name or info.title or info.Title or "New Button"
  4849.         local pointer = info.pointer or info.Pointer or info.flag or info.Flag or nil
  4850.         local callback = info.callback or info.callBack or info.Callback or info.CallBack or function()end
  4851.         --
  4852.         local window = self.window
  4853.         local page = self.page
  4854.         local section = self
  4855.         --
  4856.         local button = {axis = section.currentAxis}
  4857.         --
  4858.         local button_outline = utility:Create("Frame", {Vector2.new(4,button.axis), section.section_frame}, {
  4859.             Size = utility:Size(1, -8, 0, 20, section.section_frame),
  4860.             Position = utility:Position(0, 4, 0, button.axis, section.section_frame),
  4861.             Color = theme.outline,
  4862.             Visible = page.open
  4863.         }, section.visibleContent)
  4864.         --
  4865.         library.colors[button_outline] = {
  4866.             Color = "outline"
  4867.         }
  4868.         --
  4869.         local button_inline = utility:Create("Frame", {Vector2.new(1,1), button_outline}, {
  4870.             Size = utility:Size(1, -2, 1, -2, button_outline),
  4871.             Position = utility:Position(0, 1, 0, 1, button_outline),
  4872.             Color = theme.inline,
  4873.             Visible = page.open
  4874.         }, section.visibleContent)
  4875.         --
  4876.         library.colors[button_inline] = {
  4877.             Color = "inline"
  4878.         }
  4879.         --
  4880.         local button_frame = utility:Create("Frame", {Vector2.new(1,1), button_inline}, {
  4881.             Size = utility:Size(1, -2, 1, -2, button_inline),
  4882.             Position = utility:Position(0, 1, 0, 1, button_inline),
  4883.             Color = theme.lightcontrast,
  4884.             Visible = page.open
  4885.         }, section.visibleContent)
  4886.         --
  4887.         library.colors[button_frame] = {
  4888.             Color = "lightcontrast"
  4889.         }
  4890.         --
  4891.         local button_gradient = utility:Create("Image", {Vector2.new(0,0), button_frame}, {
  4892.             Size = utility:Size(1, 0, 1, 0, button_frame),
  4893.             Position = utility:Position(0, 0, 0 , 0, button_frame),
  4894.             Transparency = 0.5,
  4895.             Visible = page.open
  4896.         }, section.visibleContent)
  4897.         --
  4898.         local button_title = utility:Create("TextLabel", {Vector2.new(button_frame.Size.X/2,1), button_frame}, {
  4899.             Text = name,
  4900.             Size = theme.textsize,
  4901.             Font = theme.font,
  4902.             Color = theme.textcolor,
  4903.             OutlineColor = theme.textborder,
  4904.             Center = true,
  4905.             Position = utility:Position(0.5, 0, 0, 1, button_frame),
  4906.             Visible = page.open
  4907.         }, section.visibleContent)
  4908.         --
  4909.         library.colors[button_title] = {
  4910.             OutlineColor = "textborder",
  4911.             Color = "textcolor"
  4912.         }
  4913.         --
  4914.         utility:LoadImage(button_gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  4915.         --
  4916.         library.began[#library.began + 1] = function(Input)
  4917.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and button_outline.Visible and window.isVisible and utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + button.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + button.axis + 20}) and not window:IsOverContent() then
  4918.                 task.spawn(function()
  4919.                     utility:LoadImage(button_gradient, "gradientdown", "https://i.imgur.com/DzrzUt3.png")
  4920.                     --
  4921.                     task.wait(0.15)
  4922.                     --
  4923.                     utility:LoadImage(button_gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  4924.                 end)
  4925.                 --
  4926.                 callback()
  4927.             end
  4928.         end
  4929.         --
  4930.         if pointer and tostring(pointer) ~= "" and tostring(pointer) ~= " " and not library.pointers[tostring(pointer)] then
  4931.             library.pointers[tostring(pointer)] = button
  4932.         end
  4933.         --
  4934.         section.currentAxis = section.currentAxis + 20 + 4
  4935.         --
  4936.         return button
  4937.     end
  4938.     --
  4939.     function sections:TextBox(info)
  4940.         local info = info or {}
  4941.         local def = info.def or info.Def or info.default or info.Default or ""
  4942.         local max = info.max or info.Max or info.maximum or info.Maximum or 200
  4943.         local placeholder = info.placeholder or info.Placeholder or info.placeHolder or info.PlaceHolder
  4944.         local pointer = info.pointer or info.Pointer or info.flag or info.Flag or nil
  4945.         local reactive = info.reactive or info.Reactive;reactive = reactive == nil or reactive
  4946.         local callback = info.callback or info.callBack or info.Callback or info.CallBack or function()end
  4947.         local identifier = tostring(math.random(500, 500000)) .. "-" .. tostring(math.random(500, 500000)) .. "-" .. tostring(math.random(500, 500000))
  4948.         --
  4949.         local window = self.window
  4950.         local page = self.page
  4951.         local section = self
  4952.         --
  4953.         local textbox = {axis = section.currentAxis, max = max, current = def, oldenter = "", callback = callback}
  4954.         --
  4955.         local textbox_outline = utility:Create("Frame", {Vector2.new(4,textbox.axis), section.section_frame}, {
  4956.             Size = utility:Size(1, -8, 0, 20, section.section_frame),
  4957.             Position = utility:Position(0, 4, 0, textbox.axis, section.section_frame),
  4958.             Color = theme.outline,
  4959.             Visible = page.open
  4960.         }, section.visibleContent)
  4961.         --
  4962.         library.colors[textbox_outline] = {
  4963.             Color = "outline"
  4964.         }
  4965.         --
  4966.         local textbox_inline = utility:Create("Frame", {Vector2.new(1,1), textbox_outline}, {
  4967.             Size = utility:Size(1, -2, 1, -2, textbox_outline),
  4968.             Position = utility:Position(0, 1, 0, 1, textbox_outline),
  4969.             Color = theme.inline,
  4970.             Visible = page.open
  4971.         }, section.visibleContent)
  4972.         --
  4973.         library.colors[textbox_inline] = {
  4974.             Color = "inline"
  4975.         }
  4976.         --
  4977.         local textbox_inneroutline = utility:Create("Frame", {Vector2.new(1,1), textbox_inline}, {
  4978.             Size = utility:Size(1, -2, 1, -2, textbox_inline),
  4979.             Position = utility:Position(0, 1, 0, 1, textbox_inline),
  4980.             Color = theme.outline,
  4981.             Visible = page.open
  4982.         }, section.visibleContent)
  4983.         --
  4984.         library.colors[textbox_inneroutline] = {
  4985.             Color = "outline"
  4986.         }
  4987.         --
  4988.         local textbox_frame = utility:Create("Frame", {Vector2.new(1,1), textbox_inneroutline}, {
  4989.             Size = utility:Size(1, -2, 1, -2, textbox_inneroutline),
  4990.             Position = utility:Position(0, 1, 0, 1, textbox_inneroutline),
  4991.             Color = theme.lightcontrast,
  4992.             Visible = page.open
  4993.         }, section.visibleContent)
  4994.         --
  4995.         library.colors[textbox_frame] = {
  4996.             Color = "lightcontrast"
  4997.         }
  4998.         --
  4999.         local textbox_gradient = utility:Create("Image", {Vector2.new(0,0), textbox_frame}, {
  5000.             Size = utility:Size(1, 0, 1, 0, textbox_frame),
  5001.             Position = utility:Position(0, 0, 0 , 0, textbox_frame),
  5002.             Transparency = 0.5,
  5003.             Visible = page.open
  5004.         }, section.visibleContent)
  5005.         --
  5006.         local textbox_value = utility:Create("TextLabel", {Vector2.new(textbox_frame.Size.X/2,0), textbox_frame}, {
  5007.             Text = textbox.current == "" and placeholder or textbox.current,
  5008.             Size = theme.textsize,
  5009.             Font = theme.font,
  5010.             Color = textbox.current == "" and (placeholder and theme.textdark) or theme.textcolor,
  5011.             OutlineColor = theme.textborder,
  5012.             Center = true,
  5013.             Position = utility:Position(0.5, 0, 0, 0, textbox_frame),
  5014.             Visible = page.open
  5015.         }, section.visibleContent)
  5016.         --
  5017.         library.colors[textbox_value] = {
  5018.             OutlineColor = "textborder",
  5019.             Color = textbox.current == "" and (placeholder and "textdark") or "textcolor"
  5020.         }
  5021.         --
  5022.         utility:LoadImage(textbox_gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  5023.         --
  5024.         function textbox:Get()
  5025.             return textbox.current
  5026.         end
  5027.         --
  5028.         function textbox:Set(state, first)
  5029.             textbox.current = state or ""
  5030.             --
  5031.             local newtext = utility:WrapText(textbox.current == "" and placeholder or textbox.current, textbox_frame.Size.X - 30)
  5032.             textbox_value.Text = (textbox.current == "" and placeholder or textbox.current) ~= newtext and (newtext .. "...") or newtext
  5033.             textbox_value.Color = textbox.current == "" and (placeholder and theme.textdark) or theme.textcolor
  5034.             --
  5035.             library.colors[textbox_value] = {
  5036.                 OutlineColor = "textborder",
  5037.                 Color = textbox.current == "" and (placeholder and "textdark") or "textcolor"
  5038.             }
  5039.             --
  5040.             if not first then
  5041.                 callback(textbox.current)
  5042.             end
  5043.         end
  5044.         --
  5045.         textbox:Set(textbox.current, true)
  5046.         --
  5047.         library.began[#library.began + 1] = function(Input)
  5048.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and textbox_outline.Visible and window.isVisible then
  5049.                 if reactive and utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + textbox.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + textbox.axis + 20}) and not window:IsOverContent() then
  5050.                     task.spawn(function()
  5051.                         utility:LoadImage(textbox_gradient, "gradientdown", "https://i.imgur.com/DzrzUt3.png")
  5052.                         --
  5053.                         task.wait(0.15)
  5054.                         --
  5055.                         utility:LoadImage(textbox_gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  5056.                     end)
  5057.                     --
  5058.                     if not (window.currentContent.textbox and window.currentContent.textbox.Name == identifier) then
  5059.                         window:CloseContent()
  5060.                         --
  5061.                         textbox_value.Color = theme.accent
  5062.                         --
  5063.                         library.colors[textbox_value] = {
  5064.                             OutlineColor = "textborder",
  5065.                             Color = "accent"
  5066.                         }
  5067.                         --
  5068.                         cas:BindActionAtPriority("DisableKeyboard", function() return Enum.ContextActionResult.Sink end, false, 3000, Enum.UserInputType.Keyboard)
  5069.                         --
  5070.                         window.currentContent.textbox = {
  5071.                             Name = identifier,
  5072.                             Item = textbox,
  5073.                             Fire = function(Text)
  5074.                                 textbox.current = (Text == "Backspace" and textbox.current:sub(0, #textbox.current - 1) or (textbox.current .. Text)):sub(0, textbox.max)
  5075.                                 --
  5076.                                 local newtext = utility:WrapText(textbox.current == "" and placeholder or textbox.current, textbox_frame.Size.X - 30)
  5077.                                 textbox_value.Text = (textbox.current == "" and placeholder or textbox.current) ~= newtext and (newtext .. "...") or newtext
  5078.                                 textbox.callback(textbox.current)
  5079.                             end,
  5080.                             Disconnect = function()
  5081.                                 cas:UnbindAction('DisableKeyboard')
  5082.                                 --
  5083.                                 textbox_value.Color = textbox.current == "" and (placeholder and theme.textdark) or theme.textcolor
  5084.                                 --
  5085.                                 library.colors[textbox_value] = {
  5086.                                     OutlineColor = "textborder",
  5087.                                     Color = textbox.current == "" and (placeholder and "textdark") or "textcolor"
  5088.                                 }
  5089.                             end
  5090.                         }
  5091.                     else
  5092.                         if window.currentContent.textbox.Name == identifier then
  5093.                             window:CloseContent()
  5094.                         end
  5095.                     end
  5096.                 elseif reactive then
  5097.                     if window.currentContent.textbox and window.currentContent.textbox.Name == identifier then
  5098.                         window:CloseContent()
  5099.                     end
  5100.                 end
  5101.                 --
  5102.                 if uis:IsKeyDown(Enum.KeyCode.LeftControl) and utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + textbox.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + textbox.axis + 20}) and not window:IsOverContent() then
  5103.                     task.spawn(function()
  5104.                         textbox_value.Color = theme.accent
  5105.                         --
  5106.                         library.colors[textbox_value] = {
  5107.                             OutlineColor = "textborder",
  5108.                             Color = "accent"
  5109.                         }
  5110.                         --
  5111.                         utility:LoadImage(textbox_gradient, "gradientdown", "https://i.imgur.com/DzrzUt3.png")
  5112.                         --
  5113.                         task.wait(0.15)
  5114.                         --
  5115.                         textbox_value.Color = textbox.current == "" and (placeholder and theme.textdark) or theme.textcolor
  5116.                         --
  5117.                         library.colors[textbox_value] = {
  5118.                             OutlineColor = "textborder",
  5119.                             Color = textbox.current == "" and (placeholder and "textdark") or "textcolor"
  5120.                         }
  5121.                         --
  5122.                         utility:LoadImage(textbox_gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  5123.                     end)
  5124.                     --
  5125.                     setclipboard(textbox.current)
  5126.                 end
  5127.             elseif Input.KeyCode and Input.KeyCode == Enum.KeyCode.Return then
  5128.                 if window.currentContent.textbox and window.currentContent.textbox.Name == identifier then
  5129.                     window:CloseContent()
  5130.                 end
  5131.             end
  5132.         end
  5133.         --
  5134.         if pointer and tostring(pointer) ~= "" and tostring(pointer) ~= " " and not library.pointers[tostring(pointer)] then
  5135.             library.pointers[tostring(pointer)] = textbox
  5136.         end
  5137.         --
  5138.         section.currentAxis = section.currentAxis + 20 + 4
  5139.         --
  5140.         return textbox
  5141.     end
  5142.     --
  5143.     function sections:ButtonHolder(info)
  5144.         local info = info or {}
  5145.         local buttons = info.buttons or info.Buttons or {}
  5146.         --
  5147.         local window = self.window
  5148.         local page = self.page
  5149.         local section = self
  5150.         --
  5151.         local buttonHolder = {buttons = {}}
  5152.         --
  5153.         for i=1, 2 do
  5154.             local button = {axis = section.currentAxis}
  5155.             --
  5156.             local button_outline = utility:Create("Frame", {Vector2.new(i == 2 and ((section.section_frame.Size.X / 2) + 2) or 4,button.axis), section.section_frame}, {
  5157.                 Size = utility:Size(0.5, -6, 0, 20, section.section_frame),
  5158.                 Position = utility:Position(0, i == 2 and 2 or 4, 0, button.axis, section.section_frame),
  5159.                 Color = theme.outline,
  5160.                 Visible = page.open
  5161.             }, section.visibleContent)
  5162.             --
  5163.             library.colors[button_outline] = {
  5164.                 Color = "outline"
  5165.             }
  5166.             --
  5167.             local button_inline = utility:Create("Frame", {Vector2.new(1,1), button_outline}, {
  5168.                 Size = utility:Size(1, -2, 1, -2, button_outline),
  5169.                 Position = utility:Position(0, 1, 0, 1, button_outline),
  5170.                 Color = theme.inline,
  5171.                 Visible = page.open
  5172.             }, section.visibleContent)
  5173.             --
  5174.             library.colors[button_inline] = {
  5175.                 Color = "inline"
  5176.             }
  5177.             --
  5178.             local button_frame = utility:Create("Frame", {Vector2.new(1,1), button_inline}, {
  5179.                 Size = utility:Size(1, -2, 1, -2, button_inline),
  5180.                 Position = utility:Position(0, 1, 0, 1, button_inline),
  5181.                 Color = theme.lightcontrast,
  5182.                 Visible = page.open
  5183.             }, section.visibleContent)
  5184.             --
  5185.             library.colors[button_frame] = {
  5186.                 Color = "lightcontrast"
  5187.             }
  5188.             --
  5189.             local button_gradient = utility:Create("Image", {Vector2.new(0,0), button_frame}, {
  5190.                 Size = utility:Size(1, 0, 1, 0, button_frame),
  5191.                 Position = utility:Position(0, 0, 0 , 0, button_frame),
  5192.                 Transparency = 0.5,
  5193.                 Visible = page.open
  5194.             }, section.visibleContent)
  5195.             --
  5196.             local button_title = utility:Create("TextLabel", {Vector2.new(button_frame.Size.X/2,1), button_frame}, {
  5197.                 Text = buttons[i][1],
  5198.                 Size = theme.textsize,
  5199.                 Font = theme.font,
  5200.                 Color = theme.textcolor,
  5201.                 OutlineColor = theme.textborder,
  5202.                 Center = true,
  5203.                 Position = utility:Position(0.5, 0, 0, 1, button_frame),
  5204.                 Visible = page.open
  5205.             }, section.visibleContent)
  5206.             --
  5207.             library.colors[button_title] = {
  5208.                 OutlineColor = "textborder",
  5209.                 Color = "textcolor"
  5210.             }
  5211.             --
  5212.             utility:LoadImage(button_gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  5213.             --
  5214.             library.began[#library.began + 1] = function(Input)
  5215.                 if Input.UserInputType == Enum.UserInputType.MouseButton1 and button_outline.Visible and window.isVisible and utility:MouseOverDrawing({section.section_frame.Position.X + (i == 2 and (section.section_frame.Size.X/2) or 0), section.section_frame.Position.Y + button.axis, section.section_frame.Position.X + section.section_frame.Size.X - (i == 1 and (section.section_frame.Size.X/2) or 0), section.section_frame.Position.Y + button.axis + 20}) and not window:IsOverContent() then
  5216.                     task.spawn(function()
  5217.                         utility:LoadImage(button_gradient, "gradientdown", "https://i.imgur.com/DzrzUt3.png")
  5218.                         --
  5219.                         task.wait(0.15)
  5220.                         --
  5221.                         utility:LoadImage(button_gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  5222.                     end)
  5223.                     --
  5224.                     buttons[i][2]()
  5225.                 end
  5226.             end
  5227.         end
  5228.         --
  5229.         section.currentAxis = section.currentAxis + 20 + 4
  5230.     end
  5231.     --
  5232.     function sections:Dropdown(info)
  5233.         local info = info or {}
  5234.         local name = info.name or info.Name or info.title or info.Title
  5235.         local max = info.max or info.Max
  5236.         local options = info.options or info.Options or {"1", "2", "3"}
  5237.         local def = info.def or info.Def or info.default or info.Default or options[1]
  5238.         local pointer = info.pointer or info.Pointer or info.flag or info.Flag or nil
  5239.         local callback = info.callback or info.callBack or info.Callback or info.CallBack or function()end
  5240.         --
  5241.         local window = self.window
  5242.         local page = self.page
  5243.         local section = self
  5244.         --
  5245.         local dropdown = {open = false, scrollindex = max and 0, scrolling = max and {false, nil}, current = tostring(def), options = options, holder = {buttons = {}, drawings = {}}, axis = section.currentAxis}
  5246.         --
  5247.         local dropdown_outline = utility:Create("Frame", {Vector2.new(4,name and (dropdown.axis + 15) or dropdown.axis), section.section_frame}, {
  5248.             Size = utility:Size(1, -8, 0, 20, section.section_frame),
  5249.             Position = utility:Position(0, 4, 0, name and (dropdown.axis + 15) or dropdown.axis, section.section_frame),
  5250.             Color = theme.outline,
  5251.             Visible = page.open
  5252.         }, section.visibleContent)
  5253.         --
  5254.         library.colors[dropdown_outline] = {
  5255.             Color = "outline"
  5256.         }
  5257.         --
  5258.         local dropdown_inline = utility:Create("Frame", {Vector2.new(1,1), dropdown_outline}, {
  5259.             Size = utility:Size(1, -2, 1, -2, dropdown_outline),
  5260.             Position = utility:Position(0, 1, 0, 1, dropdown_outline),
  5261.             Color = theme.inline,
  5262.             Visible = page.open
  5263.         }, section.visibleContent)
  5264.         --
  5265.         library.colors[dropdown_inline] = {
  5266.             Color = "inline"
  5267.         }
  5268.         --
  5269.         local dropdown_frame = utility:Create("Frame", {Vector2.new(1,1), dropdown_inline}, {
  5270.             Size = utility:Size(1, -2, 1, -2, dropdown_inline),
  5271.             Position = utility:Position(0, 1, 0, 1, dropdown_inline),
  5272.             Color = theme.lightcontrast,
  5273.             Visible = page.open
  5274.         }, section.visibleContent)
  5275.         --
  5276.         library.colors[dropdown_frame] = {
  5277.             Color = "lightcontrast"
  5278.         }
  5279.         --
  5280.         if name then
  5281.             local dropdown_title = utility:Create("TextLabel", {Vector2.new(4,dropdown.axis), section.section_frame}, {
  5282.                 Text = name,
  5283.                 Size = theme.textsize,
  5284.                 Font = theme.font,
  5285.                 Color = theme.textcolor,
  5286.                 OutlineColor = theme.textborder,
  5287.                 Position = utility:Position(0, 4, 0, dropdown.axis, section.section_frame),
  5288.                 Visible = page.open
  5289.             }, section.visibleContent)
  5290.             --
  5291.             library.colors[dropdown_title] = {
  5292.                 OutlineColor = "textborder",
  5293.                 Color = "textcolor"
  5294.             }
  5295.         end
  5296.         --
  5297.         local dropdown__gradient = utility:Create("Image", {Vector2.new(0,0), dropdown_frame}, {
  5298.             Size = utility:Size(1, 0, 1, 0, dropdown_frame),
  5299.             Position = utility:Position(0, 0, 0 , 0, dropdown_frame),
  5300.             Transparency = 0.5,
  5301.             Visible = page.open
  5302.         }, section.visibleContent)
  5303.         --
  5304.         local dropdown_value = utility:Create("TextLabel", {Vector2.new(3,dropdown_frame.Size.Y/2 - 7), dropdown_frame}, {
  5305.             Text = dropdown.current,
  5306.             Size = theme.textsize,
  5307.             Font = theme.font,
  5308.             Color = theme.textcolor,
  5309.             OutlineColor = theme.textborder,
  5310.             Position = utility:Position(0, 3, 0, (dropdown_frame.Size.Y/2) - 7, dropdown_frame),
  5311.             Visible = page.open
  5312.         }, section.visibleContent)
  5313.         --
  5314.         library.colors[dropdown_value] = {
  5315.             OutlineColor = "textborder",
  5316.             Color = "textcolor"
  5317.         }
  5318.         --
  5319.         local dropdown_image = utility:Create("Image", {Vector2.new(dropdown_frame.Size.X - 15,dropdown_frame.Size.Y/2 - 3), dropdown_frame}, {
  5320.             Size = utility:Size(0, 9, 0, 6, dropdown_frame),
  5321.             Position = utility:Position(1, -15, 0.5, -3, dropdown_frame),
  5322.             Visible = page.open
  5323.         }, section.visibleContent);dropdown["dropdown_image"] = dropdown_image
  5324.         --
  5325.         utility:LoadImage(dropdown_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  5326.         utility:LoadImage(dropdown__gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  5327.         --
  5328.         if max then
  5329.             local lastupdate = dropdown.scrollindex
  5330.             --
  5331.             function dropdown:UpdateScroll()
  5332.                 if dropdown.scrollindex ~= lastupdate then
  5333.                     if max and dropdown.bar and dropdown.scroll then
  5334.                         lastupdate = dropdown.scrollindex
  5335.                         --
  5336.                         if (#dropdown.options - max) > 0 then
  5337.                             dropdown.bar.Size = utility:Size(1, 0, (max / #dropdown.options), 0, dropdown.scroll)
  5338.                             dropdown.bar.Position = utility:Position(0, 0, 0, (((dropdown.scroll.Size.Y - dropdown.bar.Size.Y) / (#dropdown.options - max)) * dropdown.scrollindex), dropdown.scroll)
  5339.                             utility:UpdateTransparency(dropdown.bar, 1)
  5340.                             utility:UpdateOffset(dropdown.bar, {Vector2.new(1, (((dropdown.scroll.Size.Y - dropdown.bar.Size.Y) / (#dropdown.options - max)) * dropdown.scrollindex)), dropdown.scroll})
  5341.                         else
  5342.                             dropdown.scrollindex = 0
  5343.                             dropdown.bar.Transparency = 0
  5344.                             utility:UpdateTransparency(dropdown.bar, 0)
  5345.                         end
  5346.                         --
  5347.                         dropdown:Update()
  5348.                     end
  5349.                 end
  5350.             end
  5351.         end
  5352.         --
  5353.         function dropdown:Update()
  5354.             if dropdown.open and dropdown.holder.inline then
  5355.                 for i,v in pairs(dropdown.holder.buttons) do
  5356.                     local value = max and dropdown.options[i + dropdown.scrollindex] or dropdown.options[i]
  5357.                     --
  5358.                     v[1].Text = value
  5359.                     v[1].Color = value == tostring(dropdown.current) and theme.accent or theme.textcolor
  5360.                     v[1].Position = utility:Position(0, value == tostring(dropdown.current) and 8 or 6, 0, 2, v[2])
  5361.                     library.colors[v[1]] = {
  5362.                         Color = v[1].Text == tostring(dropdown.current) and "accent" or "textcolor"
  5363.                     }
  5364.                     utility:UpdateOffset(v[1], {Vector2.new(v[1].Text == tostring(dropdown.current) and 8 or 6, 2), v[2]})
  5365.                 end
  5366.             end
  5367.         end
  5368.         --
  5369.         function dropdown:Set(value)
  5370.             if typeof(value) == "string" and Find(dropdown.options, value) then
  5371.                 dropdown.current = value
  5372.                 dropdown_value.Text = value
  5373.                 callback(value)
  5374.             end
  5375.         end
  5376.         --
  5377.         function dropdown:Get()
  5378.             return dropdown.current
  5379.         end
  5380.         --
  5381.         library.began[#library.began + 1] = function(Input)
  5382.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and dropdown_outline.Visible then
  5383.                 if dropdown.open and dropdown.holder.inline and utility:MouseOverDrawing({dropdown.holder.inline.Position.X, dropdown.holder.inline.Position.Y, dropdown.holder.inline.Position.X + dropdown.holder.inline.Size.X, dropdown.holder.inline.Position.Y + dropdown.holder.inline.Size.Y}) then
  5384.                     if max and dropdown.bar and utility:MouseOverDrawing({dropdown.bar.Position.X - 1, dropdown.bar.Position.Y - 1, dropdown.bar.Position.X - 1 + dropdown.bar.Size.X + 2, dropdown.bar.Position.Y - 1 + dropdown.bar.Size.Y + 2}) then
  5385.                         dropdown.scrolling = {true, (utility:MouseLocation().Y - dropdown.bar.Position.Y)}
  5386.                     else
  5387.                         for i,v in pairs(dropdown.holder.buttons) do
  5388.                             local value = max and dropdown.options[(i + dropdown.scrollindex)] or dropdown.options[i]
  5389.                             --
  5390.                             if utility:MouseOverDrawing({v[2].Position.X, v[2].Position.Y, v[2].Position.X + v[2].Size.X, v[2].Position.Y + v[2].Size.Y}) and v[1].Text ~= dropdown.current then
  5391.                                 dropdown.current = value
  5392.                                 dropdown_value.Text = dropdown.current
  5393.                                 callback(value)
  5394.                                 dropdown:Update()
  5395.                             end
  5396.                         end
  5397.                     end
  5398.                 elseif utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + dropdown.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + dropdown.axis + (name and (15 + 20) or (20))}) and not window:IsOverContent() then
  5399.                     task.spawn(function()
  5400.                         utility:LoadImage(dropdown__gradient, "gradientdown", "https://i.imgur.com/DzrzUt3.png")
  5401.                         --
  5402.                         task.wait(0.15)
  5403.                         --
  5404.                         utility:LoadImage(dropdown__gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  5405.                     end)
  5406.                     --
  5407.                     if not dropdown.open then
  5408.                         window:CloseContent()
  5409.                         dropdown.open = not dropdown.open
  5410.                         utility:LoadImage(dropdown_image, "arrow_up", "https://i.imgur.com/SL9cbQp.png")
  5411.                         --
  5412.                         local dropdown_open_outline = utility:Create("Frame", {Vector2.new(0,19), dropdown_outline}, {
  5413.                             Size = utility:Size(1, 0, 0, 3 + ((max and max or #dropdown.options) * 19), dropdown_outline),
  5414.                             Position = utility:Position(0, 0, 0, 19, dropdown_outline),
  5415.                             Color = theme.outline,
  5416.                             Visible = page.open
  5417.                         }, dropdown.holder.drawings);dropdown.holder.outline = dropdown_open_outline
  5418.                         --
  5419.                         library.colors[dropdown_open_outline] = {
  5420.                             Color = "outline"
  5421.                         }
  5422.                         --
  5423.                         local dropdown_open_inline = utility:Create("Frame", {Vector2.new(1,1), dropdown_open_outline}, {
  5424.                             Size = utility:Size(1, -2, 1, -2, dropdown_open_outline),
  5425.                             Position = utility:Position(0, 1, 0, 1, dropdown_open_outline),
  5426.                             Color = theme.inline,
  5427.                             Visible = page.open
  5428.                         }, dropdown.holder.drawings);dropdown.holder.inline = dropdown_open_inline
  5429.                         --
  5430.                         library.colors[dropdown_open_inline] = {
  5431.                             Color = "inline"
  5432.                         }
  5433.                         --
  5434.                         if max then
  5435.                             local dropdown_open_scroll = utility:Create("Frame", {Vector2.new(dropdown_open_inline.Size.X - 5,1), dropdown_open_inline}, {
  5436.                                 Size = utility:Size(0, 4, 1, -2, dropdown_open_inline),
  5437.                                 Position = utility:Position(1, -5, 0, 1, dropdown_open_inline),
  5438.                                 Color = theme.darkcontrast,
  5439.                                 Visible = page.open
  5440.                             }, dropdown.holder.drawings);dropdown.scroll = dropdown_open_scroll
  5441.                             --
  5442.                             library.colors[dropdown_open_scroll] = {
  5443.                                 Color = "darkcontrast"
  5444.                             }
  5445.                             --
  5446.                             local dropdown_open_bar = utility:Create("Frame", {Vector2.new(0, (((dropdown_open_scroll.Size.Y - ((max / #dropdown.options) * dropdown_open_scroll.Size.Y)) / (#dropdown.options - max)) * dropdown.scrollindex)), dropdown_open_scroll}, {
  5447.                                 Size = utility:Size(1, 0, (max / #dropdown.options), 0, dropdown_open_scroll),
  5448.                                 Position = utility:Position(0, 0, 0, (((dropdown_open_scroll.Size.Y - ((max / #dropdown.options) * dropdown_open_scroll.Size.Y)) / (#dropdown.options - max)) * dropdown.scrollindex), dropdown_open_scroll),
  5449.                                 Color = theme.accent,
  5450.                                 Visible = page.open
  5451.                             }, dropdown.holder.drawings);dropdown.bar = dropdown_open_bar
  5452.                             --
  5453.                             library.colors[dropdown_open_bar] = {
  5454.                                 Color = "accent"
  5455.                             }
  5456.                         end
  5457.                         --
  5458.                         for Index = 1, (max and max or #dropdown.options) do
  5459.                             local Value = max and dropdown.options[Index + dropdown.scrollindex] or dropdown.options[Index]
  5460.                             --
  5461.                             if Value then
  5462.                                 local dropdown_value_frame = utility:Create("Frame", {Vector2.new(1,1 + (19 * (Index-1))), dropdown_open_inline}, {
  5463.                                     Size = utility:Size(1, -(max and 7 or 2), 0, 18, dropdown_open_inline),
  5464.                                     Position = utility:Position(0, 1, 0, 1 + (19 * (Index-1)), dropdown_open_inline),
  5465.                                     Color = theme.lightcontrast,
  5466.                                     Visible = page.open
  5467.                                 }, dropdown.holder.drawings)
  5468.                                 --
  5469.                                 library.colors[dropdown_value_frame] = {
  5470.                                     Color = "lightcontrast"
  5471.                                 }
  5472.                                 --
  5473.                                 local dropdown_value = utility:Create("TextLabel", {Vector2.new(Value == tostring(dropdown.current) and 8 or 6,2), dropdown_value_frame}, {
  5474.                                     Text = Value,
  5475.                                     Size = theme.textsize,
  5476.                                     Font = theme.font,
  5477.                                     Color = Value == tostring(dropdown.current) and theme.accent or theme.textcolor,
  5478.                                     OutlineColor = theme.textborder,
  5479.                                     Position = utility:Position(0, Value == tostring(dropdown.current) and 8 or 6, 0, 2, dropdown_value_frame),
  5480.                                     Visible = page.open
  5481.                                 }, dropdown.holder.drawings)
  5482.                                 --
  5483.                                 dropdown.holder.buttons[#dropdown.holder.buttons + 1] = {dropdown_value, dropdown_value_frame}
  5484.                                 --
  5485.                                 library.colors[dropdown_value] = {
  5486.                                     OutlineColor = "textborder",
  5487.                                     Color = Value == tostring(dropdown.current) and "accent" or "textcolor"
  5488.                                 }
  5489.                             end
  5490.                         end
  5491.                         --
  5492.                         window.currentContent.frame = dropdown_open_inline
  5493.                         window.currentContent.dropdown = dropdown
  5494.                     else
  5495.                         dropdown.open = not dropdown.open
  5496.                         utility:LoadImage(dropdown_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  5497.                         --
  5498.                         for i,v in pairs(dropdown.holder.drawings) do
  5499.                             utility:Remove(v)
  5500.                         end
  5501.                         --
  5502.                         dropdown.holder.drawings = {}
  5503.                         dropdown.holder.buttons = {}
  5504.                         dropdown.holder.inline = nil
  5505.                         --
  5506.                         window.currentContent.frame = nil
  5507.                         window.currentContent.dropdown = nil
  5508.                     end
  5509.                 else
  5510.                     if dropdown.open then
  5511.                         dropdown.open = not dropdown.open
  5512.                         utility:LoadImage(dropdown_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  5513.                         --
  5514.                         for i,v in pairs(dropdown.holder.drawings) do
  5515.                             utility:Remove(v)
  5516.                         end
  5517.                         --
  5518.                         dropdown.holder.drawings = {}
  5519.                         dropdown.holder.buttons = {}
  5520.                         dropdown.holder.inline = nil
  5521.                         --
  5522.                         window.currentContent.frame = nil
  5523.                         window.currentContent.dropdown = nil
  5524.                     end
  5525.                 end
  5526.             elseif Input.UserInputType == Enum.UserInputType.MouseButton1 and dropdown.open then
  5527.                 dropdown.open = not dropdown.open
  5528.                 utility:LoadImage(dropdown_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  5529.                 --
  5530.                 for i,v in pairs(dropdown.holder.drawings) do
  5531.                     utility:Remove(v)
  5532.                 end
  5533.                 --
  5534.                 dropdown.holder.drawings = {}
  5535.                 dropdown.holder.buttons = {}
  5536.                 dropdown.holder.inline = nil
  5537.                 --
  5538.                 window.currentContent.frame = nil
  5539.                 window.currentContent.dropdown = nil
  5540.             end
  5541.         end
  5542.         --
  5543.         if max then
  5544.             library.ended[#library.ended + 1] = function(Input)
  5545.                 if dropdown.scrolling and dropdown.scrolling[1] and Input.UserInputType == Enum.UserInputType.MouseButton1 then
  5546.                     dropdown.scrolling = {false, nil}
  5547.                 end
  5548.             end
  5549.             --
  5550.             library.changed[#library.changed + 1] = function(Input)
  5551.                 if dropdown.scrolling and dropdown.scrolling[1] then
  5552.                     local MouseLocation = utility:MouseLocation()
  5553.                     local Position = math.clamp((MouseLocation.Y - dropdown.scroll.Position.Y - dropdown.scrolling[2]), 0, ((dropdown.scroll.Size.Y - dropdown.bar.Size.Y)))
  5554.                     --
  5555.                     dropdown.scrollindex = math.round((((Position + dropdown.scroll.Position.Y) - dropdown.scroll.Position.Y) / ((dropdown.scroll.Size.Y - dropdown.bar.Size.Y))) * (#dropdown.options - max))
  5556.                     dropdown:UpdateScroll()
  5557.                 end
  5558.             end
  5559.             --
  5560.             utility:Connection(mouse.WheelForward,function()
  5561.                 if page.open and dropdown.open and dropdown.bar and dropdown.bar.Visible and utility:MouseOverDrawing({dropdown.holder.inline.Position.X, dropdown.holder.inline.Position.Y, dropdown.holder.inline.Position.X + dropdown.holder.inline.Size.X, dropdown.holder.inline.Position.Y + dropdown.holder.inline.Size.Y}) then
  5562.                     dropdown.scrollindex = math.clamp(dropdown.scrollindex - 1, 0, #dropdown.options - max)
  5563.                     dropdown:UpdateScroll()
  5564.                 end
  5565.             end)
  5566.             --
  5567.             utility:Connection(mouse.WheelBackward,function()
  5568.                 if page.open and dropdown.open and dropdown.bar and dropdown.bar.Visible and utility:MouseOverDrawing({dropdown.holder.inline.Position.X, dropdown.holder.inline.Position.Y, dropdown.holder.inline.Position.X + dropdown.holder.inline.Size.X, dropdown.holder.inline.Position.Y + dropdown.holder.inline.Size.Y}) then
  5569.                     dropdown.scrollindex = math.clamp(dropdown.scrollindex + 1, 0, #dropdown.options - max)
  5570.                     dropdown:UpdateScroll()
  5571.                 end
  5572.             end)
  5573.         end
  5574.         --
  5575.         if pointer and tostring(pointer) ~= "" and tostring(pointer) ~= " " and not library.pointers[tostring(pointer)] then
  5576.             library.pointers[tostring(pointer)] = dropdown
  5577.         end
  5578.         --
  5579.         section.currentAxis = section.currentAxis + (name and 35 or 20) + 4
  5580.         --
  5581.         return dropdown
  5582.     end
  5583.     --
  5584.     function sections:Multibox(info)
  5585.         local info = info or {}
  5586.         local name = info.name or info.Name or info.title or info.Title
  5587.         local options = info.options or info.Options or {"1", "2", "3"}
  5588.         local def = info.def or info.Def or info.default or info.Default or {options[1]}
  5589.         local pointer = info.pointer or info.Pointer or info.flag or info.Flag or nil
  5590.         local callback = info.callback or info.callBack or info.Callback or info.CallBack or function()end
  5591.         local min = info.min or info.Min or info.minimum or info.Minimum or 0
  5592.         --
  5593.         local window = self.window
  5594.         local page = self.page
  5595.         local section = self
  5596.         --
  5597.         local multibox = {open = false, current = def, options = options, holder = {buttons = {}, drawings = {}}, axis = section.currentAxis}
  5598.         --
  5599.         local multibox_outline = utility:Create("Frame", {Vector2.new(4, name and (multibox.axis + 15) or multibox.axis), section.section_frame}, {
  5600.             Size = utility:Size(1, -8, 0, 20, section.section_frame),
  5601.             Position = utility:Position(0, 4, 0, name and (multibox.axis + 15) or multibox.axis, section.section_frame),
  5602.             Color = theme.outline,
  5603.             Visible = page.open
  5604.         }, section.visibleContent)
  5605.         --
  5606.         library.colors[multibox_outline] = {
  5607.             Color = "outline"
  5608.         }
  5609.         --
  5610.         local multibox_inline = utility:Create("Frame", {Vector2.new(1,1), multibox_outline}, {
  5611.             Size = utility:Size(1, -2, 1, -2, multibox_outline),
  5612.             Position = utility:Position(0, 1, 0, 1, multibox_outline),
  5613.             Color = theme.inline,
  5614.             Visible = page.open
  5615.         }, section.visibleContent)
  5616.         --
  5617.         library.colors[multibox_inline] = {
  5618.             Color = "inline"
  5619.         }
  5620.         --
  5621.         local multibox_frame = utility:Create("Frame", {Vector2.new(1,1), multibox_inline}, {
  5622.             Size = utility:Size(1, -2, 1, -2, multibox_inline),
  5623.             Position = utility:Position(0, 1, 0, 1, multibox_inline),
  5624.             Color = theme.lightcontrast,
  5625.             Visible = page.open
  5626.         }, section.visibleContent)
  5627.         --
  5628.         library.colors[multibox_frame] = {
  5629.             Color = "lightcontrast"
  5630.         }
  5631.         --
  5632.         if name then
  5633.             local multibox_title = utility:Create("TextLabel", {Vector2.new(4,multibox.axis), section.section_frame}, {
  5634.                 Text = name,
  5635.                 Size = theme.textsize,
  5636.                 Font = theme.font,
  5637.                 Color = theme.textcolor,
  5638.                 OutlineColor = theme.textborder,
  5639.                 Position = utility:Position(0, 4, 0, multibox.axis, section.section_frame),
  5640.                 Visible = page.open
  5641.             }, section.visibleContent)
  5642.             --
  5643.             library.colors[multibox_title] = {
  5644.                 OutlineColor = "textborder",
  5645.                 Color = "textcolor"
  5646.             }
  5647.         end
  5648.         --
  5649.         local multibox__gradient = utility:Create("Image", {Vector2.new(0,0), multibox_frame}, {
  5650.             Size = utility:Size(1, 0, 1, 0, multibox_frame),
  5651.             Position = utility:Position(0, 0, 0 , 0, multibox_frame),
  5652.             Transparency = 0.5,
  5653.             Visible = page.open
  5654.         }, section.visibleContent)
  5655.         --
  5656.         local multibox_value = utility:Create("TextLabel", {Vector2.new(3,multibox_frame.Size.Y/2 - 7), multibox_frame}, {
  5657.             Text = "",
  5658.             Size = theme.textsize,
  5659.             Font = theme.font,
  5660.             Color = theme.textcolor,
  5661.             OutlineColor = theme.textborder,
  5662.             Position = utility:Position(0, 3, 0, (multibox_frame.Size.Y/2) - 7, multibox_frame),
  5663.             Visible = page.open
  5664.         }, section.visibleContent)
  5665.         --
  5666.         library.colors[multibox_value] = {
  5667.             OutlineColor = "textborder",
  5668.             Color = "textcolor"
  5669.         }
  5670.         --
  5671.         local multibox_image = utility:Create("Image", {Vector2.new(multibox_frame.Size.X - 15,multibox_frame.Size.Y/2 - 3), multibox_frame}, {
  5672.             Size = utility:Size(0, 9, 0, 6, multibox_frame),
  5673.             Position = utility:Position(1, -15, 0.5, -3, multibox_frame),
  5674.             Visible = page.open
  5675.         }, section.visibleContent);multibox["multibox_image"] = multibox_image
  5676.         --
  5677.         utility:LoadImage(multibox_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  5678.         utility:LoadImage(multibox__gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  5679.         --
  5680.         function multibox:Update()
  5681.             if multibox.open and multibox.holder.inline then
  5682.                 for i,v in pairs(multibox.holder.buttons) do
  5683.                     v[1].Color = Find(multibox.current, v[1].Text) and theme.accent or theme.textcolor
  5684.                     v[1].Position = utility:Position(0, Find(multibox.current, v[1].Text) and 8 or 6, 0, 2, v[2])
  5685.                     --
  5686.                     library.colors[v[1]] = {
  5687.                         Color = Find(multibox.current, v[1].Text) and "accent" or "textcolor"
  5688.                     }
  5689.                     --
  5690.                     utility:UpdateOffset(v[1], {Vector2.new(Find(multibox.current, v[1].Text) and 8 or 6, 2), v[2]})
  5691.                 end
  5692.             end
  5693.         end
  5694.         --
  5695.         function multibox:Serialize(tbl)
  5696.             local str = ""
  5697.             --
  5698.             for i,v in pairs(tbl) do
  5699.                 str = str..v..", "
  5700.             end
  5701.             --
  5702.             return string.sub(str, 0, #str - 2)
  5703.         end
  5704.         --
  5705.         function multibox:Resort(tbl,original)
  5706.             local newtbl = {}
  5707.             --
  5708.             for i,v in pairs(original) do
  5709.                 if Find(tbl, v) then
  5710.                     newtbl[#newtbl + 1] = v
  5711.                 end
  5712.             end
  5713.             --
  5714.             return newtbl
  5715.         end
  5716.         --
  5717.         function multibox:Set(tbl)
  5718.             if typeof(tbl) == "table" then
  5719.                 multibox.current = tbl
  5720.                 --
  5721.                 local text = multibox:Serialize(multibox:Resort(multibox.current, multibox.options))
  5722.                 multibox_value.Text = utility:WrapText(text, multibox_frame.Size.X - 25)
  5723.             end
  5724.         end
  5725.         --
  5726.         function multibox:Get()
  5727.             return multibox.current
  5728.         end
  5729.         --
  5730.         multibox_value.Text = utility:WrapText(multibox:Serialize(multibox:Resort(multibox.current, multibox.options)), multibox_frame.Size.X - 25)
  5731.         --
  5732.         library.began[#library.began + 1] = function(Input)
  5733.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and multibox_outline.Visible then
  5734.                 if multibox.open and multibox.holder.inline and utility:MouseOverDrawing({multibox.holder.inline.Position.X, multibox.holder.inline.Position.Y, multibox.holder.inline.Position.X + multibox.holder.inline.Size.X, multibox.holder.inline.Position.Y + multibox.holder.inline.Size.Y}) then
  5735.                     for i,v in pairs(multibox.holder.buttons) do
  5736.                         if utility:MouseOverDrawing({v[2].Position.X, v[2].Position.Y, v[2].Position.X + v[2].Size.X, v[2].Position.Y + v[2].Size.Y}) and v[1].Text ~= multibox.current then
  5737.                             if not Find(multibox.current, v[1].Text) then
  5738.                                 multibox.current[#multibox.current + 1] = v[1].Text
  5739.                                 multibox_value.Text = utility:WrapText(multibox:Serialize(multibox:Resort(multibox.current, multibox.options)), multibox_frame.Size.X - 25)
  5740.                                 multibox:Update()
  5741.                             else
  5742.                                 if #multibox.current > min then
  5743.                                     Remove(multibox.current, Find(multibox.current, v[1].Text))
  5744.                                     multibox_value.Text = utility:WrapText(multibox:Serialize(multibox:Resort(multibox.current, multibox.options)), multibox_frame.Size.X - 25)
  5745.                                     multibox:Update()
  5746.                                 end
  5747.                             end
  5748.                         end
  5749.                     end
  5750.                 elseif utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + multibox.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + multibox.axis + (name and 15 or 0) + 20}) and not window:IsOverContent() then
  5751.                     task.spawn(function()
  5752.                         utility:LoadImage(multibox__gradient, "gradientdown", "https://i.imgur.com/DzrzUt3.png")
  5753.                         --
  5754.                         task.wait(0.15)
  5755.                         --
  5756.                         utility:LoadImage(multibox__gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  5757.                     end)
  5758.                     --
  5759.                     if not multibox.open then
  5760.                         window:CloseContent()
  5761.                         multibox.open = not multibox.open
  5762.                         utility:LoadImage(multibox_image, "arrow_up", "https://i.imgur.com/SL9cbQp.png")
  5763.                         --
  5764.                         local multibox_open_outline = utility:Create("Frame", {Vector2.new(0,19), multibox_outline}, {
  5765.                             Size = utility:Size(1, 0, 0, 3 + (#multibox.options * 19), multibox_outline),
  5766.                             Position = utility:Position(0, 0, 0, 19, multibox_outline),
  5767.                             Color = theme.outline,
  5768.                             Visible = page.open
  5769.                         }, multibox.holder.drawings);multibox.holder.outline = multibox_open_outline
  5770.                         --
  5771.                         library.colors[multibox_open_outline] = {
  5772.                             Color = "outline"
  5773.                         }
  5774.                         --
  5775.                         local multibox_open_inline = utility:Create("Frame", {Vector2.new(1,1), multibox_open_outline}, {
  5776.                             Size = utility:Size(1, -2, 1, -2, multibox_open_outline),
  5777.                             Position = utility:Position(0, 1, 0, 1, multibox_open_outline),
  5778.                             Color = theme.inline,
  5779.                             Visible = page.open
  5780.                         }, multibox.holder.drawings);multibox.holder.inline = multibox_open_inline
  5781.                         --
  5782.                         library.colors[multibox_open_inline] = {
  5783.                             Color = "inline"
  5784.                         }
  5785.                         --
  5786.                         for i,v in pairs(multibox.options) do
  5787.                             local multibox_value_frame = utility:Create("Frame", {Vector2.new(1,1 + (19 * (i-1))), multibox_open_inline}, {
  5788.                                 Size = utility:Size(1, -2, 0, 18, multibox_open_inline),
  5789.                                 Position = utility:Position(0, 1, 0, 1 + (19 * (i-1)), multibox_open_inline),
  5790.                                 Color = theme.lightcontrast,
  5791.                                 Visible = page.open
  5792.                             }, multibox.holder.drawings)
  5793.                             --
  5794.                             library.colors[multibox_value_frame] = {
  5795.                                 Color = "lightcontrast"
  5796.                             }
  5797.                             --[[
  5798.                             local multibox_value_gradient = utility:Create("Image", {Vector2.new(0,0), multibox_value_frame}, {
  5799.                                 Size = utility:Size(1, 0, 1, 0, multibox_value_frame),
  5800.                                 Position = utility:Position(0, 0, 0 , 0, multibox_value_frame),
  5801.                                 Transparency = 0.5,
  5802.                                 Visible = page.open
  5803.                             }, multibox.holder.drawings)
  5804.                             --
  5805.                             utility:LoadImage(multibox_value_gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")]]
  5806.                             --
  5807.                             local multibox_value = utility:Create("TextLabel", {Vector2.new(Find(multibox.current, v) and 8 or 6,2), multibox_value_frame}, {
  5808.                                 Text = v,
  5809.                                 Size = theme.textsize,
  5810.                                 Font = theme.font,
  5811.                                 Color = Find(multibox.current, v) and theme.accent or theme.textcolor,
  5812.                                 OutlineColor = theme.textborder,
  5813.                                 Position = utility:Position(0, Find(multibox.current, v) and 8 or 6, 0, 2, multibox_value_frame),
  5814.                                 Visible = page.open
  5815.                             }, multibox.holder.drawings);multibox.holder.buttons[#multibox.holder.buttons + 1] = {multibox_value, multibox_value_frame}
  5816.                             --
  5817.                             library.colors[multibox_value] = {
  5818.                                 OutlineColor = "textborder",
  5819.                                 Color = Find(multibox.current, v) and "accent" or "textcolor"
  5820.                             }
  5821.                         end
  5822.                         --
  5823.                         window.currentContent.frame = multibox_open_inline
  5824.                         window.currentContent.multibox = multibox
  5825.                     else
  5826.                         multibox.open = not multibox.open
  5827.                         utility:LoadImage(multibox_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  5828.                         --
  5829.                         for i,v in pairs(multibox.holder.drawings) do
  5830.                             utility:Remove(v)
  5831.                         end
  5832.                         --
  5833.                         multibox.holder.drawings = {}
  5834.                         multibox.holder.buttons = {}
  5835.                         multibox.holder.inline = nil
  5836.                         --
  5837.                         window.currentContent.frame = nil
  5838.                         window.currentContent.multibox = nil
  5839.                     end
  5840.                 else
  5841.                     if multibox.open then
  5842.                         multibox.open = not multibox.open
  5843.                         utility:LoadImage(multibox_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  5844.                         --
  5845.                         for i,v in pairs(multibox.holder.drawings) do
  5846.                             utility:Remove(v)
  5847.                         end
  5848.                         --
  5849.                         multibox.holder.drawings = {}
  5850.                         multibox.holder.buttons = {}
  5851.                         multibox.holder.inline = nil
  5852.                         --
  5853.                         window.currentContent.frame = nil
  5854.                         window.currentContent.multibox = nil
  5855.                     end
  5856.                 end
  5857.             elseif Input.UserInputType == Enum.UserInputType.MouseButton1 and multibox.open then
  5858.                 multibox.open = not multibox.open
  5859.                 utility:LoadImage(multibox_image, "arrow_down", "https://i.imgur.com/tVqy0nL.png")
  5860.                 --
  5861.                 for i,v in pairs(multibox.holder.drawings) do
  5862.                     utility:Remove(v)
  5863.                 end
  5864.                 --
  5865.                 multibox.holder.drawings = {}
  5866.                 multibox.holder.buttons = {}
  5867.                 multibox.holder.inline = nil
  5868.                 --
  5869.                 window.currentContent.frame = nil
  5870.                 window.currentContent.multibox = nil
  5871.             end
  5872.         end
  5873.         --
  5874.         if pointer and tostring(pointer) ~= "" and tostring(pointer) ~= " " and not library.pointers[tostring(pointer)] then
  5875.             library.pointers[tostring(pointer)] = multibox
  5876.         end
  5877.         --
  5878.         section.currentAxis = section.currentAxis + (name and 35 or 20) + 4
  5879.         --
  5880.         return multibox
  5881.     end
  5882.     --
  5883.     function sections:Keybind(info)
  5884.         local info = info or {}
  5885.         local name = info.name or info.Name or info.title or info.Title or "New Keybind"
  5886.         local def = info.def or info.Def or info.default or info.Default or nil
  5887.         local pointer = info.pointer or info.Pointer or info.flag or info.Flag or nil
  5888.         local mode = info.mode or info.Mode or "Always"
  5889.         local keybindname = info.keybindname or info.keybindName or info.Keybindname or info.KeybindName or nil
  5890.         local callback = info.callback or info.callBack or info.Callback or info.CallBack or function()end
  5891.         --
  5892.         local window = self.window
  5893.         local page = self.page
  5894.         local section = self
  5895.         --
  5896.         local keybind = {keybindname = keybindname or name, axis = section.currentAxis, current = {}, selecting = false, mode = mode, open = false, modemenu = {buttons = {}, drawings = {}}, active = false}
  5897.         --
  5898.         local allowedKeyCodes = {"Q","W","E","R","T","Y","U","I","O","P","A","S","D","F","G","H","J","K","L","Z","X","C","V","B","N","M","One","Two","Three","Four","Five","Six","Seveen","Eight","Nine","Zero", "Minus", "Equals","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","Insert","Tab","Home","End","LeftAlt","LeftControl","LeftShift","RightAlt","RightControl","RightShift","CapsLock"}
  5899.         local allowedInputTypes = {"MouseButton1","MouseButton2","MouseButton3"}
  5900.         local shortenedInputs = {["MouseButton1"] = "MB1", ["MouseButton2"] = "MB2", ["MouseButton3"] = "MB3", ["Insert"] = "Ins", ["LeftAlt"] = "LAlt", ["LeftControl"] = "LC", ["LeftShift"] = "LS", ["RightAlt"] = "RAlt", ["RightControl"] = "RC", ["RightShift"] = "RS", ["CapsLock"] = "Caps"}
  5901.         --
  5902.         local keybind_outline = utility:Create("Frame", {Vector2.new(section.section_frame.Size.X-(40+4),keybind.axis), section.section_frame}, {
  5903.             Size = utility:Size(0, 40, 0, 17),
  5904.             Position = utility:Position(1, -(40+4), 0, keybind.axis, section.section_frame),
  5905.             Color = theme.outline,
  5906.             Visible = page.open
  5907.         }, section.visibleContent)
  5908.         --
  5909.         library.colors[keybind_outline] = {
  5910.             Color = "outline"
  5911.         }
  5912.         --
  5913.         local keybind_inline = utility:Create("Frame", {Vector2.new(1,1), keybind_outline}, {
  5914.             Size = utility:Size(1, -2, 1, -2, keybind_outline),
  5915.             Position = utility:Position(0, 1, 0, 1, keybind_outline),
  5916.             Color = theme.inline,
  5917.             Visible = page.open
  5918.         }, section.visibleContent)
  5919.         --
  5920.         library.colors[keybind_inline] = {
  5921.             Color = "inline"
  5922.         }
  5923.         --
  5924.         local keybind_frame = utility:Create("Frame", {Vector2.new(1,1), keybind_inline}, {
  5925.             Size = utility:Size(1, -2, 1, -2, keybind_inline),
  5926.             Position = utility:Position(0, 1, 0, 1, keybind_inline),
  5927.             Color = theme.lightcontrast,
  5928.             Visible = page.open
  5929.         }, section.visibleContent)
  5930.         --
  5931.         library.colors[keybind_frame] = {
  5932.             Color = "lightcontrast"
  5933.         }
  5934.         --
  5935.         local keybind_title = utility:Create("TextLabel", {Vector2.new(4,keybind.axis + (17/2) - (utility:GetTextBounds(name, theme.textsize, theme.font).Y/2)), section.section_frame}, {
  5936.             Text = name,
  5937.             Size = theme.textsize,
  5938.             Font = theme.font,
  5939.             Color = theme.textcolor,
  5940.             OutlineColor = theme.textborder,
  5941.             Position = utility:Position(0, 4, 0, keybind.axis + (17/2) - (utility:GetTextBounds(name, theme.textsize, theme.font).Y/2), section.section_frame),
  5942.             Visible = page.open
  5943.         }, section.visibleContent)
  5944.         --
  5945.         library.colors[keybind_title] = {
  5946.             OutlineColor = "textborder",
  5947.             Color = "textcolor"
  5948.         }
  5949.         --
  5950.         local keybind__gradient = utility:Create("Image", {Vector2.new(0,0), keybind_frame}, {
  5951.             Size = utility:Size(1, 0, 1, 0, keybind_frame),
  5952.             Position = utility:Position(0, 0, 0 , 0, keybind_frame),
  5953.             Transparency = 0.5,
  5954.             Visible = page.open
  5955.         }, section.visibleContent)
  5956.         --
  5957.         local keybind_value = utility:Create("TextLabel", {Vector2.new(keybind_outline.Size.X/2,1), keybind_outline}, {
  5958.             Text = "...",
  5959.             Size = theme.textsize,
  5960.             Font = theme.font,
  5961.             Color = theme.textcolor,
  5962.             OutlineColor = theme.textborder,
  5963.             Center = true,
  5964.             Position = utility:Position(0.5, 0, 1, 0, keybind_outline),
  5965.             Visible = page.open
  5966.         }, section.visibleContent)
  5967.         --
  5968.         library.colors[keybind_value] = {
  5969.             OutlineColor = "textborder",
  5970.             Color = "textcolor"
  5971.         }
  5972.         --
  5973.         utility:LoadImage(keybind__gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  5974.         --
  5975.         function keybind:Shorten(string)
  5976.             for i,v in pairs(shortenedInputs) do
  5977.                 string = string.gsub(string, i, v)
  5978.             end
  5979.             return string
  5980.         end
  5981.         --
  5982.         function keybind:Change(input)
  5983.             input = input or "..."
  5984.             local inputTable = {}
  5985.             --
  5986.             if input.EnumType then
  5987.                 if input.EnumType == Enum.KeyCode or input.EnumType == Enum.UserInputType then
  5988.                     if Find(allowedKeyCodes, input.Name) or Find(allowedInputTypes, input.Name) then
  5989.                         inputTable = {input.EnumType == Enum.KeyCode and "KeyCode" or "UserInputType", input.Name}
  5990.                         --
  5991.                         keybind.current = inputTable
  5992.                         keybind_value.Text = #keybind.current > 0 and keybind:Shorten(keybind.current[2]) or "..."
  5993.                         --
  5994.                         return true
  5995.                     end
  5996.                 end
  5997.             end
  5998.             --
  5999.             return false
  6000.         end
  6001.         --
  6002.         function keybind:Get()
  6003.             return keybind.current
  6004.         end
  6005.         --
  6006.         function keybind:Set(tbl)
  6007.             keybind.current = {tbl[1], tbl[2]}
  6008.             keybind_value.Text = #keybind.current > 0 and keybind:Shorten(keybind.current[2]) or "..."
  6009.             --
  6010.             if tbl[3] then
  6011.                 keybind.mode = tbl[3]
  6012.             end
  6013.             --
  6014.             keybind.active = (keybind.mode == "Always" or keybind.mode == "Off Hold") and true or false
  6015.             --
  6016.             if keybind.mode == "Off Hold" then
  6017.                 window.keybindslist:Add(keybindname or name, keybind_value.Text)
  6018.             else
  6019.                 window.keybindslist:Remove(keybindname or name)
  6020.             end
  6021.             --
  6022.             if keybind.current[1] and keybind.current[2] then
  6023.                 callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  6024.             end
  6025.         end
  6026.         --
  6027.         function keybind:Active()
  6028.             return keybind.active
  6029.         end
  6030.         --
  6031.         function keybind:Reset()
  6032.             for i,v in pairs(keybind.modemenu.buttons) do
  6033.                 v.Color = v.Text == keybind.mode and theme.accent or theme.textcolor
  6034.                 --
  6035.                 library.colors[v] = {
  6036.                     Color = v.Text == keybind.mode and "accent" or "textcolor"
  6037.                 }
  6038.             end
  6039.             --
  6040.             keybind.active = (keybind.mode == "Always" or keybind.mode == "Off Hold") and true or false
  6041.             --
  6042.             if keybind.mode == "Off Hold" then
  6043.                 window.keybindslist:Add(keybindname or name, keybind_value.Text)
  6044.             else
  6045.                 window.keybindslist:Remove(keybindname or name)
  6046.             end
  6047.             --
  6048.             if keybind.current[1] and keybind.current[2] then
  6049.                 callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  6050.             end
  6051.         end
  6052.         --
  6053.         keybind:Change(def)
  6054.         --
  6055.         library.began[#library.began + 1] = function(Input)
  6056.             if keybind.current[1] and keybind.current[2] then
  6057.                 if Input.KeyCode == Enum[keybind.current[1]][keybind.current[2]] or Input.UserInputType == Enum[keybind.current[1]][keybind.current[2]] then
  6058.                     if keybind.mode == "On Hold" then
  6059.                         keybind.active = true
  6060.                         if keybind.active then window.keybindslist:Add(keybindname or name, keybind_value.Text) else window.keybindslist:Remove(keybindname or name) end
  6061.                         callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  6062.                     elseif keybind.mode == "Off Hold" then
  6063.                         keybind.active = false
  6064.                         if keybind.active then window.keybindslist:Add(keybindname or name, keybind_value.Text) else window.keybindslist:Remove(keybindname or name) end
  6065.                         callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  6066.                     elseif keybind.mode == "Toggle" then
  6067.                         keybind.active = not keybind.active
  6068.                         if keybind.active then window.keybindslist:Add(keybindname or name, keybind_value.Text) else window.keybindslist:Remove(keybindname or name) end
  6069.                         callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  6070.                     end
  6071.                 end
  6072.             end
  6073.             --
  6074.             if keybind.selecting and window.isVisible then
  6075.                 local done = keybind:Change(Input.KeyCode.Name ~= "Unknown" and Input.KeyCode or Input.UserInputType)
  6076.                 if done then
  6077.                     keybind.selecting = false
  6078.                     keybind.active = keybind.mode == "Always" and true or false
  6079.                     keybind_frame.Color = theme.lightcontrast
  6080.                     --
  6081.                     library.colors[keybind_frame] = {
  6082.                         Color = "lightcontrast"
  6083.                     }
  6084.                     --
  6085.                     if keybind.mode == "Off Hold" then
  6086.                         window.keybindslist:Add(keybindname or name, keybind_value.Text)
  6087.                     else
  6088.                         window.keybindslist:Remove(keybindname or name)
  6089.                     end
  6090.                     --
  6091.                     callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  6092.                 end
  6093.             end
  6094.             --
  6095.             if not window.isVisible and keybind.selecting then
  6096.                 keybind.selecting = false
  6097.                 keybind_frame.Color = theme.lightcontrast
  6098.                 --
  6099.                 library.colors[keybind_frame] = {
  6100.                     Color = "lightcontrast"
  6101.                 }
  6102.             end
  6103.             --
  6104.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and keybind_outline.Visible then
  6105.                 if utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + keybind.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + keybind.axis + 17}) and not window:IsOverContent() and not keybind.selecting then
  6106.                     keybind.selecting = true
  6107.                     keybind_frame.Color = theme.darkcontrast
  6108.                     --
  6109.                     library.colors[keybind_frame] = {
  6110.                         Color = "darkcontrast"
  6111.                     }
  6112.                 end
  6113.                 if keybind.open and keybind.modemenu.frame then
  6114.                     if utility:MouseOverDrawing({keybind.modemenu.frame.Position.X, keybind.modemenu.frame.Position.Y, keybind.modemenu.frame.Position.X + keybind.modemenu.frame.Size.X, keybind.modemenu.frame.Position.Y + keybind.modemenu.frame.Size.Y}) then
  6115.                         local changed = false
  6116.                         --
  6117.                         for i,v in pairs(keybind.modemenu.buttons) do
  6118.                             if utility:MouseOverDrawing({keybind.modemenu.frame.Position.X, keybind.modemenu.frame.Position.Y + (15 * (i - 1)), keybind.modemenu.frame.Position.X + keybind.modemenu.frame.Size.X, keybind.modemenu.frame.Position.Y + (15 * (i - 1)) + 15}) then
  6119.                                 keybind.mode = v.Text
  6120.                                 changed = true
  6121.                             end
  6122.                         end
  6123.                         --
  6124.                         if changed then keybind:Reset() end
  6125.                     else
  6126.                         keybind.open = not keybind.open
  6127.                         --
  6128.                         for i,v in pairs(keybind.modemenu.drawings) do
  6129.                             utility:Remove(v)
  6130.                         end
  6131.                         --
  6132.                         keybind.modemenu.drawings = {}
  6133.                         keybind.modemenu.buttons = {}
  6134.                         keybind.modemenu.frame = nil
  6135.                         --
  6136.                         window.currentContent.frame = nil
  6137.                         window.currentContent.keybind = nil
  6138.                     end
  6139.                 end
  6140.             end
  6141.             --
  6142.             if Input.UserInputType == Enum.UserInputType.MouseButton2 and window.isVisible and keybind_outline.Visible then
  6143.                 if utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + keybind.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + keybind.axis + 17}) and not window:IsOverContent() and not keybind.selecting then
  6144.                     window:CloseContent()
  6145.                     keybind.open = not keybind.open
  6146.                     --
  6147.                     local modemenu = utility:Create("Frame", {Vector2.new(keybind_outline.Size.X + 2,0), keybind_outline}, {
  6148.                         Size = utility:Size(0, 68, 0, 64),
  6149.                         Position = utility:Position(1, 2, 0, 0, keybind_outline),
  6150.                         Color = theme.outline,
  6151.                         Visible = page.open
  6152.                     }, keybind.modemenu.drawings);keybind.modemenu.frame = modemenu
  6153.                     --
  6154.                     library.colors[modemenu] = {
  6155.                         Color = "outline"
  6156.                     }
  6157.                     --
  6158.                     local modemenu_inline = utility:Create("Frame", {Vector2.new(1,1), modemenu}, {
  6159.                         Size = utility:Size(1, -2, 1, -2, modemenu),
  6160.                         Position = utility:Position(0, 1, 0, 1, modemenu),
  6161.                         Color = theme.inline,
  6162.                         Visible = page.open
  6163.                     }, keybind.modemenu.drawings)
  6164.                     --
  6165.                     library.colors[modemenu_inline] = {
  6166.                         Color = "inline"
  6167.                     }
  6168.                     --
  6169.                     local modemenu_frame = utility:Create("Frame", {Vector2.new(1,1), modemenu_inline}, {
  6170.                         Size = utility:Size(1, -2, 1, -2, modemenu_inline),
  6171.                         Position = utility:Position(0, 1, 0, 1, modemenu_inline),
  6172.                         Color = theme.lightcontrast,
  6173.                         Visible = page.open
  6174.                     }, keybind.modemenu.drawings)
  6175.                     --
  6176.                     library.colors[modemenu_frame] = {
  6177.                         Color = "lightcontrast"
  6178.                     }
  6179.                     --
  6180.                     local keybind__gradient = utility:Create("Image", {Vector2.new(0,0), modemenu_frame}, {
  6181.                         Size = utility:Size(1, 0, 1, 0, modemenu_frame),
  6182.                         Position = utility:Position(0, 0, 0 , 0, modemenu_frame),
  6183.                         Transparency = 0.5,
  6184.                         Visible = page.open
  6185.                     }, keybind.modemenu.drawings)
  6186.                     --
  6187.                     utility:LoadImage(keybind__gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  6188.                     --
  6189.                     for i,v in pairs({"Always", "Toggle", "On Hold", "Off Hold"}) do
  6190.                         local button_title = utility:Create("TextLabel", {Vector2.new(modemenu_frame.Size.X/2,15 * (i-1)), modemenu_frame}, {
  6191.                             Text = v,
  6192.                             Size = theme.textsize,
  6193.                             Font = theme.font,
  6194.                             Color = v == keybind.mode and theme.accent or theme.textcolor,
  6195.                             Center = true,
  6196.                             OutlineColor = theme.textborder,
  6197.                             Position = utility:Position(0.5, 0, 0, 15 * (i-1), modemenu_frame),
  6198.                             Visible = page.open
  6199.                         }, keybind.modemenu.drawings);keybind.modemenu.buttons[#keybind.modemenu.buttons + 1] = button_title
  6200.                         --
  6201.                         library.colors[button_title] = {
  6202.                             OutlineColor = "textborder",
  6203.                             Color = v == keybind.mode and "accent" or "textcolor"
  6204.                         }
  6205.                     end
  6206.                     --
  6207.                     window.currentContent.frame = modemenu
  6208.                     window.currentContent.keybind = keybind
  6209.                 end
  6210.             end
  6211.         end
  6212.         --
  6213.         library.ended[#library.ended + 1] = function(Input)
  6214.             if keybind.mode == "On Hold" or keybind.mode == "Off Hold" then
  6215.                 if keybind.current[1] and keybind.current[2] then
  6216.                     if Input.KeyCode == Enum[keybind.current[1]][keybind.current[2]] or Input.UserInputType == Enum[keybind.current[1]][keybind.current[2]] then
  6217.                         if keybind.mode == "On Hold" then
  6218.                             if keybind.active then
  6219.                                 keybind.active = false
  6220.                                 window.keybindslist:Remove(keybindname or name)
  6221.                                 callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  6222.                             end
  6223.                         else
  6224.                             keybind.active = true
  6225.                             if keybind.active then window.keybindslist:Add(keybindname or name, keybind_value.Text) else window.keybindslist:Remove(keybindname or name) end
  6226.                             callback(Enum[keybind.current[1]][keybind.current[2]], keybind.active)
  6227.                         end
  6228.                     end
  6229.                 end
  6230.             end
  6231.         end
  6232.         --
  6233.         if pointer and tostring(pointer) ~= "" and tostring(pointer) ~= " " and not library.pointers[tostring(pointer)] then
  6234.             library.pointers[tostring(pointer)] = keybind
  6235.         end
  6236.         --
  6237.         section.currentAxis = section.currentAxis + 17 + 4
  6238.         --
  6239.         return keybind
  6240.     end
  6241.     --
  6242.     function sections:Colorpicker(info)
  6243.         local info = info or {}
  6244.         local name = info.name or info.Name or info.title or info.Title or "New Colorpicker"
  6245.         local cpinfo = info.info or info.Info or name
  6246.         local def = info.def or info.Def or info.default or info.Default or Color3.fromRGB(255, 0, 0)
  6247.         local transp = info.transparency or info.Transparency or info.transp or info.Transp or info.alpha or info.Alpha or nil
  6248.         local pointer = info.pointer or info.Pointer or info.flag or info.Flag or nil
  6249.         local callback = info.callback or info.callBack or info.Callback or info.CallBack or function()end
  6250.         --
  6251.         local window = self.window
  6252.         local page = self.page
  6253.         local section = self
  6254.         --
  6255.         local hh, ss, vv = def:ToHSV()
  6256.         local colorpicker = {axis = section.currentAxis, secondColorpicker = false, current = {hh, ss, vv , (transp or 0)}, holding = {picker = false, huepicker = false, transparency = false}, holder = {inline = nil, picker = nil, picker_cursor = nil, huepicker = nil, huepicker_cursor = {}, transparency = nil, transparencybg = nil, transparency_cursor = {}, drawings = {}}}
  6257.         --
  6258.         local colorpicker_outline = utility:Create("Frame", {Vector2.new(section.section_frame.Size.X-(30+4),colorpicker.axis), section.section_frame}, {
  6259.             Size = utility:Size(0, 30, 0, 15),
  6260.             Position = utility:Position(1, -(30+4), 0, colorpicker.axis, section.section_frame),
  6261.             Color = theme.outline,
  6262.             Visible = page.open
  6263.         }, section.visibleContent)
  6264.         --
  6265.         library.colors[colorpicker_outline] = {
  6266.             Color = "outline"
  6267.         }
  6268.         --
  6269.         local colorpicker_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_outline}, {
  6270.             Size = utility:Size(1, -2, 1, -2, colorpicker_outline),
  6271.             Position = utility:Position(0, 1, 0, 1, colorpicker_outline),
  6272.             Color = theme.inline,
  6273.             Visible = page.open
  6274.         }, section.visibleContent)
  6275.         --
  6276.         library.colors[colorpicker_inline] = {
  6277.             Color = "inline"
  6278.         }
  6279.         --
  6280.         local colorpicker__transparency
  6281.         if transp then
  6282.             colorpicker__transparency = utility:Create("Image", {Vector2.new(1,1), colorpicker_inline}, {
  6283.                 Size = utility:Size(1, -2, 1, -2, colorpicker_inline),
  6284.                 Position = utility:Position(0, 1, 0 , 1, colorpicker_inline),
  6285.                 Visible = page.open
  6286.             }, section.visibleContent)
  6287.         end
  6288.         --
  6289.         local colorpicker_frame = utility:Create("Frame", {Vector2.new(1,1), colorpicker_inline}, {
  6290.             Size = utility:Size(1, -2, 1, -2, colorpicker_inline),
  6291.             Position = utility:Position(0, 1, 0, 1, colorpicker_inline),
  6292.             Color = def,
  6293.             Transparency = transp and (1 - transp) or 1,
  6294.             Visible = page.open
  6295.         }, section.visibleContent)
  6296.         --
  6297.         local colorpicker__gradient = utility:Create("Image", {Vector2.new(0,0), colorpicker_frame}, {
  6298.             Size = utility:Size(1, 0, 1, 0, colorpicker_frame),
  6299.             Position = utility:Position(0, 0, 0 , 0, colorpicker_frame),
  6300.             Transparency = 0.5,
  6301.             Visible = page.open
  6302.         }, section.visibleContent)
  6303.         --
  6304.         local colorpicker_title = utility:Create("TextLabel", {Vector2.new(4,colorpicker.axis + (15/2) - (utility:GetTextBounds(name, theme.textsize, theme.font).Y/2)), section.section_frame}, {
  6305.             Text = name,
  6306.             Size = theme.textsize,
  6307.             Font = theme.font,
  6308.             Color = theme.textcolor,
  6309.             OutlineColor = theme.textborder,
  6310.             Position = utility:Position(0, 4, 0, colorpicker.axis + (15/2) - (utility:GetTextBounds(name, theme.textsize, theme.font).Y/2), section.section_frame),
  6311.             Visible = page.open
  6312.         }, section.visibleContent)
  6313.         --
  6314.         library.colors[colorpicker_title] = {
  6315.             OutlineColor = "textborder",
  6316.             Color = "textcolor"
  6317.         }
  6318.         --
  6319.         if transp then
  6320.             utility:LoadImage(colorpicker__transparency, "cptransp", "https://i.imgur.com/IIPee2A.png")
  6321.         end
  6322.         utility:LoadImage(colorpicker__gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  6323.         --
  6324.         function colorpicker:Set(color, transp_val)
  6325.             if typeof(color) == "table" then
  6326.                 colorpicker.current = color
  6327.                 colorpicker_frame.Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  6328.                 colorpicker_frame.Transparency = 1 - colorpicker.current[4]
  6329.                 callback(Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3]), colorpicker.current[4])
  6330.             elseif typeof(color) == "Color3" then
  6331.                 local h, s, v = color:ToHSV()
  6332.                 colorpicker.current = {h, s, v, (transp_val or 0)}
  6333.                 colorpicker_frame.Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  6334.                 colorpicker_frame.Transparency = 1 - colorpicker.current[4]
  6335.                 callback(Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3]), colorpicker.current[4])
  6336.             end
  6337.         end
  6338.         --
  6339.         function colorpicker:Refresh()
  6340.             local mouseLocation = utility:MouseLocation()
  6341.             if colorpicker.open and colorpicker.holder.picker and colorpicker.holding.picker then
  6342.                 colorpicker.current[2] = math.clamp(mouseLocation.X - colorpicker.holder.picker.Position.X, 0, colorpicker.holder.picker.Size.X) / colorpicker.holder.picker.Size.X
  6343.                 --
  6344.                 colorpicker.current[3] = 1-(math.clamp(mouseLocation.Y - colorpicker.holder.picker.Position.Y, 0, colorpicker.holder.picker.Size.Y) / colorpicker.holder.picker.Size.Y)
  6345.                 --
  6346.                 colorpicker.holder.picker_cursor.Position = utility:Position(colorpicker.current[2], -3, 1-colorpicker.current[3] , -3, colorpicker.holder.picker)
  6347.                 --
  6348.                 utility:UpdateOffset(colorpicker.holder.picker_cursor, {Vector2.new((colorpicker.holder.picker.Size.X*colorpicker.current[2])-3,(colorpicker.holder.picker.Size.Y*(1-colorpicker.current[3]))-3), colorpicker.holder.picker})
  6349.                 --
  6350.                 if colorpicker.holder.transparencybg then
  6351.                     colorpicker.holder.transparencybg.Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  6352.                 end
  6353.             elseif colorpicker.open and colorpicker.holder.huepicker and colorpicker.holding.huepicker then
  6354.                 colorpicker.current[1] = (math.clamp(mouseLocation.Y - colorpicker.holder.huepicker.Position.Y, 0, colorpicker.holder.huepicker.Size.Y) / colorpicker.holder.huepicker.Size.Y)
  6355.                 --
  6356.                 colorpicker.holder.huepicker_cursor[1].Position = utility:Position(0, -3, colorpicker.current[1], -3, colorpicker.holder.huepicker)
  6357.                 colorpicker.holder.huepicker_cursor[2].Position = utility:Position(0, 1, 0, 1, colorpicker.holder.huepicker_cursor[1])
  6358.                 colorpicker.holder.huepicker_cursor[3].Position = utility:Position(0, 1, 0, 1, colorpicker.holder.huepicker_cursor[2])
  6359.                 colorpicker.holder.huepicker_cursor[3].Color = Color3.fromHSV(colorpicker.current[1], 1, 1)
  6360.                 --
  6361.                 utility:UpdateOffset(colorpicker.holder.huepicker_cursor[1], {Vector2.new(-3,(colorpicker.holder.huepicker.Size.Y*colorpicker.current[1])-3), colorpicker.holder.huepicker})
  6362.                 --
  6363.                 colorpicker.holder.background.Color = Color3.fromHSV(colorpicker.current[1], 1, 1)
  6364.                 --
  6365.                 if colorpicker.holder.transparency_cursor and colorpicker.holder.transparency_cursor[3] then
  6366.                     colorpicker.holder.transparency_cursor[3].Color = Color3.fromHSV(0, 0, 1 - colorpicker.current[4])
  6367.                 end
  6368.                 --
  6369.                 if colorpicker.holder.transparencybg then
  6370.                     colorpicker.holder.transparencybg.Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  6371.                 end
  6372.             elseif colorpicker.open and colorpicker.holder.transparency and colorpicker.holding.transparency then
  6373.                 colorpicker.current[4] = 1 - (math.clamp(mouseLocation.X - colorpicker.holder.transparency.Position.X, 0, colorpicker.holder.transparency.Size.X) / colorpicker.holder.transparency.Size.X)
  6374.                 --
  6375.                 colorpicker.holder.transparency_cursor[1].Position = utility:Position(1-colorpicker.current[4], -3, 0, -3, colorpicker.holder.transparency)
  6376.                 colorpicker.holder.transparency_cursor[2].Position = utility:Position(0, 1, 0, 1, colorpicker.holder.transparency_cursor[1])
  6377.                 colorpicker.holder.transparency_cursor[3].Position = utility:Position(0, 1, 0, 1, colorpicker.holder.transparency_cursor[2])
  6378.                 colorpicker.holder.transparency_cursor[3].Color = Color3.fromHSV(0, 0, 1 - colorpicker.current[4])
  6379.                 colorpicker_frame.Transparency = (1 - colorpicker.current[4])
  6380.                 --
  6381.                 utility:UpdateTransparency(colorpicker_frame, (1 - colorpicker.current[4]))
  6382.                 utility:UpdateOffset(colorpicker.holder.transparency_cursor[1], {Vector2.new((colorpicker.holder.transparency.Size.X*(1-colorpicker.current[4]))-3,-3), colorpicker.holder.transparency})
  6383.                 --
  6384.                 colorpicker.holder.background.Color = Color3.fromHSV(colorpicker.current[1], 1, 1)
  6385.             end
  6386.             --
  6387.             colorpicker:Set(colorpicker.current)
  6388.         end
  6389.         --
  6390.         function colorpicker:Get()
  6391.             return Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  6392.         end
  6393.         --
  6394.         library.began[#library.began + 1] = function(Input)
  6395.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and colorpicker_outline.Visible then
  6396.                 if colorpicker.open and colorpicker.holder.inline and utility:MouseOverDrawing({colorpicker.holder.inline.Position.X, colorpicker.holder.inline.Position.Y, colorpicker.holder.inline.Position.X + colorpicker.holder.inline.Size.X, colorpicker.holder.inline.Position.Y + colorpicker.holder.inline.Size.Y}) then
  6397.                     if colorpicker.holder.picker and utility:MouseOverDrawing({colorpicker.holder.picker.Position.X - 2, colorpicker.holder.picker.Position.Y - 2, colorpicker.holder.picker.Position.X - 2 + colorpicker.holder.picker.Size.X + 4, colorpicker.holder.picker.Position.Y - 2 + colorpicker.holder.picker.Size.Y + 4}) then
  6398.                         colorpicker.holding.picker = true
  6399.                         colorpicker:Refresh()
  6400.                     elseif colorpicker.holder.huepicker and utility:MouseOverDrawing({colorpicker.holder.huepicker.Position.X - 2, colorpicker.holder.huepicker.Position.Y - 2, colorpicker.holder.huepicker.Position.X - 2 + colorpicker.holder.huepicker.Size.X + 4, colorpicker.holder.huepicker.Position.Y - 2 + colorpicker.holder.huepicker.Size.Y + 4}) then
  6401.                         colorpicker.holding.huepicker = true
  6402.                         colorpicker:Refresh()
  6403.                     elseif colorpicker.holder.transparency and utility:MouseOverDrawing({colorpicker.holder.transparency.Position.X - 2, colorpicker.holder.transparency.Position.Y - 2, colorpicker.holder.transparency.Position.X - 2 + colorpicker.holder.transparency.Size.X + 4, colorpicker.holder.transparency.Position.Y - 2 + colorpicker.holder.transparency.Size.Y + 4}) then
  6404.                         colorpicker.holding.transparency = true
  6405.                         colorpicker:Refresh()
  6406.                     end
  6407.                 elseif utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + colorpicker.axis, section.section_frame.Position.X + section.section_frame.Size.X - (colorpicker.secondColorpicker and (30+4) or 0), section.section_frame.Position.Y + colorpicker.axis + 15}) and not window:IsOverContent() then
  6408.                     if not colorpicker.open then
  6409.                         window:CloseContent()
  6410.                         colorpicker.open = not colorpicker.open
  6411.                         --
  6412.                         local colorpicker_open_outline = utility:Create("Frame", {Vector2.new(4,colorpicker.axis + 19), section.section_frame}, {
  6413.                             Size = utility:Size(1, -8, 0, transp and 219 or 200, section.section_frame),
  6414.                             Position = utility:Position(0, 4, 0, colorpicker.axis + 19, section.section_frame),
  6415.                             Color = theme.outline
  6416.                         }, colorpicker.holder.drawings);colorpicker.holder.inline = colorpicker_open_outline
  6417.                         --
  6418.                         library.colors[colorpicker_open_outline] = {
  6419.                             Color = "outline"
  6420.                         }
  6421.                         --
  6422.                         local colorpicker_open_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_outline}, {
  6423.                             Size = utility:Size(1, -2, 1, -2, colorpicker_open_outline),
  6424.                             Position = utility:Position(0, 1, 0, 1, colorpicker_open_outline),
  6425.                             Color = theme.inline
  6426.                         }, colorpicker.holder.drawings)
  6427.                         --
  6428.                         library.colors[colorpicker_open_inline] = {
  6429.                             Color = "inline"
  6430.                         }
  6431.                         --
  6432.                         local colorpicker_open_frame = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_inline}, {
  6433.                             Size = utility:Size(1, -2, 1, -2, colorpicker_open_inline),
  6434.                             Position = utility:Position(0, 1, 0, 1, colorpicker_open_inline),
  6435.                             Color = theme.darkcontrast
  6436.                         }, colorpicker.holder.drawings)
  6437.                         --
  6438.                         library.colors[colorpicker_open_frame] = {
  6439.                             Color = "darkcontrast"
  6440.                         }
  6441.                         --
  6442.                         local colorpicker_open_accent = utility:Create("Frame", {Vector2.new(0,0), colorpicker_open_frame}, {
  6443.                             Size = utility:Size(1, 0, 0, 2, colorpicker_open_frame),
  6444.                             Position = utility:Position(0, 0, 0, 0, colorpicker_open_frame),
  6445.                             Color = theme.accent
  6446.                         }, colorpicker.holder.drawings)
  6447.                         --
  6448.                         library.colors[colorpicker_open_accent] = {
  6449.                             Color = "accent"
  6450.                         }
  6451.                         --
  6452.                         local colorpicker_title = utility:Create("TextLabel", {Vector2.new(4,2), colorpicker_open_frame}, {
  6453.                             Text = cpinfo,
  6454.                             Size = theme.textsize,
  6455.                             Font = theme.font,
  6456.                             Color = theme.textcolor,
  6457.                             OutlineColor = theme.textborder,
  6458.                             Position = utility:Position(0, 4, 0, 2, colorpicker_open_frame),
  6459.                         }, colorpicker.holder.drawings)
  6460.                         --
  6461.                         library.colors[colorpicker_title] = {
  6462.                             OutlineColor = "textborder",
  6463.                             Color = "textcolor"
  6464.                         }
  6465.                         --
  6466.                         local colorpicker_open_picker_outline = utility:Create("Frame", {Vector2.new(4,17), colorpicker_open_frame}, {
  6467.                             Size = utility:Size(1, -27, 1, transp and -40 or -21, colorpicker_open_frame),
  6468.                             Position = utility:Position(0, 4, 0, 17, colorpicker_open_frame),
  6469.                             Color = theme.outline
  6470.                         }, colorpicker.holder.drawings)
  6471.                         --
  6472.                         library.colors[colorpicker_open_picker_outline] = {
  6473.                             Color = "outline"
  6474.                         }
  6475.                         --
  6476.                         local colorpicker_open_picker_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_picker_outline}, {
  6477.                             Size = utility:Size(1, -2, 1, -2, colorpicker_open_picker_outline),
  6478.                             Position = utility:Position(0, 1, 0, 1, colorpicker_open_picker_outline),
  6479.                             Color = theme.inline
  6480.                         }, colorpicker.holder.drawings)
  6481.                         --
  6482.                         library.colors[colorpicker_open_picker_inline] = {
  6483.                             Color = "inline"
  6484.                         }
  6485.                         --
  6486.                         local colorpicker_open_picker_bg = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_picker_inline}, {
  6487.                             Size = utility:Size(1, -2, 1, -2, colorpicker_open_picker_inline),
  6488.                             Position = utility:Position(0, 1, 0, 1, colorpicker_open_picker_inline),
  6489.                             Color = Color3.fromHSV(colorpicker.current[1],1,1)
  6490.                         }, colorpicker.holder.drawings);colorpicker.holder.background = colorpicker_open_picker_bg
  6491.                         --
  6492.                         local colorpicker_open_picker_image = utility:Create("Image", {Vector2.new(0,0), colorpicker_open_picker_bg}, {
  6493.                             Size = utility:Size(1, 0, 1, 0, colorpicker_open_picker_bg),
  6494.                             Position = utility:Position(0, 0, 0 , 0, colorpicker_open_picker_bg),
  6495.                         }, colorpicker.holder.drawings);colorpicker.holder.picker = colorpicker_open_picker_image
  6496.                         --
  6497.                         local colorpicker_open_picker_cursor = utility:Create("Image", {Vector2.new((colorpicker_open_picker_image.Size.X*colorpicker.current[2])-3,(colorpicker_open_picker_image.Size.Y*(1-colorpicker.current[3]))-3), colorpicker_open_picker_image}, {
  6498.                             Size = utility:Size(0, 6, 0, 6, colorpicker_open_picker_image),
  6499.                             Position = utility:Position(colorpicker.current[2], -3, 1-colorpicker.current[3] , -3, colorpicker_open_picker_image),
  6500.                         }, colorpicker.holder.drawings);colorpicker.holder.picker_cursor = colorpicker_open_picker_cursor
  6501.                         --
  6502.                         local colorpicker_open_huepicker_outline = utility:Create("Frame", {Vector2.new(colorpicker_open_frame.Size.X-19,17), colorpicker_open_frame}, {
  6503.                             Size = utility:Size(0, 15, 1, transp and -40 or -21, colorpicker_open_frame),
  6504.                             Position = utility:Position(1, -19, 0, 17, colorpicker_open_frame),
  6505.                             Color = theme.outline
  6506.                         }, colorpicker.holder.drawings)
  6507.                         --
  6508.                         library.colors[colorpicker_open_huepicker_outline] = {
  6509.                             Color = "outline"
  6510.                         }
  6511.                         --
  6512.                         local colorpicker_open_huepicker_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_huepicker_outline}, {
  6513.                             Size = utility:Size(1, -2, 1, -2, colorpicker_open_huepicker_outline),
  6514.                             Position = utility:Position(0, 1, 0, 1, colorpicker_open_huepicker_outline),
  6515.                             Color = theme.inline
  6516.                         }, colorpicker.holder.drawings)
  6517.                         --
  6518.                         library.colors[colorpicker_open_huepicker_inline] = {
  6519.                             Color = "inline"
  6520.                         }
  6521.                         --
  6522.                         local colorpicker_open_huepicker_image = utility:Create("Image", {Vector2.new(1,1), colorpicker_open_huepicker_inline}, {
  6523.                             Size = utility:Size(1, -2, 1, -2, colorpicker_open_huepicker_inline),
  6524.                             Position = utility:Position(0, 1, 0 , 1, colorpicker_open_huepicker_inline),
  6525.                         }, colorpicker.holder.drawings);colorpicker.holder.huepicker = colorpicker_open_huepicker_image
  6526.                         --
  6527.                         local colorpicker_open_huepicker_cursor_outline = utility:Create("Frame", {Vector2.new(-3,(colorpicker_open_huepicker_image.Size.Y*colorpicker.current[1])-3), colorpicker_open_huepicker_image}, {
  6528.                             Size = utility:Size(1, 6, 0, 6, colorpicker_open_huepicker_image),
  6529.                             Position = utility:Position(0, -3, colorpicker.current[1], -3, colorpicker_open_huepicker_image),
  6530.                             Color = theme.outline
  6531.                         }, colorpicker.holder.drawings);colorpicker.holder.huepicker_cursor[1] = colorpicker_open_huepicker_cursor_outline
  6532.                         --
  6533.                         library.colors[colorpicker_open_huepicker_cursor_outline] = {
  6534.                             Color = "outline"
  6535.                         }
  6536.                         --
  6537.                         local colorpicker_open_huepicker_cursor_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_huepicker_cursor_outline}, {
  6538.                             Size = utility:Size(1, -2, 1, -2, colorpicker_open_huepicker_cursor_outline),
  6539.                             Position = utility:Position(0, 1, 0, 1, colorpicker_open_huepicker_cursor_outline),
  6540.                             Color = theme.textcolor
  6541.                         }, colorpicker.holder.drawings);colorpicker.holder.huepicker_cursor[2] = colorpicker_open_huepicker_cursor_inline
  6542.                         --
  6543.                         library.colors[colorpicker_open_huepicker_cursor_inline] = {
  6544.                             Color = "textcolor"
  6545.                         }
  6546.                         --
  6547.                         local colorpicker_open_huepicker_cursor_color = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_huepicker_cursor_inline}, {
  6548.                             Size = utility:Size(1, -2, 1, -2, colorpicker_open_huepicker_cursor_inline),
  6549.                             Position = utility:Position(0, 1, 0, 1, colorpicker_open_huepicker_cursor_inline),
  6550.                             Color = Color3.fromHSV(colorpicker.current[1], 1, 1)
  6551.                         }, colorpicker.holder.drawings);colorpicker.holder.huepicker_cursor[3] = colorpicker_open_huepicker_cursor_color
  6552.                         --
  6553.                         if transp then
  6554.                             local colorpicker_open_transparency_outline = utility:Create("Frame", {Vector2.new(4,colorpicker_open_frame.Size.Y-19), colorpicker_open_frame}, {
  6555.                                 Size = utility:Size(1, -27, 0, 15, colorpicker_open_frame),
  6556.                                 Position = utility:Position(0, 4, 1, -19, colorpicker_open_frame),
  6557.                                 Color = theme.outline
  6558.                             }, colorpicker.holder.drawings)
  6559.                             --
  6560.                             library.colors[colorpicker_open_transparency_outline] = {
  6561.                                 Color = "outline"
  6562.                             }
  6563.                             --
  6564.                             local colorpicker_open_transparency_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_transparency_outline}, {
  6565.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_outline),
  6566.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_transparency_outline),
  6567.                                 Color = theme.inline
  6568.                             }, colorpicker.holder.drawings)
  6569.                             --
  6570.                             library.colors[colorpicker_open_transparency_inline] = {
  6571.                                 Color = "inline"
  6572.                             }
  6573.                             --
  6574.                             local colorpicker_open_transparency_bg = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_transparency_inline}, {
  6575.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_inline),
  6576.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_transparency_inline),
  6577.                                 Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  6578.                             }, colorpicker.holder.drawings);colorpicker.holder.transparencybg = colorpicker_open_transparency_bg
  6579.                             --
  6580.                             local colorpicker_open_transparency_image = utility:Create("Image", {Vector2.new(1,1), colorpicker_open_transparency_inline}, {
  6581.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_inline),
  6582.                                 Position = utility:Position(0, 1, 0 , 1, colorpicker_open_transparency_inline),
  6583.                             }, colorpicker.holder.drawings);colorpicker.holder.transparency = colorpicker_open_transparency_image
  6584.                             --
  6585.                             local colorpicker_open_transparency_cursor_outline = utility:Create("Frame", {Vector2.new((colorpicker_open_transparency_image.Size.X*(1-colorpicker.current[4]))-3,-3), colorpicker_open_transparency_image}, {
  6586.                                 Size = utility:Size(0, 6, 1, 6, colorpicker_open_transparency_image),
  6587.                                 Position = utility:Position(1-colorpicker.current[4], -3, 0, -3, colorpicker_open_transparency_image),
  6588.                                 Color = theme.outline
  6589.                             }, colorpicker.holder.drawings);colorpicker.holder.transparency_cursor[1] = colorpicker_open_transparency_cursor_outline
  6590.                             --
  6591.                             library.colors[colorpicker_open_transparency_cursor_outline] = {
  6592.                                 Color = "outline"
  6593.                             }
  6594.                             --
  6595.                             local colorpicker_open_transparency_cursor_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_transparency_cursor_outline}, {
  6596.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_cursor_outline),
  6597.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_transparency_cursor_outline),
  6598.                                 Color = theme.textcolor
  6599.                             }, colorpicker.holder.drawings);colorpicker.holder.transparency_cursor[2] = colorpicker_open_transparency_cursor_inline
  6600.                             --
  6601.                             library.colors[colorpicker_open_transparency_cursor_inline] = {
  6602.                                 Color = "textcolor"
  6603.                             }
  6604.                             --
  6605.                             local colorpicker_open_transparency_cursor_color = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_transparency_cursor_inline}, {
  6606.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_cursor_inline),
  6607.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_transparency_cursor_inline),
  6608.                                 Color = Color3.fromHSV(0, 0, 1 - colorpicker.current[4]),
  6609.                             }, colorpicker.holder.drawings);colorpicker.holder.transparency_cursor[3] = colorpicker_open_transparency_cursor_color
  6610.                             --
  6611.                             utility:LoadImage(colorpicker_open_transparency_image, "transp", "https://i.imgur.com/ncssKbH.png")
  6612.                         end
  6613.                         --
  6614.                         utility:LoadImage(colorpicker_open_picker_image, "valsat", "https://i.imgur.com/wpDRqVH.png")
  6615.                         utility:LoadImage(colorpicker_open_picker_cursor, "valsat_cursor", "https://raw.githubusercontent.com/mvonwalk/splix-assets/main/Images-cursor.png")
  6616.                         utility:LoadImage(colorpicker_open_huepicker_image, "hue", "https://i.imgur.com/iEOsHFv.png")
  6617.                         --
  6618.                         window.currentContent.frame = colorpicker_open_inline
  6619.                         window.currentContent.colorpicker = colorpicker
  6620.                     else
  6621.                         colorpicker.open = not colorpicker.open
  6622.                         --
  6623.                         for i,v in pairs(colorpicker.holder.drawings) do
  6624.                             utility:Remove(v)
  6625.                         end
  6626.                         --
  6627.                         colorpicker.holder.drawings = {}
  6628.                         colorpicker.holder.inline = nil
  6629.                         --
  6630.                         window.currentContent.frame = nil
  6631.                         window.currentContent.colorpicker = nil
  6632.                     end
  6633.                 else
  6634.                     if colorpicker.open then
  6635.                         colorpicker.open = not colorpicker.open
  6636.                         --
  6637.                         for i,v in pairs(colorpicker.holder.drawings) do
  6638.                             utility:Remove(v)
  6639.                         end
  6640.                         --
  6641.                         colorpicker.holder.drawings = {}
  6642.                         colorpicker.holder.inline = nil
  6643.                         --
  6644.                         window.currentContent.frame = nil
  6645.                         window.currentContent.colorpicker = nil
  6646.                     end
  6647.                 end
  6648.             elseif Input.UserInputType == Enum.UserInputType.MouseButton1 and colorpicker.open then
  6649.                 colorpicker.open = not colorpicker.open
  6650.                 --
  6651.                 for i,v in pairs(colorpicker.holder.drawings) do
  6652.                     utility:Remove(v)
  6653.                 end
  6654.                 --
  6655.                 colorpicker.holder.drawings = {}
  6656.                 colorpicker.holder.inline = nil
  6657.                 --
  6658.                 window.currentContent.frame = nil
  6659.                 window.currentContent.colorpicker = nil
  6660.             end
  6661.         end
  6662.         --
  6663.         library.ended[#library.ended + 1] = function(Input)
  6664.             if Input.UserInputType == Enum.UserInputType.MouseButton1 then
  6665.                 if colorpicker.holding.picker then
  6666.                     colorpicker.holding.picker = not colorpicker.holding.picker
  6667.                 end
  6668.                 if colorpicker.holding.huepicker then
  6669.                     colorpicker.holding.huepicker = not colorpicker.holding.huepicker
  6670.                 end
  6671.                 if colorpicker.holding.transparency then
  6672.                     colorpicker.holding.transparency = not colorpicker.holding.transparency
  6673.                 end
  6674.             end
  6675.         end
  6676.         --
  6677.         library.changed[#library.changed + 1] = function()
  6678.             if colorpicker.open and colorpicker.holding.picker or colorpicker.holding.huepicker or colorpicker.holding.transparency then
  6679.                 if window.isVisible then
  6680.                     colorpicker:Refresh()
  6681.                 else
  6682.                     if colorpicker.holding.picker then
  6683.                         colorpicker.holding.picker = not colorpicker.holding.picker
  6684.                     end
  6685.                     if colorpicker.holding.huepicker then
  6686.                         colorpicker.holding.huepicker = not colorpicker.holding.huepicker
  6687.                     end
  6688.                     if colorpicker.holding.transparency then
  6689.                         colorpicker.holding.transparency = not colorpicker.holding.transparency
  6690.                     end
  6691.                 end
  6692.             end
  6693.         end
  6694.         --
  6695.         if pointer and tostring(pointer) ~= "" and tostring(pointer) ~= " " and not library.pointers[tostring(pointer)] then
  6696.             library.pointers[tostring(pointer)] = colorpicker
  6697.         end
  6698.         --
  6699.         section.currentAxis = section.currentAxis + 15 + 4
  6700.         --
  6701.         function colorpicker:Colorpicker(info)
  6702.             local info = info or {}
  6703.             local cpinfo = info.info or info.Info or name
  6704.             local def = info.def or info.Def or info.default or info.Default or Color3.fromRGB(255, 0, 0)
  6705.             local transp = info.transparency or info.Transparency or info.transp or info.Transp or info.alpha or info.Alpha or nil
  6706.             local pointer = info.pointer or info.Pointer or info.flag or info.Flag or nil
  6707.             local callback = info.callback or info.callBack or info.Callback or info.CallBack or function()end
  6708.             --
  6709.             colorpicker.secondColorpicker = true
  6710.             --
  6711.             local hh, ss, vv = def:ToHSV()
  6712.             local colorpicker = {axis = colorpicker.axis, current = {hh, ss, vv , (transp or 0)}, holding = {picker = false, huepicker = false, transparency = false}, holder = {inline = nil, picker = nil, picker_cursor = nil, huepicker = nil, huepicker_cursor = {}, transparency = nil, transparencybg = nil, transparency_cursor = {}, drawings = {}}}
  6713.             --
  6714.             colorpicker_outline.Position = utility:Position(1, -(60+8), 0, colorpicker.axis, section.section_frame)
  6715.             utility:UpdateOffset(colorpicker_outline, {Vector2.new(section.section_frame.Size.X-(60+8),colorpicker.axis), section.section_frame})
  6716.             --
  6717.             local colorpicker_outline = utility:Create("Frame", {Vector2.new(section.section_frame.Size.X-(30+4),colorpicker.axis), section.section_frame}, {
  6718.                 Size = utility:Size(0, 30, 0, 15),
  6719.                 Position = utility:Position(1, -(30+4), 0, colorpicker.axis, section.section_frame),
  6720.                 Color = theme.outline,
  6721.                 Visible = page.open
  6722.             }, section.visibleContent)
  6723.             --
  6724.             library.colors[colorpicker_outline] = {
  6725.                 Color = "outline"
  6726.             }
  6727.             --
  6728.             local colorpicker_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_outline}, {
  6729.                 Size = utility:Size(1, -2, 1, -2, colorpicker_outline),
  6730.                 Position = utility:Position(0, 1, 0, 1, colorpicker_outline),
  6731.                 Color = theme.inline,
  6732.                 Visible = page.open
  6733.             }, section.visibleContent)
  6734.             --
  6735.             library.colors[colorpicker_inline] = {
  6736.                 Color = "inline"
  6737.             }
  6738.             --
  6739.             local colorpicker__transparency
  6740.             if transp then
  6741.                 colorpicker__transparency = utility:Create("Image", {Vector2.new(1,1), colorpicker_inline}, {
  6742.                     Size = utility:Size(1, -2, 1, -2, colorpicker_inline),
  6743.                     Position = utility:Position(0, 1, 0 , 1, colorpicker_inline),
  6744.                     Visible = page.open
  6745.                 }, section.visibleContent)
  6746.             end
  6747.             --
  6748.             local colorpicker_frame = utility:Create("Frame", {Vector2.new(1,1), colorpicker_inline}, {
  6749.                 Size = utility:Size(1, -2, 1, -2, colorpicker_inline),
  6750.                 Position = utility:Position(0, 1, 0, 1, colorpicker_inline),
  6751.                 Color = def,
  6752.                 Transparency = transp and (1 - transp) or 1,
  6753.                 Visible = page.open
  6754.             }, section.visibleContent)
  6755.             --
  6756.             local colorpicker__gradient = utility:Create("Image", {Vector2.new(0,0), colorpicker_frame}, {
  6757.                 Size = utility:Size(1, 0, 1, 0, colorpicker_frame),
  6758.                 Position = utility:Position(0, 0, 0 , 0, colorpicker_frame),
  6759.                 Transparency = 0.5,
  6760.                 Visible = page.open
  6761.             }, section.visibleContent)
  6762.             --
  6763.             if transp then
  6764.                 utility:LoadImage(colorpicker__transparency, "cptransp", "https://i.imgur.com/IIPee2A.png")
  6765.             end
  6766.             utility:LoadImage(colorpicker__gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  6767.             --
  6768.             function colorpicker:Set(color, transp_val)
  6769.                 if typeof(color) == "table" then
  6770.                     colorpicker.current = color
  6771.                     colorpicker_frame.Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  6772.                     colorpicker_frame.Transparency = 1 - colorpicker.current[4]
  6773.                     callback(Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3]), colorpicker.current[4])
  6774.                 elseif typeof(color) == "Color3" then
  6775.                     local h, s, v = color:ToHSV()
  6776.                     colorpicker.current = {h, s, v, (transp_val or 0)}
  6777.                     colorpicker_frame.Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  6778.                     colorpicker_frame.Transparency = 1 - colorpicker.current[4]
  6779.                     callback(Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3]), colorpicker.current[4])
  6780.                 end
  6781.             end
  6782.             --
  6783.             function colorpicker:Refresh()
  6784.                 local mouseLocation = utility:MouseLocation()
  6785.                 if colorpicker.open and colorpicker.holder.picker and colorpicker.holding.picker then
  6786.                     colorpicker.current[2] = math.clamp(mouseLocation.X - colorpicker.holder.picker.Position.X, 0, colorpicker.holder.picker.Size.X) / colorpicker.holder.picker.Size.X
  6787.                     --
  6788.                     colorpicker.current[3] = 1-(math.clamp(mouseLocation.Y - colorpicker.holder.picker.Position.Y, 0, colorpicker.holder.picker.Size.Y) / colorpicker.holder.picker.Size.Y)
  6789.                     --
  6790.                     colorpicker.holder.picker_cursor.Position = utility:Position(colorpicker.current[2], -3, 1-colorpicker.current[3] , -3, colorpicker.holder.picker)
  6791.                     --
  6792.                     utility:UpdateOffset(colorpicker.holder.picker_cursor, {Vector2.new((colorpicker.holder.picker.Size.X*colorpicker.current[2])-3,(colorpicker.holder.picker.Size.Y*(1-colorpicker.current[3]))-3), colorpicker.holder.picker})
  6793.                     --
  6794.                     if colorpicker.holder.transparencybg then
  6795.                         colorpicker.holder.transparencybg.Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  6796.                     end
  6797.                 elseif colorpicker.open and colorpicker.holder.huepicker and colorpicker.holding.huepicker then
  6798.                     colorpicker.current[1] = (math.clamp(mouseLocation.Y - colorpicker.holder.huepicker.Position.Y, 0, colorpicker.holder.huepicker.Size.Y) / colorpicker.holder.huepicker.Size.Y)
  6799.                     --
  6800.                     colorpicker.holder.huepicker_cursor[1].Position = utility:Position(0, -3, colorpicker.current[1], -3, colorpicker.holder.huepicker)
  6801.                     colorpicker.holder.huepicker_cursor[2].Position = utility:Position(0, 1, 0, 1, colorpicker.holder.huepicker_cursor[1])
  6802.                     colorpicker.holder.huepicker_cursor[3].Position = utility:Position(0, 1, 0, 1, colorpicker.holder.huepicker_cursor[2])
  6803.                     colorpicker.holder.huepicker_cursor[3].Color = Color3.fromHSV(colorpicker.current[1], 1, 1)
  6804.                     --
  6805.                     utility:UpdateOffset(colorpicker.holder.huepicker_cursor[1], {Vector2.new(-3,(colorpicker.holder.huepicker.Size.Y*colorpicker.current[1])-3), colorpicker.holder.huepicker})
  6806.                     --
  6807.                     colorpicker.holder.background.Color = Color3.fromHSV(colorpicker.current[1], 1, 1)
  6808.                     --
  6809.                     if colorpicker.holder.transparency_cursor and colorpicker.holder.transparency_cursor[3] then
  6810.                         colorpicker.holder.transparency_cursor[3].Color = Color3.fromHSV(0, 0, 1 - colorpicker.current[4])
  6811.                     end
  6812.                     --
  6813.                     if colorpicker.holder.transparencybg then
  6814.                         colorpicker.holder.transparencybg.Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  6815.                     end
  6816.                 elseif colorpicker.open and colorpicker.holder.transparency and colorpicker.holding.transparency then
  6817.                     colorpicker.current[4] = 1 - (math.clamp(mouseLocation.X - colorpicker.holder.transparency.Position.X, 0, colorpicker.holder.transparency.Size.X) / colorpicker.holder.transparency.Size.X)
  6818.                     --
  6819.                     colorpicker.holder.transparency_cursor[1].Position = utility:Position(1-colorpicker.current[4], -3, 0, -3, colorpicker.holder.transparency)
  6820.                     colorpicker.holder.transparency_cursor[2].Position = utility:Position(0, 1, 0, 1, colorpicker.holder.transparency_cursor[1])
  6821.                     colorpicker.holder.transparency_cursor[3].Position = utility:Position(0, 1, 0, 1, colorpicker.holder.transparency_cursor[2])
  6822.                     colorpicker.holder.transparency_cursor[3].Color = Color3.fromHSV(0, 0, 1 - colorpicker.current[4])
  6823.                     colorpicker_frame.Transparency = (1 - colorpicker.current[4])
  6824.                     --
  6825.                     utility:UpdateTransparency(colorpicker_frame, (1 - colorpicker.current[4]))
  6826.                     utility:UpdateOffset(colorpicker.holder.transparency_cursor[1], {Vector2.new((colorpicker.holder.transparency.Size.X*(1-colorpicker.current[4]))-3,-3), colorpicker.holder.transparency})
  6827.                     --
  6828.                     colorpicker.holder.background.Color = Color3.fromHSV(colorpicker.current[1], 1, 1)
  6829.                 end
  6830.                 --
  6831.                 colorpicker:Set(colorpicker.current)
  6832.             end
  6833.             --
  6834.             function colorpicker:Get()
  6835.                 return Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  6836.             end
  6837.             --
  6838.             library.began[#library.began + 1] = function(Input)
  6839.                 if Input.UserInputType == Enum.UserInputType.MouseButton1 and window.isVisible and colorpicker_outline.Visible then
  6840.                     if colorpicker.open and colorpicker.holder.inline and utility:MouseOverDrawing({colorpicker.holder.inline.Position.X, colorpicker.holder.inline.Position.Y, colorpicker.holder.inline.Position.X + colorpicker.holder.inline.Size.X, colorpicker.holder.inline.Position.Y + colorpicker.holder.inline.Size.Y}) then
  6841.                         if colorpicker.holder.picker and utility:MouseOverDrawing({colorpicker.holder.picker.Position.X - 2, colorpicker.holder.picker.Position.Y - 2, colorpicker.holder.picker.Position.X - 2 + colorpicker.holder.picker.Size.X + 4, colorpicker.holder.picker.Position.Y - 2 + colorpicker.holder.picker.Size.Y + 4}) then
  6842.                             colorpicker.holding.picker = true
  6843.                             colorpicker:Refresh()
  6844.                         elseif colorpicker.holder.huepicker and utility:MouseOverDrawing({colorpicker.holder.huepicker.Position.X - 2, colorpicker.holder.huepicker.Position.Y - 2, colorpicker.holder.huepicker.Position.X - 2 + colorpicker.holder.huepicker.Size.X + 4, colorpicker.holder.huepicker.Position.Y - 2 + colorpicker.holder.huepicker.Size.Y + 4}) then
  6845.                             colorpicker.holding.huepicker = true
  6846.                             colorpicker:Refresh()
  6847.                         elseif colorpicker.holder.transparency and utility:MouseOverDrawing({colorpicker.holder.transparency.Position.X - 2, colorpicker.holder.transparency.Position.Y - 2, colorpicker.holder.transparency.Position.X - 2 + colorpicker.holder.transparency.Size.X + 4, colorpicker.holder.transparency.Position.Y - 2 + colorpicker.holder.transparency.Size.Y + 4}) then
  6848.                             colorpicker.holding.transparency = true
  6849.                             colorpicker:Refresh()
  6850.                         end
  6851.                     elseif utility:MouseOverDrawing({section.section_frame.Position.X + (section.section_frame.Size.X - (30 + 4 + 2)), section.section_frame.Position.Y + colorpicker.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + colorpicker.axis + 15}) and not window:IsOverContent() then
  6852.                         if not colorpicker.open then
  6853.                             window:CloseContent()
  6854.                             colorpicker.open = not colorpicker.open
  6855.                             --
  6856.                             local colorpicker_open_outline = utility:Create("Frame", {Vector2.new(4,colorpicker.axis + 19), section.section_frame}, {
  6857.                                 Size = utility:Size(1, -8, 0, transp and 219 or 200, section.section_frame),
  6858.                                 Position = utility:Position(0, 4, 0, colorpicker.axis + 19, section.section_frame),
  6859.                                 Color = theme.outline
  6860.                             }, colorpicker.holder.drawings);colorpicker.holder.inline = colorpicker_open_outline
  6861.                             --
  6862.                             library.colors[colorpicker_open_outline] = {
  6863.                                 Color = "outline"
  6864.                             }
  6865.                             --
  6866.                             local colorpicker_open_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_outline}, {
  6867.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_outline),
  6868.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_outline),
  6869.                                 Color = theme.inline
  6870.                             }, colorpicker.holder.drawings)
  6871.                             --
  6872.                             library.colors[colorpicker_open_inline] = {
  6873.                                 Color = "inline"
  6874.                             }
  6875.                             --
  6876.                             local colorpicker_open_frame = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_inline}, {
  6877.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_inline),
  6878.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_inline),
  6879.                                 Color = theme.darkcontrast
  6880.                             }, colorpicker.holder.drawings)
  6881.                             --
  6882.                             library.colors[colorpicker_open_frame] = {
  6883.                                 Color = "darkcontrast"
  6884.                             }
  6885.                             --
  6886.                             local colorpicker_open_accent = utility:Create("Frame", {Vector2.new(0,0), colorpicker_open_frame}, {
  6887.                                 Size = utility:Size(1, 0, 0, 2, colorpicker_open_frame),
  6888.                                 Position = utility:Position(0, 0, 0, 0, colorpicker_open_frame),
  6889.                                 Color = theme.accent
  6890.                             }, colorpicker.holder.drawings)
  6891.                             --
  6892.                             library.colors[colorpicker_open_accent] = {
  6893.                                 Color = "accent"
  6894.                             }
  6895.                             --
  6896.                             local colorpicker_title = utility:Create("TextLabel", {Vector2.new(4,2), colorpicker_open_frame}, {
  6897.                                 Text = cpinfo,
  6898.                                 Size = theme.textsize,
  6899.                                 Font = theme.font,
  6900.                                 Color = theme.textcolor,
  6901.                                 OutlineColor = theme.textborder,
  6902.                                 Position = utility:Position(0, 4, 0, 2, colorpicker_open_frame),
  6903.                             }, colorpicker.holder.drawings)
  6904.                             --
  6905.                             library.colors[colorpicker_title] = {
  6906.                                 OutlineColor = "textborder",
  6907.                                 Color = "textcolor"
  6908.                             }
  6909.                             --
  6910.                             local colorpicker_open_picker_outline = utility:Create("Frame", {Vector2.new(4,17), colorpicker_open_frame}, {
  6911.                                 Size = utility:Size(1, -27, 1, transp and -40 or -21, colorpicker_open_frame),
  6912.                                 Position = utility:Position(0, 4, 0, 17, colorpicker_open_frame),
  6913.                                 Color = theme.outline
  6914.                             }, colorpicker.holder.drawings)
  6915.                             --
  6916.                             library.colors[colorpicker_open_picker_outline] = {
  6917.                                 Color = "outline"
  6918.                             }
  6919.                             --
  6920.                             local colorpicker_open_picker_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_picker_outline}, {
  6921.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_picker_outline),
  6922.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_picker_outline),
  6923.                                 Color = theme.inline
  6924.                             }, colorpicker.holder.drawings)
  6925.                             --
  6926.                             library.colors[colorpicker_open_picker_inline] = {
  6927.                                 Color = "inline"
  6928.                             }
  6929.                             --
  6930.                             local colorpicker_open_picker_bg = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_picker_inline}, {
  6931.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_picker_inline),
  6932.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_picker_inline),
  6933.                                 Color = Color3.fromHSV(colorpicker.current[1],1,1)
  6934.                             }, colorpicker.holder.drawings);colorpicker.holder.background = colorpicker_open_picker_bg
  6935.                             --
  6936.                             local colorpicker_open_picker_image = utility:Create("Image", {Vector2.new(0,0), colorpicker_open_picker_bg}, {
  6937.                                 Size = utility:Size(1, 0, 1, 0, colorpicker_open_picker_bg),
  6938.                                 Position = utility:Position(0, 0, 0 , 0, colorpicker_open_picker_bg),
  6939.                             }, colorpicker.holder.drawings);colorpicker.holder.picker = colorpicker_open_picker_image
  6940.                             --
  6941.                             local colorpicker_open_picker_cursor = utility:Create("Image", {Vector2.new((colorpicker_open_picker_image.Size.X*colorpicker.current[2])-3,(colorpicker_open_picker_image.Size.Y*(1-colorpicker.current[3]))-3), colorpicker_open_picker_image}, {
  6942.                                 Size = utility:Size(0, 6, 0, 6, colorpicker_open_picker_image),
  6943.                                 Position = utility:Position(colorpicker.current[2], -3, 1-colorpicker.current[3] , -3, colorpicker_open_picker_image),
  6944.                             }, colorpicker.holder.drawings);colorpicker.holder.picker_cursor = colorpicker_open_picker_cursor
  6945.                             --
  6946.                             local colorpicker_open_huepicker_outline = utility:Create("Frame", {Vector2.new(colorpicker_open_frame.Size.X-19,17), colorpicker_open_frame}, {
  6947.                                 Size = utility:Size(0, 15, 1, transp and -40 or -21, colorpicker_open_frame),
  6948.                                 Position = utility:Position(1, -19, 0, 17, colorpicker_open_frame),
  6949.                                 Color = theme.outline
  6950.                             }, colorpicker.holder.drawings)
  6951.                             --
  6952.                             library.colors[colorpicker_open_huepicker_outline] = {
  6953.                                 Color = "outline"
  6954.                             }
  6955.                             --
  6956.                             local colorpicker_open_huepicker_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_huepicker_outline}, {
  6957.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_huepicker_outline),
  6958.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_huepicker_outline),
  6959.                                 Color = theme.inline
  6960.                             }, colorpicker.holder.drawings)
  6961.                             --
  6962.                             library.colors[colorpicker_open_huepicker_inline] = {
  6963.                                 Color = "inline"
  6964.                             }
  6965.                             --
  6966.                             local colorpicker_open_huepicker_image = utility:Create("Image", {Vector2.new(1,1), colorpicker_open_huepicker_inline}, {
  6967.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_huepicker_inline),
  6968.                                 Position = utility:Position(0, 1, 0 , 1, colorpicker_open_huepicker_inline),
  6969.                             }, colorpicker.holder.drawings);colorpicker.holder.huepicker = colorpicker_open_huepicker_image
  6970.                             --
  6971.                             local colorpicker_open_huepicker_cursor_outline = utility:Create("Frame", {Vector2.new(-3,(colorpicker_open_huepicker_image.Size.Y*colorpicker.current[1])-3), colorpicker_open_huepicker_image}, {
  6972.                                 Size = utility:Size(1, 6, 0, 6, colorpicker_open_huepicker_image),
  6973.                                 Position = utility:Position(0, -3, colorpicker.current[1], -3, colorpicker_open_huepicker_image),
  6974.                                 Color = theme.outline
  6975.                             }, colorpicker.holder.drawings);colorpicker.holder.huepicker_cursor[1] = colorpicker_open_huepicker_cursor_outline
  6976.                             --
  6977.                             library.colors[colorpicker_open_huepicker_cursor_outline] = {
  6978.                                 Color = "outline"
  6979.                             }
  6980.                             --
  6981.                             local colorpicker_open_huepicker_cursor_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_huepicker_cursor_outline}, {
  6982.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_huepicker_cursor_outline),
  6983.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_huepicker_cursor_outline),
  6984.                                 Color = theme.textcolor
  6985.                             }, colorpicker.holder.drawings);colorpicker.holder.huepicker_cursor[2] = colorpicker_open_huepicker_cursor_inline
  6986.                             --
  6987.                             library.colors[colorpicker_open_huepicker_cursor_inline] = {
  6988.                                 Color = "textcolor"
  6989.                             }
  6990.                             --
  6991.                             local colorpicker_open_huepicker_cursor_color = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_huepicker_cursor_inline}, {
  6992.                                 Size = utility:Size(1, -2, 1, -2, colorpicker_open_huepicker_cursor_inline),
  6993.                                 Position = utility:Position(0, 1, 0, 1, colorpicker_open_huepicker_cursor_inline),
  6994.                                 Color = Color3.fromHSV(colorpicker.current[1], 1, 1)
  6995.                             }, colorpicker.holder.drawings);colorpicker.holder.huepicker_cursor[3] = colorpicker_open_huepicker_cursor_color
  6996.                             --
  6997.                             if transp then
  6998.                                 local colorpicker_open_transparency_outline = utility:Create("Frame", {Vector2.new(4,colorpicker_open_frame.Size.Y-19), colorpicker_open_frame}, {
  6999.                                     Size = utility:Size(1, -27, 0, 15, colorpicker_open_frame),
  7000.                                     Position = utility:Position(0, 4, 1, -19, colorpicker_open_frame),
  7001.                                     Color = theme.outline
  7002.                                 }, colorpicker.holder.drawings)
  7003.                                 --
  7004.                                 library.colors[colorpicker_open_transparency_outline] = {
  7005.                                     Color = "outline"
  7006.                                 }
  7007.                                 --
  7008.                                 local colorpicker_open_transparency_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_transparency_outline}, {
  7009.                                     Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_outline),
  7010.                                     Position = utility:Position(0, 1, 0, 1, colorpicker_open_transparency_outline),
  7011.                                     Color = theme.inline
  7012.                                 }, colorpicker.holder.drawings)
  7013.                                 --
  7014.                                 library.colors[colorpicker_open_transparency_inline] = {
  7015.                                     Color = "inline"
  7016.                                 }
  7017.                                 --
  7018.                                 local colorpicker_open_transparency_bg = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_transparency_inline}, {
  7019.                                     Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_inline),
  7020.                                     Position = utility:Position(0, 1, 0, 1, colorpicker_open_transparency_inline),
  7021.                                     Color = Color3.fromHSV(colorpicker.current[1], colorpicker.current[2], colorpicker.current[3])
  7022.                                 }, colorpicker.holder.drawings);colorpicker.holder.transparencybg = colorpicker_open_transparency_bg
  7023.                                 --
  7024.                                 local colorpicker_open_transparency_image = utility:Create("Image", {Vector2.new(1,1), colorpicker_open_transparency_inline}, {
  7025.                                     Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_inline),
  7026.                                     Position = utility:Position(0, 1, 0 , 1, colorpicker_open_transparency_inline),
  7027.                                 }, colorpicker.holder.drawings);colorpicker.holder.transparency = colorpicker_open_transparency_image
  7028.                                 --
  7029.                                 local colorpicker_open_transparency_cursor_outline = utility:Create("Frame", {Vector2.new((colorpicker_open_transparency_image.Size.X*(1-colorpicker.current[4]))-3,-3), colorpicker_open_transparency_image}, {
  7030.                                     Size = utility:Size(0, 6, 1, 6, colorpicker_open_transparency_image),
  7031.                                     Position = utility:Position(1-colorpicker.current[4], -3, 0, -3, colorpicker_open_transparency_image),
  7032.                                     Color = theme.outline
  7033.                                 }, colorpicker.holder.drawings);colorpicker.holder.transparency_cursor[1] = colorpicker_open_transparency_cursor_outline
  7034.                                 --
  7035.                                 library.colors[colorpicker_open_transparency_cursor_outline] = {
  7036.                                     Color = "outline"
  7037.                                 }
  7038.                                 --
  7039.                                 local colorpicker_open_transparency_cursor_inline = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_transparency_cursor_outline}, {
  7040.                                     Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_cursor_outline),
  7041.                                     Position = utility:Position(0, 1, 0, 1, colorpicker_open_transparency_cursor_outline),
  7042.                                     Color = theme.textcolor
  7043.                                 }, colorpicker.holder.drawings);colorpicker.holder.transparency_cursor[2] = colorpicker_open_transparency_cursor_inline
  7044.                                 --
  7045.                                 library.colors[colorpicker_open_transparency_cursor_inline] = {
  7046.                                     Color = "textcolor"
  7047.                                 }
  7048.                                 --
  7049.                                 local colorpicker_open_transparency_cursor_color = utility:Create("Frame", {Vector2.new(1,1), colorpicker_open_transparency_cursor_inline}, {
  7050.                                     Size = utility:Size(1, -2, 1, -2, colorpicker_open_transparency_cursor_inline),
  7051.                                     Position = utility:Position(0, 1, 0, 1, colorpicker_open_transparency_cursor_inline),
  7052.                                     Color = Color3.fromHSV(0, 0, 1 - colorpicker.current[4]),
  7053.                                 }, colorpicker.holder.drawings);colorpicker.holder.transparency_cursor[3] = colorpicker_open_transparency_cursor_color
  7054.                                 --
  7055.                                 utility:LoadImage(colorpicker_open_transparency_image, "transp", "https://i.imgur.com/ncssKbH.png")
  7056.                                 --utility:LoadImage(colorpicker_open_transparency_image, "transp", "https://i.imgur.com/VcMAYjL.png")
  7057.                             end
  7058.                             --
  7059.                             utility:LoadImage(colorpicker_open_picker_image, "valsat", "https://i.imgur.com/wpDRqVH.png")
  7060.                             utility:LoadImage(colorpicker_open_picker_cursor, "valsat_cursor", "https://raw.githubusercontent.com/mvonwalk/splix-assets/main/Images-cursor.png")
  7061.                             utility:LoadImage(colorpicker_open_huepicker_image, "hue", "https://i.imgur.com/iEOsHFv.png")
  7062.                             --
  7063.                             window.currentContent.frame = colorpicker_open_inline
  7064.                             window.currentContent.colorpicker = colorpicker
  7065.                         else
  7066.                             colorpicker.open = not colorpicker.open
  7067.                             --
  7068.                             for i,v in pairs(colorpicker.holder.drawings) do
  7069.                                 utility:Remove(v)
  7070.                             end
  7071.                             --
  7072.                             colorpicker.holder.drawings = {}
  7073.                             colorpicker.holder.inline = nil
  7074.                             --
  7075.                             window.currentContent.frame = nil
  7076.                             window.currentContent.colorpicker = nil
  7077.                         end
  7078.                     else
  7079.                         if colorpicker.open then
  7080.                             colorpicker.open = not colorpicker.open
  7081.                             --
  7082.                             for i,v in pairs(colorpicker.holder.drawings) do
  7083.                                 utility:Remove(v)
  7084.                             end
  7085.                             --
  7086.                             colorpicker.holder.drawings = {}
  7087.                             colorpicker.holder.inline = nil
  7088.                             --
  7089.                             window.currentContent.frame = nil
  7090.                             window.currentContent.colorpicker = nil
  7091.                         end
  7092.                     end
  7093.                 elseif Input.UserInputType == Enum.UserInputType.MouseButton1 and colorpicker.open then
  7094.                     colorpicker.open = not colorpicker.open
  7095.                     --
  7096.                     for i,v in pairs(colorpicker.holder.drawings) do
  7097.                         utility:Remove(v)
  7098.                     end
  7099.                     --
  7100.                     colorpicker.holder.drawings = {}
  7101.                     colorpicker.holder.inline = nil
  7102.                     --
  7103.                     window.currentContent.frame = nil
  7104.                     window.currentContent.colorpicker = nil
  7105.                 end
  7106.             end
  7107.             --
  7108.             library.ended[#library.ended + 1] = function(Input)
  7109.                 if Input.UserInputType == Enum.UserInputType.MouseButton1 then
  7110.                     if colorpicker.holding.picker then
  7111.                         colorpicker.holding.picker = not colorpicker.holding.picker
  7112.                     end
  7113.                     if colorpicker.holding.huepicker then
  7114.                         colorpicker.holding.huepicker = not colorpicker.holding.huepicker
  7115.                     end
  7116.                     if colorpicker.holding.transparency then
  7117.                         colorpicker.holding.transparency = not colorpicker.holding.transparency
  7118.                     end
  7119.                 end
  7120.             end
  7121.             --
  7122.             library.changed[#library.changed + 1] = function()
  7123.                 if colorpicker.open and colorpicker.holding.picker or colorpicker.holding.huepicker or colorpicker.holding.transparency then
  7124.                     if window.isVisible then
  7125.                         colorpicker:Refresh()
  7126.                     else
  7127.                         if colorpicker.holding.picker then
  7128.                             colorpicker.holding.picker = not colorpicker.holding.picker
  7129.                         end
  7130.                         if colorpicker.holding.huepicker then
  7131.                             colorpicker.holding.huepicker = not colorpicker.holding.huepicker
  7132.                         end
  7133.                         if colorpicker.holding.transparency then
  7134.                             colorpicker.holding.transparency = not colorpicker.holding.transparency
  7135.                         end
  7136.                     end
  7137.                 end
  7138.             end
  7139.             --
  7140.             if pointer and tostring(pointer) ~= "" and tostring(pointer) ~= " " and not library.pointers[tostring(pointer)] then
  7141.                 library.pointers[tostring(pointer)] = keybind
  7142.             end
  7143.             --
  7144.             return colorpicker
  7145.         end
  7146.         --
  7147.         return colorpicker
  7148.     end
  7149.     --
  7150.     function sections:List(info)
  7151.         local info = info or {}
  7152.         local max = info.max or info.Max or info.maximum or info.Maximum or 8
  7153.         local current = info.def or info.Default or info.current or info.Current or 1
  7154.         local options = info.options or info.Options or {"1", "2", "3"}
  7155.         --
  7156.         local window = self.window
  7157.         local page = self.page
  7158.         local section = self
  7159.         local pointer = info.pointer or info.Pointer or info.flag or info.Flag or nil
  7160.         --
  7161.         local list = {axis = section.currentAxis, options = options, max = max, current = current, scrollingindex = 0, scrolling = {false, nil}, buttons = {}}
  7162.         --
  7163.         local list_outline = utility:Create("Frame", {Vector2.new(4,list.axis), section.section_frame}, {
  7164.             Size = utility:Size(1, -8, 0, ((list.max * 20) + 4), section.section_frame),
  7165.             Position = utility:Position(0, 4, 0, list.axis, section.section_frame),
  7166.             Color = theme.outline,
  7167.             Visible = page.open
  7168.         }, section.visibleContent)
  7169.         --
  7170.         library.colors[list_outline] = {
  7171.             Color = "outline"
  7172.         }
  7173.         --
  7174.         local list_inline = utility:Create("Frame", {Vector2.new(1,1), list_outline}, {
  7175.             Size = utility:Size(1, -2, 1, -2, list_outline),
  7176.             Position = utility:Position(0, 1, 0, 1, list_outline),
  7177.             Color = theme.inline,
  7178.             Visible = page.open
  7179.         }, section.visibleContent)
  7180.         --
  7181.         library.colors[list_inline] = {
  7182.             Color = "inline"
  7183.         }
  7184.         --
  7185.         local list_frame = utility:Create("Frame", {Vector2.new(1,1), list_inline}, {
  7186.             Size = utility:Size(1, -2, 1, -2, list_inline),
  7187.             Position = utility:Position(0, 1, 0, 1, list_inline),
  7188.             Color = theme.lightcontrast,
  7189.             Visible = page.open
  7190.         }, section.visibleContent)
  7191.         --
  7192.         library.colors[list_frame] = {
  7193.             Color = "lightcontrast"
  7194.         }
  7195.         --
  7196.         local list_scroll = utility:Create("Frame", {Vector2.new(list_frame.Size.X - 8,0), list_frame}, {
  7197.             Size = utility:Size(0, 8, 1, 0, list_frame),
  7198.             Position = utility:Position(1, -8, 0, 0, list_frame),
  7199.             Color = theme.darkcontrast,
  7200.             Visible = page.open
  7201.         }, section.visibleContent)
  7202.         --
  7203.         library.colors[list_scroll] = {
  7204.             Color = "darkcontrast"
  7205.         }
  7206.         --
  7207.         local list_bar = utility:Create("Frame", {Vector2.new(1,1), list_scroll}, {
  7208.             Size = utility:Size(1, -2, (list.max / #list.options), -2, list_scroll),
  7209.             Position = utility:Position(0, 1, 0, 1, list_scroll),
  7210.             Color = theme.accent,
  7211.             Visible = page.open
  7212.         }, section.visibleContent)
  7213.         --
  7214.         library.colors[list_bar] = {
  7215.             Color = "accent"
  7216.         }
  7217.         --
  7218.         local list_gradient = utility:Create("Image", {Vector2.new(0,0), list_frame}, {
  7219.             Size = utility:Size(1, 0, 1, 0, list_frame),
  7220.             Position = utility:Position(0, 0, 0 , 0, list_frame),
  7221.             Transparency = 0.5,
  7222.             Visible = page.open
  7223.         }, section.visibleContent)
  7224.         --
  7225.         for i=1, list.max do
  7226.             local config_title = utility:Create("TextLabel", {Vector2.new(list_frame.Size.X/2,2 + (20 * (i-1))), list_frame}, {
  7227.                 Text = list.options[i] or "",
  7228.                 Size = theme.textsize,
  7229.                 Font = theme.font,
  7230.                 Color = i == 1 and theme.accent or theme.textcolor,
  7231.                 OutlineColor = theme.textborder,
  7232.                 Center = true,
  7233.                 Position = utility:Position(0.5, 0, 0, 2 + (20 * (i-1)), list_frame),
  7234.                 Visible = page.open
  7235.             }, section.visibleContent)
  7236.             --
  7237.             library.colors[config_title] = {
  7238.                 OutlineColor = "textborder",
  7239.                 Color = i == 1 and "accent" or "textcolor"
  7240.             }
  7241.             --
  7242.             list.buttons[i] = config_title
  7243.         end
  7244.         --
  7245.         utility:LoadImage(list_gradient, "gradient", "https://i.imgur.com/5hmlrjX.png")
  7246.         --
  7247.         function list:UpdateScroll()
  7248.             if (#list.options - list.max) > 0 then
  7249.                 list_bar.Size = utility:Size(1, -2, (list.max / #list.options), -2, list_scroll)
  7250.                 list_bar.Position = utility:Position(0, 1, 0, 1 + ((((list_scroll.Size.Y - 2) - list_bar.Size.Y) / (#list.options - list.max)) * list.scrollingindex), list_scroll)
  7251.                 list_bar.Transparency = 1
  7252.                 utility:UpdateTransparency(list_bar, 1)
  7253.                 utility:UpdateOffset(list_bar, {Vector2.new(1, 1 + ((((list_scroll.Size.Y - 2) - list_bar.Size.Y) / (#list.options - list.max)) * list.scrollingindex)), list_scroll})
  7254.             else
  7255.                 list.scrollingindex = 0
  7256.                 list_bar.Transparency = 0
  7257.                 utility:UpdateTransparency(list_bar, 0)
  7258.             end
  7259.             --
  7260.             list:Refresh()
  7261.         end
  7262.         --
  7263.         function list:Refresh()
  7264.             for Index, Value in pairs(list.buttons) do
  7265.                 Value.Text = list.options[Index + list.scrollingindex] or ""
  7266.                 Value.Color = (Index + list.scrollingindex) == list.current and theme.accent or theme.textcolor
  7267.                 --
  7268.                 library.colors[Value] = {
  7269.                     OutlineColor = "textborder",
  7270.                     Color = (Index + list.scrollingindex) == list.current and "accent" or "textcolor"
  7271.                 }
  7272.             end
  7273.         end
  7274.         --
  7275.         function list:Get()
  7276.             return list.options[list.current + list.scrollingindex]
  7277.         end
  7278.         --
  7279.         function list:Set(current)
  7280.             list.current = current
  7281.             list:Refresh()
  7282.         end
  7283.         --
  7284.         library.began[#library.began + 1] = function(Input)
  7285.             if Input.UserInputType == Enum.UserInputType.MouseButton1 and list_outline.Visible and window.isVisible then
  7286.                 if utility:MouseOverDrawing({list_bar.Position.X, list_bar.Position.Y, list_bar.Position.X + list_bar.Size.X, list_bar.Position.Y + list_bar.Size.Y}) then
  7287.                     list.scrolling = {true, (utility:MouseLocation().Y - list_bar.Position.Y)}
  7288.                 elseif utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + list.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + list.axis + ((list.max * 20) + 4)}) and not window:IsOverContent() then
  7289.                     for i=1, list.max do
  7290.                         if utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + list.axis + 2 + (20 * (i-1)), section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + list.axis + 2 + (20 * (i-1)) + 20}) then
  7291.                             list.current = (i + list.scrollingindex)
  7292.                             list:Refresh()
  7293.                         end
  7294.                     end
  7295.                 end
  7296.             end
  7297.         end
  7298.         --
  7299.         library.ended[#library.ended + 1] = function(Input)
  7300.             if list.scrolling[1] and Input.UserInputType == Enum.UserInputType.MouseButton1 then
  7301.                 list.scrolling = {false, nil}
  7302.             end
  7303.         end
  7304.         --
  7305.         library.changed[#library.changed + 1] = function(Input)
  7306.             if list.scrolling[1] then
  7307.                 local MouseLocation = utility:MouseLocation()
  7308.                 local Position = math.clamp((MouseLocation.Y - list_scroll.Position.Y - list.scrolling[2]), 0, ((list_scroll.Size.Y - list_bar.Size.Y)))
  7309.                 --
  7310.                 list.scrollingindex = math.round((((Position + list_scroll.Position.Y) - list_scroll.Position.Y) / ((list_scroll.Size.Y - list_bar.Size.Y))) * (#list.options - list.max))
  7311.                 list:UpdateScroll()
  7312.             end
  7313.         end
  7314.         --
  7315.         utility:Connection(mouse.WheelForward,function()
  7316.             if page.open and list_bar.Visible and utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + list.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + list.axis + ((list.max * 20) + 4)}) and not window:IsOverContent() then
  7317.                 list.scrollingindex = math.clamp(list.scrollingindex - 1, 0, #list.options - list.max)
  7318.                 list:UpdateScroll()
  7319.             end
  7320.         end)
  7321.         --
  7322.         utility:Connection(mouse.WheelBackward,function()
  7323.             if page.open and list_bar.Visible and utility:MouseOverDrawing({section.section_frame.Position.X, section.section_frame.Position.Y + list.axis, section.section_frame.Position.X + section.section_frame.Size.X, section.section_frame.Position.Y + list.axis + ((list.max * 20) + 4)}) and not window:IsOverContent() then
  7324.                 list.scrollingindex = math.clamp(list.scrollingindex + 1, 0, #list.options - list.max)
  7325.                 list:UpdateScroll()
  7326.             end
  7327.         end)
  7328.         --
  7329.         if pointer and tostring(pointer) ~= "" and tostring(pointer) ~= " " and not library.pointers[tostring(pointer)] then
  7330.             library.pointers[tostring(pointer)] = list
  7331.         end
  7332.         --
  7333.         list:UpdateScroll()
  7334.         --
  7335.         section.currentAxis = section.currentAxis + ((list.max * 20) + 4) + 4
  7336.         --
  7337.         return list
  7338.     end
  7339. end
  7340. -- // Init
  7341. --[[do
  7342.     local title_string = "Splix - Private | %A, %B"
  7343.     local day = os.date(" %d", os.time())
  7344.     local second_string = ", %Y."
  7345.     title_string = os.date(title_string, os.time())..day..utility:GetSubPrefix(day)..os.date(second_string, os.time())
  7346.     --
  7347.     local lib = library:New({name = title_string})
  7348.     --
  7349.     local aimbot = lib:Page({name = "Aimbot"})
  7350.     local visuals = lib:Page({name = "Visuals"})
  7351.     local exploits = lib:Page({name = "Exploits"})
  7352.     local misc = lib:Page({name = "Miscellaneous"})
  7353.     --
  7354.     local aimbot_main = aimbot:Section({name = "Main"})
  7355.     local aimbot_br = aimbot:Section({name = "Bullet Redirection",side = "right"})
  7356.     local aimbot_m, aimbot_mi, aimbot_s = aimbot:MultiSection({sections = {"Main", "Misc", "Settings"}, side = "left"})
  7357.     --
  7358.     local visuals_team, visuals_enemies, visuals_allies = visuals:MultiSection({sections = {"Team", "Enemies", "Allies"}, side = "left"})
  7359.     local visuals_player = visuals:Section({name = "Players"})
  7360.     local visuals_miscellaneous = visuals:Section({name = "Miscellaneous",side = "right"})
  7361.     --
  7362.     local exploits_main = exploits:Section({name = "Main"})
  7363.     local exploits_skin = exploits:Section({name = "Skin Changer",side = "right"})
  7364.     local exploits_freeze = exploits:Section({name = "Freeze Players"})
  7365.     --
  7366.     local misc_main = misc:Section({name = "Main"})
  7367.     local misc_adj = misc:Section({name = "Adjustments",side = "right"})
  7368.     --
  7369.     local asd = aimbot_m:Toggle({name = "Aimbot Toggle", def = true, pointer = "aimbot_toggle"})
  7370.     asd:Colorpicker({info = "Aimbot FOV Color", def = Color3.fromRGB(0,255,150), transparency = 0.5})
  7371.     asd:Colorpicker({info = "Aimbot Outline FOV Color", def = Color3.fromRGB(45,45,45), transparency = 0.25})
  7372.     aimbot_s:Label({name = "Some of the features\nhere, May be unsafe.\nUse with caution."})
  7373.     aimbot_mi:Colorpicker({info = "Aimbot FOV Color", def = Color3.fromRGB(0,255,150), transparency = 0.5})
  7374.     aimbot_mi:Multibox({name = "Aimbot Hitpart", min = 1, options = {"Head", "Torso", "Arms", "Legs"}, def = {"Head", "Torso"}})
  7375.     aimbot_s:Dropdown({name = "Aimbot Hitpart", options = {"Head", "Torso", "Arms", "Legs"}, def = "Head"})
  7376.     --
  7377.     aimbot_main:Label({name = "Some of the features\nhere, May be unsafe.\nUse with caution."})
  7378.     local aimbot_toggle = aimbot_main:Toggle({name = "Aimbot Toggle", def = true, pointer = "aimbot_toggle"})
  7379.     aimbot_toggle:Colorpicker({info = "Aimbot FOV Color", def = Color3.fromRGB(0,255,150), transparency = 0.5})
  7380.     aimbot_toggle:Colorpicker({info = "Aimbot Outline FOV Color", def = Color3.fromRGB(45,45,45), transparency = 0.25})
  7381.     aimbot_main:Colorpicker({name = "Locking Color", info = "Aimbot Locked Player Color", def = Color3.fromRGB(205,50,50)}):Colorpicker({info = "Aimbot Outline FOV Color", def = Color3.fromRGB(45,45,45), transparency = 0.25})
  7382.     aimbot_main:Toggle({name = "Aimbot Visible", def = true})
  7383.     aimbot_main:Slider({name = "Watermark X Offset", min = 0, max = utility:GetScreenSize().X, def = 100, decimals = 1, callback = function(value)
  7384.         if lib.watermark and lib.watermark.outline then
  7385.             lib.watermark:Update("Offset", Vector2.new(value, lib.watermark.outline.Position.Y))
  7386.         end
  7387.     end})
  7388.     aimbot_main:Slider({name = "Watermark Y Offset", min = 0, max = utility:GetScreenSize().Y, def = 38/2-10, decimals = 1, callback = function(value)
  7389.         if lib.watermark and lib.watermark.outline then
  7390.             lib.watermark:Update("Offset", Vector2.new(lib.watermark.outline.Position.X, value))
  7391.         end
  7392.     end})
  7393.     aimbot_main:Slider({name = "Aimbot Field Of View", min = 0, max = 1000, def = 125, suffix = "°"})
  7394.     aimbot_main:Toggle({name = "Aimbot Toggle", def = true, pointer = "aimbot_toggle"}):Keybind({callback = function(input, active) print(active) end})
  7395.     aimbot_main:Keybind({name = "Aimbot Keybind", mode = "Toggle", callback = function(input, active) print(active) end})
  7396.     aimbot_main:Keybind({name = "Aimbot Keybind", mode = "On Hold", callback = function(input, active) print(active) end})
  7397.     aimbot_main:Multibox({name = "Aimbot Hitpart", min = 1, options = {"Head", "Torso", "Arms", "Legs"}, def = {"Head", "Torso"}})
  7398.     aimbot_main:Dropdown({name = "Aimbot Hitpart", options = {"Head", "Torso", "Arms", "Legs"}, def = "Head"})
  7399.     --
  7400.     aimbot_br:Toggle({name = "Bullet Redirection Toggle", def = true})
  7401.     aimbot_br:Slider({name = "B.R. Hitchance", min = 0, max = 100, def = 65, suffix = "%"})
  7402.     aimbot_br:Slider({name = "B.R. Accuracy", min = 0, max = 100, def = 90, suffix = "%"})
  7403.     --
  7404.     visuals_team:Toggle({name = "Draw Boxes", def = true})
  7405.     visuals_team:Toggle({name = "Draw Names", def = true})
  7406.     visuals_team:Toggle({name = "Draw Health", def = true})
  7407.     --
  7408.     visuals_enemies:Toggle({name = "Draw Boxes", def = true})
  7409.     visuals_enemies:Toggle({name = "Draw Names", def = true})
  7410.     visuals_enemies:Toggle({name = "Draw Health", def = true})
  7411.     --
  7412.     visuals_allies:Toggle({name = "Draw Boxes", def = true})
  7413.     visuals_allies:Toggle({name = "Draw Names", def = true})
  7414.     visuals_allies:Toggle({name = "Draw Health", def = true})
  7415.  
  7416.     --
  7417.     visuals_miscellaneous:Toggle({name = "Draw Field Of View"})
  7418.     visuals_miscellaneous:Toggle({name = "Draw Server Position"})
  7419.     --
  7420.     exploits_main:Toggle({name = "God Mode"})
  7421.     exploits_main:Toggle({name = "Bypass Suppresion"})
  7422.     exploits_main:Toggle({name = "Bypass Fall"})
  7423.     exploits_main:Button({name = "Stress Server"})
  7424.     exploits_main:Button({name = "Crash Server"})
  7425.     --
  7426.     exploits_freeze:Toggle({name = "Freeze Toggle"})
  7427.     exploits_freeze:Toggle({name = "Freeze On Shoot"})
  7428.     exploits_freeze:Slider({name = "Freeze Interval", min = 1, max = 3000, def = 1000, suffix = "ms"})
  7429.     --
  7430.     exploits_skin:Toggle({name = "Custom Skin"})
  7431.     exploits_skin:Slider({name = "Skin Offset Vertical", min = 0, max = 4, def = 1, decimals = 0.01})
  7432.     exploits_skin:Slider({name = "Skin Offset Horizontal", min = 0, max = 4, def = 1, decimals = 0.01})
  7433.     exploits_skin:Slider({name = "Skin Studs Vertical", min = 0, max = 4, def = 1, decimals = 0.01})
  7434.     exploits_skin:Slider({name = "Skin Studs Horizontal", min = 0, max = 4, def = 1, decimals = 0.01})
  7435.     --
  7436.     misc_main:Toggle({name = "Fly"})
  7437.     misc_main:Toggle({name = "Auto Spot", def = true})
  7438.     misc_main:Toggle({name = "Hit Logs", def = true})
  7439.     misc_main:Toggle({name = "Chat Spam"})
  7440.     misc_main:Toggle({name = "Auto Vote"})
  7441.     misc_main:Dropdown({name = "Auto Vote Options", options = {"Yes", "No"}, def = "Yes"})
  7442.     --
  7443.     misc_adj:Toggle({name = "Walk Speed"})
  7444.     misc_adj:Toggle({name = "Jump Height"})
  7445.     misc_adj:Slider({name = "Walk Speed", min = 16, max = 200, def = 16})
  7446.     misc_adj:Slider({name = "Jump Height", min = 50, max = 400, def = 50})
  7447.     --
  7448.     lib:Initialize()
  7449. end]]
  7450. --
  7451. return library, utility, library.pointers, theme
Add Comment
Please, Sign In to add comment