
Key Required

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera
workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function()
Camera = workspace.CurrentCamera
end)
local Settings = {
SilentAimEnabled = true,
HeadChance = 10,
HitChance = 100,
FOVRadius = 180,
}
local NonHeadParts = {"UpperTorso", "LowerTorso", "HumanoidRootPart", "RightUpperArm", "LeftUpperArm", "RightUpperLeg", "LeftUpperLeg"}
local FOVCircle = Drawing.new("Circle")
FOVCircle.Visible = true
FOVCircle.Thickness = 1
FOVCircle.Radius = Settings.FOVRadius
FOVCircle.Transparency = 0.7
FOVCircle.Color = Color3.fromRGB(255, 255, 255)
FOVCircle.Filled = false
local TargetDot = Drawing.new("Circle")
TargetDot.Visible = false
TargetDot.Thickness = 1
TargetDot.Radius = 4
TargetDot.Color = Color3.fromRGB(255, 0, 0)
TargetDot.Filled = true
TargetDot.Transparency = 1
local EntityService = require(ReplicatedStorage.Remote.EntityService)
local CameraController = require(ReplicatedStorage.Client.CameraController)
local ClientShootableComponent = require(ReplicatedStorage.Client.CombatController.ClientComponent.ClientShootableComponent)
local function GetEntityCharacter(Entity)
local Inst = Entity.Instance
if not Inst then
return nil
end
if Inst:IsA("Player") then
return Inst.Character
end
if Inst:IsA("Model") then
return Inst
end
return nil
end
local function FindEntityPosition(EntityModel)
local HRP = EntityModel:FindFirstChild("HumanoidRootPart")
if HRP and HRP:IsA("BasePart") then
return HRP.Position
end
local Head = EntityModel:FindFirstChild("Head")
if Head and Head:IsA("BasePart") then
return Head.Position
end
local Collider = EntityModel:FindFirstChild("Collider")
if Collider then
for _, Part in Collider:GetChildren() do
if Part:IsA("BasePart") then
return Part.Position
end
end
end
local Humanoid = EntityModel:FindFirstChildOfClass("Humanoid")
if Humanoid and Humanoid.RootPart then
return Humanoid.RootPart.Position
end
return nil
end
local function FindTargetPart(EntityModel, WantHead)
if WantHead then
local Head = EntityModel:FindFirstChild("Head")
if not Head then
Head = EntityModel:FindFirstChild("Head", true)
end
if Head and Head:IsA("BasePart") then
return Head, true
end
end
local Collider = EntityModel:FindFirstChild("Collider")
if Collider then
local Parts = {}
for _, Part in Collider:GetChildren() do
if Part:IsA("BasePart") then
table.insert(Parts, Part)
end
end
if #Parts > 0 then
return Parts[math.random(1, #Parts)], false
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 _, PartName in Shuffled do
local Part = EntityModel:FindFirstChild(PartName)
if not Part then
Part = EntityModel:FindFirstChild(PartName, true)
end
if Part and Part:IsA("BasePart") then
return Part, false
end
end
local HRP = EntityModel:FindFirstChild("HumanoidRootPart")
if HRP and HRP:IsA("BasePart") then
return HRP, false
end
return nil, false
end
local function IsInFOV(WorldPosition)
if not Camera then
return false, math.huge
end
local ScreenPos, OnScreen = Camera:WorldToViewportPoint(WorldPosition)
if not OnScreen then
return false, math.huge
end
local MousePos = UserInputService:GetMouseLocation()
local Distance = (Vector2.new(ScreenPos.X, ScreenPos.Y) - MousePos).Magnitude
return Distance <= Settings.FOVRadius, Distance
end
local function GetAllEnemyEntities()
local Enemies = {}
local LocalEntity = EntityService.GetLocalEntity()
if not LocalEntity or not LocalEntity.World then
return Enemies
end
local WorldEntities = LocalEntity.World.EntitiesByTeam
if not WorldEntities then
return Enemies
end
for _, TeamDict in pairs(WorldEntities) do
local Items = TeamDict._items or TeamDict
for _, Entity in pairs(Items) do
if not EntityService.IsLocalEntity(Entity) and Entity:IsAlive() then
local Character = GetEntityCharacter(Entity)
if Character then
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
if Humanoid and Humanoid.Health > 0 then
table.insert(Enemies, Character)
end
end
end
end
end
return Enemies
end
local function GetClosestEnemy()
local Enemies = GetAllEnemyEntities()
local ClosestModel = nil
local ClosestDistance = math.huge
for _, Model in Enemies do
local Position = FindEntityPosition(Model)
if Position then
local InFOV, Distance = IsInFOV(Position)
if InFOV and Distance < ClosestDistance then
ClosestModel = Model
ClosestDistance = Distance
end
end
end
return ClosestModel
end
local SilentTarget = nil
RunService.RenderStepped:Connect(function()
FOVCircle.Position = UserInputService:GetMouseLocation()
FOVCircle.Radius = Settings.FOVRadius
FOVCircle.Visible = Settings.SilentAimEnabled
if Settings.SilentAimEnabled then
local TargetModel = GetClosestEnemy()
if TargetModel then
local Position = FindEntityPosition(TargetModel)
if Position then
local ScreenPos, OnScreen = Camera:WorldToViewportPoint(Position)
if OnScreen then
TargetDot.Position = Vector2.new(ScreenPos.X, ScreenPos.Y)
TargetDot.Visible = true
else
TargetDot.Visible = false
end
else
TargetDot.Visible = false
end
else
TargetDot.Visible = false
end
else
TargetDot.Visible = false
end
end)
local OldGetCombatOrigin
OldGetCombatOrigin = hookfunction(CameraController.GetCombatOrigin, newcclosure(function()
local OrigCFrame, DetectAt = OldGetCombatOrigin()
if SilentTarget then
local NewCFrame = CFrame.lookAt(OrigCFrame.Position, SilentTarget.Position)
return NewCFrame, DetectAt
end
return OrigCFrame, DetectAt
end))
local OldGetTargeting
OldGetTargeting = hookfunction(CameraController.GetTargeting, newcclosure(function()
if SilentTarget then
return SilentTarget.Position, SilentTarget.Part
end
return OldGetTargeting()
end))
local OldLocalShoot
OldLocalShoot = hookfunction(ClientShootableComponent.LocalShoot, newcclosure(function(Self, ...)
if Settings.SilentAimEnabled and math.random(1, 100) <= Settings.HitChance then
local TargetModel = GetClosestEnemy()
if TargetModel then
local WantHead = math.random(1, 100) <= Settings.HeadChance
local TargetPart, IsHead = FindTargetPart(TargetModel, WantHead)
if TargetPart then
SilentTarget = {
Part = TargetPart,
Position = TargetPart.Position,
IsHead = IsHead,
}
end
end
end
local Result = OldLocalShoot(Self, ...)
SilentTarget = nil
return Result
end))



wont work
@jaydenajkian doesnt work for solara / xeno
@binary i dont use xeno or solora
i don't like how the functions look, but overall very good script 👍
@Dexemox they are meant to be put in your own script hub thats why i wrote them like that
@binary ah okay makes sense
fixed
Can you keep the loop fixed? It always follows my fingers
Not working
using velocity here the weapon is not working prob its patched just update the script
@VivLol Works perfectly for Synapse Z, Volt, and Pot*ium.
well xeno does have hookfunction and require so i dont see why it wouldnt be supported but yaknow
not working using pot*ium, cant shoot.