-- [[ 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 ]] getgenv().Config = { HitPart = "Head", FOVRadius = 300, ShowFOV = true } local reps = game:GetService("ReplicatedStorage") local plrs = game:GetService("Players") local runs = game:GetService("RunService") local cs = game:GetService("CollectionService") local lplr = plrs.LocalPlayer local cam = workspace.CurrentCamera local U = require(reps.Modules.Utility) local EL = require(reps.Modules.EnumLibrary) local GU = require(reps.Modules.GameplayUtility) local e, gun = pcall(require, lplr.PlayerScripts.Modules.ItemTypes.Gun) if e and gun and gun.IsFullyAiming then gun.IsFullyAiming = function() return true end end local FOV = Drawing.new("Circle") FOV.Color = Color3.fromRGB(255, 255, 255) FOV.Thickness = 1 FOV.Filled = false runs.RenderStepped:Connect(function() FOV.Position = cam.ViewportSize / 2 FOV.Radius = getgenv().Config.FOVRadius FOV.Visible = getgenv().Config.ShowFOV end) local function target() local center = cam.ViewportSize / 2 local bestPart, bestDist = nil, getgenv().Config.FOVRadius for _, entity in cs:GetTagged("Entity") do if entity == lplr.Character then continue end local part = entity:FindFirstChild(getgenv().Config.HitPart, true) if not part or not part:IsA("BasePart") then continue end local sp, onScreen = cam:WorldToViewportPoint(part.Position) if not onScreen then continue end local d = (Vector2.new(sp.X, sp.Y) - center).Magnitude if d < bestDist then bestDist, bestPart = d, part end end return bestPart end local function CFD(origin, part) local cf = part.CFrame local d = {} d[utf8.char(1)] = { [utf8.char(0)] = U:EncodeCFrame(CFrame.lookAt(origin, part.Position)), [utf8.char(1)] = U:EncodeCFrame(cf), [utf8.char(2)] = part, [utf8.char(3)] = U:EncodeCFrame(cf:ToObjectSpace(CFrame.new(part.Position))), } return d end local visual = GU.GetEntitiesFromRaycast GU.GetEntitiesFromRaycast = function(self, envID, params, origin, dir, maxDist, ...) local t = target() if t then local dist = (t.Position - origin).Magnitude dir = (t.Position - origin).Unit if dist > maxDist then maxDist = dist + 5 end end return visual(self, envID, params, origin, dir, maxDist, ...) end local UseItem = reps.Remotes.Replication.Fighter.UseItem local hook; hook = hookfunction(UseItem.FireServer, newcclosure(function(self, objID, enumVal, camdata, extra) if enumVal == EL:ToEnum("StartShooting") then local root = lplr.Character and lplr.Character:FindFirstChild("HumanoidRootPart") local t = target() if root and t then camdata = CFD(root.Position, t) end end return hook(self, objID, enumVal, camdata, extra) end))