-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] local Settings = { Enabled = true, AutoFire = true, AutoFireDelay = 0.07, TargetPart = "Head", HitChance = 100, TeamCheck = false, WallCheck = true, IgnoreShield = true, IgnoreDowned = true, AliveCheck = true, MaxDistance = 2500, Wallbang = false, FOV = { Enabled = true, Visible = true, Radius = 180, Color = Color3.fromRGB(0, 255, 160), Thickness = 1.5, Filled = false, Transparency = 0.7 }, ESP = { Enabled = true, Boxes = true, Tracers = false, Names = true, Health = true, Color = Color3.fromRGB(0, 230, 255) }, FlickReturn = true, ToggleKey = Enum.KeyCode.Insert } local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local VirtualInputManager = game:GetService("VirtualInputManager") local CollectionService = game:GetService("CollectionService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local CoreGui = game:GetService("CoreGui") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer local Mouse = LocalPlayer:GetMouse() local Camera = Workspace.CurrentCamera local CurrentTarget = nil local FOVCircle = nil local lastAutoFire = 0 if Drawing and Drawing.new then FOVCircle = Drawing.new("Circle") FOVCircle.Visible = Settings.FOV.Visible FOVCircle.Radius = Settings.FOV.Radius FOVCircle.Color = Settings.FOV.Color FOVCircle.Thickness = Settings.FOV.Thickness FOVCircle.Filled = Settings.FOV.Filled FOVCircle.Transparency = Settings.FOV.Transparency FOVCircle.NumSides = 64 end local function HasShield(player, character) if not character then return false end if character:FindFirstChildWhichIsA("ForceField", true) then return true end for _, desc in pairs(character:GetDescendants()) do local name = desc.Name:lower() local className = desc.ClassName:lower() if className == "forcefield" then return true end if name:find("forcefield") or name:find("shield") or name:find("protection") or name:find("щит") or name:find("godmode") or name:find("immune") then return true end if desc:IsA("SelectionBox") and (name:find("shield") or name:find("forcefield")) then return true end end if player and player:FindFirstChild("Backpack") then for _, tool in pairs(player.Backpack:GetChildren()) do local name = tool.Name:lower() if (name:find("shield") or name:find("forcefield")) and tool.Parent == character then return true end end end local checkAttributes = {"Shield", "HasShield", "ForceField", "Invincible", "Protected", "SpawnProtection", "Immune", "GodMode"} for _, attr in ipairs(checkAttributes) do if character:GetAttribute(attr) == true or (player and player:GetAttribute(attr) == true) then return true end end for _, tag in ipairs({"Shield", "ForceField", "Protected", "Immune", "SpawnProtection"}) do if CollectionService:HasTag(character, tag) or (player and CollectionService:HasTag(player, tag)) then return true end end local root = character:FindFirstChild("HumanoidRootPart") if root then for _, obj in pairs(Workspace:GetChildren()) do local objName = obj.Name:lower() if (objName:find("forcefield") or objName:find("shield") or objName:find("bubble") or objName:find("dome")) then local pos = nil if obj:IsA("BasePart") then pos = obj.Position elseif obj:IsA("Model") then pos = obj.PrimaryPart and obj.PrimaryPart.Position or obj:GetPivot().Position end if pos and (pos - root.Position).Magnitude <= 15 then return true end end end end if Settings.IgnoreDowned then if character:GetAttribute("Downed") or character:GetAttribute("IsRagdolled") or character:GetAttribute("Carried") then return true end end return false end local function IsVisible(headPart, character) if Settings.Wallbang then return true end if not Settings.WallCheck then return true end local origin = Camera.CFrame.Position local targetPos = headPart.Position local direction = targetPos - origin local raycastParams = RaycastParams.new() raycastParams.FilterType = Enum.RaycastFilterType.Exclude local ignoreList = {LocalPlayer.Character, character, Camera} if Workspace:FindFirstChild("RaycastIgnore") then table.insert(ignoreList, Workspace.RaycastIgnore) end raycastParams.FilterDescendantsInstances = ignoreList local result = Workspace:Raycast(origin, direction, raycastParams) if not result then return true end if result.Instance and result.Instance:IsDescendantOf(character) then return true end return false end local function GetClosestTarget() local closestTarget = nil local shortestDistance = Settings.FOV.Radius local mousePos = Vector2.new(Mouse.X, Mouse.Y) for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer then if Settings.TeamCheck and player.Team == LocalPlayer.Team then continue end local char = player.Character if char and char:FindFirstChild("Humanoid") and char.Humanoid.Health > 0 then if Settings.IgnoreShield and HasShield(player, char) then continue end local targetPart = char:FindFirstChild("Head") if targetPart then local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") local distFromChar = myRoot and (targetPart.Position - myRoot.Position).Magnitude or 0 if distFromChar <= Settings.MaxDistance then local screenPos, onScreen = Camera:WorldToViewportPoint(targetPart.Position) if onScreen then local screenVec = Vector2.new(screenPos.X, screenPos.Y) local distanceToMouse = (screenVec - mousePos).Magnitude if distanceToMouse < shortestDistance then if IsVisible(targetPart, char) then shortestDistance = distanceToMouse closestTarget = { Player = player, Character = char, Part = targetPart, ScreenPos = screenPos } end end end end end end end end return closestTarget end local function CalculationHitChance() return math.random(1, 100) <= Settings.HitChance end local rawmetatable = getrawmetatable or debug.getmetatable local setreadonly = setreadonly or make_writeable or function(...) end if rawmetatable and setreadonly then local gmt = rawmetatable(game) local oldNamecall = gmt.__namecall local oldIndex = gmt.__index setreadonly(gmt, false) gmt.__namecall = newcclosure(function(self, ...) local method = getnamecallmethod() local args = {...} if Settings.Enabled and CalculationHitChance() and CurrentTarget and CurrentTarget.Part then local targetPos = CurrentTarget.Part.Position local origin = Camera.CFrame.Position local directionVector = (targetPos - origin).Unit if method == "Raycast" and (Settings.Method == "Raycast Hook" or Settings.Method == "All") then if self == Workspace then if Settings.Wallbang then local fakeResult = { Instance = CurrentTarget.Part, Position = targetPos, Normal = Vector3.new(0, 1, 0), Material = Enum.Material.SmoothPlastic, Distance = (origin - targetPos).Magnitude } return fakeResult else local rayLength = args[2] and args[2].Magnitude or 1000 args[2] = directionVector * rayLength return oldNamecall(self, unpack(args)) end end end if method == "FireServer" or method == "InvokeServer" then local remoteName = tostring(self) if remoteName == "FireBullet" or remoteName == "FireProjectile" or remoteName == "Hit" or remoteName == "Aim" then for i, arg in ipairs(args) do if typeof(arg) == "Vector3" then args[i] = targetPos elseif typeof(arg) == "CFrame" then args[i] = CFrame.new(origin, targetPos) end end return oldNamecall(self, unpack(args)) end end end return oldNamecall(self, ...) end) gmt.__index = newcclosure(function(self, key) if Settings.Enabled and CurrentTarget and CurrentTarget.Part and not checkcaller() then if self == Mouse then if key == "Hit" or key == "hit" then return CFrame.new(CurrentTarget.Part.Position) elseif key == "Target" or key == "target" then return CurrentTarget.Part end end end return oldIndex(self, key) end) setreadonly(gmt, true) end local isFlicking = false local function PerformCameraFlick() if not Settings.Enabled or not Settings.FlickReturn or not CurrentTarget or not CurrentTarget.Part then return end if isFlicking then return end isFlicking = true local oldCFrame = Camera.CFrame local targetPos = CurrentTarget.Part.Position local targetCFrame = CFrame.new(oldCFrame.Position, targetPos) Camera.CFrame = targetCFrame RunService.RenderStepped:Once(function() Camera.CFrame = oldCFrame isFlicking = false end) end UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.UserInputType == Enum.UserInputType.MouseButton1 then PerformCameraFlick() end end) local function TriggerAutoFire() if not Settings.Enabled or not Settings.AutoFire or not CurrentTarget or not CurrentTarget.Part then return end if tick() - lastAutoFire < Settings.AutoFireDelay then return end lastAutoFire = tick() local origin = Camera.CFrame.Position local headPos = CurrentTarget.Part.Position local directionVector = (headPos - origin).Unit if isrbxactive and isrbxactive() == false then return end if mouse1press and mouse1release then pcall(function() mouse1press() task.defer(mouse1release) end) elseif mouse1click then pcall(mouse1click) else pcall(function() VirtualInputManager:SendMouseButtonEvent(Mouse.X, Mouse.Y, 0, true, game, 0) task.defer(function() VirtualInputManager:SendMouseButtonEvent(Mouse.X, Mouse.Y, 0, false, game, 0) end) end) end pcall(function() local remotes = ReplicatedStorage:FindFirstChild("Remotes") if remotes and remotes:FindFirstChild("Weapons") and remotes.Weapons:FindFirstChild("Guns") then local guns = remotes.Weapons.Guns if guns:FindFirstChild("FireBullet") then guns.FireBullet:FireServer(headPos, directionVector) end if guns:FindFirstChild("Hit") then guns.Hit:FireServer(CurrentTarget.Part, headPos) end end end) if Settings.FlickReturn then PerformCameraFlick() end end RunService.RenderStepped:Connect(function() CurrentTarget = GetClosestTarget() if FOVCircle then FOVCircle.Position = Vector2.new(Mouse.X, Mouse.Y + 36) FOVCircle.Radius = Settings.FOV.Radius FOVCircle.Visible = Settings.FOV.Enabled and Settings.FOV.Visible FOVCircle.Color = Settings.FOV.Color end if CurrentTarget then TriggerAutoFire() end end) local ESPFolder = Instance.new("Folder") ESPFolder.Name = "BloodZone_ESP" ESPFolder.Parent = CoreGui local function CreateESP(player) if player == LocalPlayer then return end local function ApplyESP(character) if not character then return end local root = character:WaitForChild("HumanoidRootPart", 5) local head = character:WaitForChild("Head", 5) local hum = character:WaitForChild("Humanoid", 5) if not root or not head or not hum then return end local highlight = Instance.new("Highlight") highlight.Name = player.Name .. "_Highlight" highlight.Adornee = character highlight.FillColor = Settings.ESP.Color highlight.FillTransparency = 0.5 highlight.OutlineColor = Color3.new(1, 1, 1) highlight.OutlineTransparency = 0 highlight.Enabled = Settings.ESP.Enabled highlight.Parent = ESPFolder local bb = Instance.new("BillboardGui") bb.Name = player.Name .. "_BB" bb.Adornee = head bb.Size = UDim2.new(0, 150, 0, 40) bb.StudsOffset = Vector3.new(0, 2.5, 0) bb.AlwaysOnTop = true bb.Parent = ESPFolder local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.TextColor3 = Color3.new(1, 1, 1) label.TextStrokeTransparency = 0 label.TextSize = 13 label.Font = Enum.Font.SourceSansBold label.Text = player.Name .. " | HP: " .. math.floor(hum.Health) label.Parent = bb hum.HealthChanged:Connect(function(newHealth) label.Text = player.Name .. " | HP: " .. math.floor(newHealth) end) character.Destroying:Connect(function() highlight:Destroy() bb:Destroy() end) end if player.Character then ApplyESP(player.Character) end player.CharacterAdded:Connect(ApplyESP) end for _, p in pairs(Players:GetPlayers()) do CreateESP(p) end Players.PlayerAdded:Connect(CreateESP) local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "BloodZone_SilentAim_UI" pcall(function() ScreenGui.Parent = CoreGui end) if not ScreenGui.Parent then ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 320, 0, 420) MainFrame.Position = UDim2.new(0.5, -160, 0.4, -210) MainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 25) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 8) UICorner.Parent = MainFrame local TitleBar = Instance.new("Frame") TitleBar.Size = UDim2.new(1, 0, 0, 40) TitleBar.BackgroundColor3 = Color3.fromRGB(0, 160, 120) TitleBar.BorderSizePixel = 0 TitleBar.Parent = MainFrame local TitleCorner = Instance.new("UICorner") TitleCorner.CornerRadius = UDim.new(0, 8) TitleCorner.Parent = TitleBar local TitleLabel = Instance.new("TextLabel") TitleLabel.Size = UDim2.new(1, -10, 1, 0) TitleLabel.Position = UDim2.new(0, 10, 0, 0) TitleLabel.BackgroundTransparency = 1 TitleLabel.Text = "BLOOD ZONE — HEAD SILENT & AUTOFIRE" TitleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) TitleLabel.Font = Enum.Font.SourceSansBold TitleLabel.TextSize = 14 TitleLabel.TextXAlignment = Enum.TextXAlignment.Left TitleLabel.Parent = TitleBar local Container = Instance.new("UIListLayout") Container.Parent = MainFrame Container.SortOrder = Enum.SortOrder.LayoutOrder Container.Padding = UDim.new(0, 8) local Padding = Instance.new("UIPadding") Padding.PaddingTop = UDim.new(0, 48) Padding.PaddingLeft = UDim.new(0, 12) Padding.PaddingRight = UDim.new(0, 12) Padding.Parent = MainFrame local function CreateToggle(text, defaultValue, callback) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, 32) btn.BackgroundColor3 = defaultValue and Color3.fromRGB(0, 160, 100) or Color3.fromRGB(45, 45, 55) btn.Text = text .. ": " .. (defaultValue and "ВКЛ" or "ВЫКЛ") btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.Font = Enum.Font.SourceSansSemibold btn.TextSize = 14 btn.Parent = MainFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 5) corner.Parent = btn local state = defaultValue btn.MouseButton1Click:Connect(function() state = not state btn.BackgroundColor3 = state and Color3.fromRGB(0, 160, 100) or Color3.fromRGB(45, 45, 55) btn.Text = text .. ": " .. (state and "ВКЛ" or "ВЫКЛ") callback(state) end) return btn end local function CreateInfoBox(text) local box = Instance.new("TextLabel") box.Size = UDim2.new(1, 0, 0, 32) box.BackgroundColor3 = Color3.fromRGB(35, 35, 45) box.Text = text box.TextColor3 = Color3.fromRGB(0, 255, 180) box.Font = Enum.Font.SourceSansBold box.TextSize = 13 box.Parent = MainFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 5) corner.Parent = box return box end CreateToggle("Silent Aim (Head)", Settings.Enabled, function(val) Settings.Enabled = val end) CreateToggle("Auto Fire (Именно в голову)", Settings.AutoFire, function(val) Settings.AutoFire = val end) CreateToggle("Wall Checker (Не бьет за стеной)", Settings.WallCheck, function(val) Settings.WallCheck = val if val then Settings.Wallbang = false end end) CreateToggle("Shield Checker (Не бьет с щитом)", Settings.IgnoreShield, function(val) Settings.IgnoreShield = val end) CreateToggle("Flick & Return (Поворот/возврат)", Settings.FlickReturn, function(val) Settings.FlickReturn = val end) CreateToggle("FOV Circle (Круг наводки)", Settings.FOV.Visible, function(val) Settings.FOV.Visible = val Settings.FOV.Enabled = val end) CreateToggle("ESP Chams & Names", Settings.ESP.Enabled, function(val) Settings.ESP.Enabled = val for _, child in pairs(ESPFolder:GetChildren()) do if child:IsA("Highlight") then child.Enabled = val end if child:IsA("BillboardGui") then child.Enabled = val end end end) CreateInfoBox("Цель: Head (ОНЛИ ГОЛОВА)") UserInputService.InputBegan:Connect(function(input, gpe) if not gpe and input.KeyCode == Settings.ToggleKey then MainFrame.Visible = not MainFrame.Visible end end) print("[BLOOD ZONE] Clean Silent Aim & AutoFire loaded!")