
Key Required Verified
SOURCE | Silent Aim
Lua Script•187 lines (5886 chars)
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local GunUtility = require(ReplicatedStorage:WaitForChild("Modules"):WaitForChild("Libraries"):WaitForChild("GunUtility"))
local Enabled = true
local TeamCheck = true
local FOVRadius = 300
local HeadChance = 10
local HitChance = 100
local R6Parts = {"Torso", "Left Arm", "Right Arm", "Left Leg", "Right Leg"}
local FOVCircle = Drawing.new("Circle")
FOVCircle.Visible = true
FOVCircle.Radius = FOVRadius
FOVCircle.Thickness = 1
FOVCircle.Color = Color3.fromRGB(255, 255, 255)
FOVCircle.Transparency = 0.7
FOVCircle.NumSides = 60
FOVCircle.Filled = false
local TargetDot = Drawing.new("Circle")
TargetDot.Visible = false
TargetDot.Radius = 3
TargetDot.Color = Color3.fromRGB(255, 0, 0)
TargetDot.Filled = true
TargetDot.Transparency = 1
local function ShuffleTable(Tbl)
local Shuffled = table.clone(Tbl)
for I = #Shuffled, 2, -1 do
local J = math.random(1, I)
Shuffled[I], Shuffled[J] = Shuffled[J], Shuffled[I]
end
return Shuffled
end
local function GetRandomBodyPart()
if math.random(1, 100) <= HeadChance then
return "Head"
end
return ShuffleTable(R6Parts)[1]
end
local function GetTeam(Character)
local Player = Players:GetPlayerFromCharacter(Character)
if Player then
local TeamValue = Player:FindFirstChild("_Team")
if TeamValue then
return TeamValue.Value
end
return Player.Team
end
local TeamValue = Character:FindFirstChild("_Team")
if TeamValue then
return TeamValue.Value
end
return nil
end
local function IsEnemy(Player)
if Player == LocalPlayer then
return false
end
if not Player.Character then
return false
end
local Humanoid = Player.Character:FindFirstChildOfClass("Humanoid")
if not Humanoid or Humanoid.Health <= 0 then
return false
end
if TeamCheck then
local LocalCharacter = LocalPlayer.Character
if not LocalCharacter then
return false
end
local MyTeam = GetTeam(LocalCharacter)
local TheirTeam = GetTeam(Player.Character)
if MyTeam and TheirTeam and MyTeam == TheirTeam then
return false
end
end
return true
end
local function IsDummy(Model)
if not Model:IsA("Model") then
return false
end
if Model.Name ~= "Dummy" then
return false
end
local Humanoid = Model:FindFirstChildOfClass("Humanoid")
if not Humanoid or Humanoid.Health <= 0 then
return false
end
if not Model:FindFirstChild("Head") then
return false
end
return true
end
local function GetMousePosition()
return UserInputService:GetMouseLocation()
end
local function GetClosestTargetToMouse()
local ClosestCharacter = nil
local ClosestDistance = FOVRadius
local MousePos = GetMousePosition()
local Cam = workspace.CurrentCamera
if not Cam then
return nil
end
local AllPlayers = Players:GetPlayers()
for I = 1, #AllPlayers do
local Player = AllPlayers[I]
if IsEnemy(Player) and Player.Character:FindFirstChild("Head") then
local HeadPos, OnScreen = Cam:WorldToViewportPoint(Player.Character.Head.Position)
if OnScreen then
local ScreenPos = Vector2.new(HeadPos.X, HeadPos.Y)
local Distance = (ScreenPos - MousePos).Magnitude
if Distance < ClosestDistance then
ClosestDistance = Distance
ClosestCharacter = Player.Character
end
end
end
end
local Dummies = workspace:GetChildren()
for I = 1, #Dummies do
local Child = Dummies[I]
if IsDummy(Child) then
local HeadPos, OnScreen = Cam:WorldToViewportPoint(Child.Head.Position)
if OnScreen then
local ScreenPos = Vector2.new(HeadPos.X, HeadPos.Y)
local Distance = (ScreenPos - MousePos).Magnitude
if Distance < ClosestDistance then
ClosestDistance = Distance
ClosestCharacter = Child
end
end
end
end
return ClosestCharacter
end
local OldRaycastForFire = GunUtility.RaycastForFire
GunUtility.RaycastForFire = function(Origin, Direction, Params)
if Enabled and math.random(1, 100) <= HitChance then
local TargetCharacter = GetClosestTargetToMouse()
if TargetCharacter then
local PartName = GetRandomBodyPart()
local TargetPart = TargetCharacter:FindFirstChild(PartName) or TargetCharacter:FindFirstChild("Head")
if TargetPart then
local NewDirection = (TargetPart.Position - Origin).Unit * Direction.Magnitude
return OldRaycastForFire(Origin, NewDirection, Params)
end
end
end
return OldRaycastForFire(Origin, Direction, Params)
end
RunService.RenderStepped:Connect(function()
FOVCircle.Position = GetMousePosition()
local TargetCharacter = GetClosestTargetToMouse()
if TargetCharacter and TargetCharacter:FindFirstChild("Head") then
local Cam = workspace.CurrentCamera
if Cam then
local HeadPos, OnScreen = Cam:WorldToViewportPoint(TargetCharacter.Head.Position)
if OnScreen then
TargetDot.Position = Vector2.new(HeadPos.X, HeadPos.Y)
TargetDot.Visible = true
else
TargetDot.Visible = false
end
else
TargetDot.Visible = false
end
else
TargetDot.Visible = false
end
end)Features & Information
open source Silent Aim for Ignited Sandbox, works for both players & npc
Note: This script property can be used and contributed to any community you choose.
Community Comments (0)
No comments yet for this script.
