
Key RequiredUniversal

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local WorkspaceService = game:GetService("Workspace")
local LocalPlayer = Players.LocalPlayer
local ProcessRemote = ReplicatedStorage:WaitForChild("ACS_Engine"):WaitForChild("Events"):WaitForChild("Process")
local GameSystem = ReplicatedStorage:WaitForChild("GameSystem")
local SilentAimEnabled = true
local HeadChance = 10
local HitChance = 100
local FOVRadius = 180
local NonHeadParts = {"UpperTorso", "LowerTorso", "LeftUpperArm", "RightUpperArm", "LeftLowerArm", "RightLowerArm", "LeftUpperLeg", "RightUpperLeg", "LeftLowerLeg", "RightLowerLeg"}
local FOVCircle = Drawing.new("Circle")
FOVCircle.Thickness = 1
FOVCircle.NumSides = 64
FOVCircle.Filled = false
FOVCircle.Transparency = 0.8
FOVCircle.Color = Color3.fromRGB(240, 60, 60)
FOVCircle.Radius = FOVRadius
FOVCircle.Visible = true
local TargetDot = Drawing.new("Circle")
TargetDot.Thickness = 1
TargetDot.NumSides = 16
TargetDot.Filled = true
TargetDot.Radius = 4
TargetDot.Color = Color3.fromRGB(240, 60, 60)
TargetDot.Visible = false
local function IsEnemy(TargetPlayer)
if TargetPlayer == LocalPlayer then
return false
end
if GameSystem:GetAttribute("FreeForAll") then
return true
end
if LocalPlayer.Team and TargetPlayer.Team then
return LocalPlayer.Team ~= TargetPlayer.Team
end
return true
end
local function GetAllTargets()
local Targets = {}
for _, Player in Players:GetPlayers() do
if IsEnemy(Player) then
local Character = Player.Character
if Character then
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
if Humanoid and Humanoid.Health > 0 then
if Character:FindFirstChild("Head") then
table.insert(Targets, Character)
end
end
end
end
end
return Targets
end
local function GetTargetPart(Character)
if math.random(1, 100) <= HeadChance then
local Head = Character:FindFirstChild("Head")
if Head then
return Head
end
end
local Shuffled = table.clone(NonHeadParts)
for I = #Shuffled, 2, -1 do
local J = math.random(1, I)
Shuffled[I], Shuffled[J] = Shuffled[J], Shuffled[I]
end
for _, Name in Shuffled do
local Part = Character:FindFirstChild(Name)
if Part then
return Part
end
end
return Character:FindFirstChild("Head")
end
local function GetNearestTarget()
local Camera = WorkspaceService.CurrentCamera
if not Camera then
return nil, nil
end
local ViewportSize = Camera.ViewportSize
local ScreenCenter = Vector2.new(ViewportSize.X / 2, ViewportSize.Y / 2)
local BestDistance = math.huge
local BestPart = nil
local BestModel = nil
for _, TargetModel in GetAllTargets() do
local Head = TargetModel:FindFirstChild("Head")
if Head then
local ScreenPos, OnScreen = Camera:WorldToViewportPoint(Head.Position)
if OnScreen then
local ScreenDist = (Vector2.new(ScreenPos.X, ScreenPos.Y) - ScreenCenter).Magnitude
if ScreenDist < FOVRadius and ScreenDist < BestDistance then
BestDistance = ScreenDist
BestModel = TargetModel
BestPart = GetTargetPart(TargetModel)
end
end
end
end
return BestModel, BestPart
end
local OldNamecall
OldNamecall = hookmetamethod(game, "__namecall", newcclosure(function(Self, ...)
local Method = getnamecallmethod()
if SilentAimEnabled and Method == "FireServer" and Self == ProcessRemote and math.random(1, 100) <= HitChance then
local Tool, RayResult, ShotID = ...
if typeof(RayResult) == "table" then
local TargetModel, TargetPart = GetNearestTarget()
if TargetModel and TargetPart then
local Humanoid = TargetModel:FindFirstChildOfClass("Humanoid")
if Humanoid and Humanoid.Health > 0 then
local NewRayResult = {
["Instance"] = TargetPart,
["Position"] = TargetPart.Position,
["Material"] = Enum.Material.Plastic,
["Normal"] = Vector3.new(0, 1, 0),
["Distance"] = RayResult.Distance or 10
}
setnamecallmethod(Method)
return OldNamecall(Self, Tool, NewRayResult, ShotID)
end
end
end
end
setnamecallmethod(Method)
return OldNamecall(Self, ...)
end))
RunService.RenderStepped:Connect(function()
local Camera = WorkspaceService.CurrentCamera
if not Camera then
FOVCircle.Visible = false
TargetDot.Visible = false
return
end
local ViewportSize = Camera.ViewportSize
local ScreenCenter = Vector2.new(ViewportSize.X / 2, ViewportSize.Y / 2)
FOVCircle.Position = ScreenCenter
FOVCircle.Radius = FOVRadius
FOVCircle.Visible = SilentAimEnabled
if not SilentAimEnabled then
TargetDot.Visible = false
return
end
local _, Part = GetNearestTarget()
if Part then
local ScreenPos, OnScreen = Camera:WorldToViewportPoint(Part.Position)
if OnScreen then
TargetDot.Position = Vector2.new(ScreenPos.X, ScreenPos.Y)
TargetDot.Visible = true
return
end
end
TargetDot.Visible = false
end)


bro can u teach me how to make silent aim btw thanks for the open source
@harukidesu It either a module script for example Module.NewBullet you will have to hookfunction it or hookmetamethod normally hookfunction are for example project delta, phantom force (overriding data) and the other is dahood
@fract thanks bro can u give me prompt for ai
@harukidesu ai slop..
the script is bug, after executed my red FOV is stuck on the top left of the screen. how to fit that?
@ggabc ME TO
when the script going to be fixed omd
@binary is it fix?
This script isn't very compatible with mobile. As silent aims are very enjoyable when you're using a computer. If you guys are really that desperate, I will add mobile support.
@jaden200512 Are you on mobile or computer?
I tested it myself. Apparently, it's also working for wallbang.
I am using xeno and my fov is stuck on the top left corner pls fix it
dont use it it instantly bans you after 30 seconds