local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Players = game:GetService("Players") local Teams = game:GetService("Teams") local LocalPlayer = Players.LocalPlayer local CONFIG = { Accent = Color3.fromRGB(80, 80, 90), Accent2 = Color3.fromRGB(140, 140, 160), BG = Color3.fromRGB(10, 10, 12), Panel = Color3.fromRGB(16, 16, 20), Panel2 = Color3.fromRGB(22, 22, 28), Border = Color3.fromRGB(40, 40, 50), Text = Color3.fromRGB(230, 230, 240), Dim = Color3.fromRGB(120, 120, 140), Font = Enum.Font.Gotham, FontBold = Enum.Font.GothamBold, } local function getParent() if gethui then return gethui() end if syn and syn.protect_gui then local sg = Instance.new("ScreenGui") syn.protect_gui(sg) sg.Parent = game:GetService("CoreGui") return sg end local ok = pcall(function() local t = Instance.new("ScreenGui") t.Parent = game:GetService("CoreGui") t:Destroy() end) if ok then return game:GetService("CoreGui") end return LocalPlayer:WaitForChild("PlayerGui") end local function new(class, props, parent) local inst = Instance.new(class) for k, v in pairs(props or {}) do inst[k] = v end if parent then inst.Parent = parent end return inst end local function corner(obj, r) local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, r or 8) c.Parent = obj return c end local function stroke(obj, color, thickness, transparency) local s = Instance.new("UIStroke") s.Color = color or CONFIG.Border s.Thickness = thickness or 1 s.Transparency = transparency or 0 s.ApplyStrokeMode = Enum.ApplyStrokeMode.Border s.Parent = obj return s end local function gradient(obj, c1, c2, rot) local g = Instance.new("UIGradient") g.Color = ColorSequence.new(c1, c2) g.Rotation = rot or 0 g.Parent = obj return g end local ScreenGui = new("ScreenGui", { Name = "DarkHub", ResetOnSpawn = false, ZIndexBehavior = Enum.ZIndexBehavior.Sibling, DisplayOrder = 9999, IgnoreGuiInset = true, }, getParent()) local Float = new("TextButton", { Name = "Float", Size = UDim2.new(0, 40, 0, 40), Position = UDim2.new(0, 16, 0.5, -20), BackgroundColor3 = CONFIG.Accent, BorderSizePixel = 0, Text = "D", TextColor3 = CONFIG.Text, Font = CONFIG.FontBold, TextSize = 14, AutoButtonColor = false, Active = true, Visible = false, }, ScreenGui) corner(Float, 10) stroke(Float, CONFIG.Accent2, 1.5, 0.3) gradient(Float, CONFIG.Accent, CONFIG.Accent2, 45) local Main = new("Frame", { Name = "Main", Size = UDim2.new(0, 380, 0, 320), Position = UDim2.new(0.5, -190, 0.5, -160), BackgroundColor3 = CONFIG.BG, BorderSizePixel = 0, ClipsDescendants = true, Active = true, Visible = true, }, ScreenGui) corner(Main, 12) stroke(Main, CONFIG.Accent, 1.5, 0.3) gradient(Main, CONFIG.BG, Color3.fromRGB(5, 5, 8), 90) local TopBar = new("Frame", { Size = UDim2.new(1, 0, 0, 36), BackgroundColor3 = CONFIG.Panel, BorderSizePixel = 0, }, Main) corner(TopBar, 12) new("Frame", { Size = UDim2.new(1, 0, 0, 12), Position = UDim2.new(0, 0, 1, -12), BackgroundColor3 = CONFIG.Panel, BorderSizePixel = 0, }, TopBar) new("TextLabel", { Size = UDim2.new(0, 200, 0, 20), Position = UDim2.new(0, 16, 0, 8), BackgroundTransparency = 1, Text = "Dark Hub", TextColor3 = CONFIG.Text, Font = CONFIG.FontBold, TextSize = 13, TextXAlignment = Enum.TextXAlignment.Left, }, TopBar) local MinimizeBtn = new("TextButton", { Size = UDim2.new(0, 22, 0, 22), Position = UDim2.new(1, -56, 0.5, -11), BackgroundColor3 = CONFIG.Panel2, BorderSizePixel = 0, Text = "—", TextColor3 = CONFIG.Text, Font = CONFIG.FontBold, TextSize = 11, AutoButtonColor = false, }, TopBar) corner(MinimizeBtn, 6) local CloseBtn = new("TextButton", { Size = UDim2.new(0, 22, 0, 22), Position = UDim2.new(1, -30, 0.5, -11), BackgroundColor3 = CONFIG.Panel2, BorderSizePixel = 0, Text = "✕", TextColor3 = CONFIG.Text, Font = CONFIG.FontBold, TextSize = 11, AutoButtonColor = false, }, TopBar) corner(CloseBtn, 6) local Content = new("ScrollingFrame", { Size = UDim2.new(1, -16, 1, -52), Position = UDim2.new(0, 8, 0, 44), BackgroundTransparency = 1, BorderSizePixel = 0, ScrollBarThickness = 3, ScrollBarImageColor3 = CONFIG.Accent, CanvasSize = UDim2.new(0, 0, 0, 0), AutomaticCanvasSize = Enum.AutomaticSize.Y, }, Main) new("UIListLayout", { Padding = UDim.new(0, 5), SortOrder = Enum.SortOrder.LayoutOrder, }, Content) local dragging, dragStart, startPos TopBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = Main.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart Main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) local fdragging, fdragStart, fstartPos Float.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then fdragging = true fdragStart = input.Position fstartPos = Float.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then fdragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if fdragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - fdragStart Float.Position = UDim2.new(fstartPos.X.Scale, fstartPos.X.Offset + delta.X, fstartPos.Y.Scale, fstartPos.Y.Offset + delta.Y) end end) MinimizeBtn.MouseButton1Click:Connect(function() Main.Visible = false Float.Visible = true end) Float.MouseButton1Click:Connect(function() Float.Visible = false Main.Visible = true end) CloseBtn.MouseButton1Click:Connect(function() Main.Visible = false Float.Visible = false end) local State = { AimbotEnabled = false, AimbotHeld = false, AimbotSmooth = 8, AimbotTargetPart = "Head", BoxESP = false, NameESP = false, DistanceESP = false, ESPTeammates = false, Fly = false, FlySpeed = 80, Noclip = false, InfJump = false, WalkSpeed = 16, JumpPower = 50, } local function isTeammate(p) return LocalPlayer.Team and p.Team == LocalPlayer.Team end local function getESPColor(p) if #Teams:GetChildren() > 0 and p.TeamColor then return p.TeamColor.Color end return CONFIG.Accent end local function Section(title) local s = new("Frame", { Size = UDim2.new(1, 0, 0, 20), BackgroundTransparency = 1, }, Content) new("TextLabel", { Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, Text = string.upper(title or ""), TextColor3 = CONFIG.Dim, Font = CONFIG.FontBold, TextSize = 9, TextXAlignment = Enum.TextXAlignment.Left, }, s) new("Frame", { Size = UDim2.new(1, 0, 0, 1), Position = UDim2.new(0, 0, 1, -2), BackgroundColor3 = CONFIG.Border, BorderSizePixel = 0, }, s) end local function Toggle(title, desc, val, cb) local state = val local frame = new("Frame", { Size = UDim2.new(1, 0, 0, 30), BackgroundColor3 = CONFIG.Panel, BorderSizePixel = 0, }, Content) corner(frame, 6) stroke(frame, CONFIG.Border, 1, 0.5) new("TextLabel", { Size = UDim2.new(1, -50, 0, 14), Position = UDim2.new(0, 8, 0, 3), BackgroundTransparency = 1, Text = title, TextColor3 = CONFIG.Text, Font = CONFIG.FontBold, TextSize = 10, TextXAlignment = Enum.TextXAlignment.Left, }, frame) new("TextLabel", { Size = UDim2.new(1, -50, 0, 11), Position = UDim2.new(0, 8, 0, 17), BackgroundTransparency = 1, Text = desc or "", TextColor3 = CONFIG.Dim, Font = CONFIG.Font, TextSize = 8, TextXAlignment = Enum.TextXAlignment.Left, }, frame) local track = new("Frame", { Size = UDim2.new(0, 26, 0, 14), Position = UDim2.new(1, -34, 0.5, -7), BackgroundColor3 = state and CONFIG.Accent or CONFIG.Panel2, BorderSizePixel = 0, }, frame) corner(track, 7) stroke(track, CONFIG.Border, 1, 0.3) local knob = new("Frame", { Size = UDim2.new(0, 10, 0, 10), Position = state and UDim2.new(1, -12, 0, 2) or UDim2.new(0, 2, 0, 2), BackgroundColor3 = Color3.new(1,1,1), BorderSizePixel = 0, }, track) corner(knob, 5) local btn = new("TextButton", { Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, Text = "", }, frame) btn.MouseButton1Click:Connect(function() state = not state TweenService:Create(track, TweenInfo.new(0.2), {BackgroundColor3 = state and CONFIG.Accent or CONFIG.Panel2}):Play() TweenService:Create(knob, TweenInfo.new(0.2), {Position = state and UDim2.new(1, -12, 0, 2) or UDim2.new(0, 2, 0, 2)}):Play() if cb then cb(state) end end) end local function Slider(title, min, max, val, cb) local frame = new("Frame", { Size = UDim2.new(1, 0, 0, 38), BackgroundColor3 = CONFIG.Panel, BorderSizePixel = 0, }, Content) corner(frame, 6) stroke(frame, CONFIG.Border, 1, 0.5) new("TextLabel", { Size = UDim2.new(1, -60, 0, 14), Position = UDim2.new(0, 8, 0, 3), BackgroundTransparency = 1, Text = title, TextColor3 = CONFIG.Text, Font = CONFIG.FontBold, TextSize = 10, TextXAlignment = Enum.TextXAlignment.Left, }, frame) local valLbl = new("TextLabel", { Size = UDim2.new(0, 60, 0, 14), Position = UDim2.new(1, -68, 0, 3), BackgroundTransparency = 1, Text = tostring(val), TextColor3 = CONFIG.Accent2, Font = CONFIG.FontBold, TextSize = 10, TextXAlignment = Enum.TextXAlignment.Right, }, frame) local track = new("Frame", { Size = UDim2.new(1, -16, 0, 4), Position = UDim2.new(0, 8, 0, 24), BackgroundColor3 = CONFIG.Panel2, BorderSizePixel = 0, }, frame) corner(track, 2) local fill = new("Frame", { Size = UDim2.new((val - min) / (max - min), 0, 1, 0), BackgroundColor3 = CONFIG.Accent, BorderSizePixel = 0, }, track) corner(fill, 2) gradient(fill, CONFIG.Accent, CONFIG.Accent2, 0) local drag = false local function upd(input) local rel = math.clamp((input.Position.X - track.AbsolutePosition.X) / track.AbsoluteSize.X, 0, 1) val = math.floor(min + (max - min) * rel) fill.Size = UDim2.new(rel, 0, 1, 0) valLbl.Text = tostring(val) if cb then cb(val) end end track.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then drag = true upd(input) end end) UserInputService.InputChanged:Connect(function(input) if drag and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then upd(input) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then drag = false end end) end local function Dropdown(title, values, val, cb) local open = false local selected = val or values[1] local frame = new("Frame", { Size = UDim2.new(1, 0, 0, 30), BackgroundColor3 = CONFIG.Panel, BorderSizePixel = 0, ClipsDescendants = true, }, Content) corner(frame, 6) stroke(frame, CONFIG.Border, 1, 0.5) new("TextLabel", { Size = UDim2.new(1, -80, 0, 14), Position = UDim2.new(0, 8, 0, 3), BackgroundTransparency = 1, Text = title, TextColor3 = CONFIG.Text, Font = CONFIG.FontBold, TextSize = 10, TextXAlignment = Enum.TextXAlignment.Left, }, frame) local valLbl = new("TextLabel", { Size = UDim2.new(0, 80, 0, 14), Position = UDim2.new(1, -88, 0, 3), BackgroundTransparency = 1, Text = tostring(selected), TextColor3 = CONFIG.Accent2, Font = CONFIG.FontBold, TextSize = 9, TextXAlignment = Enum.TextXAlignment.Right, }, frame) local list = new("Frame", { Size = UDim2.new(1, 0, 0, 0), Position = UDim2.new(0, 0, 0, 26), BackgroundTransparency = 1, AutomaticSize = Enum.AutomaticSize.Y, }, frame) new("UIListLayout", { Padding = UDim.new(0, 2), SortOrder = Enum.SortOrder.LayoutOrder, }, list) for _, opt in ipairs(values) do local ob = new("TextButton", { Size = UDim2.new(1, -12, 0, 20), BackgroundColor3 = CONFIG.Panel2, BorderSizePixel = 0, Text = " " .. tostring(opt), TextColor3 = CONFIG.Text, Font = CONFIG.Font, TextSize = 9, TextXAlignment = Enum.TextXAlignment.Left, AutoButtonColor = false, }, list) corner(ob, 4) ob.MouseButton1Click:Connect(function() selected = opt valLbl.Text = tostring(opt) open = false TweenService:Create(frame, TweenInfo.new(0.2), {Size = UDim2.new(1, 0, 0, 30)}):Play() if cb then cb(opt) end end) end local btn = new("TextButton", { Size = UDim2.new(1, 0, 0, 26), BackgroundTransparency = 1, Text = "", }, frame) btn.MouseButton1Click:Connect(function() open = not open local target = 30 if open then target = 30 + ((#values * 22) + 4) end TweenService:Create(frame, TweenInfo.new(0.25, Enum.EasingStyle.Quart), {Size = UDim2.new(1, 0, 0, target)}):Play() end) end Section("Aimbot") Toggle("Aimbot Enabled", "Enable aim lock", false, function(v) State.AimbotEnabled = v end) Dropdown("Target Part", {"Head","HumanoidRootPart","Torso","UpperTorso","LowerTorso"}, "Head", function(v) State.AimbotTargetPart = v end) Slider("Smooth", 1, 100, 8, function(v) State.AimbotSmooth = v end) Section("ESP") Toggle("Box ESP", "Draw box", false, function(v) State.BoxESP = v end) Toggle("Name ESP", "Show names", false, function(v) State.NameESP = v end) Toggle("Distance ESP", "Show distance", false, function(v) State.DistanceESP = v end) Toggle("Show Teammates", "Include mates", false, function(v) State.ESPTeammates = v end) Section("Movement") Toggle("Fly", "Enable flight", false, function(v) State.Fly = v end) Slider("Fly Speed", 1, 500, 80, function(v) State.FlySpeed = v end) Toggle("Noclip", "Walk through walls", false, function(v) State.Noclip = v end) Toggle("Infinite Jump", "Jump forever", false, function(v) State.InfJump = v end) Slider("Walk Speed", 0, 500, 16, function(v) State.WalkSpeed = v local c = LocalPlayer.Character local h = c and c:FindFirstChildOfClass("Humanoid") if h then h.WalkSpeed = v end end) Slider("Jump Power", 0, 500, 50, function(v) State.JumpPower = v local c = LocalPlayer.Character local h = c and c:FindFirstChildOfClass("Humanoid") if h then h.UseJumpPower = true; h.JumpPower = v end end) local function getChar() return LocalPlayer.Character end local function getHRP() local c = getChar(); return c and c:FindFirstChild("HumanoidRootPart") end local function getNearestTarget() local cam = workspace.CurrentCamera local vp = cam.ViewportSize local center = Vector2.new(vp.X/2, vp.Y/2) local best, bestDist = nil, math.huge for _, p in ipairs(Players:GetPlayers()) do if p == LocalPlayer then continue end local char = p.Character if not char then continue end local hum = char:FindFirstChildOfClass("Humanoid") if not hum or hum.Health <= 0 then continue end local part = char:FindFirstChild(State.AimbotTargetPart) or char:FindFirstChild("HumanoidRootPart") if not part then continue end local screenPos, onScreen = cam:WorldToViewportPoint(part.Position) if not onScreen then continue end local dist = Vector2.new(screenPos.X, screenPos.Y) - center if dist.Magnitude < bestDist then bestDist = dist.Magnitude best = {player=p, char=char, part=part} end end return best end UserInputService.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.Q then State.AimbotHeld = true end end) UserInputService.InputEnded:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.Q then State.AimbotHeld = false end end) UserInputService.JumpRequest:Connect(function() if not State.InfJump then return end local hrp = getHRP() if hrp then hrp.AssemblyLinearVelocity = Vector3.new(hrp.AssemblyLinearVelocity.X, 55, hrp.AssemblyLinearVelocity.Z) end end) RunService.Stepped:Connect(function() if State.Noclip then local c = getChar() if c then for _, p in ipairs(c:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end end end) local flyBF RunService.Heartbeat:Connect(function() if not State.Fly then if flyBF then flyBF:Destroy(); flyBF = nil end return end local hrp = getHRP() if not hrp then return end if not flyBF then flyBF = Instance.new("BodyVelocity", hrp) flyBF.MaxForce = Vector3.new(1e6,1e6,1e6) flyBF.Velocity = Vector3.zero end local cam = workspace.CurrentCamera local mv = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then mv = mv + cam.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then mv = mv - cam.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then mv = mv - cam.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then mv = mv + cam.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then mv = mv + Vector3.new(0,1,0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then mv = mv - Vector3.new(0,1,0) end flyBF.Velocity = mv.Magnitude > 0 and mv.Unit * State.FlySpeed or Vector3.zero end) RunService.RenderStepped:Connect(function() if not State.AimbotEnabled or not State.AimbotHeld then return end local target = getNearestTarget() if not target then return end local cam = workspace.CurrentCamera local smooth = math.clamp(State.AimbotSmooth, 1, 100) cam.CFrame = cam.CFrame:Lerp(CFrame.new(cam.CFrame.Position, target.part.Position), 1 / smooth) end) local espObjects = {} local function cleanESP(p) if espObjects[p] then for _, d in ipairs(espObjects[p]) do pcall(function() d:Remove() end) end espObjects[p] = nil end end RunService.Heartbeat:Connect(function() local cam = workspace.CurrentCamera for _, p in ipairs(Players:GetPlayers()) do if p == LocalPlayer then continue end if not State.ESPTeammates and isTeammate(p) then cleanESP(p); continue end local char = p.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") local hum = char and char:FindFirstChildOfClass("Humanoid") if not hrp or not hum or hum.Health <= 0 then cleanESP(p); continue end local screenPos, onScreen = cam:WorldToViewportPoint(hrp.Position) if not onScreen then cleanESP(p); continue end pcall(function() if not espObjects[p] then espObjects[p] = {} end local col = getESPColor(p) if State.NameESP then local n = espObjects[p].nameLbl if not n then n = Drawing.new("Text"); n.Center = true; n.Outline = true; n.Size = 13; n.Font = Drawing.Fonts.Plex espObjects[p].nameLbl = n end n.Position = Vector2.new(screenPos.X, screenPos.Y - 40) n.Text = p.DisplayName; n.Color = col; n.Visible = true elseif espObjects[p].nameLbl then espObjects[p].nameLbl.Visible = false end if State.DistanceESP then local dist = math.floor((hrp.Position - cam.CFrame.Position).Magnitude) local d = espObjects[p].distLbl if not d then d = Drawing.new("Text"); d.Center = true; d.Outline = true; d.Size = 11; d.Font = Drawing.Fonts.Plex espObjects[p].distLbl = d end d.Position = Vector2.new(screenPos.X, screenPos.Y + 30) d.Text = dist .. " studs"; d.Color = col; d.Visible = true elseif espObjects[p].distLbl then espObjects[p].distLbl.Visible = false end if State.BoxESP then local top = cam:WorldToViewportPoint((hrp.Position + Vector3.new(0,3,0))) local bot = cam:WorldToViewportPoint((hrp.Position - Vector3.new(0,2.5,0))) local h2 = math.abs(top.Y - bot.Y) local w2 = h2 * 0.6 local bx = espObjects[p].box if not bx then bx = Drawing.new("Square"); bx.Filled = false; bx.Thickness = 1.5 espObjects[p].box = bx end bx.Position = Vector2.new(screenPos.X - w2/2, math.min(top.Y, bot.Y)) bx.Size = Vector2.new(w2, h2); bx.Color = col; bx.Visible = true elseif espObjects[p].box then espObjects[p].box.Visible = false end end) end end) Players.PlayerRemoving:Connect(function(p) cleanESP(p) end) LocalPlayer.CharacterAdded:Connect(function(char) task.wait(0.1) local h2 = char:FindFirstChildOfClass("Humanoid") if h2 then h2.WalkSpeed = State.WalkSpeed h2.UseJumpPower = true h2.JumpPower = State.JumpPower end end)