--[[ ══════════════════════════════════════ V31: MAIN VERSION (FINAL BUILD) ══════════════════════════════════════ [Numpad 1] ESP (Box + HP + Dist) [Numpad 2] Aim Assist [Numpad 3] Night Vision [Numpad 4] No Recoil (Legit/Rage) [Numpad 5] Global Alert (Anti-Sniper) [Numpad 9] PANIC BUTTON (UNINJECT) ══════════════════════════════════════ ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local Lighting = game:GetService("Lighting") local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera local Mouse = LocalPlayer:GetMouse() local connections = {} ------------------------------------------------------------------------- -- 1. НАСТРОЙКИ (MAIN CONFIG) ------------------------------------------------------------------------- local config = { -- УПРАВЛЕНИЕ (ПО ПОРЯДКУ) KeyMenu = Enum.KeyCode.RightControl, KeyESP = Enum.KeyCode.KeypadOne, -- 1: Визуал KeyAim = Enum.KeyCode.KeypadTwo, -- 2: Аимбот KeyNV = Enum.KeyCode.KeypadThree, -- 3: Свет KeyNoRecoil = Enum.KeyCode.KeypadFour, -- 4: Отдача KeyAlert = Enum.KeyCode.KeypadFive, -- 5: Опасность KeyPanic = Enum.KeyCode.KeypadNine, -- 9: УДАЛЕНИЕ -- АИМ AimSmoothness = 0.1, -- Плавность (0.1 = Легит) AimRecoilComp = 1, -- Сила No Recoil (1 = Намертво) AimFOV = 180, -- Радиус работы -- ОПТИМИЗАЦИЯ (NO LAG) MaxDistance = 2000, -- Дальность ESP RaycastBudget = 15, -- Лимит лучей UpdateRate = 0.03, -- ~30 FPS для ESP (Не грузит ЦП) -- ALERT (БЕЗЛИМИТНАЯ ДИСТАНЦИЯ) AlertDistance = 20000, -- Работает на всю карту AlertSensitivity = 0.9, -- Точность детекта взгляда -- ЦВЕТА ColorVisible = Color3.fromRGB(255, 255, 255), -- Белый (Вижу) ColorHidden = Color3.fromRGB(255, 0, 0), -- Красный (Стена) TranspVisible = 0.5, TranspHidden = 0.2, ShowHealth = true, ShowDistance = true, -- Показывать метры ShowName = false -- Ники выключены (Clean) } local state = { ESP = false, Aim = false, NightVision = false, NoRecoilMode = false, HighAlert = true, -- Включено по умолчанию для безопасности MenuOpen = true, IsRunning = true } local aimTarget = nil local isRightMouseDown = false -- ГЛОБАЛЬНЫЕ ПАРАМЕТРЫ (ЭКОНОМИЯ ОЗУ) local espRayParams = RaycastParams.new() espRayParams.FilterType = Enum.RaycastFilterType.Exclude espRayParams.IgnoreWater = true local alertRayParams = RaycastParams.new() alertRayParams.FilterType = Enum.RaycastFilterType.Exclude alertRayParams.IgnoreWater = true ------------------------------------------------------------------------- -- 2. GUI ------------------------------------------------------------------------- local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "MainV31" ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") ScreenGui.ResetOnSpawn = false local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 240, 0, 290) MainFrame.Position = UDim2.new(0.5, -120, 0.5, -145) MainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) MainFrame.Parent = ScreenGui Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 10) local Title = Instance.new("TextLabel") Title.Text = "MAIN V31 (CLEAN)" Title.Size = UDim2.new(1, 0, 0, 35) Title.BackgroundTransparency = 1 Title.TextColor3 = Color3.new(1,1,1) Title.Font = Enum.Font.GothamBold Title.TextSize = 16 Title.Parent = MainFrame -- ПАНЕЛЬ ТРЕВОГИ local AlertFrame = Instance.new("Frame") AlertFrame.Size = UDim2.new(0, 400, 0, 50) AlertFrame.Position = UDim2.new(0.5, -200, 0.15, 0) AlertFrame.BackgroundColor3 = Color3.fromRGB(255, 0, 0) AlertFrame.BackgroundTransparency = 0.3 AlertFrame.Visible = false AlertFrame.Parent = ScreenGui Instance.new("UICorner", AlertFrame).CornerRadius = UDim.new(0, 8) local AlertText = Instance.new("TextLabel") AlertText.Size = UDim2.new(1, 0, 1, 0) AlertText.BackgroundTransparency = 1 AlertText.Text = "WARNING!" AlertText.TextColor3 = Color3.new(1,1,1) AlertText.Font = Enum.Font.GothamBlack AlertText.TextSize = 24 AlertText.Parent = AlertFrame local function createStatus(text, key, yPos) local l = Instance.new("TextLabel") l.Text = text .. " ["..key.."]: OFF" l.Size = UDim2.new(1, -20, 0, 30) l.Position = UDim2.new(0, 10, 0, yPos) l.BackgroundColor3 = Color3.fromRGB(40, 40, 40) l.TextColor3 = Color3.fromRGB(255, 100, 100) l.Font = Enum.Font.GothamSemibold l.TextSize = 14 l.Parent = MainFrame Instance.new("UICorner", l).CornerRadius = UDim.new(0, 6) return l end local L_ESP = createStatus("Clean ESP", "Num1", 45) local L_Aim = createStatus("Aim Assist", "Num2", 85) local L_NV = createStatus("Night Vision", "Num3", 125) local L_Recoil = createStatus("No Recoil", "Num4", 165) local L_Alert = createStatus("Global Alert", "Num5", 205) local L_Panic = createStatus("PANIC CLOSE", "Num9", 245) L_Panic.TextColor3 = Color3.fromRGB(255, 50, 50) local Hint = Instance.new("TextLabel") Hint.Text = "Menu: Right Ctrl" Hint.Size = UDim2.new(1, 0, 0, 20) Hint.Position = UDim2.new(0, 0, 1, -25) Hint.BackgroundTransparency = 1 Hint.TextColor3 = Color3.fromRGB(100, 100, 100) Hint.Parent = MainFrame local function updateGUI() if not state.IsRunning then return end local function setC(lbl, txt, on) lbl.Text = txt .. (on and ": ON" or ": OFF") lbl.TextColor3 = on and Color3.new(0,1,0) or Color3.new(1,0,0) end setC(L_ESP, "Clean ESP [Num1]", state.ESP) setC(L_Aim, "Aim Assist [Num2]", state.Aim) setC(L_NV, "Night Vision [Num3]", state.NightVision) setC(L_Recoil, "No Recoil [Num4]", state.NoRecoilMode) setC(L_Alert, "Global Alert [Num5]", state.HighAlert) end ------------------------------------------------------------------------- -- 3. PANIC (ПОЛНОЕ УДАЛЕНИЕ) ------------------------------------------------------------------------- local function FullShutdown() state.IsRunning = false state.ESP = false; state.Aim = false; state.HighAlert = false if ScreenGui then ScreenGui:Destroy() end Lighting.Ambient = Color3.new(0,0,0) for _, p in pairs(Players:GetPlayers()) do if p.Character then for _, obj in pairs(p.Character:GetDescendants()) do if obj.Name == "BoxV31" then obj:Destroy() end end if p.Character:FindFirstChild("Head") and p.Character.Head:FindFirstChild("ESPHPGui") then p.Character.Head.ESPHPGui:Destroy() end end end for _, conn in pairs(connections) do conn:Disconnect() end end ------------------------------------------------------------------------- -- 4. УПРАВЛЕНИЕ ------------------------------------------------------------------------- local inputConn = UserInputService.InputBegan:Connect(function(input, gp) if not gp and state.IsRunning then if input.KeyCode == config.KeyMenu then state.MenuOpen = not state.MenuOpen MainFrame.Visible = state.MenuOpen elseif input.KeyCode == config.KeyESP then state.ESP = not state.ESP if not state.ESP then for _, p in pairs(Players:GetPlayers()) do if p.Character then for _, obj in pairs(p.Character:GetDescendants()) do if obj.Name == "BoxV31" then obj:Destroy() end end if p.Character:FindFirstChild("Head") then local g = p.Character.Head:FindFirstChild("ESPHPGui") if g then g:Destroy() end end end end end elseif input.KeyCode == config.KeyAim then state.Aim = not state.Aim elseif input.KeyCode == config.KeyNV then state.NightVision = not state.NightVision Lighting.Ambient = state.NightVision and Color3.new(1,1,1) or Color3.new(0,0,0) elseif input.KeyCode == config.KeyNoRecoil then state.NoRecoilMode = not state.NoRecoilMode elseif input.KeyCode == config.KeyAlert then state.HighAlert = not state.HighAlert if not state.HighAlert then AlertFrame.Visible = false end elseif input.KeyCode == config.KeyPanic then FullShutdown() return elseif input.UserInputType == Enum.UserInputType.MouseButton2 then isRightMouseDown = true end updateGUI() end end) table.insert(connections, inputConn) local inputEndConn = UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton2 then isRightMouseDown = false aimTarget = nil end end) table.insert(connections, inputEndConn) ------------------------------------------------------------------------- -- 5. ЛОГИКА GLOBAL ALERT ------------------------------------------------------------------------- task.spawn(function() while state.IsRunning do if not state.HighAlert then task.wait(0.5) else local dangerousPlayer = nil local myHead = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Head") if myHead then for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character then local char = player.Character local head = char:FindFirstChild("Head") if head and char:FindFirstChild("Humanoid") and char.Humanoid.Health > 0 then local directionToMe = (myHead.Position - head.Position).Unit local enemyLook = head.CFrame.LookVector local dot = directionToMe:Dot(enemyLook) if dot > config.AlertSensitivity then local dist = (head.Position - myHead.Position).Magnitude alertRayParams.FilterDescendantsInstances = {char} local hit = Workspace:Raycast(head.Position, directionToMe * dist, alertRayParams) if hit and hit.Instance:IsDescendantOf(LocalPlayer.Character) then dangerousPlayer = player.Name break end end end end end end if dangerousPlayer then AlertText.Text = "⚠️ " .. dangerousPlayer .. " IS AIMING! ⚠️" AlertFrame.Visible = true AlertFrame.BackgroundTransparency = 0.2 task.wait(0.1) AlertFrame.BackgroundTransparency = 0.5 else AlertFrame.Visible = false end task.wait(0.2) end end end) ------------------------------------------------------------------------- -- 6. ESP ЛОГИКА (OPTIMIZED) ------------------------------------------------------------------------- local function checkSimpleVisibility(part, char) local dir = part.Position - Camera.CFrame.Position espRayParams.FilterDescendantsInstances = {LocalPlayer.Character} local result = Workspace:Raycast(Camera.CFrame.Position, dir, espRayParams) if result and result.Instance:IsDescendantOf(char) then return true end return false end local function createBox(part) local b = part:FindFirstChild("BoxV31") if not b then b = Instance.new("BoxHandleAdornment") b.Name = "BoxV31" b.Adornee = part b.Size = part.Size + Vector3.new(0.1, 0.1, 0.1) b.AlwaysOnTop = true b.ZIndex = 5 b.Transparency = config.TranspHidden b.Color3 = config.ColorHidden b.Parent = part end return b end local function updateInfo(player, char, humanoid, dist) if not config.ShowHealth then return end local head = char:FindFirstChild("Head") if not head then return end local gui = head:FindFirstChild("ESPHPGui") if not gui then gui = Instance.new("BillboardGui") gui.Name = "ESPHPGui" gui.Adornee = head gui.Size = UDim2.new(0, 160, 0, 50) gui.StudsOffset = Vector3.new(0, 3.5, 0) gui.AlwaysOnTop = true gui.Parent = head local hpLabel = Instance.new("TextLabel") hpLabel.Name = "HPLabel" hpLabel.Size = UDim2.new(1, 0, 1, 0) hpLabel.BackgroundTransparency = 1 hpLabel.TextStrokeTransparency = 0.6 hpLabel.Font = Enum.Font.GothamBold hpLabel.TextSize = 12 hpLabel.Parent = gui end local hp = math.floor(humanoid.Health) local info = tostring(hp) .. " HP" if config.ShowDistance then info = info .. " [" .. math.floor(dist) .. "m]" end gui.HPLabel.Text = info if hp > 50 then gui.HPLabel.TextColor3 = Color3.fromRGB(0, 255, 100) elseif hp > 25 then gui.HPLabel.TextColor3 = Color3.fromRGB(255, 170, 0) else gui.HPLabel.TextColor3 = Color3.fromRGB(255, 0, 0) end end task.spawn(function() while state.IsRunning do if not state.ESP then task.wait(0.5) else local raycastsDone = 0 for _, player in pairs(Players:GetPlayers()) do if not state.IsRunning then break end if player ~= LocalPlayer and player.Character then local char = player.Character local root = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChild("Humanoid") if root and hum and hum.Health > 0 then local dist = (root.Position - Camera.CFrame.Position).Magnitude if dist < config.MaxDistance then updateInfo(player, char, hum, dist) local partsToCheck = { {p = char:FindFirstChild("Head"), vital=true}, {p = char:FindFirstChild("Left Arm") or char:FindFirstChild("LeftUpperArm"), vital=true}, {p = char:FindFirstChild("Right Arm") or char:FindFirstChild("RightUpperArm"), vital=true}, {p = char:FindFirstChild("LeftLowerArm"), vital=true}, {p = char:FindFirstChild("RightLowerArm"), vital=true}, {p = char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso"), vital=true, isTorso=true}, {p = char:FindFirstChild("LowerTorso"), vital=false}, {p = char:FindFirstChild("Left Leg") or char:FindFirstChild("LeftUpperLeg"), vital=false}, {p = char:FindFirstChild("Right Leg") or char:FindFirstChild("RightUpperLeg"), vital=false}, {p = char:FindFirstChild("LeftLowerLeg"), vital=false}, {p = char:FindFirstChild("RightLowerLeg"), vital=false} } local torsoVisible = false for _, item in pairs(partsToCheck) do local part = item.p if part then local box = createBox(part) local isVisible = false if item.vital then if raycastsDone >= config.RaycastBudget then task.wait(); raycastsDone = 0 end isVisible = checkSimpleVisibility(part, char) raycastsDone = raycastsDone + 1 if item.isTorso then torsoVisible = isVisible end else isVisible = torsoVisible end if isVisible then box.Color3 = config.ColorVisible box.Transparency = config.TranspVisible else box.Color3 = config.ColorHidden box.Transparency = config.TranspHidden end end end end end end end task.wait(config.UpdateRate) end end end) ------------------------------------------------------------------------- -- 7. AIM ASSIST ------------------------------------------------------------------------- local aimConn = RunService.RenderStepped:Connect(function() if state.Aim and isRightMouseDown and state.IsRunning then if not aimTarget then local min, cl = config.AimFOV, nil for _, p in pairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character and p.Character:FindFirstChild("Head") and p.Character.Humanoid.Health > 0 then local head = p.Character.Head espRayParams.FilterDescendantsInstances = {LocalPlayer.Character} local dir = head.Position - Camera.CFrame.Position local res = Workspace:Raycast(Camera.CFrame.Position, dir, espRayParams) if res and res.Instance:IsDescendantOf(p.Character) then local pos, onScreen = Camera:WorldToScreenPoint(head.Position) if onScreen then local dst = (Vector2.new(Mouse.X, Mouse.Y) - Vector2.new(pos.X, pos.Y)).Magnitude if dst < min then min = dst; cl = head end end end end end aimTarget = cl end if aimTarget and aimTarget.Parent and aimTarget.Parent.Humanoid.Health > 0 then local currentSmoothness = state.NoRecoilMode and config.AimRecoilComp or config.AimSmoothness Camera.CFrame = Camera.CFrame:Lerp(CFrame.new(Camera.CFrame.Position, aimTarget.Position), currentSmoothness) else aimTarget = nil end end end) table.insert(connections, aimConn) updateGUI()