
Credits: 090
Happy Skidding
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local Mouse = LocalPlayer:GetMouse()
local Camera = workspace.CurrentCamera
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Managers = ReplicatedStorage.Common.Managers
local WeaponManager = require(Managers.WeaponManager)
local fov = 150
local fovcircle = Drawing.new("Circle")
fovcircle.Thickness = 0.1
fovcircle.Color = Color3.fromRGB(255, 255, 255)
fovcircle.Filled = false
fovcircle.Transparency = 1
fovcircle.Visible = true
fovcircle.Radius = fov
RunService.RenderStepped:Connect(function()
local viewportSize = Camera.ViewportSize
fovcircle.Position = Vector2.new(viewportSize.X / 2, viewportSize.Y / 2)
end)
local function isVisible(targetPart)
local origin = Camera.CFrame.Position
local direction = (targetPart.Position - origin).Unit * (targetPart.Position - origin).Magnitude
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = {LocalPlayer.Character, Camera}
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
local result = workspace:Raycast(origin, direction, raycastParams)
if result and (result.Instance:IsDescendantOf(targetPart.Parent)) then
return true
end
return false
end
local function getClosestTargetHead()
local closestDist = fov
local target = nil
local viewportCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
for _, obj in pairs(workspace:GetChildren()) do
if obj:IsA("Model") and obj ~= LocalPlayer.Character and obj.Name ~= "Map" and obj.Name ~= "Viewmodel" then
local head = obj:FindFirstChild("Head")
local hum = obj:FindFirstChildOfClass("Humanoid")
if head and hum and hum.Health > 0 then
local screenPos, onScreen = Camera:WorldToViewportPoint(head.Position)
if onScreen then
local dist = (viewportCenter - Vector2.new(screenPos.X, screenPos.Y)).Magnitude
if dist < closestDist then
if isVisible(head) then
closestDist = dist
target = head
end
end
end
end
end
end
return target
end
local oldCast
oldCast = hookfunction(WeaponManager.cast, function(origin, direction, target, distance, ignoreList, callbacks, isReplication, isLocal, someBool, color)
local targetHead = getClosestTargetHead()
if targetHead then
local newDirection = (targetHead.Position - origin).Unit * distance
return oldCast(origin, newDirection, target, distance, ignoreList, callbacks, isReplication, isLocal, someBool, color)
end
return oldCast(origin, direction, target, distance, ignoreList, callbacks, isReplication, isLocal, someBool, color)
end)Comments section coming soon...
To use this script, you need a Roblox Executor. Simply copy the script from this page, paste it into your executor, and run it while you are in the [FPS] Recoil game.
This script may require a payment or subscription. Please check the script's description for more details.
Yes, this script has a key system. You may need to complete a task or join a Discord server to get a key.
Yes, this script is designed to be compatible with mobile executors.