Silent Aim
Key Required

Silent Aim

War MachinesProBaconHubProBaconHub 2.7K views 7.6K executesUpdated Jul 15, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•180 lines (6306 chars)
getgenv().AimTarget = "Both" -- Options: "Bot", "Player", "Both"
getgenv().AimWallbang = false


local Players = game:GetService("Players")
local LocalPlayer = game:GetService("Players").LocalPlayer
local Workspace = workspace
local Camera = Workspace.CurrentCamera


local function isTargetVisible(cameraPos, targetPos, ignoreList)
    local direction = (targetPos - cameraPos)
    local distance = direction.Magnitude
    if distance <= 0 then
        return true
    end
    direction = direction.Unit

    local params = RaycastParams.new()
    params.FilterType = Enum.RaycastFilterType.Blacklist
    params.FilterDescendantsInstances = ignoreList
    params.IgnoreWater = true

    local rayResult = Workspace:Raycast(cameraPos, direction * (distance + 0.5), params)
    if rayResult == nil then
        return true
    end

    local hitInstance = rayResult.Instance
    if math.abs(rayResult.Distance - distance) < 1 then
        return true
    end

    local current = hitInstance
    while current do
        if current:IsA("Model") and current:FindFirstChild("HumanoidRootPart") then
            return true
        end
        current = current.Parent
    end

    return false
end

local function getBestTarget()
    local character = LocalPlayer.Character
    if not character then
        return {}
    end
    local primaryPart = character.PrimaryPart
    if not primaryPart then
        return {}
    end

    local cameraPos = Camera.CFrame.Position
    local screenCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)

    local ignoreList = {character}
    for _, child in ipairs(character:GetChildren()) do
        if child:IsA("Tool") then
            table.insert(ignoreList, child)
        end
    end

    local allTargets = {}

    local function addTarget(charModel, hrp, isVisible)
        table.insert(allTargets, {
            character = charModel,
            hrp = hrp,
            isVisible = isVisible
        })
    end

    if getgenv().AimTarget == "Bot" or getgenv().AimTarget == "Both" then
        local missionsFolder = Workspace:FindFirstChild("Missions")
        if missionsFolder then
            for _, mission in ipairs(missionsFolder:GetChildren()) do
                local aiSpawners = mission:FindFirstChild("AISpawners")
                if aiSpawners then
                    for _, spawner in ipairs(aiSpawners:GetChildren()) do
                        local botModel = spawner:FindFirstChildWhichIsA("Model")
                        if botModel then
                            local humanoid = botModel:FindFirstChildOfClass("Humanoid")
                            local hrp = botModel:FindFirstChild("HumanoidRootPart")
                            if humanoid and hrp and humanoid.Health > 0 then
                                local visible = isTargetVisible(cameraPos, hrp.Position, ignoreList)
                                if visible then
                                    addTarget(botModel, hrp, true)
                                elseif getgenv().AimWallbang then
                                    addTarget(botModel, hrp, false)
                                end
                            end
                        end
                    end
                end
            end
        end
    end

    if getgenv().AimTarget == "Player" or getgenv().AimTarget == "Both" then
        for _, player in ipairs(Players:GetPlayers()) do
            if player ~= LocalPlayer then
                local targetChar = player.Character
                if targetChar then
                    local humanoid = targetChar:FindFirstChildOfClass("Humanoid")
                    local hrp = targetChar:FindFirstChild("HumanoidRootPart")
                    if humanoid and hrp and humanoid.Health > 0 then
                        table.insert(ignoreList, targetChar)
                        local visible = isTargetVisible(cameraPos, hrp.Position, ignoreList)
                        if visible then
                            addTarget(targetChar, hrp, true)
                        elseif getgenv().AimWallbang then
                            addTarget(targetChar, hrp, false)
                        end
                    end
                end
            end
        end
    end

    local targetsWithDist = {}
    for _, target in ipairs(allTargets) do
        local screenPos, onScreen = Camera:WorldToScreenPoint(target.hrp.Position)
        if onScreen then
            target.screenDist = (Vector2.new(screenPos.X, screenPos.Y) - screenCenter).Magnitude
            table.insert(targetsWithDist, target)
        end
    end

    table.sort(targetsWithDist, function(a, b)
        if a.isVisible ~= b.isVisible then
            return a.isVisible
        end
        return a.screenDist < b.screenDist
    end)

    local result = {}
    for _, target in ipairs(targetsWithDist) do
        table.insert(result, target.character)
    end

    return result
end

local RaycastModule = require(game:GetService("ReplicatedStorage").Modules.Tool.Gun.Raycast)
local GetMouseHitModule = require(game:GetService("ReplicatedStorage").Modules.Tool.Raw.GetMouseHit)
pcall(restorefunction, RaycastModule.FireRay)
pcall(restorefunction, GetMouseHitModule)
local FireRay; FireRay = hookfunction(RaycastModule.FireRay, function(p1, p2, p3, p4, p5, p6, p7, p8)
    local bestTargets = getBestTarget()
    if #bestTargets > 0 then
        local v1, v2, v3, v4
        local target = bestTargets
        v1 = {target[1].HumanoidRootPart.Position}
        v2 = {}
        v3 = {}
        for _,v in ipairs(target) do
            table.insert(v2, {
                v,
                target[1].HumanoidRootPart.Position,
                (target[1].HumanoidRootPart.Position-game:GetService("Players").LocalPlayer.Character.PrimaryPart.Position).Unit,
                "Humanoid"
            })
            table.insert(v3, v.Humanoid)
        end
        v4 = {}
        return v1, v2, v3, v4
    else
        return FireRay(p1, p2, p3, p4, p5, p6, p7, p8)
    end
end)
local GetMouseHit; GetMouseHit = hookfunction(GetMouseHitModule, function(p1)
    local bestTargets = getBestTarget()
    if #bestTargets > 0 then
        return bestTargets[1].HumanoidRootPart.Position
    else
        return GetMouseHit(p1)
    end
end)

Features & Information

Silent Aim Work best with rapid fire tools. (Part of the silent aim was taken from the silent aim I made for Mad City: Chapter 2 before but it still works fine.)
#War Machines#Silent Aim#Aim Bot

Community Comments (2)

ProBaconHubProBaconHubJul 15, 2026

More War Machines scripts here: https://probacon-hub.gitbook.io/probaconhub/scripts/war-machines

Meee155Meee155Jul 15, 2026

cool

More Scripts for War Machines