local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local camera = workspace.CurrentCamera local mouse = player:GetMouse() local aiming = false local aimbotEnabled = false local aimPart = "Head" local STICKINESS_THRESHOLD = 2 local lastTarget = nil local smoothness = 0.2 local fovCircleEnabled = false local fovRadius = 100 local teamCheck = true local espEnabled = true local espBoxes = {} local espColor = Color3.new(1, 0, 0) local espTransparency = 0.5 local espNames = {} local nameTagsEnabled = false local healthBarsEnabled = false local espTeamCheck = true local currentTab = "Aimbot" local fovCircle = nil local function isEnemy(otherPlayer) if not teamCheck then return otherPlayer ~= player end return player.Team ~= nil and otherPlayer.Team ~= nil and player.Team ~= otherPlayer.Team end local function isESPTarget(otherPlayer) if not espTeamCheck then return otherPlayer ~= player end return player.Team ~= nil and otherPlayer.Team ~= nil and player.Team ~= otherPlayer.Team end local function createESP(targetPlayer) local box = Instance.new("BoxHandleAdornment") box.Name = "ESPBox" box.Adornee = targetPlayer.Character box.Size = Vector3.new(4, 6, 2) box.Color3 = espColor box.Transparency = espTransparency box.AlwaysOnTop = true box.ZIndex = 10 box.Parent = targetPlayer.Character:FindFirstChild("HumanoidRootPart") or targetPlayer.Character espBoxes[targetPlayer] = box if nameTagsEnabled then local billboard = Instance.new("BillboardGui") billboard.Name = "ESPName" billboard.Adornee = targetPlayer.Character:FindFirstChild("Head") billboard.Size = UDim2.new(0, 100, 0, 50) billboard.StudsOffset = Vector3.new(0, 2, 0) billboard.AlwaysOnTop = true billboard.Parent = targetPlayer.Character:FindFirstChild("Head") local nameLabel = Instance.new("TextLabel") nameLabel.Size = UDim2.new(1, 0, 1, 0) nameLabel.BackgroundTransparency = 1 nameLabel.Text = targetPlayer.Name nameLabel.TextColor3 = espColor nameLabel.TextStrokeTransparency = 0 nameLabel.TextStrokeColor3 = Color3.new(0, 0, 0) nameLabel.Font = Enum.Font.GothamBold nameLabel.TextSize = 14 nameLabel.Parent = billboard espNames[targetPlayer] = billboard end end local function removeESP(targetPlayer) if espBoxes[targetPlayer] then espBoxes[targetPlayer]:Destroy() espBoxes[targetPlayer] = nil end if espNames[targetPlayer] then espNames[targetPlayer]:Destroy() espNames[targetPlayer] = nil end end RunService.RenderStepped:Connect(function() if espEnabled then for _, p in pairs(Players:GetPlayers()) do if p ~= player then if isESPTarget(p) and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then if not espBoxes[p] then createESP(p) end else removeESP(p) end end end else for _, p in pairs(Players:GetPlayers()) do removeESP(p) end end end) local function getClosestEnemyToMouseRay() local closestPlayer = nil local shortestDistance = math.huge local mouseRay = camera:ScreenPointToRay(mouse.X, mouse.Y) for _, otherPlayer in ipairs(Players:GetPlayers()) do if otherPlayer ~= player and isEnemy(otherPlayer) and otherPlayer.Character and otherPlayer.Character:FindFirstChild(aimPart) then local partPos = otherPlayer.Character[aimPart].Position local originToTarget = partPos - mouseRay.Origin local projected = mouseRay.Direction.Unit:Dot(originToTarget) local closestPoint = mouseRay.Origin + mouseRay.Direction.Unit * projected local distance = (partPos - closestPoint).Magnitude if distance < shortestDistance then shortestDistance = distance closestPlayer = otherPlayer end end end if lastTarget and lastTarget.Character and lastTarget.Character:FindFirstChild(aimPart) and isEnemy(lastTarget) then local partPos = lastTarget.Character[aimPart].Position local originToTarget = partPos - mouseRay.Origin local projected = mouseRay.Direction.Unit:Dot(originToTarget) local closestPoint = mouseRay.Origin + mouseRay.Direction.Unit * projected local lastDistance = (partPos - closestPoint).Magnitude if lastDistance <= shortestDistance + STICKINESS_THRESHOLD then return lastTarget end end return closestPlayer end RunService.RenderStepped:Connect(function() if aimbotEnabled and aiming then local target = getClosestEnemyToMouseRay() if target and target.Character and target.Character:FindFirstChild(aimPart) then lastTarget = target local targetPos = target.Character[aimPart].Position local camPos = camera.CFrame.Position local direction = (targetPos - camPos).Unit camera.CFrame = camera.CFrame:Lerp(CFrame.new(camPos, camPos + direction), 1 - smoothness) end end end) local function createFOVCircle() if fovCircle then fovCircle:Remove() end fovCircle = Drawing.new("Circle") fovCircle.Thickness = 2 fovCircle.NumSides = 30 fovCircle.Radius = fovRadius fovCircle.Filled = false fovCircle.Visible = fovCircleEnabled fovCircle.Color = Color3.fromRGB(255, 255, 255) fovCircle.Transparency = 0.5 end RunService.RenderStepped:Connect(function() if fovCircleEnabled and fovCircle then fovCircle.Position = Vector2.new(mouse.X, mouse.Y) fovCircle.Visible = true elseif fovCircle then fovCircle.Visible = false end end) UserInputService.InputBegan:Connect(function(input, processed) if input.UserInputType == Enum.UserInputType.MouseButton2 and not processed then aiming = true end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton2 then aiming = false lastTarget = nil end end) local screenGui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui")) screenGui.Name = "AimbotGUI" local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 350, 0, 380) frame.Position = UDim2.new(0, 20, 0, 20) frame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) frame.BorderSizePixel = 0 frame.BackgroundTransparency = 0.1 frame.Parent = screenGui frame.Active = true frame.Draggable = true local uicorner = Instance.new("UICorner", frame) uicorner.CornerRadius = UDim.new(0, 8) local shadow = Instance.new("ImageLabel", frame) shadow.AnchorPoint = Vector2.new(0.5, 0.5) shadow.Position = UDim2.new(0.5, 0, 0.5, 4) shadow.Size = UDim2.new(1, 30, 1, 30) shadow.BackgroundTransparency = 1 shadow.Image = "rbxassetid://1316045217" shadow.ImageColor3 = Color3.new(0, 0, 0) shadow.ImageTransparency = 0.5 shadow.ScaleType = Enum.ScaleType.Slice shadow.SliceCenter = Rect.new(10, 10, 118, 118) shadow.ZIndex = 0 local title = Instance.new("TextLabel", frame) title.Size = UDim2.new(1, 0, 0, 35) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundTransparency = 1 title.Text = "Universal Aimbot" title.Font = Enum.Font.GothamSemibold title.TextSize = 18 title.TextColor3 = Color3.fromRGB(255, 255, 255) local tabFrame = Instance.new("Frame", frame) tabFrame.Size = UDim2.new(1, -20, 0, 30) tabFrame.Position = UDim2.new(0, 10, 0, 40) tabFrame.BackgroundTransparency = 1 local function createTabButton(text, position) local button = Instance.new("TextButton") button.Size = UDim2.new(0.5, -5, 1, 0) button.Position = UDim2.new(position * 0.5, position == 1 and 5 or 0, 0, 0) button.BackgroundColor3 = Color3.fromRGB(60, 60, 60) button.TextColor3 = Color3.fromRGB(200, 200, 200) button.Text = text button.Font = Enum.Font.Gotham button.TextSize = 14 button.AutoButtonColor = false local corner = Instance.new("UICorner", button) corner.CornerRadius = UDim.new(0, 4) button.Parent = tabFrame return button end local aimbotTab = createTabButton("Aimbot", 0) local espTab = createTabButton("ESP", 1) local contentFrame = Instance.new("Frame", frame) contentFrame.Size = UDim2.new(1, -20, 1, -140) contentFrame.Position = UDim2.new(0, 10, 0, 80) contentFrame.BackgroundTransparency = 1 local function switchTab(tabName) currentTab = tabName if tabName == "Aimbot" then aimbotTab.BackgroundColor3 = Color3.fromRGB(80, 80, 80) aimbotTab.TextColor3 = Color3.fromRGB(255, 255, 255) espTab.BackgroundColor3 = Color3.fromRGB(60, 60, 60) espTab.TextColor3 = Color3.fromRGB(200, 200, 200) else espTab.BackgroundColor3 = Color3.fromRGB(80, 80, 80) espTab.TextColor3 = Color3.fromRGB(255, 255, 255) aimbotTab.BackgroundColor3 = Color3.fromRGB(60, 60, 60) aimbotTab.TextColor3 = Color3.fromRGB(200, 200, 200) end for _, child in pairs(contentFrame:GetChildren()) do child:Destroy() end if tabName == "Aimbot" then createAimbotContent() else createESPContent() end end local function createButton(text, yPos, parent) local button = Instance.new("TextButton") button.Size = UDim2.new(1, 0, 0, 32) button.Position = UDim2.new(0, 0, 0, yPos) button.BackgroundColor3 = Color3.fromRGB(45, 45, 45) button.TextColor3 = Color3.fromRGB(255, 255, 255) button.Text = text button.Font = Enum.Font.Gotham button.TextSize = 16 button.AutoButtonColor = true local corner = Instance.new("UICorner", button) corner.CornerRadius = UDim.new(0, 6) local stroke = Instance.new("UIStroke", button) stroke.Thickness = 1 stroke.Color = Color3.fromRGB(80, 80, 80) button.Parent = parent or contentFrame return button end local function createSlider(labelText, minVal, maxVal, currentVal, yPos, callback) local sliderFrame = Instance.new("Frame") sliderFrame.Size = UDim2.new(1, 0, 0, 50) sliderFrame.Position = UDim2.new(0, 0, 0, yPos) sliderFrame.BackgroundTransparency = 1 sliderFrame.Parent = contentFrame local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 0, 20) label.Position = UDim2.new(0, 0, 0, 0) label.BackgroundTransparency = 1 label.Text = labelText .. ": " .. math.floor(currentVal * 100) .. "%" label.Font = Enum.Font.Gotham label.TextSize = 14 label.TextColor3 = Color3.fromRGB(255, 255, 255) label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = sliderFrame local sliderBg = Instance.new("Frame") sliderBg.Size = UDim2.new(1, 0, 0, 20) sliderBg.Position = UDim2.new(0, 0, 0, 25) sliderBg.BackgroundColor3 = Color3.fromRGB(60, 60, 60) local bgCorner = Instance.new("UICorner", sliderBg) bgCorner.CornerRadius = UDim.new(0, 10) sliderBg.Parent = sliderFrame local sliderFill = Instance.new("Frame") sliderFill.Size = UDim2.new(currentVal, 0, 1, 0) sliderFill.Position = UDim2.new(0, 0, 0, 0) sliderFill.BackgroundColor3 = Color3.fromRGB(0, 150, 255) local fillCorner = Instance.new("UICorner", sliderFill) fillCorner.CornerRadius = UDim.new(0, 10) sliderFill.Parent = sliderBg local sliderButton = Instance.new("TextButton") sliderButton.Size = UDim2.new(1, 0, 1, 0) sliderButton.Position = UDim2.new(0, 0, 0, 0) sliderButton.BackgroundTransparency = 1 sliderButton.Text = "" sliderButton.Parent = sliderBg local dragging = false sliderButton.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true end end) sliderButton.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local relativeX = math.clamp((mouse.X - sliderBg.AbsolutePosition.X) / sliderBg.AbsoluteSize.X, 0, 1) local value = minVal + (maxVal - minVal) * relativeX sliderFill.Size = UDim2.new(relativeX, 0, 1, 0) label.Text = labelText .. ": " .. math.floor(value * 100) .. "%" callback(value) end end) return sliderFrame end local function createNumberSlider(labelText, minVal, maxVal, currentVal, yPos, callback) local sliderFrame = Instance.new("Frame") sliderFrame.Size = UDim2.new(1, 0, 0, 50) sliderFrame.Position = UDim2.new(0, 0, 0, yPos) sliderFrame.BackgroundTransparency = 1 sliderFrame.Parent = contentFrame local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 0, 20) label.Position = UDim2.new(0, 0, 0, 0) label.BackgroundTransparency = 1 label.Text = labelText .. ": " .. math.floor(currentVal) label.Font = Enum.Font.Gotham label.TextSize = 14 label.TextColor3 = Color3.fromRGB(255, 255, 255) label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = sliderFrame local sliderBg = Instance.new("Frame") sliderBg.Size = UDim2.new(1, 0, 0, 20) sliderBg.Position = UDim2.new(0, 0, 0, 25) sliderBg.BackgroundColor3 = Color3.fromRGB(60, 60, 60) local bgCorner = Instance.new("UICorner", sliderBg) bgCorner.CornerRadius = UDim.new(0, 10) sliderBg.Parent = sliderFrame local sliderFill = Instance.new("Frame") local fillPercent = (currentVal - minVal) / (maxVal - minVal) sliderFill.Size = UDim2.new(fillPercent, 0, 1, 0) sliderFill.Position = UDim2.new(0, 0, 0, 0) sliderFill.BackgroundColor3 = Color3.fromRGB(0, 150, 255) local fillCorner = Instance.new("UICorner", sliderFill) fillCorner.CornerRadius = UDim.new(0, 10) sliderFill.Parent = sliderBg local sliderButton = Instance.new("TextButton") sliderButton.Size = UDim2.new(1, 0, 1, 0) sliderButton.Position = UDim2.new(0, 0, 0, 0) sliderButton.BackgroundTransparency = 1 sliderButton.Text = "" sliderButton.Parent = sliderBg local dragging = false sliderButton.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true end end) sliderButton.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local relativeX = math.clamp((mouse.X - sliderBg.AbsolutePosition.X) / sliderBg.AbsoluteSize.X, 0, 1) local value = minVal + (maxVal - minVal) * relativeX sliderFill.Size = UDim2.new(relativeX, 0, 1, 0) label.Text = labelText .. ": " .. math.floor(value) callback(value) end end) return sliderFrame end function createAimbotContent() local toggleBtn = createButton("Aimbot: OFF", 0) toggleBtn.MouseButton1Click:Connect(function() aimbotEnabled = not aimbotEnabled toggleBtn.Text = "Aimbot: " .. (aimbotEnabled and "ON" or "OFF") if aimbotEnabled and not fovCircle then createFOVCircle() end end) local teamBtn = createButton("Team Check: ON", 35) teamBtn.MouseButton1Click:Connect(function() teamCheck = not teamCheck teamBtn.Text = "Team Check: " .. (teamCheck and "ON" or "OFF") end) local partDropdown = createButton("Aim Part: Head", 70) local parts = {"Head", "HumanoidRootPart", "Torso", "UpperTorso", "LowerTorso"} local currentIndex = 1 partDropdown.MouseButton1Click:Connect(function() currentIndex = currentIndex + 1 if currentIndex > #parts then currentIndex = 1 end aimPart = parts[currentIndex] partDropdown.Text = "Aim Part: " .. aimPart end) createSlider("Smoothness", 0.05, 0.95, smoothness, 110, function(value) smoothness = value end) createNumberSlider("FOV Radius", 50, 300, fovRadius, 170, function(value) fovRadius = value if fovCircle then fovCircle.Radius = fovRadius end end) local fovBtn = createButton("FOV Circle: OFF", 230) fovBtn.MouseButton1Click:Connect(function() fovCircleEnabled = not fovCircleEnabled fovBtn.Text = "FOV Circle: " .. (fovCircleEnabled and "ON" or "OFF") if not fovCircle then createFOVCircle() end end) end function createESPContent() local espToggle = createButton("ESP: ON", 0) espToggle.MouseButton1Click:Connect(function() espEnabled = not espEnabled espToggle.Text = "ESP: " .. (espEnabled and "ON" or "OFF") end) local espTeamBtn = createButton("ESP Team Check: ON", 35) espTeamBtn.MouseButton1Click:Connect(function() espTeamCheck = not espTeamCheck espTeamBtn.Text = "ESP Team Check: " .. (espTeamCheck and "ON" or "OFF") for player, _ in pairs(espBoxes) do removeESP(player) end end) local colorBtn = createButton("Color: Red", 70) local colors = { {name = "Red", color = Color3.new(1, 0, 0)}, {name = "Green", color = Color3.new(0, 1, 0)}, {name = "Blue", color = Color3.new(0, 0, 1)}, {name = "Yellow", color = Color3.new(1, 1, 0)}, {name = "Purple", color = Color3.new(1, 0, 1)}, {name = "Cyan", color = Color3.new(0, 1, 1)}, {name = "White", color = Color3.new(1, 1, 1)} } local colorIndex = 1 colorBtn.MouseButton1Click:Connect(function() colorIndex = colorIndex + 1 if colorIndex > #colors then colorIndex = 1 end espColor = colors[colorIndex].color colorBtn.Text = "Color: " .. colors[colorIndex].name for _, box in pairs(espBoxes) do if box then box.Color3 = espColor end end for _, nameGui in pairs(espNames) do if nameGui and nameGui:FindFirstChild("TextLabel") then nameGui.TextLabel.TextColor3 = espColor end end end) createSlider("Transparency", 0.1, 0.9, espTransparency, 110, function(value) espTransparency = value for _, box in pairs(espBoxes) do if box then box.Transparency = espTransparency end end end) local nameBtn = createButton("Names: OFF", 170) nameBtn.MouseButton1Click:Connect(function() nameTagsEnabled = not nameTagsEnabled nameBtn.Text = "Names: " .. (nameTagsEnabled and "ON" or "OFF") for player, _ in pairs(espBoxes) do removeESP(player) end end) end aimbotTab.MouseButton1Click:Connect(function() switchTab("Aimbot") end) espTab.MouseButton1Click:Connect(function() switchTab("ESP") end) local credit = Instance.new("TextLabel", frame) credit.Size = UDim2.new(1, 0, 0, 20) credit.Position = UDim2.new(0, 0, 1, -20) credit.BackgroundTransparency = 1 credit.Text = "Universal Aimbot v1.1" credit.Font = Enum.Font.Gotham credit.TextSize = 12 credit.TextColor3 = Color3.fromRGB(140, 140, 140) createFOVCircle() switchTab("Aimbot")