-- Services local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer local Mouse = LocalPlayer:GetMouse() -- Settings local Settings = { Enabled = false, FOV = 200, Smoothness = 0.3, -- 0 = instant, 1 = very smooth TeamCheck = true, -- Will only aim at enemies (different team) VisibleCheck = true, -- Will only aim if head is visible (raycast) } -- Function to create the UI local function CreateUI() local screenGui = Instance.new("ScreenGui") screenGui.Name = "LUBV_AimbotUI" screenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 270, 0, 250) mainFrame.Position = UDim2.new(0.5, -135, 0.5, -125) mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) mainFrame.BackgroundTransparency = 0.15 mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui -- Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 30) title.BackgroundTransparency = 1 title.Text = "LUBV Aimbot" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.TextScaled = true title.Font = Enum.Font.GothamBold title.Parent = mainFrame local yOffset = 0.2 -- Toggle button local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0.8, 0, 0, 30) toggleBtn.Position = UDim2.new(0.1, 0, yOffset, 0) toggleBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60) toggleBtn.Text = "Aimbot: OFF" toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) toggleBtn.Font = Enum.Font.Gotham toggleBtn.Parent = mainFrame toggleBtn.MouseButton1Click:Connect(function() Settings.Enabled = not Settings.Enabled toggleBtn.Text = "Aimbot: " .. (Settings.Enabled and "ON" or "OFF") toggleBtn.BackgroundColor3 = Settings.Enabled and Color3.fromRGB(0, 200, 0) or Color3.fromRGB(60, 60, 60) end) yOffset = yOffset + 0.15 -- FOV Slider local fovLabel = Instance.new("TextLabel") fovLabel.Size = UDim2.new(0.4, 0, 0, 20) fovLabel.Position = UDim2.new(0.05, 0, yOffset, 0) fovLabel.BackgroundTransparency = 1 fovLabel.Text = "FOV: 200" fovLabel.TextColor3 = Color3.fromRGB(255,255,255) fovLabel.Font = Enum.Font.Gotham fovLabel.TextScaled = true fovLabel.Parent = mainFrame local fovSlider = Instance.new("TextButton") fovSlider.Size = UDim2.new(0.5, 0, 0, 20) fovSlider.Position = UDim2.new(0.45, 0, yOffset, 0) fovSlider.BackgroundColor3 = Color3.fromRGB(100, 100, 100) fovSlider.Text = "" fovSlider.Parent = mainFrame local dragging = false fovSlider.MouseButton1Down:Connect(function() dragging = true end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) RunService.RenderStepped:Connect(function() if dragging then local mousePos = UserInputService:GetMouseLocation() local framePos = fovSlider.AbsolutePosition local frameSize = fovSlider.AbsoluteSize local newX = math.clamp(mousePos.X - framePos.X, 0, frameSize.X) local percent = newX / frameSize.X Settings.FOV = math.floor(percent * 400 + 50) -- range 50-450 fovLabel.Text = "FOV: " .. Settings.FOV end end) yOffset = yOffset + 0.15 -- Team Check checkbox (text button as checkbox) local teamCheckBtn = Instance.new("TextButton") teamCheckBtn.Size = UDim2.new(0.4, 0, 0, 25) teamCheckBtn.Position = UDim2.new(0.05, 0, yOffset, 0) teamCheckBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60) teamCheckBtn.Text = "Team: ON" teamCheckBtn.TextColor3 = Color3.fromRGB(255,255,255) teamCheckBtn.Font = Enum.Font.Gotham teamCheckBtn.Parent = mainFrame teamCheckBtn.MouseButton1Click:Connect(function() Settings.TeamCheck = not Settings.TeamCheck teamCheckBtn.Text = "Team: " .. (Settings.TeamCheck and "ON" or "OFF") teamCheckBtn.BackgroundColor3 = Settings.TeamCheck and Color3.fromRGB(0, 200, 0) or Color3.fromRGB(60, 60, 60) end) -- Visible Check checkbox local visCheckBtn = Instance.new("TextButton") visCheckBtn.Size = UDim2.new(0.4, 0, 0, 25) visCheckBtn.Position = UDim2.new(0.55, 0, yOffset, 0) visCheckBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60) visCheckBtn.Text = "Visible: ON" visCheckBtn.TextColor3 = Color3.fromRGB(255,255,255) visCheckBtn.Font = Enum.Font.Gotham visCheckBtn.Parent = mainFrame visCheckBtn.MouseButton1Click:Connect(function() Settings.VisibleCheck = not Settings.VisibleCheck visCheckBtn.Text = "Visible: " .. (Settings.VisibleCheck and "ON" or "OFF") visCheckBtn.BackgroundColor3 = Settings.VisibleCheck and Color3.fromRGB(0, 200, 0) or Color3.fromRGB(60, 60, 60) end) end -- Aimbot core: get closest enemy player local function GetClosestPlayer() local closest = nil local shortestDist = math.huge local center = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2) for _, player in ipairs(Players:GetPlayers()) do if player == LocalPlayer then continue end if not player.Character then continue end local humanoid = player.Character:FindFirstChild("Humanoid") if not humanoid or humanoid.Health <= 0 then continue end -- Team check: if enabled, skip same team (i.e., only aim at enemies) if Settings.TeamCheck and player.Team == LocalPlayer.Team then continue end local head = player.Character:FindFirstChild("Head") if not head then continue end local headPos, onScreen = Camera:WorldToScreenPoint(head.Position) if not onScreen then continue end -- Visibility check: raycast from camera to head if Settings.VisibleCheck then local rayOrigin = Camera.CFrame.Position local direction = (head.Position - rayOrigin).Unit * 1000 local ray = Ray.new(rayOrigin, direction) local part, hitPos = workspace:FindPartOnRay(ray, LocalPlayer.Character) if part and not part:IsDescendantOf(player.Character) then -- obstructed by something else continue end end local screenPos = Vector2.new(headPos.X, headPos.Y) local dist = (screenPos - center).Magnitude if dist < Settings.FOV and dist < shortestDist then shortestDist = dist closest = player end end return closest end -- Main aimbot loop RunService.RenderStepped:Connect(function() if not Settings.Enabled then return end local target = GetClosestPlayer() if not target then return end local head = target.Character.Head local headPos = head.Position local currentCF = Camera.CFrame local targetCF = CFrame.lookAt(currentCF.Position, headPos) -- Smooth interpolation local newCF = currentCF:Lerp(targetCF, Settings.Smoothness) Camera.CFrame = newCF end) -- Create UI CreateUI() print("LUBV Aimbot loaded with team filtering. It will only target enemies (different team). Use UI to toggle.")