SOURCE | Silent Aim
Key Required Verified

SOURCE | Silent Aim

[FREE WEEKEND] Ignited's Sandbox: Early Accessbinarybinary 978 views 424 executesUpdated Mar 10, 2026
3.8/ 5(4 votes)
3175% Positive
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.