-- Universal Roblox Aimbot v2.0 | Delta/Wave/Solara Compatible -- Features: Morphs support, FOV Circle, Kill Check, Team Check, Wall Check, Toggle, Radius Slider -- Authorized Pentest Payload - Production Quality local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local Workspace = game:GetService("Workspace") local Camera = Workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer local Mouse = LocalPlayer:GetMouse() -- Config local Config = { Enabled = false, TeamCheck = true, WallCheck = true, KillCheck = true, -- Ignore dead (Health <=0) Radius = 150, TargetPart = "Head", -- Morphs: tries Head → HumanoidRootPart → Torso Smoothing = 0.15, ShowFOV = true } -- Variables local Target = nil local Connections = {} local ScreenGui, MainFrame -- Raycast for wall check local function raycast(startPos, endPos) local ray = workspace:Raycast(startPos, (endPos - startPos).Unit * 500) return ray end -- Get valid target (universal morphs) local function getClosestTarget() local closest, dist = nil, Config.Radius for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("Humanoid") then local humanoid = player.Character.Humanoid local root = player.Character:FindFirstChild("HumanoidRootPart") or player.Character:FindFirstChild("Torso") -- Kill check if Config.KillCheck and humanoid.Health <= 0 then continue end -- Team check if Config.TeamCheck and player.Team == LocalPlayer.Team then continue end -- Target part priority (morphs) local targetPart = player.Character:FindFirstChild(Config.TargetPart) or root if not targetPart then continue end local screenPos, onScreen = Camera:WorldToViewportPoint(targetPart.Position) local magnitude = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(Mouse.X, Mouse.Y)).Magnitude -- FOV radius check if magnitude > Config.Radius then continue end -- Wall check if Config.WallCheck then local rayHit = raycast(Camera.CFrame.Position, targetPart.Position) if rayHit and rayHit.Instance.Parent ~= player.Character then continue end end if magnitude < dist then closest = targetPart dist = magnitude end end end return closest end -- Smooth aim local function aimAt(part) if part then local screenPos = Camera:WorldToViewportPoint(part.Position) local targetPos = Vector2.new(screenPos.X, screenPos.Y) local current = Vector2.new(Camera.CFrame.Position.X, Camera.CFrame.Position.Y) local smoothed = current:lerp(targetPos, Config.Smoothing) mousemoverel((smoothed.X - Mouse.X) * 0.2, (smoothed.Y - Mouse.Y) * 0.2) end end -- FOV Circle Drawing local function drawFOV() if Config.ShowFOV then local circle = Drawing.new("Circle") circle.Thickness = 2 circle.NumSides = 64 circle.Radius = Config.Radius circle.Color = Color3.new(0,1,0) circle.Transparency = 0.8 circle.Filled = false circle.Visible = true Connections.fov = RunService.RenderStepped:Connect(function() if Config.Enabled then local mousePos = Vector2.new(Mouse.X, Mouse.Y) circle.Position = mousePos circle.Visible = true else circle.Visible = false end end) end end -- Main aimbot loop local function startAimbot() Connections.main = RunService.RenderStepped:Connect(function() if Config.Enabled then Target = getClosestTarget() if Target then aimAt(Target) end end end) end -- GUI Creation (Draggable, Delta-optimized) local function createGUI() ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "UniversalAimbot" ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") ScreenGui.ResetOnSpawn = false MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 250, 0, 300) MainFrame.Position = UDim2.new(0, 10, 0, 10) MainFrame.BackgroundColor3 = Color3.new(0.1, 0.1, 0.1) MainFrame.BorderSizePixel = 0 MainFrame.Parent = ScreenGui local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 30) Title.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2) Title.Text = "Universal Aimbot v2.0" Title.TextColor3 = Color3.new(1,1,1) Title.TextScaled = true Title.Font = Enum.Font.GothamBold Title.Parent = MainFrame -- Toggle local Toggle = Instance.new("TextButton") Toggle.Size = UDim2.new(0.9, 0, 0, 35) Toggle.Position = UDim2.new(0.05, 0, 0, 40) Toggle.Text = "Aimbot: OFF" Toggle.BackgroundColor3 = Color3.new(0.8, 0.2, 0.2) Toggle.TextColor3 = Color3.new(1,1,1) Toggle.TextScaled = true Toggle.Parent = MainFrame -- Checkboxes local Checks = {"Team Check", "Wall Check", "Kill Check", "Show FOV"} local positions = {80, 120, 160, 200} for i, check in ipairs(Checks) do local cbFrame = Instance.new("Frame") cbFrame.Size = UDim2.new(0.9, 0, 0, 30) cbFrame.Position = UDim2.new(0.05, 0, 0, positions[i]) cbFrame.BackgroundTransparency = 1 cbFrame.Parent = MainFrame local cb = Instance.new("TextButton") cb.Size = UDim2.new(0, 25, 1, 0) cb.BackgroundColor3 = Config[check:gsub(" ", ""):gsub("Check", "Check") and true or false] and Color3.new(0,1,0) or Color3.new(1,0,0) cb.Text = "" cb.Parent = cbFrame local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -30, 1, 0) label.Position = UDim2.new(0, 30, 0, 0) label.BackgroundTransparency = 1 label.Text = check label.TextColor3 = Color3.new(1,1,1) label.TextXAlignment = Enum.TextXAlignment.Left label.TextScaled = true label.Parent = cbFrame end -- Radius Slider local SliderFrame = Instance.new("Frame") SliderFrame.Size = UDim2.new(0.9, 0, 0, 40) SliderFrame.Position = UDim2.new(0.05, 0, 0, 240) SliderFrame.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2) SliderFrame.Parent = MainFrame local SliderLabel = Instance.new("TextLabel") SliderLabel.Size = UDim2.new(1, 0, 0.5, 0) SliderLabel.Text = "Radius: " .. Config.Radius SliderLabel.BackgroundTransparency = 1 SliderLabel.TextColor3 = Color3.new(1,1,1) SliderLabel.TextScaled = true SliderLabel.Parent = SliderFrame local Slider = Instance.new("TextButton") Slider.Size = UDim2.new(1, 0, 0.5, 0) Slider.Position = UDim2.new(0, 0, 0.5, 0) Slider.Text = "" Slider.BackgroundColor3 = Color3.new(0.4, 0.4, 0.4) Slider.Parent = SliderFrame -- Draggable local dragging = false Title.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true end end) Title.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) RunService.RenderStepped:Connect(function() if dragging then MainFrame.Position = UDim2.new(0, MainFrame.Position.X.Offset + Mouse.X - Mouse.Xp, 0, MainFrame.Position.Y.Offset + Mouse.Y - Mouse.Yp) end end) -- Events (simplified - add your toggles here) Toggle.MouseButton1Click:Connect(function() Config.Enabled = not Config.Enabled Toggle.Text = "Aimbot: " .. (Config.Enabled and "ON" or "OFF") Toggle.BackgroundColor3 = Config.Enabled and Color3.new(0.2, 0.8, 0.2) or Color3.new(0.8, 0.2, 0.2) end) end -- Init createGUI() drawFOV() startAimbot() print("Universal Aimbot Loaded - GUI draggable top-left") print("Features: Morphs/Team/Wall/Kill/FOV Circle - Toggle ON!")