SHARE
TWEET

Untitled

MrBrickYT Nov 19th, 2019 (edited) 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. local cpalpha = 0;
  3. local library = { };
  4.  
  5. --custom functions used for all the options
  6.  
  7. --//Jans UI Library\\--
  8.  
  9.  
  10.  
  11. --drag function
  12. local function updateDrag(input)
  13.     local delta = input.Position - dragStart
  14.     gui.Position = UDim2.new(0, startPos.X.Offset + delta.X, 0, startPos.Y.Offset + delta.Y)
  15. end
  16.  
  17. --color picker
  18. local function updateHueSat(input, obj, hue, sat)
  19.     hue = (obj.AbsoluteSize.X-(input.Position.X-obj.AbsolutePosition.X))/obj.AbsoluteSize.X
  20.     sat = (obj.AbsoluteSize.Y-(input.Position.Y-obj.AbsolutePosition.Y))/obj.AbsoluteSize.Y
  21.     return (input.Position.X-obj.AbsolutePosition.X)/obj.AbsoluteSize.X, (input.Position.Y-obj.AbsolutePosition.Y)/obj.AbsoluteSize.Y, hue, sat
  22. end
  23.  
  24. local function updateValue(input, obj, val)
  25.     val = (obj.AbsoluteSize.Y-(input.Position.Y-obj.AbsolutePosition.Y))/obj.AbsoluteSize.Y
  26.     return (input.Position.Y-obj.AbsolutePosition.Y)/obj.AbsoluteSize.Y, val
  27. end
  28.  
  29. local function updateAlpha(input, obj, alpha)
  30.     alpha = (obj.AbsoluteSize.X-(input.Position.X-obj.AbsolutePosition.X))/obj.AbsoluteSize.X
  31.     return (input.Position.X-obj.AbsolutePosition.X)/obj.AbsoluteSize.X, alpha
  32. end
  33.  
  34. local function rgbToHsv(r, g, b)
  35.     r, g, b = r / 255, g / 255, b / 255
  36.     local max, min = math.max(r, g, b), math.min(r, g, b)
  37.     local h, s, v
  38.     v = max
  39.    
  40.     local d = max - min
  41.     if max == 0 then
  42.         s = 0
  43.     else
  44.         s = d / max
  45.     end
  46.    
  47.     if max == min then
  48.         h = 0 -- achromatic
  49.     else
  50.         if max == r then
  51.             h = (g - b) / d
  52.             if g < b then
  53.                 h = h + 6
  54.             end
  55.         elseif max == g then
  56.             h = (b - r) / d + 2
  57.         elseif max == b then
  58.             h = (r - g) / d + 4
  59.         end
  60.         h = h / 6
  61.     end
  62.  
  63.     return h, s, v
  64. end
  65.  
  66. --drag function and color picker
  67. UserInputService.InputChanged:connect(function(input)
  68.     if input == dragInput and dragging then
  69.         updateDrag(input)
  70.     end
  71.     if input.UserInputType == Enum.UserInputType.MouseMovement then
  72.         if cppicking then
  73.             x, y, cphue, cpsat = updateHueSat(input, cpt.HueSat, cphue, cpsat)
  74.             if x <= 0 then
  75.                 x = 0
  76.                 cphue = 1
  77.             end
  78.             if x >= 1 then
  79.                 x = 1
  80.                 cphue = 0
  81.             end
  82.             if y <= 0 then
  83.                 y = 0
  84.                 cpsat = 1
  85.             end
  86.             if y >= 1 then
  87.                 y = 1
  88.                 cpsat = 0
  89.             end
  90.             cpt.pointer.Position = UDim2.new(x,0,y,0)
  91.             cpt.color = Color3.fromHSV(cphue,cpsat,cpval)
  92.             cpt.visualize.BackgroundColor3 = cpt.color
  93.             cpt.Alpha.ImageColor3 = cpt.color
  94.             return cpf(cpt.color, cpt.alpha)
  95.         end
  96.         if cppickingVal then
  97.             y, cpval = updateValue(input, cpt.Value, cpval)
  98.             if y <= 0 then
  99.                 y = 0
  100.                 cpval = 1
  101.             end
  102.             if y >= 1 then
  103.                 y = 1
  104.                 cpval = 0
  105.             end
  106.             cpt.pointer2.Position = UDim2.new(1,-10,y,0)
  107.             cpt.color = Color3.fromHSV(cphue,cpsat,cpval)
  108.             cpt.visualize.BackgroundColor3 = cpt.color
  109.             cpt.Alpha.ImageColor3 = cpt.color
  110.             return cpf(cpt.color, cpt.alpha)
  111.         end
  112.         if cppickingAlpha then
  113.             x, cpalpha = updateAlpha(input, cpt.Alpha, cpalpha)
  114.             if x <= 0 then
  115.                 x = 0
  116.                 cpalpha = 1
  117.             end
  118.             if x >= 1 then
  119.                 x = 1
  120.                 cpalpha = 0
  121.             end
  122.             cpt.pointer3.Position = UDim2.new(x,0,1,-10)
  123.             cpt.alpha = 1-cpalpha
  124.             cpt.visualize.BackgroundTransparency = cpt.alpha
  125.             return cpf(cpt.color, cpt.alpha)
  126.         end
  127.     end
  128. end)
  129.  
  130. --slider
  131. local function round(num, bracket)
  132.     bracket = bracket or 1
  133.     return math.floor(num/bracket + math.sign(num) * 0.5) * bracket
  134. end
  135.  
  136. --keybind
  137. local blacklistedKeys = { --add or remove keys if you find the need to
  138.     Enum.KeyCode.Unknown,Enum.KeyCode.W,Enum.KeyCode.A,Enum.KeyCode.S,Enum.KeyCode.D,Enum.KeyCode.Slash,Enum.KeyCode.Tab,Enum.KeyCode.Backspace,Enum.KeyCode.One,Enum.KeyCode.Two,Enum.KeyCode.Three,Enum.KeyCode.Four,Enum.KeyCode.Five,Enum.KeyCode.Six,Enum.KeyCode.Seven,Enum.KeyCode.Eight,Enum.KeyCode.Nine,Enum.KeyCode.Zero,Enum.KeyCode.Escape,Enum.KeyCode.F1,Enum.KeyCode.F2,Enum.KeyCode.F3,Enum.KeyCode.F4,Enum.KeyCode.F5,Enum.KeyCode.F6,Enum.KeyCode.F7,Enum.KeyCode.F8,Enum.KeyCode.F9,Enum.KeyCode.F10,Enum.KeyCode.F11,Enum.KeyCode.F12
  139. }
  140.  
  141. local whitelistedMouse = { --add or remove mouse inputs if you find the need to
  142.     Enum.UserInputType.MouseButton1,Enum.UserInputType.MouseButton2,Enum.UserInputType.MouseButton3
  143. }
  144.  
  145. local function keyCheck(x,x1) -- used for keybinding
  146.     for _,v in next, x1 do
  147.         if v == x then
  148.             return true
  149.         end
  150.     end
  151. end
  152.  
  153. --zindex stuff
  154. local function focusOnOption(obj)
  155.     if highest then
  156.         highest.ZIndex = highest.ZIndex - 5
  157.         for _,v in next, highest:GetDescendants() do
  158.             pcall(function()
  159.                 v.ZIndex = v.ZIndex +- 5
  160.             end)
  161.         end
  162.     end
  163.     highest = obj
  164.     highest.ZIndex = highest.ZIndex + 5
  165.     for _,v in next, highest:GetDescendants() do
  166.         pcall(function()
  167.             v.ZIndex = v.ZIndex + 5
  168.         end)
  169.     end
  170. end
  171.  
  172. local function focusOnWindow(obj)
  173.     if focused then
  174.         focused.ZIndex = focused.ZIndex - 10
  175.         for _,v in next, focused:GetDescendants() do
  176.             pcall(function()
  177.                 v.ZIndex = v.ZIndex - 10
  178.             end)
  179.         end
  180.     end
  181.     focused = obj
  182.     focused.ZIndex = focused.ZIndex + 10
  183.     for _,v in next, focused:GetDescendants() do
  184.         pcall(function()
  185.             v.ZIndex = v.ZIndex + 10
  186.         end)
  187.     end
  188. end
  189.  
  190. local ddcheck
  191. local extframes = {}
  192. for i=1,4 do
  193.     local frame = Instance.new("Frame")
  194.     frame.ZIndex = 50
  195.     frame.BackgroundTransparency = 1
  196.     frame.Visible = false
  197.     if i == 1 then
  198.         frame.Size = UDim2.new(0,1000,0,-1000)
  199.     elseif i == 2 then
  200.         frame.Size = UDim2.new(0,1000,0,1000)
  201.         frame.Position = UDim2.new(1,0,0,0)
  202.     elseif i == 3 then
  203.         frame.Size = UDim2.new(0,-1000,0,1000)
  204.         frame.Position = UDim2.new(1,0,1,0)
  205.     elseif i == 4 then
  206.         frame.Size = UDim2.new(0,-1000,0,-1000)
  207.         frame.Position = UDim2.new(0,0,1,0)
  208.     end
  209.     table.insert(extframes, frame)
  210.     frame.InputBegan:connect(function(input)
  211.         if input.UserInputType == Enum.UserInputType.MouseButton1 then
  212.             frame.Parent.Visible = false
  213.             if ddcheck then
  214.                 ddcheck.arrow.Text = ">"
  215.                 ddcheck.closed = not ddcheck.closed
  216.             end
  217.             for _,v in next, extframes do
  218.                 v.Visible = false
  219.             end
  220.         end
  221.     end)
  222. end
  223.  
  224. local function closeWindow(obj)
  225.     for _,v in next, extframes do
  226.         v.Visible = true
  227.         v.Parent = obj
  228.     end
  229. end
  230.  
  231. --start of library
  232. local library = {windows = {}}
  233.  
  234. library.settings = {
  235.     title = "Title text",
  236.     footer = "Footer text",
  237.     modal = true,
  238.     toggle = Enum.KeyCode.F8,
  239.     font = Enum.Font.Code,
  240.     textsize = 14,
  241.     textstroke = true
  242. }
  243.  
  244. library.colors = {
  245.     theme = Color3.fromRGB(218,137,6),
  246.     text = Color3.fromRGB(255,255,255),
  247.     main = Color3.fromRGB(30,30,30),
  248.     fade = Color3.fromRGB(50,50,50),
  249.     outline = Color3.fromRGB(10,10,10),
  250.     tabholder = Color3.fromRGB(60,60,60),
  251.     tabbutton = Color3.fromRGB(40,40,40),
  252.     tabselected = Color3.fromRGB(50,50,50)
  253. }
  254.  
  255. function library:create(class, properties)
  256.     local inst = Instance.new(class)
  257.     for property, value in pairs(properties) do
  258.         inst[property] = value
  259.     end
  260.     return inst
  261. end
  262.  
  263. function library:CreateWindow(ctitle, csize, cpos)
  264.     if ctitle then
  265.         if typeof(ctitle) == "Vector2" then
  266.             cpos = csize
  267.             csize = ctitle
  268.             ctitle = library.settings.title
  269.         end
  270.     end
  271.     cpos = cpos or Vector2.new(40,40)
  272.     csize = csize or Vector2.new(460,500)
  273.     local window = {xpos = 0, close = true, draggable = true}
  274.     table.insert(self.windows, window)
  275.    
  276.     self.base = self.base or self:create("ScreenGui", {
  277.         Parent = game.Players.LocalPlayer.PlayerGui
  278.     })
  279.    
  280.     self.pointer = self.pointer or self:create("Frame", {
  281.         ZIndex = 100,
  282.         Size = UDim2.new(0,4,0,4),
  283.         BackgroundColor3 = Color3.fromRGB(255,255,255),
  284.         Parent = self.base
  285.     })
  286.    
  287.     self.pointer1 = self.pointer1 or self:create("Frame", {
  288.         ZIndex = 100,
  289.         Size = UDim2.new(0,1,0,1),
  290.         BackgroundColor3 = Color3.fromRGB(255,0,0),
  291.         BorderColor3 = Color3.fromRGB(255,0,0),
  292.         Parent = self.pointer
  293.     })
  294.    
  295.     window.main = self:create("TextButton", {
  296.         Position = UDim2.new(0,cpos.X,0,cpos.Y),
  297.         Size = UDim2.new(0,csize.X,0,csize.Y),
  298.         BackgroundColor3 = self.colors.main,
  299.         BorderColor3 = self.colors.outline,
  300.         Text = "",
  301.         AutoButtonColor = false,
  302.         Parent = self.base
  303.     })
  304.    
  305.     window.shade = self:create("ImageLabel", {
  306.         Size = UDim2.new(1,0,0,18),
  307.         BackgroundTransparency = 1,
  308.         Image = "rbxassetid://2916745254",
  309.         ImageColor3 = self.colors.fade,
  310.         ImageTransparency = 0.2,
  311.         Parent = window.main
  312.     })
  313.    
  314.     window.title = self:create("TextLabel", {
  315.         Size = UDim2.new(1,0,0,18),
  316.         BackgroundTransparency = 1,
  317.         Text = ctitle or self.settings.title,
  318.         TextColor3 = self.colors.text,
  319.         TextStrokeTransparency = self.settings.textstroke and 0 or 1,
  320.         Font = self.settings.font,
  321.         TextSize = self.settings.textsize,
  322.         Parent = window.main
  323.     })
  324.    
  325.     window.title.InputBegan:connect(function(input)
  326.         if input.UserInputType == Enum.UserInputType.MouseButton1 and window.draggable then
  327.             gui = window.main
  328.             dragging = true
  329.             dragStart = input.Position
  330.             startPos = gui.Position
  331.            
  332.             input.Changed:Connect(function()
  333.                 if input.UserInputState == Enum.UserInputState.End then
  334.                     dragging = false
  335.                 end
  336.             end)
  337.         end
  338.     end)
  339.    
  340.     window.title.InputChanged:connect(function(input)
  341.         if input.UserInputType == Enum.UserInputType.MouseMovement then
  342.             dragInput = input
  343.         end
  344.     end)
  345.    
  346.     window.main.InputBegan:connect(function(input)
  347.         if input.UserInputType == Enum.UserInputType.MouseButton1 then
  348.             focusOnWindow(window.main)
  349.         end
  350.     end)
  351.    
  352.     function window:CreateTab(name)
  353.         local tab = {}
  354.         local bounds = game:GetService('TextService'):GetTextSize(name, library.settings.textsize, library.settings.font, Vector2.new(math.huge, math.huge))
  355.         tab.rows = {}
  356.        
  357.         local function createNewRow()
  358.             tab.row = library:create("Frame", {
  359.                 Position = UDim2.new(0,csize.X/2 * #tab.rows - (#tab.rows * 10),0,0),
  360.                 Size = UDim2.new(0,csize.X/2 - 10,1,0),
  361.                 BackgroundTransparency = 1,
  362.                 Parent = tab.main
  363.             })
  364.             tab.layout = library:create("UIListLayout", {
  365.                 Padding = UDim.new(0,8),
  366.                 Parent = tab.row
  367.             })
  368.            
  369.             tab.padding = library:create("UIPadding", {
  370.                 PaddingLeft = UDim.new(0,4),
  371.                 PaddingRight = UDim.new(0,4),
  372.                 PaddingTop = UDim.new(0,12),
  373.                 Parent = tab.row
  374.             })
  375.             table.insert(tab.rows, tab)
  376.             if #tab.rows > 2 then
  377.                 self.main.Size = self.main.Size + UDim2.new(0,csize.X/2 - 10,0,0)
  378.             end
  379.         end
  380.         local function checkRow()
  381.             if tab.row then
  382.                 for _,row in pairs(tab.rows) do
  383.                     if row.layout.AbsoluteContentSize.Y > row.row.AbsoluteSize.Y - 20 then
  384.                         createNewRow()
  385.                     else
  386.                         tab = row
  387.                     end
  388.                 end
  389.             else
  390.                 createNewRow()
  391.             end
  392.         end
  393.        
  394.         self.tabholder = self.tabholder or library:create("Frame", {
  395.             Position = UDim2.new(0,10,0,25),
  396.             Size = UDim2.new(1,-20,1,-55),
  397.             BackgroundColor3 = library.colors.tabholder,
  398.             BorderColor3 = library.colors.outline,
  399.             Parent = self.main
  400.         })
  401.        
  402.         self.footer = self.footer or library:create("TextLabel", {
  403.             Position = UDim2.new(0,0,1,0),
  404.             Size = UDim2.new(1,0,0,-18),
  405.             BackgroundColor3 = library.colors.tabbutton,
  406.             BorderColor3 = library.colors.outline,
  407.             Text = " "..library.settings.footer,
  408.             TextColor3 = library.colors.text,
  409.             TextStrokeTransparency = library.settings.textstroke and 0 or 1,
  410.             Font = library.settings.font,
  411.             TextSize = library.settings.textsize,
  412.             TextXAlignment = Enum.TextXAlignment.Left,
  413.             Parent = self.main
  414.         })
  415.    
  416.         tab.main = library:create("Frame", {
  417.             Position = UDim2.new(0,0,0,20),
  418.             Size = UDim2.new(1,0,1,-20),
  419.             BackgroundColor3 = library.colors.tabselected,
  420.             BorderColor3 = library.colors.outline,
  421.             Visible = false,
  422.             Parent = self.tabholder
  423.         })
  424.        
  425.         tab.button = library:create("Frame", {
  426.            
  427.             Position = UDim2.new(0,self.xpos,0,0),
  428.             Size = UDim2.new(0,bounds.X+8,0,19),
  429.             BorderColor3 = library.colors.outline,
  430.             Parent = self.tabholder
  431.         })
  432.        
  433.         tab.buttontop = library:create("Frame", {
  434.             Size = UDim2.new(1,0,1,0),
  435.             BackgroundColor3 = library.colors.tabbutton,
  436.             BorderSizePixel = 0,
  437.             BorderColor3 = library.colors.outline,
  438.             Parent = tab.button
  439.         })
  440.        
  441.         tab.label = library:create("TextLabel", {
  442.            
  443.             Size = UDim2.new(1,0,1,0),
  444.             BackgroundTransparency = 1,
  445.             Text = name,
  446.             TextColor3 = library.colors.text,
  447.             TextStrokeTransparency = library.settings.textstroke and 0 or 1,
  448.             Font = library.settings.font,
  449.             TextSize = library.settings.textsize,
  450.             Parent = tab.button
  451.         })
  452.        
  453.         if self.xpos == 0 then
  454.             self.focused = tab
  455.             self.focused.main.Visible = true
  456.             self.focused.buttontop.Size = self.focused.buttontop.Size + UDim2.new(0,0,0,1)
  457.             tab.buttontop.BackgroundColor3 = library.colors.tabselected
  458.         end
  459.         self.xpos = self.xpos + bounds.X + 8
  460.        
  461.         tab.label.InputBegan:connect(function(input)
  462.             if input.UserInputType == Enum.UserInputType.MouseButton1 then
  463.                 self.focused.main.Visible = false
  464.                 self.focused.buttontop.Size = self.focused.buttontop.Size - UDim2.new(0,0,0,1)
  465.                 self.focused.buttontop.BackgroundColor3 = library.colors.tabbutton
  466.                 self.focused = tab
  467.                 self.focused.main.Visible = true
  468.                 self.focused.buttontop.Size = self.focused.buttontop.Size + UDim2.new(0,0,0,1)
  469.                 self.focused.buttontop.BackgroundColor3 = library.colors.tabselected
  470.             end
  471.         end)
  472.        
  473.         function tab:AddLocalTab(title)
  474.             local LocalTab = {order = 0}
  475.             local bounds = game:GetService('TextService'):GetTextSize(title, library.settings.textsize, library.settings.font, Vector2.new(math.huge, math.huge))
  476.             checkRow()
  477.            
  478.             LocalTab.main = library:create("Frame", {
  479.                 Size = UDim2.new(1,0,0,0),
  480.                 BackgroundColor3 = library.colors.tabselected,
  481.                 BorderColor3 = library.colors.outline,
  482.                 Parent = self.row
  483.             })
  484.            
  485.             LocalTab.title = library:create("TextLabel", {
  486.                 AnchorPoint = Vector2.new(0,0.5),
  487.                 Position = UDim2.new(0,12,0,0),
  488.                 Size = UDim2.new(0,bounds.X + 8,0,2),
  489.                 BackgroundColor3 = library.colors.tabselected,
  490.                 BorderSizePixel = 0,
  491.                 Text = title,
  492.                 TextColor3 = library.colors.text,
  493.                 TextStrokeTransparency = library.settings.textstroke and 0 or 1,
  494.                 Font = library.settings.font,
  495.                 TextSize = library.settings.textsize,
  496.                 Parent = LocalTab.main
  497.             })
  498.            
  499.             LocalTab.content = library:create("Frame", {
  500.                
  501.                 Size = UDim2.new(1,0,1,0),
  502.                 BackgroundTransparency = 1,
  503.                 Parent = LocalTab.main
  504.             })
  505.            
  506.             LocalTab.layout = library:create("UIListLayout", {
  507.                 Padding = UDim.new(0,4),
  508.                 SortOrder = Enum.SortOrder.LayoutOrder,
  509.                 Parent = LocalTab.content
  510.             })
  511.            
  512.             LocalTab.padding = library:create("UIPadding", {
  513.                 PaddingLeft = UDim.new(0,6),
  514.                 PaddingRight = UDim.new(0,6),
  515.                 PaddingTop = UDim.new(0,12),
  516.                 Parent = LocalTab.content
  517.             })
  518.            
  519.             function LocalTab:AddLabel(text)
  520.                 local label = {}
  521.                 label.text = text
  522.                 checkRow()
  523.                 LocalTab.main.Parent = tab.row
  524.                
  525.                 label.label = library:create("TextLabel", {
  526.                     LayoutOrder = self.order,
  527.                     Size = UDim2.new(1,0,0,library.settings.textsize + 2),
  528.                     BackgroundTransparency = 1,
  529.                     Text = tostring(text),
  530.                     TextColor3 = library.colors.text,
  531.                     Font = library.settings.font,
  532.                     TextSize = library.settings.textsize,
  533.                     TextStrokeTransparency = library.settings.textstroke and 0 or 1,
  534.                     TextWrapped = true,
  535.                     TextXAlignment = Enum.TextXAlignment.Left,
  536.                     Parent = LocalTab.content
  537.                 })
  538.                
  539.                 LocalTab.main.Size = UDim2.new(1,0,0,self.layout.AbsoluteContentSize.Y+16)
  540.                
  541.                 self.order = self.order + 1
  542.                
  543.                 return label
  544.             end
  545.            
  546.             function LocalTab:AddButton(text, _function)
  547.                 local button = {}
  548.                 _function = _function or function() end
  549.                 checkRow()
  550.                 LocalTab.main.Parent = tab.row
  551.                
  552.                 button.button = library:create("TextButton", {
  553.                     LayoutOrder = self.order,
  554.                     Size = UDim2.new(1,0,0,library.settings.textsize + 2),
  555.                     BackgroundTransparency = 1,
  556.                     Text = tostring(text),
  557.                     TextColor3 = library.colors.text,
  558.                     Font = library.settings.font,
  559.                     TextSize = library.settings.textsize,
  560.                     TextStrokeTransparency = library.settings.textstroke and 0 or 1,
  561.                     TextXAlignment = Enum.TextXAlignment.Left,
  562.                     Parent = self.content,
  563.                 })
  564.                
  565.                 self.order = self.order + 1
  566.                
  567.                 button.button.InputBegan:connect(function(input)
  568.                     if input.UserInputType == Enum.UserInputType.MouseButton1 then
  569.                         _function()
  570.                     end
  571.                 end)
  572.                
  573.                 LocalTab.main.Size = UDim2.new(1,0,0,self.layout.AbsoluteContentSize.Y+16)
  574.                
  575.                 return button
  576.             end
  577.            
  578.             function LocalTab:AddToggle(text, _function)
  579.                 local toggle = {state = false}
  580.                 _function = _function or function() end
  581.                 checkRow()
  582.                 LocalTab.main.Parent = tab.row
  583.                
  584.                 toggle.button = library:create("TextButton", {
  585.                     LayoutOrder = self.order,
  586.                     Size = UDim2.new(1,0,0,library.settings.textsize + 2),
  587.                     BackgroundTransparency = 1,
  588.                     Text = tostring(text),
  589.                     TextColor3 = library.colors.text,
  590.                     Font = library.settings.font,
  591.                     TextSize = library.settings.textsize,
  592.                     TextStrokeTransparency = library.settings.textstroke and 0 or 1,
  593.                     TextXAlignment = Enum.TextXAlignment.Left,
  594.                     Parent = self.content,
  595.                 })
  596.                
  597.                 toggle.holder = library:create("Frame", {
  598.                     AnchorPoint = Vector2.new(0,0.5),
  599.                     Position = UDim2.new(1,-1,0.5,0),
  600.                     Size = UDim2.new(0,-library.settings.textsize+4,0,library.settings.textsize-4),
  601.                     BackgroundColor3 = library.colors.tabholder,
  602.                     BorderSizePixel = 2,
  603.                     BorderColor3 = library.colors.main,
  604.                     Parent = toggle.button,
  605.                 })
  606.                
  607.                 toggle.visualize = library:create("Frame", {
  608.                     Position = UDim2.new(0,0,0,0),
  609.                     Size = UDim2.new(1,0,1,0),
  610.                     BackgroundTransparency = 1,
  611.                     BackgroundColor3 = library.colors.theme,
  612.                     BorderSizePixel = 0,
  613.                     Parent = toggle.holder,
  614.                 })
  615.                
  616.                 self.order = self.order + 1
  617.                
  618.                 function toggle:SetToggle(state)
  619.                     toggle.state = state
  620.                     if toggle.state then
  621.                         toggle.visualize.BackgroundTransparency = 0
  622.                     else
  623.                         toggle.visualize.BackgroundTransparency = 1
  624.                     end
  625.                     return _function(toggle.state)
  626.                 end
  627.                
  628.                 toggle.button.InputBegan:connect(function(input)
  629.                     if input.UserInputType == Enum.UserInputType.MouseButton1 then
  630.                         toggle.state = not toggle.state
  631.                         toggle:SetToggle(toggle.state)
  632.                     end
  633.                 end)
  634.                
  635.                 LocalTab.main.Size = UDim2.new(1,0,0,self.layout.AbsoluteContentSize.Y+16)
  636.                
  637.                 return toggle
  638.             end
  639.            
  640.             function LocalTab:AddBox(text, txtval, _function, keep)
  641.                 local box = {value = ""}
  642.                 if txtval then
  643.                     if typeof(txtval) == "function" then
  644.                         _function = txtval
  645.                         txtval = ""
  646.                     elseif typeof(txtval) == "string" then
  647.                         box.value = txtval
  648.                     end
  649.                 end
  650.                 if keep then
  651.                     if typeof(keep) == "string" then
  652.                         keep = false
  653.                     end
  654.                 end
  655.                 _function = _function or function() end
  656.                 checkRow()
  657.                 LocalTab.main.Parent = tab.row
  658.                
  659.                 box.button = library:create("TextButton", {
  660.                     LayoutOrder = self.order,
  661.                     Size = UDim2.new(1,0,0,library.settings.textsize + 22),
  662.                     BackgroundTransparency = 1,
  663.                     Text = tostring(text),
  664.                     TextColor3 = library.colors.text,
  665.                     Font = library.settings.font,
  666.                     TextSize = library.settings.textsize,
  667.                     TextStrokeTransparency = library.settings.textstroke and 0 or 1,
  668.                     TextXAlignment = Enum.TextXAlignment.Left,
  669.                     TextYAlignment = Enum.TextYAlignment.Top,
  670.                     Parent = self.content,
  671.                 })
  672.                
  673.                 box.box = library:create("TextBox", {
  674.                     Position = UDim2.new(0,0,0,19),
  675.                     Size = UDim2.new(1,0,0,17),
  676.                     BackgroundTransparency = 0,
  677.                     BackgroundColor3 = library.colors.tabholder,
  678.                     BorderColor3 = library.colors.main,
  679.                     Text = txtval,
  680.                     TextColor3 = library.colors.text,
  681.                     PlaceholderText = "",
  682.                     PlaceholderColor3 = library.colors.tabbutton,
  683.                     Font = library.settings.font,
  684.                     TextSize = library.settings.textsize-2,
  685.                     TextWrapped = true,
  686.                     Parent = box.button,
  687.                 })
  688.                
  689.                 self.order = self.order + 1
  690.                
  691.                 box.button.InputBegan:connect(function(input)
  692.                     if input.UserInputType == Enum.UserInputType.MouseButton1 then
  693.                         box.box:CaptureFocus()
  694.                     end
  695.                 end)
  696.                
  697.                 box.box.FocusLost:connect(function(enter)
  698.                     if keep then
  699.                         if box.box.Text == "" then
  700.                             box.box.Text = box.value
  701.                             return
  702.                         else
  703.                             box.value = box.box.Text
  704.                         end
  705.                     end
  706.                     return _function(box.box.Text, enter)
  707.                 end)
  708.                
  709.                 UserInputService.InputBegan:connect(function(input)
  710.                     if input.KeyCode == Enum.KeyCode.Escape and box.box:IsFocused() then
  711.                         box.box:ReleaseFocus()
  712.                     end
  713.                 end)
  714.                
  715.                 function box:SetValue(value)
  716.                     box.value = value
  717.                     box.box.Text = box.value
  718.                     return _function(box)
  719.                 end
  720.                
  721.                 LocalTab.main.Size = UDim2.new(1,0,0,self.layout.AbsoluteContentSize.Y+18)
  722.                
  723.                 return box
  724.             end
  725.            
  726.             function LocalTab:AddDropdown(text, options, _function, push)
  727.                 _function = _function or function() end
  728.                 local dropdown = {order = 0, closed = true, value = options[1]}
  729.                 dropdown.content = {}
  730.                 checkRow()
  731.                 LocalTab.main.Parent = tab.row
  732.                
  733.                 dropdown.button = library:create("TextButton", {
  734.                     LayoutOrder = self.order,
  735.                     Size = UDim2.new(1,0,0,library.settings.textsize + 22),
  736.                     BackgroundTransparency = 1,
  737.                     Text = tostring(text),
  738.                     TextColor3 = library.colors.text,
  739.                     TextStrokeTransparency = library.settings.textstroke and 0 or 1,
  740.                     Font = library.settings.font,
  741.                     TextSize = library.settings.textsize,
  742.                     TextXAlignment = Enum.TextXAlignment.Left,
  743.                     TextYAlignment = Enum.TextYAlignment.Top,
  744.                     Parent = self.content,
  745.                 })
  746.                
  747.                 dropdown.label = library:create("TextLabel", {
  748.                     Position = UDim2.new(0,0,0,19),
  749.                     Size = UDim2.new(1,0,0,17),
  750.                     BackgroundTransparency = 0,
  751.                     BackgroundColor3 = library.colors.tabholder,
  752.                     BorderColor3 = library.colors.main,
  753.                     Text = dropdown.value,
  754.                     TextColor3 = library.colors.text,
  755.                     Font = library.settings.font,
  756.                     TextSize = library.settings.textsize,
  757.                     Parent = dropdown.button,
  758.                 })
  759.                
  760.                 dropdown.arrow = library:create("TextLabel", {
  761.                     Position = UDim2.new(1,0,0,2),
  762.                     Size = UDim2.new(0,-16,0,16),
  763.                     Rotation = 90,
  764.                     BackgroundTransparency = 1,
  765.                     Text = ">",
  766.                     TextColor3 = library.colors.tabbutton,
  767.                     Font = Enum.Font.Arcade,
  768.                     TextSize = 18,
  769.                     Parent = dropdown.label,
  770.                 })
  771.                
  772.                 dropdown.container = library:create("Frame", {
  773.                     ZIndex = 2,
  774.                     Position = UDim2.new(0,0,1,3),
  775.                     BackgroundTransparency = 1,
  776.                     Visible = false,
  777.                     Parent = dropdown.label,
  778.                 })
  779.                
  780.                 dropdown.contentholder = library:create("ScrollingFrame", {
  781.                     ZIndex = 2,
  782.                     ClipsDescendants = true,
  783.                     Size = UDim2.new(1,0,1,0),
  784.                     BackgroundTransparency = 0,
  785.                     BorderSizePixel = 1,
  786.                     BackgroundColor3 = library.colors.tabholder,
  787.                     BorderColor3 = library.colors.outline,
  788.                     CanvasSize = UDim2.new(0,0,0,0),
  789.                     ScrollBarThickness = 0,
  790.                     Visible = true,
  791.                     Parent = dropdown.container,
  792.                 })
  793.                
  794.                 dropdown.layout = library:create("UIListLayout", {
  795.                     Padding = UDim.new(0,0),
  796.                     SortOrder = Enum.SortOrder.LayoutOrder,
  797.                     Parent = dropdown.contentholder
  798.                 })
  799.                
  800.                 self.order = self.order + 1
  801.                
  802.                 dropdown.button.InputBegan:connect(function(input)
  803.                     if input.UserInputType == Enum.UserInputType.MouseButton1 then
  804.                         focusOnOption(dropdown.container)
  805.                         closeWindow(dropdown.container)
  806.                         ddcheck = dropdown
  807.                         dropdown.closed = not dropdown.closed
  808.                         if dropdown.closed then
  809.                             dropdown.arrow.Text = ">"
  810.                             dropdown.container.Visible = false
  811.                         else
  812.                             dropdown.arrow.Text = "<"
  813.                             dropdown.container.Visible = true
  814.                         end
  815.                     end
  816.                 end)
  817.                
  818.                 local function addOptions(options)
  819.                     for _,value in pairs(options) do
  820.                         dropdown.order = dropdown.order+1
  821.                        
  822.                         local option = library:create("TextButton", {
  823.                             ZIndex = dropdown.contentholder.ZIndex,
  824.                             LayoutOrder = dropdown.order,
  825.                             Size = UDim2.new(1,0,0,18),
  826.                             BackgroundTransparency = 0,
  827.                             BackgroundColor3 = library.colors.tabholder,
  828.                             BorderColor3 = library.colors.tabbutton,
  829.                             Text = value,
  830.                             TextColor3 = library.colors.text,
  831.                             Font = library.settings.font,
  832.                             TextSize = library.settings.textsize,
  833.                             AutoButtonColor = false,
  834.                             Parent = dropdown.contentholder,
  835.                         })
  836.                        
  837.                         option.MouseButton1Click:connect(function()
  838.                             dropdown.value = value
  839.                             if push then
  840.                                 for _,v in pairs(dropdown.content) do
  841.                                     if v.LayoutOrder < option.LayoutOrder then
  842.                                         v.LayoutOrder = v.LayoutOrder + 1
  843.                                     end
  844.                                 end
  845.                                 option.LayoutOrder = 1
  846.                             end
  847.                             dropdown.label.Text = dropdown.value
  848.                             dropdown.closed = true
  849.                             dropdown.arrow.Text = ">"
  850.                             dropdown.container.Visible = false
  851.                             return _function(dropdown.value)
  852.                         end)
  853.                        
  854.                         if dropdown.order > 5 then
  855.                             dropdown.contentholder.CanvasSize = UDim2.new(0,0,0,dropdown.layout.AbsoluteContentSize.Y)
  856.                         else
  857.                             dropdown.container.Size = UDim2.new(1,0,0,dropdown.layout.AbsoluteContentSize.Y)
  858.                         end
  859.                        
  860.                         table.insert(dropdown.content, dropdown.order, option)
  861.                     end
  862.                 end
  863.                
  864.                 addOptions(options)
  865.                
  866.                 function dropdown:Refresh(options, keep)
  867.                     if not keep then
  868.                         for _,v in pairs(dropdown.contentholder:GetChildren()) do
  869.                             if v:IsA"TextButton" then
  870.                                 v:Destroy()
  871.                                 dropdown.order = dropdown.order - 1
  872.                                 dropdown.contentholder.CanvasSize = UDim2.new(0,0,0,dropdown.layout.AbsoluteContentSize.Y)
  873.                             end
  874.                         end
  875.                     end
  876.                     addOptions(options)
  877.                 end
  878.                
  879.                 function dropdown:SetValue(value)
  880.                     dropdown.value = value
  881.                     dropdown.label.Text = dropdown.value
  882.                     return _function(dropdown.value)
  883.                 end
  884.                
  885.                 LocalTab.main.Size = UDim2.new(1,0,0,self.layout.AbsoluteContentSize.Y+18)
  886.                
  887.                 return dropdown
  888.             end
  889.            
  890.             function LocalTab:AddSlider(text, maxVal, setVal, _function, float, incrementalMode)
  891.                 if setVal then
  892.                     if typeof(setVal) == "function" then
  893.                         if _function then
  894.                             if typeof(_function) == "number" then
  895.                                 incrementalMode = float
  896.                                 float = _function
  897.                             elseif typeof(_function) == "boolean" then
  898.                                 incrementalMode = _function
  899.                                 float = nil
  900.                             end
  901.                         end
  902.                         _function = setVal
  903.                         setVal = 0
  904.                     else
  905.                         if float then
  906.                             if typeof(float) == "boolean" then
  907.                                 incrementalMode = float
  908.                                 float = nil
  909.                             end
  910.                         end
  911.                     end
  912.                 end
  913.                 if setVal > maxVal then
  914.                     setVal = maxVal
  915.                 end
  916.                 if setVal < 0 then
  917.                     setVal = 0
  918.                 end
  919.                 _function = _function or function() end
  920.                 local slider = {value = setVal}
  921.                 checkRow()
  922.                 LocalTab.main.Parent = tab.row
  923.                
  924.                 slider.button = library:create("TextButton", {
  925.                     LayoutOrder = self.order,
  926.                     Size = UDim2.new(1,0,0,library.settings.textsize + 22),
  927.                     BackgroundTransparency = 1,
  928.                     Text = tostring(text),
  929.                     TextColor3 = library.colors.text,
  930.                     TextStrokeTransparency = library.settings.textstroke and 0 or 1,
  931.                     Font = library.settings.font,
  932.                     TextSize = library.settings.textsize,
  933.                     TextXAlignment = Enum.TextXAlignment.Left,
  934.                     TextYAlignment = Enum.TextYAlignment.Top,
  935.                     Parent = self.content,
  936.                 })
  937.                
  938.                 slider.holder = library:create("Frame", {
  939.                     Position = UDim2.new(0,0,0,18),
  940.                     Size = UDim2.new(1,0,0,17),
  941.                     BackgroundTransparency = 1,
  942.                     Parent = slider.button,
  943.                 })
  944.                
  945.                 slider.visualize = library:create("TextBox", {
  946.                     Position = UDim2.new(0,0,0.5,0),
  947.                     Size = UDim2.new(1,0,0.5,0),
  948.                     BackgroundTransparency = 1,
  949.                     Text = tostring(slider.value),
  950.                     TextColor3 = library.colors.text,
  951.                     Font = library.settings.font,
  952.                     TextSize = library.settings.textsize-2,
  953.                     TextWrapped = true,
  954.                     Parent = slider.holder,
  955.                 })
  956.                
  957.                 slider.sliderbar = library:create("Frame", {
  958.                     AnchorPoint = Vector2.new(0.5,0.5),
  959.                     Position = UDim2.new(0.5,0,0.2,0),
  960.                     Size = UDim2.new(1,-6,0,4),
  961.                     BackgroundColor3 = library.colors.tabholder,
  962.                     BorderColor3 = library.colors.main,
  963.                     Parent = slider.holder,
  964.                 })
  965.                
  966.                 slider.sliderfill = library:create("Frame", {
  967.                     Size = UDim2.new(slider.value/maxVal,0,1,0),
  968.                     BackgroundColor3 = library.colors.theme,
  969.                     BorderSizePixel = 0,
  970.                     Parent = slider.sliderbar,
  971.                 })
  972.                
  973.                 slider.sliderbox = library:create("Frame", {
  974.                     AnchorPoint = Vector2.new(0.5,0.5),
  975.                     Position = UDim2.new(slider.value/maxVal,0,0.5,0),
  976.                     Size = UDim2.new(0,4,0,12),
  977.                     BackgroundColor3 = library.colors.main,
  978.                     BorderSizePixel = 0,
  979.                     Parent = slider.sliderbar,
  980.                 })
  981.                
  982.                 self.order = self.order + 1
  983.                
  984.                 local function updateValue()
  985.                     slider.value = round(slider.value*maxVal, float)
  986.                     if slider.value > maxVal then
  987.                         slider.value = maxVal
  988.                     end
  989.                     if slider.value < 0 then
  990.                         slider.value = 0
  991.                     end
  992.                     if incrementalMode then
  993.                         slider.sliderbox.Position = UDim2.new(slider.value/maxVal,0,0.5,0)
  994.                         slider.sliderfill.Size = UDim2.new(slider.value/maxVal,0,1,0)
  995.                     else
  996.                         slider.sliderbox:TweenPosition(UDim2.new(slider.value/maxVal,0,0.5,0), "Out", "Quad", 0.1, true)
  997.                         slider.sliderfill:TweenSize(UDim2.new(slider.value/maxVal,0,1,0), "Out", "Quad", 0.1, true)
  998.                     end
  999.                     slider.visualize.Text = slider.value
  1000.                     _function(slider.value)
  1001.                 end
  1002.                
  1003.                 local function updateSlider(input)
  1004.                     local relativePos = input.Position.X- slider.sliderbar.AbsolutePosition.X
  1005.                     if input.Position.X < slider.sliderbar.AbsolutePosition.X then
  1006.                         relativePos = 0
  1007.                     end
  1008.                     if relativePos > slider.sliderbar.AbsoluteSize.X then
  1009.                         relativePos = slider.sliderbar.AbsoluteSize.X
  1010.                     end
  1011.                     slider.value = relativePos/slider.sliderbar.AbsoluteSize.X
  1012.                     updateValue()
  1013.                 end
  1014.                
  1015.                 local sliding
  1016.                 local modifying
  1017.                 slider.button.InputBegan:connect(function(input)
  1018.                     if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1019.                         if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then
  1020.                             modifying = true
  1021.                             slider.visualize:CaptureFocus()
  1022.                         else
  1023.                             sliding = true
  1024.                             updateSlider(input)
  1025.                         end
  1026.                     end
  1027.                 end)
  1028.                
  1029.                 slider.visualize.Focused:connect(function()
  1030.                     if not modifying then
  1031.                         slider.visualize:ReleaseFocus()
  1032.                     end
  1033.                 end)
  1034.                
  1035.                 slider.visualize.FocusLost:connect(function()
  1036.                     if modifying then
  1037.                         slider.value = (tonumber(slider.visualize.Text) or 0)/maxVal
  1038.                         updateValue()
  1039.                     end
  1040.                     modifying = false
  1041.                 end)
  1042.                
  1043.                 slider.button.InputEnded:connect(function(input)
  1044.                     if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1045.                         sliding = false
  1046.                     end
  1047.                 end)
  1048.                
  1049.                 UserInputService.InputChanged:connect(function(input)
  1050.                     if modifying then
  1051.                         if input == Enum.KeyCode.Escape or input.KeyCode == Enum.KeyCode.Space then
  1052.                             slider.visualize:ReleaseFocus()
  1053.                         end
  1054.                     end
  1055.                     if input.UserInputType == Enum.UserInputType.MouseMovement then
  1056.                         if sliding then
  1057.                             updateSlider(input)
  1058.                         end
  1059.                     end
  1060.                 end)
  1061.                
  1062.                 function slider:SetValue(num)
  1063.                     slider.value = num/maxVal
  1064.                     updateValue()
  1065.                 end
  1066.                
  1067.                 LocalTab.main.Size = UDim2.new(1,0,0,self.layout.AbsoluteContentSize.Y+18)
  1068.                
  1069.                 return slider
  1070.             end
  1071.                
  1072.             function LocalTab:AddKeybind(text, key, _function, hold)
  1073.                 if key and typeof(key) == "function" then
  1074.                     hold = _function
  1075.                     _function = key
  1076.                     key = Enum.KeyCode.F
  1077.                 end
  1078.                 if typeof(key) == "string" then
  1079.                     if not keyCheck(Enum.KeyCode[key:upper()], blacklistedKeys) then
  1080.                         key = Enum.KeyCode[key:upper()]
  1081.                     end
  1082.                     if keyCheck(key, whitelistedMouse) then
  1083.                         key = Enum.UserInputType[key:upper()]
  1084.                     end
  1085.                 end
  1086.                 _function = _function or function() end
  1087.                 local bind = {binding = false, holding = false, key = key, hold = hold}
  1088.                 local bounds = game:GetService('TextService'):GetTextSize(bind.key.Name, library.settings.textsize, library.settings.font, Vector2.new(math.huge, math.huge))
  1089.                 checkRow()
  1090.                 LocalTab.main.Parent = tab.row
  1091.                
  1092.                 bind.button = library:create("TextButton", {
  1093.                     LayoutOrder = self.order,
  1094.                     Size = UDim2.new(1,0,0,library.settings.textsize + 4),
  1095.                     BackgroundTransparency = 1,
  1096.                     Text = tostring(text),
  1097.                     TextColor3 = library.colors.text,
  1098.                     TextStrokeTransparency = library.settings.textstroke and 0 or 1,
  1099.                     Font = library.settings.font,
  1100.                     TextSize = library.settings.textsize,
  1101.                     TextXAlignment = Enum.TextXAlignment.Left,
  1102.                     AutoButtonColor = false,
  1103.                     Parent = self.content,
  1104.                 })
  1105.                
  1106.                 bind.label = library:create("TextLabel", {
  1107.                     Position = UDim2.new(1,0,0,2),
  1108.                     Size = UDim2.new(0,-bounds.X-8,1,-4),
  1109.                     BackgroundColor3 = library.colors.tabholder,
  1110.                     BorderColor3 = library.colors.main,
  1111.                     Text = bind.key.Name,
  1112.                     TextColor3 = library.colors.text,
  1113.                     Font = library.settings.font,
  1114.                     TextSize = library.settings.textsize,
  1115.                     Parent = bind.button,
  1116.                 })
  1117.                
  1118.                 self.order = self.order + 1
  1119.                
  1120.                 bind.button.InputBegan:connect(function(input)
  1121.                     if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1122.                         bind.label.Text = "..."
  1123.                         bind.label.Size = UDim2.new(0,-bind.label.TextBounds.X-8,1,-4)
  1124.                     end
  1125.                 end)
  1126.                
  1127.                 bind.button.InputEnded:connect(function(input)
  1128.                     if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1129.                         bind.binding = true
  1130.                     end
  1131.                 end)
  1132.                 local function setKey(key)
  1133.                     bind.key = key
  1134.                     bind.label.Text = bind.key.Name
  1135.                     bind.label.Size = UDim2.new(0,-bind.label.TextBounds.X-8,1,-4)
  1136.                 end
  1137.                
  1138.                 local a = tick()
  1139.                 local function holdKey()
  1140.                     RunService:BindToRenderStep(a .. bind.key.Name, 1, function()
  1141.                         if bind.holding == false or not bind.hold then
  1142.                             RunService:UnbindFromRenderStep(a .. bind.key.Name)
  1143.                         end
  1144.                         _function()
  1145.                     end)
  1146.                     return _function(true)
  1147.                 end
  1148.                
  1149.                 UserInputService.InputBegan:connect(function(input)
  1150.                     if bind.binding then
  1151.                         if input.KeyCode == Enum.KeyCode.Backspace then
  1152.                             setKey(bind.key)
  1153.                             bind.binding = false
  1154.                         else
  1155.                             if not keyCheck(input.KeyCode, blacklistedKeys) then
  1156.                                 setKey(input.KeyCode)
  1157.                                 bind.binding = false
  1158.                             end
  1159.                             if keyCheck(input.UserInputType, whitelistedMouse) then
  1160.                                 setKey(input.UserInputType)
  1161.                                 bind.binding = false
  1162.                             end
  1163.                         end
  1164.                     else
  1165.                         if library.settings.modal and window.main.Visible then
  1166.                             return
  1167.                         end
  1168.                         if input.KeyCode.Name == bind.key.Name or input.UserInputType.Name == bind.key.Name then
  1169.                             bind.holding = true
  1170.                             if bind.hold then
  1171.                                 holdKey()
  1172.                             else
  1173.                                 _function()
  1174.                             end
  1175.                         end
  1176.                     end
  1177.                 end)
  1178.                
  1179.                 UserInputService.InputEnded:connect(function(input)
  1180.                     if input.KeyCode.Name == bind.key.Name then
  1181.                         bind.holding = false
  1182.                     end
  1183.                     if input.UserInputType.Name == bind.key.Name then
  1184.                         bind.holding = false
  1185.                     end
  1186.                 end)
  1187.                
  1188.                 function bind:SetKeybind(key)
  1189.                     if typeof(key) == "string" then
  1190.                         if not keyCheck(Enum.KeyCode[key:upper()], blacklistedKeys) then
  1191.                             key = Enum.KeyCode[key:upper()]
  1192.                         end
  1193.                         if keyCheck(key, whitelistedMouse) then
  1194.                             key = Enum.UserInputType[key:upper()]
  1195.                         end
  1196.                     end
  1197.                     if key ~= bind.key then
  1198.                         RunService:UnbindFromRenderStep(a .. bind.key.Name)
  1199.                     end
  1200.                     setKey(key)
  1201.                 end
  1202.                
  1203.                 LocalTab.main.Size = UDim2.new(1,0,0,self.layout.AbsoluteContentSize.Y+16)
  1204.                
  1205.                 return bind
  1206.             end
  1207.                
  1208.             function LocalTab:AddCP(text, color3, _function, alpha)
  1209.                 if color3 then
  1210.                     if typeof(color3) == "function" then
  1211.                         _function = color3
  1212.                         color3 = Color3.fromRGB()
  1213.                     end
  1214.                 end
  1215.                 _function = _function or function() end
  1216.                 local red, green, blue = color3.r*255, color3.g*255, color3.b*255
  1217.                 _function = _function or function() end
  1218.                 local color = {color = color3, alpha = alpha}
  1219.                 cphue, cpsat, cpval = rgbToHsv(red,green,blue)
  1220.                 checkRow()
  1221.                 LocalTab.main.Parent = tab.row
  1222.                
  1223.                 color.button = library:create("TextButton", {
  1224.                     LayoutOrder = self.order,
  1225.                     Size = UDim2.new(1,0,0,library.settings.textsize + 4),
  1226.                     BackgroundTransparency = 1,
  1227.                     Text = tostring(text),
  1228.                     TextColor3 = library.colors.text,
  1229.                     TextStrokeTransparency = library.settings.textstroke and 0 or 1,
  1230.                     Font = library.settings.font,
  1231.                     TextSize = library.settings.textsize,
  1232.                     TextXAlignment = Enum.TextXAlignment.Left,
  1233.                     AutoButtonColor = false,
  1234.                     Parent = self.content,
  1235.                 })
  1236.                
  1237.                 color.visualizebg = library:create("ImageLabel", {
  1238.                     Position = UDim2.new(1,-1,0,3),
  1239.                     Size = UDim2.new(0,-24,0,12),
  1240.                     BorderSizePixel = 2,
  1241.                     BorderColor3 = library.colors.main,
  1242.                     Image = "rbxassetid://3887014957",
  1243.                     ScaleType = Enum.ScaleType.Tile,
  1244.                     TileSize = UDim2.new(0,8,0,8),
  1245.                     Parent = color.button
  1246.                 })
  1247.                
  1248.                 color.visualize = library:create("Frame", {
  1249.                     Size = UDim2.new(1,0,1,0),
  1250.                     BackgroundTransparency = color.alpha,
  1251.                     BackgroundColor3 = color.color,
  1252.                     BorderSizePixel = 0,
  1253.                     Parent = color.visualizebg,
  1254.                 })
  1255.                
  1256.                 color.container = library:create("TextButton", {
  1257.                     ZIndex = 2,
  1258.                     Position = UDim2.new(0,-3,0,0),
  1259.                     Size = UDim2.new(0,-150,0,150),
  1260.                     BackgroundColor3 = library.colors.tabholder,
  1261.                     BorderColor3 = library.colors.outline,
  1262.                     AutoButtonColor = false,
  1263.                     Visible = false,
  1264.                     Parent = color.visualize
  1265.                 })
  1266.                
  1267.                 color.HueSat = library:create("ImageLabel", {
  1268.                     ZIndex = 2,
  1269.                     Position = UDim2.new(0,5,0,5),
  1270.                     Size = UDim2.new(1,-25,1,-25),
  1271.                     BorderColor3 = library.colors.outline,
  1272.                     Image = "rbxassetid://698052001",
  1273.                     Parent = color.container
  1274.                 })
  1275.                
  1276.                 color.pointer = library:create("Frame", {
  1277.                     ZIndex = 2,
  1278.                     AnchorPoint = Vector2.new(0.5,0.5),
  1279.                     Position = UDim2.new(1-cphue,0,1-cpsat,0),
  1280.                     Size = UDim2.new(0,4,0,4),
  1281.                     Rotation = 45,
  1282.                     BackgroundColor3 = Color3.fromRGB(255,255,255),
  1283.                     BorderColor3 = Color3.fromRGB(0,0,0),
  1284.                     Parent = color.HueSat
  1285.                 })
  1286.                
  1287.                 color.Value = library:create("ImageLabel", {
  1288.                     ZIndex = 2,
  1289.                     Position = UDim2.new(1,-15,0,5),
  1290.                     Size = UDim2.new(0,10,1,-25),
  1291.                     BorderColor3 = library.colors.outline,
  1292.                     Image = "rbxassetid://3641079629",
  1293.                     Parent = color.container
  1294.                 })
  1295.                
  1296.                 color.pointer2 = library:create("TextLabel", {
  1297.                     ZIndex = 2,
  1298.                     AnchorPoint = Vector2.new(0,0.5),
  1299.                     Position = UDim2.new(1,-10,1-cpval,0),
  1300.                     Size = UDim2.new(0,16,0,16),
  1301.                     BackgroundTransparency = 1,
  1302.                     Text = "◄",
  1303.                     TextColor3 = Color3.fromRGB(0,0,0),
  1304.                     TextStrokeTransparency = 0,
  1305.                     TextStrokeColor3 = Color3.fromRGB(130,130,130),
  1306.                     TextSize = 6,
  1307.                     Parent = color.Value
  1308.                 })
  1309.                
  1310.                 color.alphabg = library:create("ImageLabel", {
  1311.                     ZIndex = 2,
  1312.                     Position = UDim2.new(0,5,1,-15),
  1313.                     Size = UDim2.new(1,-25,0,10),
  1314.                     BorderColor3 = library.colors.outline,
  1315.                     Image = "rbxassetid://3887014957",
  1316.                     ScaleType = Enum.ScaleType.Tile,
  1317.                     TileSize = UDim2.new(0,10,0,10),
  1318.                     Parent = color.container
  1319.                 })
  1320.                
  1321.                 color.Alpha = library:create("ImageLabel", {
  1322.                     ZIndex = 2,
  1323.                     Size = UDim2.new(1,0,1,0),
  1324.                     BackgroundTransparency = 1,
  1325.                     Image = "rbxassetid://3887017050",
  1326.                     ImageColor3 = color3,
  1327.                     Parent = color.alphabg
  1328.                 })
  1329.                
  1330.                 color.pointer3 = library:create("TextLabel", {
  1331.                     ZIndex = 2,
  1332.                     AnchorPoint = Vector2.new(0.5,0),
  1333.                     Position = UDim2.new(color.alpha,0,1,-10),
  1334.                     Size = UDim2.new(0,16,0,16),
  1335.                     BackgroundTransparency = 1,
  1336.                     Text = "▲",
  1337.                     TextColor3 = Color3.fromRGB(0,0,0),
  1338.                     TextStrokeTransparency = 0,
  1339.                     TextStrokeColor3 = Color3.fromRGB(130,130,130),
  1340.                     TextSize = 6,
  1341.                     Parent = color.Alpha
  1342.                 })
  1343.                
  1344.                 self.order = self.order + 1
  1345.                
  1346.                 color.button.InputBegan:connect(function(input)
  1347.                     if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1348.                         focusOnOption(color.container)
  1349.                         closeWindow(color.container)
  1350.                         color.container.Visible = not color.container.Visible
  1351.                         if color.container.Visible then
  1352.                             cphue, cpsat, cpval = rgbToHsv(red,green,blue)
  1353.                         end
  1354.                     end
  1355.                 end)
  1356.                
  1357.                 color.container.InputBegan:connect(function(input)
  1358.                     if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1359.                         focusOnOption(color.container)
  1360.                     end
  1361.                 end)
  1362.                
  1363.                 color.HueSat.InputBegan:connect(function(input)
  1364.                     if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1365.                         cppicking = true
  1366.                         input.Changed:connect(function()
  1367.                             if input.UserInputState == Enum.UserInputState.End then
  1368.                                 cppicking = false
  1369.                             end
  1370.                         end)
  1371.                         x, y, cphue, cpsat = updateHueSat(input, color.HueSat, cphue, cpsat)
  1372.                         color.pointer.Position = UDim2.new(x,0,y,0)
  1373.                         color.color = Color3.fromHSV(cphue,cpsat,cpval)
  1374.                         color.visualize.BackgroundColor3 = color.color
  1375.                         color.Alpha.ImageColor3 = color.color
  1376.                         cpt = color
  1377.                         cpf = _function
  1378.                         return _function(color.color)
  1379.                     end
  1380.                 end)
  1381.                
  1382.                 color.Value.InputBegan:connect(function(input)
  1383.                     if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1384.                         cppickingVal = true
  1385.                         input.Changed:connect(function()
  1386.                             if input.UserInputState == Enum.UserInputState.End then
  1387.                                 cppickingVal = false
  1388.                             end
  1389.                         end)
  1390.                         local y, cpval = updateValue(input, color.Value, cpval)
  1391.                         color.pointer2.Position = UDim2.new(1,-10,y,0)
  1392.                         color.color = Color3.fromHSV(cphue,cpsat,cpval)
  1393.                         color.visualize.BackgroundColor3 = color.color
  1394.                         color.Alpha.ImageColor3 = color.color
  1395.                         cpt = color
  1396.                         cpf = _function
  1397.                         return _function(color.color)
  1398.                     end
  1399.                 end)
  1400.                
  1401.                 color.Alpha.InputBegan:connect(function(input)
  1402.                     if input.UserInputType == Enum.UserInputType.MouseButton1 then
  1403.                         cppickingAlpha = true
  1404.                         input.Changed:connect(function()
  1405.                             if input.UserInputState == Enum.UserInputState.End then
  1406.                                 cppickingAlpha = false
  1407.                             end
  1408.                         end)
  1409.                         local x, cpalpha = updateAlpha(input, color.Alpha, cpalpha)
  1410.                         color.pointer3.Position = UDim2.new(x,0,1,-10)
  1411.                         color.alpha = 1-cpalpha
  1412.                         cpt = color
  1413.                         cpf = _function
  1414.                         return _function(color.color, color.alpha)
  1415.                     end
  1416.                 end)
  1417.                
  1418.                 function color:SetColor(newColor)
  1419.                     color.color = newColor
  1420.                     local red, green, blue = newColor.r*255, newColor.g*255, newColor.b*255
  1421.                     local hue, sat, val = rgbToHsv(red,green,blue)
  1422.                     color.pointer.Position = UDim2.new(1-hue,0,1-sat,0)
  1423.                     color.pointer2.Position = UDim2.new(1,-10,1-val,0)
  1424.                     color.visualize.BackgroundColor3 = color.color
  1425.                     color.Alpha.ImageColor3 = color.color
  1426.                     _function(color.color)
  1427.                 end
  1428.                
  1429.                 function color:SetAlpha(newAlpha)
  1430.                     color.alpha = newAlpha
  1431.                     color.pointer3.Position = UDim2.new(color.alpha,0,1,-10)
  1432.                     color.visualize.BackgroundTransparency = color.alpha
  1433.                     _function(color.color, color.alpha)
  1434.                 end
  1435.                
  1436.                 LocalTab.main.Size = UDim2.new(1,0,0,self.layout.AbsoluteContentSize.Y+16)
  1437.                
  1438.                 return color
  1439.             end
  1440.                
  1441.             return LocalTab
  1442.         end
  1443.        
  1444.         return tab
  1445.     end
  1446.    
  1447.     return window
  1448. end
  1449.  
  1450. UserInputService.InputBegan:connect(function(input)
  1451.     if input.KeyCode == library.settings.toggle then
  1452.         library.pointer.Visible = not library.pointer.Visible
  1453.         for _, window in next, library.windows do
  1454.             if window.close == true then
  1455.                 window.main.Visible = not window.main.Visible
  1456.             else
  1457.                 if not window.main.Visible then
  1458.                     window.main.Visible = true
  1459.                 end
  1460.             end
  1461.         end
  1462.         if library.windows[1].main.Visible and library.settings.modal then
  1463.             library.windows[1].main.Modal = library.windows[1].main.Visible
  1464.         end
  1465.     end
  1466. end)
  1467.  
  1468. UserInputService.InputChanged:connect(function(input)
  1469.     if input.UserInputType == Enum.UserInputType.MouseMovement and library.pointer then
  1470.         library.pointer.Position = UDim2.new(0,UserInputService:GetMouseLocation().X,0,UserInputService:GetMouseLocation().Y-36)
  1471.     end
  1472. end)
  1473.  
  1474. return library
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top