Advertisement
Vzurxy

OpenGUI

Nov 9th, 2019
51,473
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 80.62 KB | None | 0 0
  1. if not _G.require then
  2.     _G.require = require
  3. end
  4.  
  5. --// API References
  6. local GUIData = (function()
  7.     -- Variables
  8.     _V = 1.11
  9.    
  10.     local screenGui = (script:FindFirstChild("ScreenGui")) or game:GetObjects("rbxassetid://2718157603")[1]:FindFirstChild("ScreenGui", true)
  11.       local Container = screenGui.Frame
  12.         local Opt = Container.OptionsFrame
  13.         local Checkbox = Opt.Checkbox
  14.         local Color = Opt.Color
  15.         local Frame = Opt.Frame
  16.         local Execute = Opt.Execute
  17.         local Mode = Opt.Mode
  18.         local Number = Opt.Number
  19.         local Toggle = Opt.Toggle
  20.       local Mods = screenGui.Mods
  21.         local ModLabel = Mods.Example
  22.    
  23.     local TextService = game:GetService("TextService")
  24.     local UserInputService = game:GetService("UserInputService")
  25.     local HttpService = game:GetService("HttpService")
  26.     local Player = game:GetService("Players").LocalPlayer
  27.       local Mouse = Player:GetMouse()
  28.    
  29.     pcall(function()
  30.         screenGui.Parent = game:GetService("CoreGui")
  31.     end)
  32.    
  33.     Container.Parent = nil
  34.     Checkbox.Parent = nil
  35.     Color.Parent = nil
  36.     Frame.Parent = nil
  37.     Execute.Parent = nil
  38.     Mode.Parent = nil
  39.     Number.Parent = nil
  40.     Toggle.Parent = nil
  41.     ModLabel.Parent = nil
  42.    
  43.     local settingsArray = {{Object = screenGui},{}}
  44.     local saveData = {Options = {}, Hotkeys = {}}
  45.    
  46.     local hotkeyFunctions = {}
  47.     local gui = {}
  48.    
  49.     -- Save Functions
  50.     local writefile = writefile or function() end
  51.     local function Save()
  52.         local JSONData = HttpService:JSONEncode(saveData)
  53.         writefile("OpenGui.txt", JSONData)
  54.     end
  55.    
  56.     -- Color Functions
  57.     local color = {}
  58.     local colors = {
  59.         TextDisabled = Color3.fromRGB(200, 200, 200),
  60.         TextEnabled = Color3.fromRGB(255, 255, 255),
  61.     }
  62.    
  63.     local Colors = {
  64.         Color3.fromRGB(255, 73, 73),
  65.         Color3.fromRGB(255, 161, 66),
  66.         Color3.fromRGB(255, 233, 62),
  67.         Color3.fromRGB(137, 255, 64),
  68.         Color3.fromRGB(64, 255, 140),
  69.         Color3.fromRGB(66, 252, 255),
  70.         Color3.fromRGB(64, 147, 255),
  71.         Color3.fromRGB(255, 93, 253),
  72.         Color3.fromRGB(195, 110, 255),
  73.         Color3.fromRGB(255, 90, 134),
  74.         Color3.fromRGB(255, 255, 255),
  75.         Color3.fromRGB(209, 209, 209),
  76.     }
  77.    
  78.     local function h2rgb(m1, m2, h)
  79.         if h<0 then h = h+1 end
  80.         if h>1 then h = h-1 end
  81.         if h*6<1 then
  82.             return m1+(m2-m1)*h*6
  83.         elseif h*2<1 then
  84.             return m2
  85.         elseif h*3<2 then
  86.             return m1+(m2-m1)*(2/3-h)*6
  87.         else
  88.             return m1
  89.         end
  90.     end
  91.    
  92.     function color:rgbToHsv(r, g, b)
  93.         local a = 0
  94.         r, g, b, a = r / 255, g / 255, b / 255, a / 255
  95.         local max, min = math.max(r, g, b), math.min(r, g, b)
  96.         local h, s, v
  97.         v = max
  98.    
  99.         local d = max - min
  100.         if max == 0 then s = 0 else s = d / max end
  101.    
  102.         if max == min then
  103.             h = 0 -- achromatic
  104.         else
  105.             if max == r then
  106.             h = (g - b) / d
  107.             if g < b then h = h + 6 end
  108.             elseif max == g then h = (b - r) / d + 2
  109.             elseif max == b then h = (r - g) / d + 4
  110.             end
  111.             h = h / 6
  112.         end
  113.    
  114.         return h, s, v
  115.     end
  116.    
  117.     function color:hslToRgb(h, s, L)
  118.         h = h / 360
  119.         local m2 = L <= .5 and L*(s+1) or L+s-L*s
  120.         local m1 = L*2-m2
  121.         return
  122.             h2rgb(m1, m2, h+1/3),
  123.             h2rgb(m1, m2, h),
  124.             h2rgb(m1, m2, h-1/3)
  125.     end
  126.    
  127.     function color:rgbToHsl(r, g, b)
  128.         local min = math.min(r, g, b)
  129.         local max = math.max(r, g, b)
  130.         local delta = max - min
  131.    
  132.         local h, s, l = 0, 0, (min + max) / 2
  133.    
  134.         if l > 0 and l < 0.5 then s = delta / (max + min) end
  135.         if l >= 0.5 and l < 1 then s = delta / (2 - max - min) end
  136.    
  137.         if delta > 0 then
  138.             if max == r and max ~= g then h = h + (g-b) / delta end
  139.             if max == g and max ~= b then h = h + 2 + (b-r) / delta end
  140.             if max == b and max ~= r then h = h + 4 + (r-g) / delta end
  141.             h = h / 6
  142.         end
  143.    
  144.         if h < 0 then h = h + 1 end
  145.         if h > 1 then h = h - 1 end
  146.    
  147.         return h * 360, s, l
  148.     end
  149.    
  150.     function color:adjustLightness(color3, amount)
  151.         local h, s, l = self:rgbToHsl(color3.r, color3.g, color3.b)
  152.         return Color3.new(self:hslToRgb(h, s, l + amount))
  153.     end
  154.    
  155.     -- UI Functions
  156.     function gui.tween(object,style,direction,t,goal)
  157.         local tweenservice = game:GetService("TweenService")
  158.         local tweenInfo = TweenInfo.new(t,Enum.EasingStyle[style],Enum.EasingDirection[direction])
  159.         local tween = tweenservice:Create(object,tweenInfo,goal)
  160.         tween.Completed:Connect(function()
  161.             tween:Destroy()
  162.         end)
  163.         tween:Play()
  164.         return tween
  165.     end
  166.    
  167.     function gui:makeDraggable(ui, callback)
  168.         local UserInputService = game:GetService("UserInputService")
  169.        
  170.         local dragging
  171.         local dragInput
  172.         local dragStart
  173.         local startPos
  174.        
  175.         local function update(input)
  176.             local delta = input.Position - dragStart
  177.             ui.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
  178.            
  179.             if callback then
  180.                 callback(ui.Position.X.Offset, ui.Position.Y.Offset)
  181.             end
  182.         end
  183.        
  184.         ui.InputBegan:Connect(function(input)
  185.             if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  186.                 dragging = true
  187.                 dragStart = input.Position
  188.                 startPos = ui.Position
  189.                
  190.                 input.Changed:Connect(function()
  191.                     if input.UserInputState == Enum.UserInputState.End then
  192.                         dragging = false
  193.                     end
  194.                 end)
  195.             end
  196.         end)
  197.        
  198.         ui.InputChanged:Connect(function(input)
  199.             if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
  200.                 dragInput = input
  201.             end
  202.         end)
  203.        
  204.         UserInputService.InputChanged:Connect(function(input)
  205.             if input == dragInput and dragging then
  206.                 update(input)
  207.             end
  208.         end)
  209.     end
  210.    
  211.     function gui:unpack(data, type)
  212.         if data == nil then return end
  213.         if type == "UDim2" then
  214.             return data and UDim2.new(data[1], data[2], data[3], data[4])
  215.         elseif type == "boolean" then
  216.             return data == 1 and true or false
  217.         elseif type == "Color3" then
  218.             return Color3.new(data[1], data[2], data[3])
  219.         end
  220.         return data
  221.     end
  222.    
  223.     function gui:pack(data)
  224.         if typeof(data) == "UDim2" then
  225.             return {data.X.Scale, data.X.Offset, data.Y.Scale, data.Y.Offset}
  226.         elseif typeof(data) == "boolean" then
  227.             return data and 1 or 0
  228.         elseif typeof(data) == "Color3" then
  229.             return {data.r, data.g, data.b}
  230.         end
  231.         return data
  232.     end
  233.    
  234.     function gui:getn(array)
  235.         local n = 0
  236.         for _, v in pairs(array) do
  237.             n = n + 1
  238.         end
  239.         return n
  240.     end
  241.    
  242.     function gui:setText(textLabel, text)
  243.         text = tostring(text)
  244.         textLabel.Text = text
  245.         if textLabel:FindFirstChild("Opaque") then
  246.             textLabel.Opaque.Text = text
  247.         end
  248.         if textLabel:FindFirstChild("Shadow") then
  249.             textLabel.Shadow.Text = text
  250.         end
  251.     end
  252.    
  253.     function gui:onDoubleTap(guiObject, callback)
  254.         local lastTap = tick()
  255.         guiObject.InputBegan:Connect(function(input)
  256.             if input.UserInputType == Enum.UserInputType.MouseButton1 then
  257.                 if tick() - lastTap < 0.25 then
  258.                     callback()
  259.                 end
  260.                 lastTap = tick()
  261.             end
  262.         end)
  263.     end
  264.    
  265.     local connections = {}
  266.     function gui:connect(func)
  267.         table.insert(connections, func)
  268.     end
  269.    
  270.     function gui:createList(guiObject, guiData)
  271.         local ListLayout = guiObject.OptionsFrame.UIListLayout
  272.         local Padding = guiObject.OptionsFrame.UIPadding
  273.         guiObject.OptionsFrame.UIListLayout.Changed:Connect(function(Property)
  274.             if Property == "AbsoluteContentSize" then
  275.                 guiData.ySize = ListLayout.AbsoluteContentSize.Y + 2 + Padding.PaddingTop.Offset + ListLayout.Padding.Offset * 2
  276.             end
  277.         end)
  278.        
  279.         gui:connect(function()
  280.             if guiObject:FindFirstChild("Title") then
  281.                 local yRes = Mouse.ViewSizeY
  282.                 local diff = yRes - (guiData.yPos + guiData.ySize)
  283.                 local difference = math.clamp(diff, 0, 5000)
  284.                 guiObject.OptionsFrame.CanvasSize = UDim2.new(1, 0, 1.001, guiData.ySize - 35)
  285.                
  286.                 if guiData.Open then
  287.                     guiObject.OptionsFrame.Size = guiObject.OptionsFrame.Size:Lerp(UDim2.new(1, 0, 0, guiData.ySize + math.clamp(diff, -5000, 0)), 0.3)
  288.                 else
  289.                     guiObject.OptionsFrame.Size = guiObject.OptionsFrame.Size:Lerp(UDim2.new(1, 0, 0, 0), 0.3)
  290.                 end
  291.                
  292.                 guiObject.Frame.Size = guiObject.OptionsFrame.Size
  293.             else
  294.                 if guiData.Open then
  295.                     guiObject.Size = guiObject.Size:Lerp(UDim2.new(1, -8, 0, 35 + guiData.ySize), 0.3)
  296.                 else
  297.                     guiObject.Size = guiObject.Size:Lerp(UDim2.new(1, -8, 0, 35), 0.3)
  298.                 end
  299.             end
  300.         end)
  301.        
  302.         if guiObject:FindFirstChild("Dropdown") then
  303.             guiObject.Dropdown.Visible = false
  304.             guiObject.Dropdown.MouseButton1Down:Connect(function()
  305.                 guiData.Open = not guiData.Open
  306.                 if guiData.Open then
  307.                     guiObject.Dropdown.Image = "rbxassetid://3559638428"
  308.                 else
  309.                     guiObject.Dropdown.Image = "rbxassetid://3554238678"
  310.                 end
  311.             end)
  312.         else
  313.             gui:onDoubleTap(guiObject, function()
  314.                 guiData.Open = not guiData.Open
  315.             end)
  316.         end
  317.     end
  318.    
  319.     function gui:textColorOnHover(guiObject, guiData)
  320.         local hover = guiData.baseColor or guiObject.TextColor3
  321.         local default = color:adjustLightness(hover, -0.075)
  322.         local mdown = color:adjustLightness(hover, -0.15)
  323.         local mouseIn
  324.        
  325.         local function update()
  326.             if guiData.baseColor then
  327.                 hover = guiData.baseColor or guiObject.TextColor3
  328.                 default = color:adjustLightness(hover, -0.075)
  329.                 mdown = color:adjustLightness(hover, -0.15)
  330.             end
  331.         end
  332.        
  333.         guiObject.MouseEnter:Connect(function()
  334.             update()
  335.             gui.tween(guiObject, "Sine", "Out", 0.25, {
  336.                 TextColor3 = hover;
  337.             })
  338.             mouseIn = true
  339.         end)
  340.        
  341.         guiObject.MouseLeave:Connect(function()
  342.             mouseIn = false
  343.             update()
  344.             gui.tween(guiObject, "Sine", "Out", 0.25, {
  345.                 TextColor3 = default;
  346.             })
  347.         end)
  348.        
  349.         guiObject.InputBegan:Connect(function(input)
  350.             if input.UserInputType == Enum.UserInputType.MouseButton1 then
  351.                 update()
  352.                 gui.tween(guiObject, "Sine", "Out", 0.25, {
  353.                     TextColor3 = mdown;
  354.                 })
  355.             end
  356.         end)
  357.        
  358.         guiObject.InputEnded:Connect(function(input)
  359.             if input.UserInputType == Enum.UserInputType.MouseButton1 then
  360.                 update()
  361.                 gui.tween(guiObject, "Sine", "Out", 0.25, {
  362.                     TextColor3 = mouseIn and hover or default;
  363.                 })
  364.             end
  365.         end)
  366.        
  367.         guiObject.TextColor3 = default
  368.     end
  369.    
  370.     function gui:sliderXY(sliderFrame, inputObjects, callback)
  371.         local inputDown = false
  372.        
  373.         local function refresh(c1, c2)
  374.             local sliderX = sliderFrame.AbsolutePosition.X + sliderFrame.AbsoluteSize.X
  375.             local sliderY = sliderFrame.AbsolutePosition.Y + sliderFrame.AbsoluteSize.Y
  376.            
  377.             local distX = sliderX - Mouse.X
  378.             local distY = sliderY - Mouse.Y
  379.            
  380.             local deltaX = 1-math.clamp(distX / sliderFrame.AbsoluteSize.X, 0, 1)
  381.             local deltaY = 1-math.clamp(distY / sliderFrame.AbsoluteSize.Y, 0, 1)
  382.            
  383.             if callback then
  384.                 callback(c1 or deltaX, c2 or deltaY)
  385.             end
  386.         end
  387.        
  388.         for _, obj in pairs(inputObjects) do
  389.             obj.InputBegan:Connect(function(input)
  390.                 if input.UserInputType == Enum.UserInputType.MouseButton1 then
  391.                     inputDown = true
  392.                     refresh()
  393.                 end
  394.             end)
  395.             obj.InputEnded:Connect(function(input)
  396.                 if input.UserInputType == Enum.UserInputType.MouseButton1 then
  397.                     inputDown = false
  398.                     refresh()
  399.                 end
  400.             end)
  401.             obj.InputChanged:Connect(function(input)
  402.                 if input == nil or input.UserInputType == Enum.UserInputType.MouseMovement then
  403.                     if inputDown then
  404.                         refresh()
  405.                     end
  406.                 end
  407.             end)
  408.         end
  409.        
  410.         return refresh
  411.     end
  412.    
  413.     function gui:createSlider(sliderFrame, inputObjects, callback)
  414.         local slider = sliderFrame.Value
  415.         local inputDown = false
  416.        
  417.         local absPos = sliderFrame.AbsolutePosition.X + sliderFrame.AbsoluteSize.X
  418.         local absSize = sliderFrame.AbsoluteSize.X
  419.        
  420.         local function refresh(custom)
  421.             local mouseX = Mouse.X
  422.             local sliderX = absPos
  423.             local dist = sliderX - mouseX
  424.             local delta = 1 - math.clamp(dist / absSize, 0, 1)
  425.            
  426.             if custom then
  427.                 delta = custom
  428.             end
  429.            
  430.             slider.Size = UDim2.new(delta, 0, 1, 0)
  431.             if callback then
  432.                 callback(delta, custom)
  433.             end
  434.         end
  435.        
  436.         for _, obj in pairs(inputObjects) do
  437.             obj.InputBegan:Connect(function(input)
  438.                 if input.UserInputType == Enum.UserInputType.MouseButton1 then
  439.                     inputDown = true
  440.                     absPos = sliderFrame.AbsolutePosition.X + sliderFrame.AbsoluteSize.X
  441.                     absSize = sliderFrame.AbsoluteSize.X
  442.                     refresh()
  443.                 end
  444.             end)
  445.             obj.InputEnded:Connect(function(input)
  446.                 if input.UserInputType == Enum.UserInputType.MouseButton1 then
  447.                     inputDown = false
  448.                     refresh()
  449.                 end
  450.             end)
  451.             obj.InputChanged:Connect(function(input)
  452.                 if input == nil or input.UserInputType == Enum.UserInputType.MouseMovement then
  453.                     if inputDown then
  454.                         refresh()
  455.                     end
  456.                 end
  457.             end)
  458.         end
  459.        
  460.         return refresh
  461.     end
  462.    
  463.     function gui:textSize(txt, vSize)
  464.         return TextService:GetTextSize(txt.Text, txt.TextSize, txt.Font, vSize)
  465.     end
  466.    
  467.     local currentHint = 0
  468.    
  469.     function gui:addHint(guiObject, hintText)
  470.         local hintKey = math.random()
  471.         guiObject.MouseEnter:Connect(function()
  472.             hintKey = math.random()
  473.             currentHint = hintKey
  474.            
  475.             wait(2)
  476.            
  477.             if currentHint == hintKey then
  478.                 gui:setText(screenGui.Hint, " " .. hintText .. " ")
  479.                 local textSize = gui:textSize(screenGui.Hint, Vector2.new(2500, 500))
  480.                 screenGui.Hint.Position = UDim2.new(0, Mouse.X, 0, Mouse.Y + 4)
  481.                 screenGui.Hint.Size = UDim2.new(0, textSize.X, 0, textSize.Y)
  482.                 screenGui.Hint.Visible = true
  483.             end
  484.         end)
  485.        
  486.         guiObject.MouseLeave:Connect(function()
  487.             hintKey = math.random()
  488.         end)
  489.        
  490.         Mouse.Move:Connect(function()
  491.             if currentHint == hintKey then
  492.                 screenGui.Hint.Visible = false
  493.             end
  494.         end)
  495.     end
  496.    
  497.     -- UI Type Library
  498.     local lib = {}
  499.    
  500.     function lib.Color(data, dataArray)
  501.         local guiObject = Color:Clone()
  502.         local color3Value = gui:unpack(saveData.Options[data.ID].Value, "Color3") or data.Default or Color3.new(1, 1, 1)
  503.         local guiData = {}
  504.        
  505.         local HSV = color3Value
  506.         local H, S, V = color:rgbToHsv(HSV.r * 255, HSV.g * 255, HSV.b * 255)
  507.        
  508.         local newValue = function()
  509.             HSV = Color3.fromHSV(H, S, V)
  510.             guiObject.SV.BackgroundColor3 = Color3.fromHSV(H, 1, 1)
  511.             guiObject.Indicator.BackgroundColor3 = HSV
  512.             saveData.Options[data.ID].Value = gui:pack(HSV, "Color3")
  513.            
  514.             guiObject.R.Text = math.floor(HSV.r * 255)
  515.             guiObject.G.Text = math.floor(HSV.g * 255)
  516.             guiObject.B.Text = math.floor(HSV.b * 255)
  517.            
  518.             if data.Callback then
  519.                 data.Callback(HSV)
  520.             end
  521.         end
  522.        
  523.         local function updateHSV()
  524.             H, S, V = color:rgbToHsv(HSV.r * 255, HSV.g * 255, HSV.b * 255)
  525.         end
  526.        
  527.         local H_set = gui:sliderXY(guiObject.H, {guiObject.H}, function(X, Y, u)
  528.             if not u then H = 1 - Y end
  529.             guiObject.H.Locator.Position = UDim2.new(0.5, 0, Y, 0)
  530.             newValue()
  531.         end)
  532.        
  533.         local SV_set = gui:sliderXY(guiObject.SV, {guiObject.SV}, function(X, Y, u)
  534.             if not u then S = X; V = 1 - Y; end
  535.             guiObject.SV.Locator.Position = UDim2.new(X, 0, Y, 0)
  536.             newValue()
  537.         end)
  538.        
  539.         guiObject.R.FocusLost:Connect(function()
  540.             HSV = Color3.new(guiObject.R.Text / 255, HSV.g, HSV.b)
  541.             updateHSV()
  542.             newValue()
  543.         end)
  544.         guiObject.G.FocusLost:Connect(function()
  545.             HSV = Color3.new(HSV.r, guiObject.G.Text / 255, HSV.b)
  546.             updateHSV()
  547.             newValue()
  548.         end)
  549.         guiObject.B.FocusLost:Connect(function()
  550.             HSV = Color3.new(HSV.r, HSV.g, guiObject.B.Text / 255)
  551.             updateHSV()
  552.             newValue()
  553.         end)
  554.        
  555.         newValue()
  556.         SV_set(S, 1 - V)
  557.         H_set(0, H)
  558.        
  559.         guiData.ySize = 0
  560.         guiData.Open = false
  561.         guiData.baseColor = colors.TextEnabled
  562.        
  563.         gui:setText(guiObject.Label, data.Name)
  564.         gui:textColorOnHover(guiObject.Label, guiData)
  565.        
  566.         return guiObject
  567.     end
  568.    
  569.     function lib.Number(data, dataArray)
  570.         local guiObject = Number:Clone()
  571.         local Value = gui:unpack(saveData.Options[data.ID].Value, "number") or data.Default or math.floor(data.Min + (data.Max - data.Min) / 2)
  572.         local guiData = {}
  573.        
  574.         local dMax = data.Max - data.Min
  575.         local dValue = (Value - data.Min) / dMax
  576.        
  577.         data.Round = data.Round or 1
  578.        
  579.         local newValue = function(delta)
  580.             local exactValue = data.Min + (data.Max - data.Min) * delta
  581.             Value = math.floor(exactValue / data.Round) * data.Round
  582.             Value = math.clamp(Value, data.Min, data.Max)
  583.             guiObject.Indicator.Value.Text = tostring(Value)
  584.            
  585.             if data.Callback then
  586.                 data.Callback(Value)
  587.             end
  588.             saveData.Options[data.ID].Value = gui:pack(Value, "number")
  589.         end
  590.        
  591.         local slideSet = gui:createSlider(guiObject.ValueFrame, {guiObject.Label, guiObject.Indicator}, newValue)
  592.         slideSet(math.clamp(dValue, 0, 1))
  593.        
  594.         guiObject.Indicator.MouseButton1Down:Connect(newValue)
  595.         guiObject.Label.MouseButton1Down:Connect(newValue)
  596.         newValue(math.clamp(dValue, 0, 1))
  597.        
  598.         guiData.ySize = 0
  599.         guiData.Open = false
  600.         guiData.baseColor = colors.TextEnabled
  601.        
  602.         gui:createList(guiObject, guiData)
  603.         gui:setText(guiObject.Label, data.Name)
  604.         gui:textColorOnHover(guiObject.Label, guiData)
  605.        
  606.         return guiObject
  607.     end
  608.    
  609.     function lib.Execute(data, dataArray)
  610.         local guiObject = Execute:Clone()
  611.         local guiData = {}
  612.        
  613.         local newValue = function(val)
  614.             if data.Callback then
  615.                 data.Callback()
  616.             end
  617.         end
  618.        
  619.         guiObject.MouseEnter:Connect(function()
  620.             gui.tween(guiObject.Indicator, "Sine", "Out", .25, {Size = UDim2.new(0, 40, 0, 25)})
  621.         end)
  622.        
  623.         guiObject.MouseLeave:Connect(function()
  624.             gui.tween(guiObject.Indicator, "Sine", "Out", .25, {Size = UDim2.new(0, 0, 0, 25)})
  625.         end)
  626.        
  627.         guiObject.Indicator.MouseButton1Down:Connect(newValue)
  628.         guiObject.Label.MouseButton1Down:Connect(newValue)
  629.         newValue(true)
  630.        
  631.         guiData.ySize = 0
  632.         guiData.Open = false
  633.         guiData.baseColor = colors.TextEnabled
  634.        
  635.         gui:createList(guiObject, guiData)
  636.         gui:setText(guiObject.Label, data.Name)
  637.         gui:textColorOnHover(guiObject.Label, guiData)
  638.        
  639.         return guiObject
  640.     end
  641.    
  642.     function lib.Mode(data, dataArray)
  643.         local guiObject = Mode:Clone()
  644.         local valueIndex = gui:unpack(saveData.Options[data.ID].Value, "number") or data.Default or 1
  645.         local guiData = {}
  646.        
  647.         local newValue = function(val)
  648.             if val == true then else
  649.                 valueIndex = (valueIndex % #data.Modes) + 1
  650.             end
  651.            
  652.             local Value = data.Modes[valueIndex]
  653.             gui:setText(guiObject.Mode, Value)
  654.            
  655.             if data.Callback then
  656.                 data.Callback(Value)
  657.             end
  658.             saveData.Options[data.ID].Value = gui:pack(valueIndex)
  659.         end
  660.        
  661.         guiObject.Mode.MouseButton1Down:Connect(newValue)
  662.         guiObject.Label.MouseButton1Down:Connect(newValue)
  663.         newValue(true)
  664.        
  665.         guiData.ySize = 0
  666.         guiData.Open = false
  667.         guiData.baseColor = colors.TextEnabled
  668.        
  669.         gui:createList(guiObject, guiData)
  670.         gui:setText(guiObject.Label, data.Name)
  671.         gui:textColorOnHover(guiObject.Label, guiData)
  672.        
  673.         return guiObject
  674.     end
  675.    
  676.     function lib.Hotkey(data, dataArray)
  677.         local guiObject = Mode:Clone()
  678.         local hotkeyInput = gui:unpack(saveData.Hotkeys[data.ID], "string") or data.Hotkey or ""
  679.         local guiData = {}
  680.        
  681.         local lastInput = hotkeyInput
  682.         local mouseIn = false
  683.        
  684.         guiObject.Name = "Z"
  685.        
  686.         local newValue = function(val)
  687.             local input
  688.             gui:setText(guiObject.Mode, "...")
  689.             saveData.Hotkeys[data.ID] = nil
  690.            
  691.             if not val then
  692.                 input = lastInput
  693.                 mouseIn = true
  694.                
  695.                 lastInput = nil
  696.                
  697.                 repeat wait() until mouseIn == false or lastInput
  698.             end
  699.            
  700.             if not lastInput then
  701.                 lastInput = hotkeyInput
  702.             end
  703.            
  704.             saveData.Hotkeys[data.ID] = tostring(lastInput)
  705.             hotkeyFunctions[data.ID] = data.callback
  706.            
  707.             hotkeyInput = tostring(lastInput)
  708.             saveData.Options[data.ID].Value = hotkeyInput
  709.             gui:setText(guiObject.Mode, hotkeyInput:sub(14))
  710.         end
  711.        
  712.         UserInputService.InputBegan:Connect(function(input)
  713.             if input.KeyCode == Enum.KeyCode.Unknown then return end
  714.             if input.KeyCode == Enum.KeyCode.Backspace then lastInput = "" return end
  715.             lastInput = tostring(input.KeyCode)
  716.         end)
  717.        
  718.         guiObject.Mode.MouseButton1Down:Connect(function() newValue() end)
  719.         guiObject.Label.MouseButton1Down:Connect(function() newValue() end)
  720.         guiObject.MouseLeave:Connect(function()
  721.             mouseIn = false
  722.         end)
  723.         newValue(true)
  724.        
  725.         guiData.ySize = 0
  726.         guiData.Open = false
  727.         guiData.baseColor = colors.TextEnabled
  728.        
  729.         gui:createList(guiObject, guiData)
  730.         gui:setText(guiObject.Label, "Hotkey")
  731.         gui:textColorOnHover(guiObject.Label, guiData)
  732.        
  733.         guiObject.Parent = dataArray.Object.OptionsFrame
  734.        
  735.         return guiObject
  736.     end
  737.    
  738.     function lib.Toggle(data, dataArray)
  739.         local guiObject = Toggle:Clone()
  740.         local Value = gui:unpack(saveData.Options[data.ID].Value, "boolean") or data.Default or false
  741.         local guiData = {}
  742.        
  743.         local modFrame = ModLabel:Clone()
  744.         modFrame.Parent = Mods
  745.         modFrame.TextColor3 = Colors[math.random(1, #Colors)]
  746.         modFrame.Visible = false
  747.         gui:setText(modFrame, data.Name)
  748.        
  749.         guiObject.Name = data.Name
  750.        
  751.         local newValue = function(val, set)
  752.             if val == true then
  753.             else
  754.                 if set then
  755.                     Value = set
  756.                 else
  757.                     Value = not Value
  758.                 end
  759.             end
  760.            
  761.             if Value then
  762.                 gui.tween(guiObject.Indicator, "Sine", "Out", .25, {BackgroundColor3 = Color3.fromRGB(60, 222, 60)})
  763.                 guiObject.Indicator.Text = "ON"
  764.                 guiData.baseColor = colors.TextEnabled
  765.             else
  766.                 gui.tween(guiObject.Indicator, "Sine", "Out", .25, {BackgroundColor3 = Color3.fromRGB(222, 60, 60)})
  767.                 guiObject.Indicator.Text = "OFF"
  768.                 guiData.baseColor = colors.TextDisabled
  769.             end
  770.            
  771.             if data.Callback then
  772.                 data.Callback(Value)
  773.             end
  774.            
  775.             saveData.Options[data.ID].Value = gui:pack(Value)
  776.             modFrame.Visible = Value
  777.            
  778.         end
  779.        
  780.         guiObject.MouseEnter:Connect(function()
  781.             gui.tween(guiObject.Indicator, "Sine", "Out", .25, {Size = UDim2.new(0, 40, 0, 25)})
  782.         end)
  783.        
  784.         guiObject.MouseLeave:Connect(function()
  785.             gui.tween(guiObject.Indicator, "Sine", "Out", .25, {Size = UDim2.new(0, 0, 0, 25)})
  786.         end)
  787.        
  788.         gui.tween(guiObject.Indicator, "Sine", "Out", .25, {Size = UDim2.new(0, 0, 0, 25)})
  789.         guiObject.Indicator.MouseButton1Down:Connect(function() newValue() end)
  790.         guiObject.Label.MouseButton1Down:Connect(function() newValue() end)
  791.         newValue(true)
  792.        
  793.         guiData.ySize = 0
  794.         guiData.Open = false
  795.         guiData.baseColor = colors.TextDisabled
  796.        
  797.         gui:createList(guiObject, guiData)
  798.         gui:setText(guiObject.Label, data.Name)
  799.         gui:textColorOnHover(guiObject.Label, guiData)
  800.        
  801.         data.callback = newValue
  802.        
  803.         return guiObject
  804.     end
  805.    
  806.     function lib.Checkbox(data, dataArray)
  807.         local guiObject = Checkbox:Clone()
  808.         local Value = gui:unpack(saveData.Options[data.ID].Value, "boolean") or data.Default or false
  809.         local guiData = {}
  810.        
  811.         guiObject.Name = "0"
  812.        
  813.         local newValue = function(val)
  814.             if val == true then else
  815.                 Value = not Value
  816.             end
  817.             if Value then
  818.                 gui.tween(guiObject.Indicator, "Sine", "Out", .35, {Size = UDim2.new(0, 35, 0, 35)})
  819.                 guiData.baseColor = colors.TextEnabled
  820.             else
  821.                 gui.tween(guiObject.Indicator, "Sine", "Out", .35, {Size = UDim2.new(0, 0, 0, 35)})
  822.                 guiData.baseColor = colors.TextDisabled
  823.             end
  824.             if data.Callback then
  825.                 data.Callback(Value)
  826.             end
  827.             saveData.Options[data.ID].Value = gui:pack(Value)
  828.         end
  829.        
  830.         guiObject.Indicator.MouseButton1Down:Connect(newValue)
  831.         guiObject.Label.MouseButton1Down:Connect(newValue)
  832.         newValue(true)
  833.        
  834.         guiData.ySize = 0
  835.         guiData.Open = false
  836.         guiData.baseColor = colors.TextDisabled
  837.        
  838.         gui:createList(guiObject, guiData)
  839.         gui:setText(guiObject.Label, data.Name)
  840.         gui:textColorOnHover(guiObject.Label, guiData)
  841.        
  842.         return guiObject
  843.     end
  844.    
  845.     function lib.Frame(data, dataArray)
  846.         local guiObject = Frame:Clone()
  847.        
  848.         local guiData = {}
  849.         guiData.ySize = 0
  850.         guiData.Open = false
  851.        
  852.         gui:createList(guiObject, guiData)
  853.         gui:setText(guiObject.Label, data.Name)
  854.         gui:textColorOnHover(guiObject.Label, guiData)
  855.        
  856.         return guiObject
  857.     end
  858.    
  859.     function lib.Container(data, dataArray)
  860.         local guiObject = Container:Clone()
  861.        
  862.         guiObject.Position = gui:unpack(saveData.Options[data.ID].Position, "UDim2") or UDim2.new(0, 3, 0, 3 + gui:getn(settingsArray[2]) * 38)
  863.        
  864.         local guiData = {}
  865.         guiData.yPos = 0
  866.         guiData.ySize = 0
  867.         guiData.Open = false
  868.        
  869.         gui:textColorOnHover(guiObject.Title, guiData)
  870.         gui:createList(guiObject, guiData)
  871.         gui:setText(guiObject.Title, data.Name)
  872.         gui:makeDraggable(guiObject, function(x, y)
  873.             guiData.yPos = y
  874.             saveData.Options[data.ID].Position = gui:pack(guiObject.Position)
  875.         end)
  876.        
  877.         return guiObject
  878.     end
  879.    
  880.     -- UI Creation Library
  881.     function gui.create(self, guiType, data)
  882.         if self == gui then
  883.             self = settingsArray
  884.         end
  885.        
  886.         data.ID = data.Name .. "_" .. (self[1].Name or "TOP")
  887.        
  888.         if not saveData.Options[data.ID] then
  889.             saveData.Options[data.ID] = {}
  890.         end
  891.        
  892.         if self[1].Object:FindFirstChild("Dropdown") then
  893.             self[1].Object.Dropdown.Visible = true
  894.         end
  895.        
  896.         local dataArray = {}
  897.         local objectArray = {}
  898.         local selfArray = {dataArray, objectArray, create = gui.create, callback = data.Callback}
  899.         dataArray.Name = data.Name
  900.         dataArray.Data = data
  901.         dataArray.Object = lib[guiType](data, dataArray)
  902.         dataArray.self = selfArray
  903.        
  904.         if guiType == "Toggle" then
  905.             lib.Hotkey(data, dataArray)
  906.         end
  907.         if data.Hint then
  908.             local Object = dataArray.Object
  909.             gui:addHint(Object:FindFirstChild("Title") or Object:FindFirstChild("Label"), data.Hint)
  910.         end
  911.        
  912.         self[1][data.Name] = selfArray
  913.         self[2][data.Name] = dataArray.Object
  914.        
  915.         dataArray.Object.Parent = self[1].Object:FindFirstChild("OptionsFrame") or self[1].Object
  916.        
  917.         return dataArray
  918.     end
  919.    
  920.     -- Connection Stuff
  921.     game:GetService("RunService").RenderStepped:Connect(function()
  922.         for _, func in pairs(connections) do
  923.             func()
  924.         end
  925.     end)
  926.    
  927.     UserInputService.InputBegan:Connect(function(input, gameProcessed)
  928.         if gameProcessed then return end
  929.         for id, key in pairs(saveData.Hotkeys) do
  930.             if key == tostring(input.KeyCode) then
  931.                 hotkeyFunctions[id]()
  932.             end
  933.         end
  934.     end)
  935.    
  936.     Mods.Text = "OpenGui " .. _V
  937.    
  938.     game.Close:Connect(function()
  939.         Save()
  940.     end)
  941.    
  942.     return {gui, saveData, screenGui}
  943. end)()
  944.  
  945. local _ESP = (function()
  946.     --// Variables
  947.     local RunService = game:GetService("RunService")
  948.     local Players = game:GetService("Players")
  949.       local Player = Players.LocalPlayer
  950.     local Screen = Instance.new("ScreenGui")
  951.       local Viewport = Instance.new("ViewportFrame", Screen)
  952.    
  953.     local module = {}
  954.     local characters = {}
  955.     local clones = {}
  956.     local parts = {}
  957.    
  958.     module.Options = {
  959.         Enabled = false,
  960.         Parent = script.Parent or game.CoreGui,
  961.         Color = Color3.new(1, 1, 1),
  962.         ShowDescendants = false,
  963.         TeamColor = false,
  964.         ShowSelf = false,
  965.         ShowTeam = false,
  966.         Mode = "Shader",
  967.         Opacity = 1,
  968.         Arrow = false,
  969.         MaxDistance = 500,
  970.     }
  971.    
  972.     --// Edits
  973.     Viewport.Size = UDim2.new(1, 0, 1, 0)
  974.     Viewport.BackgroundTransparency = 1
  975.     Viewport.CurrentCamera = workspace.CurrentCamera
  976.     Screen.IgnoreGuiInset = true
  977.    
  978.     --// Functions
  979.     local function getParts(Model)
  980.         local parts = {}
  981.         local descendants = Model:GetDescendants()
  982.         local descendantsn = #descendants
  983.         for i = 1, descendantsn do
  984.             local desc = descendants[i]
  985.             if desc:IsA("BasePart") then
  986.                 table.insert(parts, desc)
  987.             end
  988.         end
  989.         return parts
  990.     end
  991.    
  992.     local function getPart(Model)
  993.         return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
  994.     end
  995.    
  996.     function module:Clone(Object)
  997.         local isArchivable = Object.Archivable
  998.         local Clone
  999.        
  1000.         Object.Archivable = true
  1001.         Clone = Object:Clone()
  1002.         Object.Archivable = isArchivable
  1003.        
  1004.         for _, child in pairs(Clone:GetDescendants()) do
  1005.             if child:IsA("Clothing") or child:IsA("Decal") or child:IsA("Script") or child:IsA("LocalScript") or child:IsA("Sound") then
  1006.                 child:Destroy()
  1007.             elseif child:IsA("BasePart") then
  1008.                 child.Color = Color3.new(1, 1, 1)
  1009.                 child.Material = "ForceField"
  1010.             elseif child:IsA("Humanoid") then
  1011.                 child.DisplayDistanceType = "None"
  1012.             elseif child:IsA("SpecialMesh") then
  1013.                 child.TextureId = "rbxassetid://55054494"
  1014.             elseif child:IsA("MeshPart") then
  1015.                 child.TextureID = "rbxassetid://55054494"
  1016.             end
  1017.         end
  1018.        
  1019.         return Clone
  1020.     end
  1021.    
  1022.     function module:Enable()
  1023.         module.Options.Enabled = true
  1024.         Screen.Parent = module.Options.Parent
  1025.        
  1026.         module:ReloadCharacters()
  1027.     end
  1028.    
  1029.     function module:Disable()
  1030.         module.Options.Enabled = false
  1031.         Screen.Parent = nil
  1032.     end
  1033.    
  1034.     function module:ReloadCharacters()
  1035.         Viewport:ClearAllChildren()
  1036.         if module.Options.Mode ~= "Shader" then
  1037.             return
  1038.         end
  1039.         for player, character in pairs(characters) do
  1040.             local clone = module:Clone(character)
  1041.             clone.Name = player.Name
  1042.             clone.Parent = Viewport
  1043.             clones[player] = clone
  1044.         end
  1045.     end
  1046.    
  1047.     local function newPlayer(player)
  1048.         if player.Character then
  1049.             characters[player] = player.Character
  1050.            
  1051.             local clone = module:Clone(player.Character)
  1052.             clone.Name = player.Name
  1053.             clone.Parent = Viewport
  1054.             clones[player] = clone
  1055.         end
  1056.         player.CharacterAdded:Connect(function(char)
  1057.             if clones[player] then
  1058.                 clones[player]:Destroy()
  1059.                 clones[player] = nil
  1060.             end;if characters[player] then
  1061.                 characters[player]:Destroy()
  1062.                 characters[player] = nil
  1063.             end
  1064.            
  1065.             characters[player] = char
  1066.            
  1067.             local clone = module:Clone(char)
  1068.             clone.Name = player.Name
  1069.             clone.Parent = Viewport
  1070.             clones[player] = clone
  1071.         end)
  1072.     end
  1073.    
  1074.     Players.PlayerAdded:Connect(newPlayer)
  1075.     Players.PlayerRemoving:Connect(function(player)
  1076.         if clones[player] then
  1077.             clones[player]:Destroy()
  1078.             clones[player] = nil
  1079.         end;if characters[player] then
  1080.             characters[player]:Destroy()
  1081.             characters[player] = nil
  1082.         end
  1083.     end)
  1084.     for _, player in pairs(Players:GetPlayers()) do
  1085.         newPlayer(player)
  1086.     end
  1087.    
  1088.     RunService.RenderStepped:Connect(function()
  1089.         if module.Options.Enabled and module.Options.Mode == "Shader" then
  1090.             for player, character in pairs(characters) do
  1091.                 local clone = clones[player]
  1092.                 local target = getPart(clone)
  1093.                 if target then
  1094.                     if ((player.Team == Player.Team and module.Options.ShowTeam) or player.Team ~= Player.Team) and (target.Position - workspace.CurrentCamera.CFrame.p).Magnitude <= module.Options.MaxDistance then
  1095.                         if (player == Player and module.Options.ShowSelf) or player ~= Player then
  1096.                             local parts = getParts(clone)
  1097.                             for i = 1, #parts do
  1098.                                 local obj = parts[i]
  1099.                                 local cor = character:FindFirstChild(obj.Name, true)
  1100.                                 if character:FindFirstChild(obj.Parent.Name) then
  1101.                                     cor = character:FindFirstChild(obj.Parent.Name):FindFirstChild(obj.Name)
  1102.                                 end
  1103.                                
  1104.                                 if cor and obj then
  1105.                                     if module.Options.TeamColor then
  1106.                                         obj.Color = player.TeamColor.Color
  1107.                                     else
  1108.                                         obj.Color = Color3.new(1, 1, 1)
  1109.                                     end
  1110.                                     if module.Options.ShowDescendants then
  1111.                                         obj.CFrame = cor.CFrame
  1112.                                     elseif obj.Parent == clone then
  1113.                                         obj.CFrame = cor.CFrame
  1114.                                     else
  1115.                                         obj.CFrame = CFrame.new(10000, 10000, 10000)
  1116.                                     end
  1117.                                 end
  1118.                             end
  1119.                             if clone.Parent == nil then
  1120.                                 clone.Parent = Viewport
  1121.                             end
  1122.                         else
  1123.                             clone.Parent = nil
  1124.                         end
  1125.                     else
  1126.                         clone.Parent = nil
  1127.                     end
  1128.                 else
  1129.                     clone.Parent = nil
  1130.                 end
  1131.             end
  1132.             Viewport.ImageColor3 = module.Options.Color
  1133.             Viewport.ImageTransparency = 1 - module.Options.Opacity
  1134.         end
  1135.     end)
  1136.    
  1137.     return module
  1138.    
  1139. end)()
  1140. local _ESP2D = (function()
  1141.     --// Variables
  1142.     local RunService = game:GetService("RunService")
  1143.     local Players = game:GetService("Players")
  1144.       local Player = Players.LocalPlayer
  1145.    
  1146.     local module = {}
  1147.     local characters = {}
  1148.     local esp = {}
  1149.    
  1150.     module.Options = {
  1151.         Enabled = false,
  1152.         Parent = script.Parent or game.CoreGui,
  1153.         Color = Color3.new(1, 1, 1),
  1154.         TeamColor = false,
  1155.         ShowSelf = false,
  1156.         ShowTeam = false,
  1157.         ShowDescendants = false,
  1158.         Opacity = 1,
  1159.         Mode = "Box",
  1160.         Arrow = false,
  1161.         MaxDistance = 500,
  1162.     }
  1163.    
  1164.     --// Functions
  1165.     local function getParts(Model)
  1166.         local parts = {}
  1167.         local descendants = (module.Options.ShowDescendants and Model:GetDescendants()) or Model:GetChildren()
  1168.         local descendantsn = #descendants
  1169.         for i = 1, descendantsn do
  1170.             local desc = descendants[i]
  1171.             if desc:IsA("BasePart") then
  1172.                 table.insert(parts, desc)
  1173.             end
  1174.         end
  1175.         return parts
  1176.     end
  1177.    
  1178.     local function getPart(Model)
  1179.         return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
  1180.     end
  1181.    
  1182.     function module:Enable()
  1183.         module.Options.Enabled = true
  1184.         module:ReloadCharacters()
  1185.     end
  1186.    
  1187.     function module:Disable()
  1188.         module.Options.Enabled = false
  1189.     end
  1190.    
  1191.     function module:LoadCharacter(player, char)
  1192.         local boxes = {}
  1193.         if module.Options.Mode == "Default" then
  1194.             local parts = getParts(char)
  1195.             for i = 1, #parts do
  1196.                 local part = parts[i]
  1197.                 local adornment = Instance.new("BoxHandleAdornment", module.Options.Parent)
  1198.                 adornment.Adornee = part
  1199.                 adornment.AlwaysOnTop = true
  1200.                 adornment.Color3 = module.Options.Color
  1201.                 adornment.Size = part.Size
  1202.                 adornment.ZIndex = 1
  1203.                 adornment.Transparency = 1 - module.Options.Opacity
  1204.                 if module.Options.TeamColor then
  1205.                     adornment.Color3 = player.TeamColor.Color
  1206.                 end
  1207.                
  1208.                 table.insert(boxes, adornment)
  1209.             end
  1210.            
  1211.             local part = getPart(char)
  1212.             if module.Options.Arrow then
  1213.                 local arrow = Instance.new("Handles", module.Options.Parent)
  1214.                 arrow.Adornee = part
  1215.                 arrow.Faces = Faces.new(Enum.NormalId.Front)
  1216.                 arrow.Style = Enum.HandlesStyle.Movement
  1217.                 arrow.Color3 = module.Options.Color
  1218.                 if module.Options.TeamColor then
  1219.                     arrow.Color3 = player.TeamColor.Color
  1220.                 end
  1221.                 table.insert(boxes, arrow)
  1222.             end
  1223.         elseif module.Options.Mode == "Box" then
  1224.             local part = getPart(char)
  1225.             local adornment = Instance.new("BoxHandleAdornment", module.Options.Parent)
  1226.             adornment.Adornee = part
  1227.             adornment.AlwaysOnTop = true
  1228.             adornment.Color3 = module.Options.Color
  1229.             adornment.Size = char:GetExtentsSize()
  1230.             adornment.ZIndex = 1
  1231.             adornment.Transparency = 1 - module.Options.Opacity
  1232.             if module.Options.TeamColor then
  1233.                 adornment.Color3 = player.TeamColor.Color
  1234.             end
  1235.            
  1236.             if module.Options.Arrow then
  1237.                 local arrow = Instance.new("Handles", module.Options.Parent)
  1238.                 arrow.Adornee = part
  1239.                 arrow.Faces = Faces.new(Enum.NormalId.Front)
  1240.                 arrow.Style = Enum.HandlesStyle.Movement
  1241.                 arrow.Color3 = module.Options.Color
  1242.                 if module.Options.TeamColor then
  1243.                     arrow.Color3 = player.TeamColor.Color
  1244.                 end
  1245.                 table.insert(boxes, arrow)
  1246.             end
  1247.            
  1248.             table.insert(boxes, adornment)
  1249.         elseif module.Options.Mode == "Square" then
  1250.             local part = getPart(char)
  1251.             local billboard = (function()
  1252.         local partsWithId = {}
  1253.         local awaitRef = {}
  1254.        
  1255.         local root = {
  1256.             ID = 0;
  1257.             Type = "BillboardGui";
  1258.             Properties = {
  1259.                 ClipsDescendants = true;
  1260.                 LightInfluence = 1;
  1261.                 Name = "B";
  1262.                 ZIndexBehavior = Enum.ZIndexBehavior.Sibling;
  1263.                 StudsOffset = Vector3.new(0,-0.5,0);
  1264.                 Active = true;
  1265.                 AlwaysOnTop = true;
  1266.                 Size = UDim2.new(5,0,6,0);
  1267.             };
  1268.             Children = {
  1269.                 {
  1270.                     ID = 1;
  1271.                     Type = "Frame";
  1272.                     Properties = {
  1273.                         AnchorPoint = Vector2.new(0.5,0.5);
  1274.                         BackgroundTransparency = 0.5;
  1275.                         Position = UDim2.new(0.5,0,0.5,0);
  1276.                         BorderColor3 = Color3.new(4/51,4/51,4/51);
  1277.                         Size = UDim2.new(1,-4,1,-4);
  1278.                         BorderSizePixel = 2;
  1279.                         BackgroundColor3 = Color3.new(1,1,1);
  1280.                     };
  1281.                     Children = {};
  1282.                 };
  1283.             };
  1284.         };
  1285.        
  1286.         local function Scan(item, parent)
  1287.             local obj = Instance.new(item.Type)
  1288.             if (item.ID) then
  1289.                 local awaiting = awaitRef[item.ID]
  1290.                 if (awaiting) then
  1291.                     awaiting[1][awaiting[2]] = obj
  1292.                     awaitRef[item.ID] = nil
  1293.                 else
  1294.                     partsWithId[item.ID] = obj
  1295.                 end
  1296.             end
  1297.             for p,v in pairs(item.Properties) do
  1298.                 if (type(v) == "string") then
  1299.                     local id = tonumber(v:match("^_R:(%w+)_$"))
  1300.                     if (id) then
  1301.                         if (partsWithId[id]) then
  1302.                             v = partsWithId[id]
  1303.                         else
  1304.                             awaitRef[id] = {obj, p}
  1305.                             v = nil
  1306.                         end
  1307.                     end
  1308.                 end
  1309.                 obj[p] = v
  1310.             end
  1311.             for _,c in pairs(item.Children) do
  1312.                 Scan(c, obj)
  1313.             end
  1314.             obj.Parent = parent
  1315.             return obj
  1316.         end
  1317.        
  1318.         return function() return Scan(root, nil) end
  1319.     end)()()
  1320.             billboard.Parent = module.Options.Parent
  1321.             billboard.Adornee = part
  1322.             billboard.Frame.BackgroundColor3 = module.Options.Color
  1323.             billboard.Frame.Transparency = 1 - module.Options.Opacity
  1324.             if module.Options.TeamColor then
  1325.                 billboard.Frame.Color3 = player.TeamColor.Color
  1326.             end
  1327.            
  1328.             if module.Options.Arrow then
  1329.                 local arrow = Instance.new("Handles", module.Options.Parent)
  1330.                 arrow.Adornee = part
  1331.                 arrow.Faces = Faces.new(Enum.NormalId.Front)
  1332.                 arrow.Style = Enum.HandlesStyle.Movement
  1333.                 arrow.Color3 = module.Options.Color
  1334.                 if module.Options.TeamColor then
  1335.                     arrow.Color3 = player.TeamColor.Color
  1336.                 end
  1337.                 table.insert(boxes, arrow)
  1338.             end
  1339.            
  1340.             table.insert(boxes, billboard)
  1341.         end
  1342.         esp[player] = boxes
  1343.     end
  1344.    
  1345.     function module:ReloadCharacters()
  1346.         for plr, tbl in pairs(esp) do
  1347.             for i, v in pairs(tbl) do
  1348.                 v:Destroy()
  1349.             end
  1350.             esp[plr] = {}
  1351.         end
  1352.         if module.Options.Enabled then
  1353.             for player, character in pairs(characters) do
  1354.                 local target = getPart(character)
  1355.                 if target then
  1356.                     if ((player.Team == Player.Team and module.Options.ShowTeam) or player.Team ~= Player.Team) and target and (target.Position - workspace.CurrentCamera.CFrame.p).Magnitude <= module.Options.MaxDistance then
  1357.                         if (player == Player and module.Options.ShowSelf) or player ~= Player then
  1358.                             module:LoadCharacter(player, character)
  1359.                         end
  1360.                     end
  1361.                 end
  1362.             end
  1363.         end
  1364.     end
  1365.    
  1366.     local function newPlayer(player)
  1367.         if player.Character then
  1368.             characters[player] = player.Character
  1369.             module:LoadCharacter(player, player.Character)
  1370.         end
  1371.         player.CharacterAdded:Connect(function(char)
  1372.             if esp[player] then
  1373.                 for i, v in pairs(esp[player]) do
  1374.                     v:Destroy()
  1375.                 end
  1376.                 esp[player] = {}
  1377.             end
  1378.            
  1379.             characters[player] = char
  1380.             module:LoadCharacter(player, player.Character)
  1381.         end)
  1382.     end
  1383.    
  1384.     Players.PlayerAdded:Connect(newPlayer)
  1385.     Players.PlayerRemoving:Connect(function(player)
  1386.         if esp[player] then
  1387.             for i, v in pairs(esp[player]) do
  1388.                 v:Destroy()
  1389.             end
  1390.             esp[player] = {}
  1391.             characters[player] = nil
  1392.         end
  1393.     end)
  1394.     for _, player in pairs(Players:GetPlayers()) do
  1395.         newPlayer(player)
  1396.     end
  1397.    
  1398.     spawn(function()
  1399.         while wait(2) do
  1400.             module:ReloadCharacters()
  1401.         end
  1402.     end)
  1403.    
  1404.     return module
  1405.    
  1406. end)()
  1407. local _Chams = (function()
  1408.     --// Variables
  1409.     local RunService = game:GetService("RunService")
  1410.     local Players = game:GetService("Players")
  1411.       local Player = Players.LocalPlayer
  1412.     local Screen = Instance.new("ScreenGui")
  1413.       local Viewport = Instance.new("ViewportFrame", Screen)
  1414.    
  1415.     local module = {}
  1416.     local characters = {}
  1417.     local clones = {}
  1418.     local parts = {}
  1419.    
  1420.     module.Options = {
  1421.         Enabled = false,
  1422.         Parent = script.Parent or game.CoreGui,
  1423.         Color = Color3.new(1, 1, 1),
  1424.         ShowDescendants = false,
  1425.         TeamColor = false,
  1426.         ShowSelf = false,
  1427.         ShowTeam = false,
  1428.         Mode = "Shader",
  1429.         Opacity = 1,
  1430.         MaxDistance = 500,
  1431.     }
  1432.    
  1433.     --// Edits
  1434.     Viewport.Size = UDim2.new(1, 0, 1, 0)
  1435.     Viewport.BackgroundTransparency = 1
  1436.     Viewport.CurrentCamera = workspace.CurrentCamera
  1437.     Screen.IgnoreGuiInset = true
  1438.    
  1439.     --// Functions
  1440.     local function getParts(Model)
  1441.         local parts = {}
  1442.         local descendants = Model:GetDescendants()
  1443.         local descendantsn = #descendants
  1444.         for i = 1, descendantsn do
  1445.             local desc = descendants[i]
  1446.             if desc:IsA("BasePart") then
  1447.                 table.insert(parts, desc)
  1448.             end
  1449.         end
  1450.         return parts
  1451.     end
  1452.    
  1453.     local function getPart(Model)
  1454.         return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
  1455.     end
  1456.    
  1457.     function module:Clone(Object)
  1458.         local isArchivable = Object.Archivable
  1459.         local Clone
  1460.        
  1461.         Object.Archivable = true
  1462.         Clone = Object:Clone()
  1463.         Object.Archivable = isArchivable
  1464.        
  1465.         if module.Options.Mode == "Shader" then
  1466.             Viewport.Ambient = Color3.fromRGB(200, 200, 200)
  1467.         else
  1468.             Viewport.Ambient = Color3.fromRGB(255, 255, 255)
  1469.         end
  1470.        
  1471.         for _, child in pairs(Clone:GetDescendants()) do
  1472.             if child:IsA("Script") or child:IsA("LocalScript") or child:IsA("Sound") then
  1473.                 child:Destroy()
  1474.             elseif child:IsA("Humanoid") then
  1475.                 child.DisplayDistanceType = "None"
  1476.             elseif module.Options.Mode ~= "Shader" then
  1477.                 if child:IsA("SpecialMesh") then
  1478.                     child.TextureId = ""
  1479.                 elseif child:IsA("MeshPart") then
  1480.                     child.TextureID = ""
  1481.                 elseif child:IsA("BasePart") then
  1482.                     child.Color = Color3.new(1, 1, 1)
  1483.                     child.Material = "Neon"
  1484.                 elseif child:IsA("Clothing") or child:IsA("Decal") then
  1485.                     child:Destroy()
  1486.                 end
  1487.             end
  1488.         end
  1489.        
  1490.         return Clone
  1491.     end
  1492.    
  1493.     function module:Enable()
  1494.         module.Options.Enabled = true
  1495.         Screen.Parent = module.Options.Parent
  1496.        
  1497.         module:ReloadCharacters()
  1498.     end
  1499.    
  1500.     function module:Disable()
  1501.         module.Options.Enabled = false
  1502.         Screen.Parent = nil
  1503.     end
  1504.    
  1505.     function module:ReloadCharacters()
  1506.         Viewport:ClearAllChildren()
  1507.         for player, character in pairs(characters) do
  1508.             local clone = module:Clone(character)
  1509.             clone.Name = player.Name
  1510.             clone.Parent = Viewport
  1511.             clones[player] = clone
  1512.         end
  1513.     end
  1514.    
  1515.     local function newPlayer(player)
  1516.         if player.Character then
  1517.             characters[player] = player.Character
  1518.            
  1519.             local clone = module:Clone(player.Character)
  1520.             clone.Name = player.Name
  1521.             clone.Parent = Viewport
  1522.             clones[player] = clone
  1523.         end
  1524.         player.CharacterAdded:Connect(function(char)
  1525.             if clones[player] then
  1526.                 clones[player]:Destroy()
  1527.                 clones[player] = nil
  1528.             end;if characters[player] then
  1529.                 characters[player]:Destroy()
  1530.                 characters[player] = nil
  1531.             end
  1532.            
  1533.             characters[player] = char
  1534.            
  1535.             local clone = module:Clone(char)
  1536.             clone.Name = player.Name
  1537.             clone.Parent = Viewport
  1538.             clones[player] = clone
  1539.         end)
  1540.     end
  1541.    
  1542.     Players.PlayerAdded:Connect(newPlayer)
  1543.     Players.PlayerRemoving:Connect(function(player)
  1544.         if clones[player] then
  1545.             clones[player]:Destroy()
  1546.             clones[player] = nil
  1547.         end;if characters[player] then
  1548.             characters[player]:Destroy()
  1549.             characters[player] = nil
  1550.         end
  1551.     end)
  1552.     for _, player in pairs(Players:GetPlayers()) do
  1553.         newPlayer(player)
  1554.     end
  1555.    
  1556.     RunService.RenderStepped:Connect(function()
  1557.         if module.Options.Enabled then
  1558.             for player, character in pairs(characters) do
  1559.                 local clone = clones[player]
  1560.                 local target = getPart(clone)
  1561.                
  1562.                 if target then
  1563.                     if ((player.Team == Player.Team and module.Options.ShowTeam) or player.Team ~= Player.Team) and target and (target.Position - workspace.CurrentCamera.CFrame.p).Magnitude <= module.Options.MaxDistance then
  1564.                         if (player == Player and module.Options.ShowSelf) or player ~= Player then
  1565.                             local parts = getParts(clone)
  1566.                             for i = 1, #parts do
  1567.                                 local obj = parts[i]
  1568.                                 local cor = character:FindFirstChild(obj.Name, true)
  1569.                                 if character:FindFirstChild(obj.Parent.Name) then
  1570.                                     cor = character:FindFirstChild(obj.Parent.Name):FindFirstChild(obj.Name)
  1571.                                 end
  1572.                                
  1573.                                 if cor and obj then
  1574.                                     if module.Options.TeamColor then
  1575.                                         obj.Color = player.TeamColor.Color
  1576.                                     elseif module.Options.Mode ~= "Shader" then
  1577.                                         obj.Color = Color3.new(1, 1, 1)
  1578.                                     end
  1579.                                     if module.Options.ShowDescendants then
  1580.                                         obj.CFrame = cor.CFrame
  1581.                                     elseif obj.Parent == clone then
  1582.                                         obj.CFrame = cor.CFrame
  1583.                                     else
  1584.                                         obj.CFrame = CFrame.new(10000, 10000, 10000)
  1585.                                     end
  1586.                                 end
  1587.                             end
  1588.                             if clone.Parent == nil then
  1589.                                 clone.Parent = Viewport
  1590.                             end
  1591.                         else
  1592.                             clone.Parent = nil
  1593.                         end
  1594.                     else
  1595.                         clone.Parent = nil
  1596.                     end
  1597.                 else
  1598.                     clone.Parent = nil
  1599.                 end
  1600.             end
  1601.             Viewport.ImageColor3 = module.Options.Color
  1602.             Viewport.ImageTransparency = 1 - module.Options.Opacity
  1603.         end
  1604.     end)
  1605.    
  1606.     return module
  1607.    
  1608. end)()
  1609. local _Tracers = (function()
  1610.     --// Variables
  1611.     local RunService = game:GetService("RunService")
  1612.     local Players = game:GetService("Players")
  1613.       local Player = Players.LocalPlayer
  1614.     local Screen = Instance.new("ScreenGui")
  1615.     local Camera = workspace.CurrentCamera
  1616.    
  1617.     local module = {}
  1618.     local characters = {}
  1619.     local tracers = {}
  1620.    
  1621.     module.Options = {
  1622.         Enabled = false,
  1623.         Parent = script.Parent or game.CoreGui,
  1624.         Color = Color3.new(1, 1, 1),
  1625.         TeamColor = false,
  1626.         ShowSelf = false,
  1627.         ShowTeam = false,
  1628.         Opacity = 1,
  1629.         Radius = 1,
  1630.         MaxDistance = 500,
  1631.     }
  1632.    
  1633.     Screen.Parent = module.Options.Parent
  1634.     Screen.IgnoreGuiInset = true
  1635.    
  1636.     --// Functions
  1637.     local function getParts(Model)
  1638.         local parts = {}
  1639.         local descendants = Model:GetDescendants()
  1640.         local descendantsn = #descendants
  1641.         for i = 1, descendantsn do
  1642.             local desc = descendants[i]
  1643.             if desc:IsA("BasePart") then
  1644.                 table.insert(parts, desc)
  1645.             end
  1646.         end
  1647.         return parts
  1648.     end
  1649.    
  1650.     local function getPart(Model)
  1651.         return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
  1652.     end
  1653.    
  1654.     function module:Enable()
  1655.         module.Options.Enabled = true
  1656.         module:ReloadCharacters()
  1657.     end
  1658.    
  1659.     function module:Disable()
  1660.         module.Options.Enabled = false
  1661.         for plr, line in pairs(tracers) do
  1662.             if line then
  1663.                 line[1]:Destroy()
  1664.             end
  1665.             tracers[plr] = nil
  1666.         end
  1667.     end
  1668.    
  1669.     function module:LoadCharacter(player, char)
  1670.         local tracer = {}
  1671.         local target = getPart(char)
  1672.         if target then
  1673.             local line = Instance.new("Part", Screen)
  1674.             line.Transparency = 1
  1675.             line.Anchored = true
  1676.             line.CanCollide = false
  1677.            
  1678.             local adornment = Instance.new("LineHandleAdornment", line)
  1679.             adornment.Name = "A"
  1680.             adornment.AlwaysOnTop = true
  1681.             adornment.ZIndex = 1
  1682.             adornment.Adornee = line
  1683.            
  1684.             tracer[1] = line
  1685.             tracer[2] = target
  1686.             tracer[3] = player
  1687.         else
  1688.             return
  1689.         end
  1690.        
  1691.         tracers[player] = tracer
  1692.     end
  1693.    
  1694.     function module:ReloadCharacters()
  1695.         for plr, line in pairs(tracers) do
  1696.             if line then
  1697.                 line[1]:Destroy()
  1698.             end
  1699.             tracers[plr] = nil
  1700.         end
  1701.         if module.Options.Enabled then
  1702.             for player, character in pairs(characters) do
  1703.                 if (player.Team == Player.Team and module.Options.ShowTeam) or player.Team ~= Player.Team then
  1704.                     if (player == Player and module.Options.ShowSelf) or player ~= Player then
  1705.                         module:LoadCharacter(player, character)
  1706.                     end
  1707.                 end
  1708.             end
  1709.         end
  1710.     end
  1711.    
  1712.     local function newPlayer(player)
  1713.         if player.Character then
  1714.             characters[player] = player.Character
  1715.             module:LoadCharacter(player, player.Character)
  1716.         end
  1717.         player.CharacterAdded:Connect(function(char)
  1718.             if tracers[player] then
  1719.                 tracers[player][1]:Destroy()
  1720.                 tracers[player] = nil
  1721.             end
  1722.             char:WaitForChild("Humanoid")
  1723.             characters[player] = char
  1724.             module:LoadCharacter(player, player.Character)
  1725.         end)
  1726.     end
  1727.    
  1728.     Players.PlayerAdded:Connect(newPlayer)
  1729.     Players.PlayerRemoving:Connect(function(player)
  1730.         if tracers[player] then
  1731.             if tracers[player] then
  1732.                 tracers[player][1]:Destroy()
  1733.                 tracers[player] = nil
  1734.             end
  1735.             characters[player] = nil
  1736.         end
  1737.     end)
  1738.     for _, player in pairs(Players:GetPlayers()) do
  1739.         newPlayer(player)
  1740.     end
  1741.    
  1742.     local function divideUDim(udim, factor)
  1743.         return UDim2.new(udim.X.Scale / factor, udim.X.Offset / factor, udim.Y.Scale / factor, udim.Y.Offset / factor)
  1744.     end
  1745.    
  1746.     RunService.RenderStepped:Connect(function()
  1747.         if module.Options.Enabled then
  1748.             for player, data in pairs(tracers) do
  1749.                 local line, target = unpack(data)
  1750.                 if (target and (player.Team == Player.Team and module.Options.ShowTeam) or player.Team ~= Player.Team) and (target.Position - Camera.CFrame.p).Magnitude <= module.Options.MaxDistance then
  1751.                     if (player == Player and module.Options.ShowSelf) or player ~= Player then
  1752.                         if line.Parent ~= Screen then
  1753.                             line.Parent = Screen
  1754.                         end
  1755.                        
  1756.                         local point1 = (Camera.CFrame * CFrame.new(0, 0, -0.5) - Vector3.new(0, 3, 0)).p
  1757.                         local point2 = target.Position - Vector3.new(0, 3, 0)
  1758.                        
  1759.                         local distance = point1 - point2
  1760.                         local magnitude = distance.Magnitude
  1761.                        
  1762.                         local c = module.Options.Color
  1763.                        
  1764.                         line.CFrame = CFrame.new(point1, point2)
  1765.                        
  1766.                         line.A.Thickness = module.Options.Radius
  1767.                         line.A.Length = magnitude
  1768.                         line.A.Color3 = Color3.new(c.r*5,c.g*5,c.b*5)
  1769.                         line.A.Transparency = 1 - module.Options.Opacity
  1770.                     else
  1771.                         line.Parent = nil
  1772.                     end
  1773.                 else
  1774.                     line.Parent = nil
  1775.                 end
  1776.             end
  1777.         end
  1778.     end)
  1779.    
  1780.     spawn(function()
  1781.         while wait(2) do
  1782.             if module.Options.Enabled then
  1783.                 module:ReloadCharacters()
  1784.             end
  1785.         end
  1786.     end)
  1787.    
  1788.     return module
  1789.    
  1790. end)()
  1791. local _Aimbot = (function()
  1792.     --// Variables
  1793.     local RunService = game:GetService("RunService")
  1794.     local UserInputService = game:GetService("UserInputService")
  1795.     local Players = game:GetService("Players")
  1796.       local Player = Players.LocalPlayer
  1797.         local Mouse = Player:GetMouse()
  1798.     local Camera = workspace.CurrentCamera
  1799.    
  1800.     local nearestCharacters = {}
  1801.     local module = {}
  1802.    
  1803.     module.Options = {
  1804.         Easing = 2,
  1805.         Enabled = false,
  1806.         ShowTeams = false,
  1807.         MaxDistance = 500,
  1808.         Legit = false,
  1809.         AimPart = "Head",
  1810.         Onscreen = false,
  1811.         Visible = true,
  1812.         Mode = "Nearest",
  1813.         Radius = 250,
  1814.     }
  1815.    
  1816.     --// Functions
  1817.     local function findPart(Model)
  1818.         return Model:FindFirstChild(module.Options.AimPart) or Model:FindFirstChild("HumanoidRootPart") or Model.PrimaryPart or Model:FindFirstChildWhichIsA("Part", true)
  1819.     end
  1820.    
  1821.     local mousemoverel = (mousemoverel or (Input and Input.MouseMove)) or function() end
  1822.    
  1823.     local function mouseMove(x, y, depth)
  1824.         local v1, v2 = Vector2.new(x, y), Vector2.new(Mouse.X, Mouse.Y)
  1825.         local viewCenter = Vector2.new(Mouse.ViewSizeX/2, Mouse.ViewSizeY/2)
  1826.        
  1827.         if depth < 0 then
  1828.             local n = 1
  1829.             if (v1 - v2).X < 0 then
  1830.                 n = -1
  1831.             end
  1832.             if math.abs(v1.X - v2.X) < Mouse.ViewSizeX * 1.5 then
  1833.                 n = n / 2
  1834.             end
  1835.             v1 = v1 + Vector2.new(Mouse.ViewSizeX * n, 0)
  1836.         end
  1837.        
  1838.         local diff = (v1 - v2) / module.Options.Easing
  1839.        
  1840.         if module.Options.Legit then
  1841.             diff = diff.Unit * diff.Magnitude
  1842.         end
  1843.        
  1844.         mousemoverel(diff.X, diff.Y)
  1845.     end
  1846.    
  1847.     local function updateMouse(target)
  1848.         if not target then return end
  1849.         local posVector3 = Camera:WorldToScreenPoint(target.Position)
  1850.         local posVector2, distance = Vector2.new(posVector3.X, posVector3.Y), posVector3.Z
  1851.         mouseMove(posVector2.X, posVector2.Y, posVector3.Z)
  1852.     end
  1853.    
  1854.     local function updateNearest()
  1855.         nearestCharacters = {}
  1856.         for _, player in pairs(Players:GetPlayers()) do
  1857.             if player ~= Player then
  1858.                 if (player.Team == Player.Team and module.Options.ShowTeams) or player.Team ~= Player.Team then
  1859.                     if player.Character then
  1860.                         local part = findPart(player.Character)
  1861.                         if part then --too many ifs
  1862.                             local distance = (part.Position - Camera.CFrame.p).Magnitude
  1863.                            
  1864.                             local a, onScreen = Camera:WorldToScreenPoint(part.Position)
  1865.                             local obstructed = #Camera:GetPartsObscuringTarget({part.Position}, {player.Character, Player.Character}) > 0
  1866.                            
  1867.                             if distance <= module.Options.MaxDistance then
  1868.                                 if (module.Options.Onscreen and onScreen) or not module.Options.Onscreen then
  1869.                                     if (module.Options.Visible and not obstructed) or not module.Options.Visible then
  1870.                                         table.insert(nearestCharacters, {tostring(distance), part, a.Z})
  1871.                                     end
  1872.                                 end
  1873.                             end
  1874.                         end
  1875.                     end
  1876.                 end
  1877.             end
  1878.         end
  1879.     end
  1880.    
  1881.     local windowFocused = true
  1882.     RunService.RenderStepped:Connect(function()
  1883.         if module.Options.Enabled == false or not windowFocused then return end
  1884.         updateNearest()
  1885.        
  1886.         local dist, nearestPart = 2048
  1887.        
  1888.         table.sort(nearestCharacters, function(a, b)
  1889.             local D1, NP1 = unpack(a)
  1890.             local D2, NP2 = unpack(b)
  1891.             return tonumber(D1) < tonumber(D2)
  1892.         end)
  1893.        
  1894.         if module.Options.Mode == "Nearest" then
  1895.             if nearestCharacters[1] then
  1896.                 local D, NP = unpack(nearestCharacters[1])
  1897.                 nearestPart = NP
  1898.             end
  1899.         else
  1900.             for i, v in pairs(nearestCharacters) do
  1901.                 local D, NP, Depth = unpack(v)
  1902.                
  1903.                 local pV3 = Camera:WorldToScreenPoint(NP.Position)
  1904.                 local v1, v2 = Vector2.new(pV3.X, pV3.Y), Vector2.new(Mouse.X, Mouse.Y)
  1905.                
  1906.                 if (v1 - v2).Magnitude <= module.Options.Radius and Depth >= 0 then
  1907.                     nearestPart = NP
  1908.                     break
  1909.                 end
  1910.             end
  1911.         end
  1912.        
  1913.         if nearestPart then
  1914.             updateMouse(nearestPart)
  1915.         end
  1916.     end)
  1917.    
  1918.     UserInputService.WindowFocused:Connect(function()
  1919.         windowFocused = true
  1920.     end)
  1921.     UserInputService.WindowFocusReleased:Connect(function()
  1922.         windowFocused = false
  1923.     end)
  1924.    
  1925.     return module
  1926.    
  1927. end)()
  1928. local _Flight = (function()
  1929.     --// Variables
  1930.     local RunService = game:GetService("RunService")
  1931.     local UserInputService = game:GetService("UserInputService")
  1932.     local Players = game:GetService("Players")
  1933.       local Player = Players.LocalPlayer
  1934.         local character = Player.Character
  1935.     local camera = workspace.CurrentCamera
  1936.    
  1937.     local module = {}
  1938.     module.Options = {
  1939.         Speed = 5,
  1940.         Smoothness = 0.2,
  1941.     }
  1942.    
  1943.     local lib, connections = {}, {}
  1944.     lib.connect = function(name, connection)
  1945.         connections[name .. tostring(math.random(1000000, 9999999))] = connection
  1946.         return connection
  1947.     end
  1948.     lib.disconnect = function(name)
  1949.         for title, connection in pairs(connections) do
  1950.             if title:find(name) == 1 then
  1951.                 connection:Disconnect()
  1952.             end
  1953.         end
  1954.     end
  1955.    
  1956.     --// Functions
  1957.     local flyPart
  1958.    
  1959.     local function flyEnd()
  1960.         lib.disconnect("fly")
  1961.         if flyPart then
  1962.             --flyPart:Destroy()
  1963.         end
  1964.         character:FindFirstChildWhichIsA("Humanoid").PlatformStand = false
  1965.         if character and character.Parent and flyPart then
  1966.             for _, part in pairs(character:GetDescendants()) do
  1967.                 if part:IsA("BasePart") then
  1968.                     part.Velocity = Vector3.new()
  1969.                 end
  1970.             end
  1971.         end
  1972.     end
  1973.    
  1974.     module.flyStart = function(enabled)
  1975.         if not enabled then flyEnd() return end
  1976.         local dir = {w = false, a = false, s = false, d = false}
  1977.         local cf = Instance.new("CFrameValue")
  1978.        
  1979.         flyPart = flyPart or Instance.new("Part")
  1980.         flyPart.Anchored = true
  1981.         pcall(function()
  1982.             flyPart.CFrame = character.HumanoidRootPart.CFrame
  1983.         end)
  1984.        
  1985.         lib.connect("fly", RunService.Heartbeat:Connect(function()
  1986.             if not character or not character.Parent or not character:FindFirstChild("HumanoidRootPart") then return end
  1987.    
  1988.             local primaryPart = character.HumanoidRootPart
  1989.             local humanoid = character:FindFirstChildWhichIsA("Humanoid")
  1990.             local speed = module.Options.Speed
  1991.            
  1992.             local x, y, z = 0, 0, 0
  1993.             if dir.w then z = -1 * speed end
  1994.             if dir.a then x = -1 * speed end
  1995.             if dir.s then z = 1 * speed end
  1996.             if dir.d then x = 1 * speed end
  1997.             if dir.q then y = 1 * speed end
  1998.             if dir.e then y = -1 * speed end
  1999.            
  2000.             flyPart.CFrame = CFrame.new(
  2001.                 flyPart.CFrame.p,
  2002.                 (camera.CFrame * CFrame.new(0, 0, -2048)).p
  2003.             )
  2004.            
  2005.             for _, part in pairs(character:GetChildren()) do
  2006.                 if part:IsA("BasePart") then
  2007.                     part.Velocity = Vector3.new()
  2008.                 end
  2009.             end
  2010.            
  2011.             local moveDir = CFrame.new(x,y,z)
  2012.             cf.Value = cf.Value:lerp(moveDir, module.Options.Smoothness)
  2013.             flyPart.CFrame = flyPart.CFrame:lerp(flyPart.CFrame * cf.Value, module.Options.Smoothness)
  2014.             primaryPart.CFrame = flyPart.CFrame
  2015.             humanoid.PlatformStand = true
  2016.         end))
  2017.         lib.connect("fly", UserInputService.InputBegan:Connect(function(input, event)
  2018.             if event then return end
  2019.             local code, codes = input.KeyCode, Enum.KeyCode
  2020.             if code == codes.W then
  2021.                 dir.w = true
  2022.             elseif code == codes.A then
  2023.                 dir.a = true
  2024.             elseif code == codes.S then
  2025.                 dir.s = true
  2026.             elseif code == codes.D then
  2027.                 dir.d = true
  2028.             elseif code == codes.Q then
  2029.                 dir.q = true
  2030.             elseif code == codes.E then
  2031.                 dir.e = true
  2032.             elseif code == codes.Space then
  2033.                 dir.q = true
  2034.             end
  2035.         end))
  2036.         lib.connect("fly", UserInputService.InputEnded:Connect(function(input, event)
  2037.             if event then return end
  2038.             local code, codes = input.KeyCode, Enum.KeyCode
  2039.             if code == codes.W then
  2040.                 dir.w = false
  2041.             elseif code == codes.A then
  2042.                 dir.a = false
  2043.             elseif code == codes.S then
  2044.                 dir.s = false
  2045.             elseif code == codes.D then
  2046.                 dir.d = false
  2047.             elseif code == codes.Q then
  2048.                 dir.q = false
  2049.             elseif code == codes.E then
  2050.                 dir.e = false
  2051.             elseif code == codes.Space then
  2052.                 dir.q = false
  2053.             end
  2054.         end))
  2055.     end
  2056.    
  2057.     --// Events
  2058.     Player.CharacterAdded:Connect(function(char)
  2059.         character = char
  2060.     end)
  2061.    
  2062.     return module
  2063. end)()
  2064. local _Freecam = (function()
  2065.     --// Variables
  2066.     local RunService = game:GetService("RunService")
  2067.     local UserInputService = game:GetService("UserInputService")
  2068.     local Players = game:GetService("Players")
  2069.       local Player = Players.LocalPlayer
  2070.         local character = Player.Character
  2071.     local camera = workspace.CurrentCamera
  2072.    
  2073.     local module = {}
  2074.     module.Options = {
  2075.         Speed = 5,
  2076.         Smoothness = 0.2,
  2077.     }
  2078.    
  2079.     local lib, connections = {}, {}
  2080.     lib.connect = function(name, connection)
  2081.         connections[name .. tostring(math.random(1000000, 9999999))] = connection
  2082.         return connection
  2083.     end
  2084.     lib.disconnect = function(name)
  2085.         for title, connection in pairs(connections) do
  2086.             if title:find(name) == 1 then
  2087.                 connection:Disconnect()
  2088.             end
  2089.         end
  2090.     end
  2091.    
  2092.     --// Functions
  2093.     local flyPart
  2094.    
  2095.     local function flyEnd()
  2096.         lib.disconnect("freecam")
  2097.         camera.CameraSubject = character
  2098.         pcall(function()
  2099.             character.PrimaryPart.Anchored = false
  2100.         end)
  2101.     end
  2102.    
  2103.     module.flyStart = function(enabled)
  2104.         if not enabled then flyEnd() return end
  2105.         local dir = {w = false, a = false, s = false, d = false}
  2106.         local cf = Instance.new("CFrameValue")
  2107.         local camPart = Instance.new("Part")
  2108.         camPart.Transparency = 1
  2109.         camPart.Anchored = true
  2110.         camPart.CFrame = camera.CFrame
  2111.         pcall(function()
  2112.             character.PrimaryPart.Anchored = true
  2113.         end)
  2114.        
  2115.         lib.connect("freecam", RunService.RenderStepped:Connect(function()
  2116.             local primaryPart = camPart
  2117.             camera.CameraSubject = primaryPart
  2118.            
  2119.             local speed = module.Options.Speed
  2120.            
  2121.             local x, y, z = 0, 0, 0
  2122.             if dir.w then z = -1 * speed end
  2123.             if dir.a then x = -1 * speed end
  2124.             if dir.s then z = 1 * speed end
  2125.             if dir.d then x = 1 * speed end
  2126.             if dir.q then y = 1 * speed end
  2127.             if dir.e then y = -1 * speed end
  2128.            
  2129.             primaryPart.CFrame = CFrame.new(
  2130.                 primaryPart.CFrame.p,
  2131.                 (camera.CFrame * CFrame.new(0, 0, -100)).p
  2132.             )
  2133.            
  2134.             local moveDir = CFrame.new(x,y,z)
  2135.             cf.Value = cf.Value:lerp(moveDir, module.Options.Smoothness)
  2136.             primaryPart.CFrame = primaryPart.CFrame:lerp(primaryPart.CFrame * cf.Value, module.Options.Smoothness)
  2137.         end))
  2138.         lib.connect("freecam", UserInputService.InputBegan:Connect(function(input, event)
  2139.             if event then return end
  2140.             local code, codes = input.KeyCode, Enum.KeyCode
  2141.             if code == codes.W then
  2142.                 dir.w = true
  2143.             elseif code == codes.A then
  2144.                 dir.a = true
  2145.             elseif code == codes.S then
  2146.                 dir.s = true
  2147.             elseif code == codes.D then
  2148.                 dir.d = true
  2149.             elseif code == codes.Q then
  2150.                 dir.q = true
  2151.             elseif code == codes.E then
  2152.                 dir.e = true
  2153.             elseif code == codes.Space then
  2154.                 dir.q = true
  2155.             end
  2156.         end))
  2157.         lib.connect("freecam", UserInputService.InputEnded:Connect(function(input, event)
  2158.             if event then return end
  2159.             local code, codes = input.KeyCode, Enum.KeyCode
  2160.             if code == codes.W then
  2161.                 dir.w = false
  2162.             elseif code == codes.A then
  2163.                 dir.a = false
  2164.             elseif code == codes.S then
  2165.                 dir.s = false
  2166.             elseif code == codes.D then
  2167.                 dir.d = false
  2168.             elseif code == codes.Q then
  2169.                 dir.q = false
  2170.             elseif code == codes.E then
  2171.                 dir.e = false
  2172.             elseif code == codes.Space then
  2173.                 dir.q = false
  2174.             end
  2175.         end))
  2176.     end
  2177.    
  2178.     --// Events
  2179.     Player.CharacterAdded:Connect(function(char)
  2180.         character = char
  2181.     end)
  2182.    
  2183.     return module
  2184. end)()
  2185. local _Rubberbanding = (function()
  2186.     --// Variables
  2187.     local RunService = game:GetService("RunService")
  2188.     local Players = game:GetService("Players")
  2189.       local Player = Players.LocalPlayer
  2190.         local Character = Player.Character
  2191.    
  2192.     local module = {}
  2193.     module.Options = {
  2194.         Enabled = false,
  2195.         Threshold = 150,
  2196.         UpdateSpeed = 100,
  2197.     }
  2198.    
  2199.     local connections = {}
  2200.    
  2201.     --// Functions
  2202.     local function getPart(Model)
  2203.         return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
  2204.     end
  2205.    
  2206.     local function connectPart(Part)
  2207.         local lastPosition = CFrame.new()
  2208.         local lastVelocity = Vector3.new()
  2209.         local lastRender = tick()
  2210.        
  2211.         connections[#connections+1] = RunService.RenderStepped:Connect(function()
  2212.             if not module.Options.Enabled then return end
  2213.            
  2214.             if Part and (tick() - lastRender >= module.Options.UpdateSpeed / 1000) then
  2215.                 if (lastVelocity - Part.Velocity).Magnitude > module.Options.Threshold and Part.Velocity.Magnitude > lastVelocity.Magnitude then
  2216.                     Part.Velocity = lastVelocity
  2217.                     Part.CFrame = lastPosition
  2218.                 end
  2219.                
  2220.                 lastPosition = Part.CFrame
  2221.                 lastVelocity = Part.Velocity
  2222.                 lastRender = tick()
  2223.             end
  2224.         end)
  2225.     end
  2226.    
  2227.     local function onCharacter(char)
  2228.         Character = char
  2229.         for i, v in pairs(connections) do
  2230.             v:Disconnect()
  2231.             connections[i] = nil
  2232.         end
  2233.         for _, part in pairs(char:GetChildren()) do
  2234.             if part.Name == "HumanoidRootPart" then
  2235.                 connectPart(part)
  2236.             end
  2237.         end
  2238.         connections[#connections+1] = Character.ChildAdded:Connect(function(child)
  2239.             if child.Name == "HumanoidRootPart" then
  2240.                 connectPart(child)
  2241.             end
  2242.         end)
  2243.     end
  2244.    
  2245.    
  2246.     module.Toggle = function(enabled)
  2247.         module.Options.Enabled = enabled
  2248.         for i, v in pairs(connections) do
  2249.             v:Disconnect()
  2250.             connections[i] = nil
  2251.         end
  2252.         if enabled and Character then
  2253.             onCharacter(Character)
  2254.         end
  2255.     end
  2256.    
  2257.     --// Events
  2258.     Player.CharacterAdded:Connect(function(char)
  2259.         onCharacter(char)
  2260.     end)
  2261.    
  2262.     if Character then
  2263.         onCharacter(Character)
  2264.     end
  2265.    
  2266.     return module
  2267.    
  2268. end)()
  2269. local _AntiTP = (function()
  2270.     --// Variables
  2271.     local RunService = game:GetService("RunService")
  2272.     local Players = game:GetService("Players")
  2273.       local Player = Players.LocalPlayer
  2274.         local Character = Player.Character
  2275.    
  2276.     local module = {}
  2277.     module.Options = {
  2278.         Enabled = false,
  2279.         Threshold = 150,
  2280.         UpdateSpeed = 100,
  2281.     }
  2282.    
  2283.     local connections = {}
  2284.    
  2285.     --// Functions
  2286.     local function getPart(Model)
  2287.         return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
  2288.     end
  2289.    
  2290.     local function connectPart(Part)
  2291.         local lastPosition = Part.CFrame
  2292.         local lastRender = tick()
  2293.        
  2294.         connections[#connections+1] = RunService.RenderStepped:Connect(function()
  2295.             if not module.Options.Enabled then return end
  2296.            
  2297.             if Part and (tick() - lastRender >= module.Options.UpdateSpeed / 1000) then
  2298.                 if (lastPosition.p - Part.Position).Magnitude > module.Options.Threshold then
  2299.                     Part.CFrame = lastPosition
  2300.                     Part.Velocity = Vector3.new(0, 0, 0)
  2301.                 end
  2302.                
  2303.                 lastPosition = Part.CFrame
  2304.                 lastRender = tick()
  2305.             end
  2306.         end)
  2307.     end
  2308.    
  2309.     local function onCharacter(char)
  2310.         Character = char
  2311.         for i, v in pairs(connections) do
  2312.             v:Disconnect()
  2313.             connections[i] = nil
  2314.         end
  2315.         for _, part in pairs(char:GetChildren()) do
  2316.             if part.Name == "HumanoidRootPart" then
  2317.                 connectPart(part)
  2318.             end
  2319.         end
  2320.         connections[#connections+1] = Character.ChildAdded:Connect(function(child)
  2321.             if child.Name == "HumanoidRootPart" then
  2322.                 connectPart(child)
  2323.             end
  2324.         end)
  2325.     end
  2326.    
  2327.     module.Toggle = function(enabled)
  2328.         module.Options.Enabled = enabled
  2329.         for i, v in pairs(connections) do
  2330.             v:Disconnect()
  2331.             connections[i] = nil
  2332.         end
  2333.         if enabled and Character then
  2334.             onCharacter(Character)
  2335.         end
  2336.     end
  2337.    
  2338.     --// Events
  2339.     Player.CharacterAdded:Connect(function(char)
  2340.         onCharacter(char)
  2341.     end)
  2342.    
  2343.     if Character then
  2344.         onCharacter(Character)
  2345.     end
  2346.    
  2347.     return module
  2348.    
  2349. end)()
  2350. local _Noclip = (function()
  2351.     --// Variables
  2352.     local RunService = game:GetService("RunService")
  2353.     local Players = game:GetService("Players")
  2354.       local Player = Players.LocalPlayer
  2355.         local Character = Player.Character
  2356.    
  2357.     local module = {}
  2358.     module.Options = {
  2359.         Enabled = false,
  2360.     }
  2361.    
  2362.     local connections = {}
  2363.    
  2364.     --// Functions
  2365.     local function getPart(Model)
  2366.         return Model.PrimaryPart or Model:FindFirstChild("HumanoidRootPart") or Model:FindFirstChildWhichIsA("Part")
  2367.     end
  2368.    
  2369.     local function connectModel(Model)
  2370.         connections[#connections+1] = RunService.Stepped:Connect(function()
  2371.             if not module.Options.Enabled then return end
  2372.             for _, part in pairs(Model:GetDescendants()) do
  2373.                 if part:IsA("BasePart") then
  2374.                     part.CanCollide = false
  2375.                 end
  2376.             end
  2377.         end)
  2378.     end
  2379.    
  2380.     module.Toggle = function(enabled)
  2381.         module.Options.Enabled = enabled
  2382.         for i, v in pairs(connections) do
  2383.             v:Disconnect()
  2384.             connections[i] = nil
  2385.         end
  2386.         if enabled and Character then
  2387.             onCharacter(Character)
  2388.         end
  2389.     end
  2390.    
  2391.     function onCharacter(char)
  2392.         for i, v in pairs(connections) do
  2393.             v:Disconnect()
  2394.             connections[i] = nil
  2395.         end
  2396.         Character = char
  2397.         connectModel(char)
  2398.     end
  2399.    
  2400.     --// Events
  2401.     Player.CharacterAdded:Connect(function(char)
  2402.         onCharacter(char)
  2403.     end)
  2404.    
  2405.     if Character then
  2406.         onCharacter(Character)
  2407.     end
  2408.    
  2409.     return module
  2410.    
  2411. end)()
  2412.  
  2413. --// Variables
  2414. local RunService = game:GetService("RunService")
  2415. local HttpService = game:GetService("HttpService")
  2416. local UserInputService = game:GetService("UserInputService")
  2417. local Players = game:GetService("Players")
  2418.   local Player = Players.LocalPlayer
  2419.     local Mouse = Player:GetMouse()
  2420.  
  2421. local gui = GUIData[1]
  2422. local saveData = GUIData[2]
  2423. local screenGui = GUIData[3]
  2424.  
  2425. local screenscale = 250
  2426. local opacity = 1
  2427. local backcolor = Color3.new()
  2428.  
  2429. --// Saving
  2430. local readfile = readfile or function() end
  2431. pcall(function()
  2432.     local JSONData = readfile("OpenGui.txt")
  2433.     if JSONData then
  2434.         local LUAData = HttpService:JSONDecode(JSONData)
  2435.         saveData.Options = LUAData.Options
  2436.         saveData.Hotkeys = LUAData.Hotkeys
  2437.         print("Save Data found")
  2438.     else
  2439.         print("Save Data not found")
  2440.     end
  2441. end)
  2442.  
  2443.  
  2444. --// UI Creation
  2445.  
  2446. --// Render Frame
  2447. local Render = gui:create("Container", {
  2448.     Name = "Render",
  2449. })--|
  2450.     local OpenGui = Render.self:create("Toggle", {
  2451.         Name = "OpenGui",
  2452.         Default = true,
  2453.         Hotkey = tostring(Enum.KeyCode.RightControl),
  2454.         Hint = "The navigation GUI",
  2455.         Callback = function(enabled)
  2456.             for _, frame in pairs(screenGui:GetChildren()) do
  2457.                 if frame:IsA("Frame") then
  2458.                     frame.Visible = enabled
  2459.                 end
  2460.             end
  2461.             screenGui.Modal.Visible = enabled
  2462.             screenGui.Hint.Visible = false
  2463.         end,
  2464.     })--|
  2465.         local Opacity = OpenGui.self:create("Number", {
  2466.             Name = "Opacity",
  2467.             Min = 0,
  2468.             Max = 1,
  2469.             Round = 0.01,
  2470.             Default = 0.75,
  2471.             Hint = "Transparency of the navigation GUI",
  2472.             Callback = function(alpha)
  2473.                 opacity = 1 - alpha
  2474.                 for _, frame in pairs(screenGui:GetChildren()) do
  2475.                     if frame:IsA("Frame") then
  2476.                         frame.BackgroundTransparency = 1 - alpha
  2477.                         frame.OptionsFrame.BackgroundTransparency = 1 - alpha
  2478.                     end
  2479.                 end
  2480.             end,
  2481.         })
  2482.         local Width = OpenGui.self:create("Number", {
  2483.             Name = "Width",
  2484.             Min = 200,
  2485.             Max = 300,
  2486.             Round = 1,
  2487.             Default = 250,
  2488.             Hint = "Width of the navigation GUI",
  2489.             Callback = function(scale)
  2490.                 screenscale = scale
  2491.                 for _, frame in pairs(screenGui:GetChildren()) do
  2492.                     if frame:IsA("Frame") then
  2493.                         frame.Size = UDim2.new(0, scale, 0, frame.Size.Y.Offset)
  2494.                     end
  2495.                 end
  2496.             end,
  2497.         })
  2498.         local Color = OpenGui.self:create("Color", {
  2499.             Name = "Background Color",
  2500.             Default = Color3.fromRGB(40, 40, 40),
  2501.             Hint = "Background color of the navigation GUI",
  2502.             Callback = function(color)
  2503.                 backcolor = color
  2504.                 for _, frame in pairs(screenGui:GetChildren()) do
  2505.                     if frame:IsA("Frame") then
  2506.                         frame.BackgroundColor3 = color
  2507.                         frame.OptionsFrame.BackgroundColor3 = color
  2508.                     end
  2509.                 end
  2510.             end,
  2511.         })
  2512.     local ESP = Render.self:create("Toggle", {
  2513.         Name = "ESP",
  2514.         Default = false,
  2515.         Hint = "Toggle player ESP",
  2516.         Callback = function(enabled)
  2517.             _ESP.Options.Enabled = enabled
  2518.             if enabled then
  2519.                 _ESP:Enable()
  2520.                 _ESP2D:Enable()
  2521.             else
  2522.                 _ESP:Disable()
  2523.                 _ESP2D:Disable()
  2524.             end
  2525.             _ESP2D:ReloadCharacters()
  2526.         end,
  2527.     })--|
  2528.         local ESPColor = ESP.self:create("Color", {
  2529.             Name = "ESP Color",
  2530.             Default = Color3.new(1, 1, 1),
  2531.             Hint = "Color of the player ESP",
  2532.             Callback = function(color)
  2533.                 _ESP.Options.Color = color
  2534.                 _ESP2D.Options.Color = color
  2535.                 _ESP2D:ReloadCharacters()
  2536.             end,
  2537.         })
  2538.         local ESPShowTeam = ESP.self:create("Checkbox", {
  2539.             Name = "Show Team",
  2540.             Default = false,
  2541.             Hint = "Players on your team are highlighted",
  2542.             Callback = function(enabled)
  2543.                 _ESP.Options.ShowTeam = enabled
  2544.                 _ESP2D.Options.ShowTeam = enabled
  2545.                 _ESP2D:ReloadCharacters()
  2546.             end,
  2547.         })
  2548.         local ESPShowSelf = ESP.self:create("Checkbox", {
  2549.             Name = "Show Self",
  2550.             Default = false,
  2551.             Hint = "Include yourself in the ESP",
  2552.             Callback = function(enabled)
  2553.                 _ESP.Options.ShowSelf = enabled
  2554.                 _ESP2D.Options.ShowSelf = enabled
  2555.                 _ESP2D:ReloadCharacters()
  2556.             end,
  2557.         })
  2558.         local ESPTeamColor = ESP.self:create("Checkbox", {
  2559.             Name = "Team Color",
  2560.             Default = false,
  2561.             Hint = "The ESP's color corresponds to the player's team",
  2562.             Callback = function(enabled)
  2563.                 _ESP.Options.TeamColor = enabled
  2564.                 _ESP2D.Options.TeamColor = enabled
  2565.                 _ESP2D:ReloadCharacters()
  2566.             end,
  2567.         })
  2568.         local ESPShowDescendants = ESP.self:create("Checkbox", {
  2569.             Name = "Show Descendants",
  2570.             Default = false,
  2571.             Hint = "Highlight items like accessories",
  2572.             Callback = function(enabled)
  2573.                 _ESP.Options.ShowDescendants = enabled
  2574.                 _ESP2D.Options.ShowDescendants = enabled
  2575.                 _ESP2D:ReloadCharacters()
  2576.             end,
  2577.         })
  2578.         local ESPDirection = ESP.self:create("Checkbox", {
  2579.             Name = "Show Direction",
  2580.             Default = false,
  2581.             Hint = "Show where the player is facing",
  2582.             Callback = function(enabled)
  2583.                 _ESP.Options.Arrow = enabled
  2584.                 _ESP2D.Options.Arrow = enabled
  2585.                 _ESP2D:ReloadCharacters()
  2586.             end,
  2587.         })
  2588.         local ESPOpacity = ESP.self:create("Number", {
  2589.             Name = "Opacity",
  2590.             Default = 0.5,
  2591.             Min = 0,
  2592.             Max = 1,
  2593.             Round = 0.01,
  2594.             Hint = "Visibility of the ESP",
  2595.             Callback = function(opacity)
  2596.                 _ESP.Options.Opacity = opacity
  2597.                 _ESP2D.Options.Opacity = opacity
  2598.                 _ESP2D:ReloadCharacters()
  2599.             end,
  2600.         })
  2601.         local ESPMaxDistance = ESP.self:create("Number", {
  2602.             Name = "Max Distance",
  2603.             Default = 500,
  2604.             Min = 32,
  2605.             Max = 2048,
  2606.             Round = 0.5,
  2607.             Hint = "The maximum distance of the ESP",
  2608.             Callback = function(distance)
  2609.                 _ESP.Options.MaxDistance = distance
  2610.                 _ESP2D.Options.MaxDistance = distance
  2611.                 _ESP2D:ReloadCharacters()
  2612.             end,
  2613.         })
  2614.         local ESPMode = ESP.self:create("Mode", {
  2615.             Name = "ESP Mode",
  2616.             Default = 1,
  2617.             Modes = {"Shader", "Default", "Box", "Square"},
  2618.             Hint = "The type of ESP used",
  2619.             Callback = function(mode)
  2620.                 _ESP.Options.Mode = mode
  2621.                 _ESP2D.Options.Mode = mode
  2622.                 _ESP:ReloadCharacters()
  2623.                 _ESP2D:ReloadCharacters()
  2624.             end,
  2625.         })
  2626.     local Chams = Render.self:create("Toggle", {
  2627.         Name = "Chams",
  2628.         Default = false,
  2629.         Hint = "Render players through walls",
  2630.         Callback = function(enabled)
  2631.             _Chams.Options.Enabled = enabled
  2632.             if enabled then
  2633.                 _Chams:Enable()
  2634.             else
  2635.                 _Chams:Disable()
  2636.             end
  2637.         end,
  2638.     })--|
  2639.         local ChamsColor = Chams.self:create("Color", {
  2640.             Name = "Chams Color",
  2641.             Default = Color3.new(1, 1, 1),
  2642.             Hint = "Color of the player chams",
  2643.             Callback = function(color)
  2644.                 _Chams.Options.Color = color
  2645.             end,
  2646.         })
  2647.         local ChamsShowTeam = Chams.self:create("Checkbox", {
  2648.             Name = "Show Team",
  2649.             Default = false,
  2650.             Hint = "Include your teammates",
  2651.             Callback = function(enabled)
  2652.                 _Chams.Options.ShowTeam = enabled
  2653.             end,
  2654.         })
  2655.         local ChamsShowSelf = Chams.self:create("Checkbox", {
  2656.             Name = "Show Self",
  2657.             Default = false,
  2658.             Hint = "Include yourself",
  2659.             Callback = function(enabled)
  2660.                 _Chams.Options.ShowSelf = enabled
  2661.             end,
  2662.         })
  2663.         local ChamsTeamColor = Chams.self:create("Checkbox", {
  2664.             Name = "Team Color",
  2665.             Default = false,
  2666.             Hint = "The chams color corresponds to the player's team",
  2667.             Callback = function(enabled)
  2668.                 _Chams.Options.TeamColor = enabled
  2669.             end,
  2670.         })
  2671.         local ChamsShowDescendants = Chams.self:create("Checkbox", {
  2672.             Name = "Show Descendants",
  2673.             Default = false,
  2674.             Hint = "Highlight items like accessories",
  2675.             Callback = function(enabled)
  2676.                 _Chams.Options.ShowDescendants = enabled
  2677.             end,
  2678.         })
  2679.         local ChamsMode = Chams.self:create("Mode", {
  2680.             Name = "Chams Mode",
  2681.             Default = 1,
  2682.             Modes = {"Opaque", "Shader"},
  2683.             Hint = "The type of chams used",
  2684.             Callback = function(mode)
  2685.                 _Chams.Options.Mode = mode
  2686.                 _Chams:ReloadCharacters()
  2687.             end,
  2688.         })
  2689.         local ChamsOpacity = Chams.self:create("Number", {
  2690.             Name = "Opacity",
  2691.             Default = 0.5,
  2692.             Min = 0,
  2693.             Max = 1,
  2694.             Round = 0.01,
  2695.             Hint = "Visibility of the chams",
  2696.             Callback = function(opacity)
  2697.                 _Chams.Options.Opacity = opacity
  2698.             end,
  2699.         })
  2700.         local ChamsMaxDistance = Chams.self:create("Number", {
  2701.             Name = "Max Distance",
  2702.             Default = 500,
  2703.             Min = 32,
  2704.             Max = 2048,
  2705.             Round = 0.5,
  2706.             Hint = "The chams' maximum distance",
  2707.             Callback = function(distance)
  2708.                 _Chams.Options.MaxDistance = distance
  2709.             end,
  2710.         })
  2711.     local Tracers = Render.self:create("Toggle", {
  2712.         Name = "Tracers",
  2713.         Default = false,
  2714.         Hint = "Draw lines to other players",
  2715.         Callback = function(enabled)
  2716.             _Tracers.Options.Enabled = enabled
  2717.             if enabled then
  2718.                 _Tracers:Enable()
  2719.             else
  2720.                 _Tracers:Disable()
  2721.             end
  2722.         end,
  2723.     })--|
  2724.         local TracersColor = Tracers.self:create("Color", {
  2725.             Name = "Tracers Color",
  2726.             Default = Color3.new(1, 1, 1),
  2727.             Hint = "Color of the tracers",
  2728.             Callback = function(color)
  2729.                 _Tracers.Options.Color = color
  2730.             end,
  2731.         })
  2732.         local TracersShowTeam = Tracers.self:create("Checkbox", {
  2733.             Name = "Show Team",
  2734.             Default = false,
  2735.             Hint = "Include your teammates",
  2736.             Callback = function(enabled)
  2737.                 _Tracers.Options.ShowTeam = enabled
  2738.                 _Tracers:ReloadCharacters()
  2739.             end,
  2740.         })
  2741.         local TracersShowSelf = Tracers.self:create("Checkbox", {
  2742.             Name = "Show Self",
  2743.             Default = false,
  2744.             Hint = "Include yourself",
  2745.             Callback = function(enabled)
  2746.                 _Tracers.Options.ShowSelf = enabled
  2747.                 _Tracers:ReloadCharacters()
  2748.             end,
  2749.         })
  2750.         local TracersTeamColor = Tracers.self:create("Checkbox", {
  2751.             Name = "Team Color",
  2752.             Default = false,
  2753.             Hint = "Tracer colors correspond to the player's team",
  2754.             Callback = function(enabled)
  2755.                 _Tracers.Options.TeamColor = enabled
  2756.             end,
  2757.         })
  2758.         local TracersOpacity = Tracers.self:create("Number", {
  2759.             Name = "Opacity",
  2760.             Default = 1,
  2761.             Min = 0,
  2762.             Max = 1,
  2763.             Round = 0.01,
  2764.             Hint = "Visibility of the tracers",
  2765.             Callback = function(opacity)
  2766.                 _Tracers.Options.Opacity = opacity
  2767.             end,
  2768.         })
  2769.         local TracersMaxDistance = Tracers.self:create("Number", {
  2770.             Name = "Max Distance",
  2771.             Default = 500,
  2772.             Min = 32,
  2773.             Max = 2048,
  2774.             Round = 0.5,
  2775.             Hint = "The maximum distance in which tracers are drawn",
  2776.             Callback = function(distance)
  2777.                 _Tracers.Options.MaxDistance = distance
  2778.             end,
  2779.         })
  2780.         local TracersWidth = Tracers.self:create("Number", {
  2781.             Name = "Width",
  2782.             Default = 2,
  2783.             Min = 1,
  2784.             Max = 10,
  2785.             Round = 1,
  2786.             Hint = "Width of the tracers",
  2787.             Callback = function(value)
  2788.                 _Tracers.Options.Radius = value
  2789.             end,
  2790.         })
  2791.     local Freecam = Render.self:create("Toggle", {
  2792.         Name = "Freecam",
  2793.         Default = false,
  2794.         Hint = "Move your camera freely",
  2795.         Callback = function(enabled)
  2796.             _Freecam.flyStart(enabled)
  2797.         end,
  2798.     })--|
  2799.         local FreecamSpeed = Freecam.self:create("Number", {
  2800.             Name = "Speed",
  2801.             Default = 5,
  2802.             Min = 0.1,
  2803.             Max = 100,
  2804.             Round = 0.1,
  2805.             Hint = "Camera speed",
  2806.             Callback = function(value)
  2807.                 _Freecam.Options.Speed = value
  2808.             end,
  2809.         })
  2810.         local FreecamSpeed = Freecam.self:create("Number", {
  2811.             Name = "Smoothness",
  2812.             Default = 0.2,
  2813.             Min = 0.1,
  2814.             Max = 1,
  2815.             Round = 0.01,
  2816.             Hint = "Smoothness of the interpolation",
  2817.             Callback = function(value)
  2818.                 _Freecam.Options.Smoothness = value
  2819.             end,
  2820.         })
  2821.  
  2822. --// Combat Frame
  2823. local Combat = gui:create("Container", {
  2824.     Name = "Combat",
  2825. })--|
  2826.     local Aimbot = Combat.self:create("Toggle", {
  2827.         Name = "Aimbot",
  2828.         Default = false,
  2829.         Hint = "Automatically point to other players, hotkey recommended",
  2830.         Callback = function(enabled)
  2831.             _Aimbot.Options.Enabled = enabled
  2832.         end,
  2833.     })--]
  2834.         local AimbotEasing = Aimbot.self:create("Number", {
  2835.             Name = "Easing",
  2836.             Default = 2,
  2837.             Min = 1.3,
  2838.             Max = 32,
  2839.             Round = 0.1,
  2840.             Hint = "Smoothness of the aimbot",
  2841.             Callback = function(value)
  2842.                 _Aimbot.Options.Easing = value
  2843.             end,
  2844.         })
  2845.         local AimbotLegit = Aimbot.self:create("Checkbox", {
  2846.             Name = "Legit",
  2847.             Hint = "Give the aimbot a maximum speed, looks more legit",
  2848.             Callback = function(value)
  2849.                 _Aimbot.Options.Legit = value
  2850.             end,
  2851.         })
  2852.         local AimbotMaxDistance = Aimbot.self:create("Number", {
  2853.             Name = "Max Distance",
  2854.             Default = 500,
  2855.             Min = 32,
  2856.             Max = 2048,
  2857.             Round = 1,
  2858.             Hint = "The aimbot's maximum distance",
  2859.             Callback = function(value)
  2860.                 _Aimbot.Options.MaxDistance = value
  2861.             end,
  2862.         })
  2863.         local AimbotMode = Aimbot.self:create("Mode", {
  2864.             Name = "Aim Target",
  2865.             Modes = {
  2866.                 "Head",
  2867.                 "Torso",
  2868.             },
  2869.             Hint = "Where the aimbot will aim",
  2870.             Callback = function(value)
  2871.                 _Aimbot.Options.AimPart = value
  2872.             end,
  2873.         })
  2874.         local AimbotShowTeam = Aimbot.self:create("Checkbox", {
  2875.             Name = "Target Team",
  2876.             Hint = "Target your teammates",
  2877.             Callback = function(value)
  2878.                 _Aimbot.Options.ShowTeams = value
  2879.             end,
  2880.         })
  2881.         local AimbotOnscreen = Aimbot.self:create("Checkbox", {
  2882.             Name = "Target On-Screen",
  2883.             Hint = "Target players only in front of you",
  2884.             Default = false,
  2885.             Callback = function(value)
  2886.                 _Aimbot.Options.Onscreen = value
  2887.             end,
  2888.         })
  2889.         local AimbotVisible = Aimbot.self:create("Checkbox", {
  2890.             Name = "Target Visible",
  2891.             Hint = "Ignore players obstructed from view",
  2892.             Default = false,
  2893.             Callback = function(value)
  2894.                 _Aimbot.Options.Visible = value
  2895.             end,
  2896.         })
  2897.         local AimbotMode = Aimbot.self:create("Mode", {
  2898.             Name = "Aimbot Mode",
  2899.             Hint = "Change who the aimbot targets",
  2900.             Default = 1,
  2901.             Modes = {
  2902.                 "Nearest",
  2903.                 "Snap",
  2904.             },
  2905.             Callback = function(value)
  2906.                 _Aimbot.Options.Mode = value
  2907.             end,
  2908.         })--]
  2909.             local AimbotModeRadius = AimbotMode.self:create("Number", {
  2910.                 Name = "Snap Radius",
  2911.                 Default = 250,
  2912.                 Min = 32,
  2913.                 Max = 1024,
  2914.                 Round = 1,
  2915.                 Hint = "The detection radius of the aimbot mode 'Snap'",
  2916.                 Callback = function(value)
  2917.                     _Aimbot.Options.Radius = value
  2918.                 end,
  2919.             })
  2920.  
  2921. --// Movement
  2922. local Movement = gui:create("Container", {
  2923.     Name = "Movement",
  2924. })--|
  2925.     local Flight = Movement.self:create("Toggle", {
  2926.         Name = "Flight",
  2927.         Default = false,
  2928.         Hint = "Toggle player flight (uses CFrame)",
  2929.         Callback = function(enabled)
  2930.             _Flight.flyStart(enabled)
  2931.         end,
  2932.     })--|
  2933.         local FlightSpeed = Flight.self:create("Number", {
  2934.             Name = "Speed",
  2935.             Default = 5,
  2936.             Min = 0.1,
  2937.             Max = 100,
  2938.             Round = 0.1,
  2939.             Hint = "Flight speed",
  2940.             Callback = function(value)
  2941.                 _Flight.Options.Speed = value
  2942.             end,
  2943.         })
  2944.         local FlightSpeed = Flight.self:create("Number", {
  2945.             Name = "Smoothness",
  2946.             Default = 0.2,
  2947.             Min = 0.1,
  2948.             Max = 1,
  2949.             Round = 0.01,
  2950.             Hint = "Smoothness of the interpolation",
  2951.             Callback = function(value)
  2952.                 _Flight.Options.Smoothness = value
  2953.             end,
  2954.         })
  2955.  
  2956. --// Player
  2957. local PlayerTab = gui:create("Container", {
  2958.     Name = "Player",
  2959. })--|
  2960.     local Rubberbanding = PlayerTab.self:create("Toggle", {
  2961.         Name = "Rubberbanding",
  2962.         Default = false,
  2963.         Hint = "Get set back if your velocity changes above the threshold",
  2964.         Callback = function(enabled)
  2965.             _Rubberbanding.Toggle(enabled)
  2966.         end,
  2967.     })--|
  2968.         local RubberbandingThreshold = Rubberbanding.self:create("Number", {
  2969.             Name = "Threshold",
  2970.             Default = false,
  2971.             Min = 50,
  2972.             Max = 1000,
  2973.             Default = 150,
  2974.             Round = 1,
  2975.             Hint = "Threshold for magnitude check",
  2976.             Callback = function(value)
  2977.                 _Rubberbanding.Options.Threshold = value
  2978.             end,
  2979.         })
  2980.         local RubberbandingSpeed = Rubberbanding.self:create("Number", {
  2981.             Name = "Update Speed",
  2982.             Default = false,
  2983.             Min = 1,
  2984.             Max = 500,
  2985.             Default = 100,
  2986.             Round = 1,
  2987.             Hint = "How often it checks the velocity in ms",
  2988.             Callback = function(value)
  2989.                 _Rubberbanding.Options.UpdateSpeed = value
  2990.             end,
  2991.         })
  2992.     local AntiTP = PlayerTab.self:create("Toggle", {
  2993.         Name = "Anti TP",
  2994.         Default = false,
  2995.         Hint = "Prevent teleporting large distances",
  2996.         Callback = function(enabled)
  2997.             _AntiTP.Toggle(enabled)
  2998.         end,
  2999.     })--|
  3000.         local AntiTPThreshold = AntiTP.self:create("Number", {
  3001.             Name = "Threshold",
  3002.             Min = 1,
  3003.             Max = 1000,
  3004.             Default = 150,
  3005.             Round = 1,
  3006.             Hint = "Maximum distance",
  3007.             Callback = function(value)
  3008.                 _AntiTP.Options.Threshold = value
  3009.             end,
  3010.         })
  3011.         local AntiTPSpeed = AntiTP.self:create("Number", {
  3012.             Name = "Update Speed",
  3013.             Min = 1,
  3014.             Max = 500,
  3015.             Default = 100,
  3016.             Round = 1,
  3017.             Hint = "How often it checks the position in ms",
  3018.             Callback = function(value)
  3019.                 _AntiTP.Options.UpdateSpeed = value
  3020.             end,
  3021.         })
  3022.     local Noclip = PlayerTab.self:create("Toggle", {
  3023.         Name = "No Collision",
  3024.         Default = false,
  3025.         Hint = "Ignore object collision",
  3026.         Callback = function(enabled)
  3027.             _Noclip.Toggle(enabled)
  3028.         end,
  3029.     })
  3030.  
  3031. --// UI Functionality
  3032. RunService.RenderStepped:Connect(function()
  3033.     for _, frame in pairs(screenGui:GetChildren()) do
  3034.         if frame:IsA("Frame") then
  3035.             frame.Size = UDim2.new(0, screenscale, 0, frame.Size.Y.Offset)
  3036.            
  3037.             frame.BackgroundTransparency = opacity
  3038.             frame.OptionsFrame.BackgroundTransparency = opacity
  3039.            
  3040.             frame.BackgroundColor3 = backcolor
  3041.             frame.OptionsFrame.BackgroundColor3 = backcolor
  3042.         end
  3043.     end
  3044. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement