
Key RequiredUniversal

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)



dog**** esp, looks very vibed