local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local CoreGui = game:GetService("CoreGui") local RunService = game:GetService("RunService") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer local FOV_RADIUS = 200 local SHOW_FOV = true local NO_SPREAD_ENABLED = true if CoreGui:FindFirstChild("Bymax_FOV_Base") then CoreGui.Bymax_FOV_Base:Destroy() end local ScreenGui = Instance.new("ScreenGui", CoreGui) ScreenGui.Name = "Bymax_FOV_Base" ScreenGui.IgnoreGuiInset = true local FOVFrame = Instance.new("Frame", ScreenGui) FOVFrame.Name = "FOV_Circle" FOVFrame.BackgroundTransparency = 1 FOVFrame.BorderSizePixel = 0 FOVFrame.Visible = SHOW_FOV local UICorner = Instance.new("UICorner", FOVFrame) UICorner.CornerRadius = UDim.new(1, 0) local UIStroke = Instance.new("UIStroke", FOVFrame) UIStroke.Color = Color3.fromRGB(255, 255, 255) UIStroke.Thickness = 1 UIStroke.Transparency = 0.5 local function getTarget() local target, closestDist = nil, FOV_RADIUS for _, plr in pairs(Players:GetPlayers()) do if plr ~= LocalPlayer and plr.Character then local head = plr.Character:FindFirstChild("Head") local hum = plr.Character:FindFirstChildOfClass("Humanoid") if head and hum and hum.Health > 0 then local pos, onScreen = Camera:WorldToViewportPoint(head.Position) if onScreen then local screenCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) local dist = (Vector2.new(pos.X, pos.Y) - screenCenter).Magnitude if dist < closestDist then closestDist = dist target = {head, hum} end end end end end return target end RunService.RenderStepped:Connect(function() local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) FOVFrame.Position = UDim2.new(0, center.X - FOV_RADIUS, 0, center.Y - FOV_RADIUS) FOVFrame.Size = UDim2.new(0, FOV_RADIUS * 2, 0, FOV_RADIUS * 2) end) local castRays = require(ReplicatedStorage.Blaster.Utility.castRays) local old old = hookfunction(castRays, function(player, origin, directions, radius) if player == LocalPlayer and NO_SPREAD_ENABLED and type(directions) == "table" then for i, _ in pairs(directions) do directions[i] = Vector3.new(0, 0, -1) end end local result = old(player, origin, directions, radius) if type(result) ~= "table" then return result end local data = getTarget() if player == LocalPlayer and data and result[1] then local head = data[1] local humanoid = data[2] result[1].position = head.Position result[1].instance = head result[1].taggedHumanoid = humanoid end return result end)