local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera local Config = { SilentAim = true, SilentAimFOV = 150, TargetPart = "Head", MaxDistance = 4500, Wallbang = true, InstantHit = true, ZeroRecoil = true, ZeroSpread = true, FastFirerate = true, OneShotKill = false, } local Modules = ReplicatedStorage:WaitForChild("Modules") local Projectile = Modules:WaitForChild("Projectile") local ShootModule = require(Projectile:WaitForChild("ShootModule")) local BulletHitDetector = require(Projectile:WaitForChild("BulletHitDetector")) local OldFire = ShootModule.fire local OldCanPierce = BulletHitDetector.canRayPierce local OldOnHit = BulletHitDetector.onHit local FOV_Circle = Drawing.new("Circle") FOV_Circle.Visible = false FOV_Circle.Thickness = 1 FOV_Circle.Color = Color3.fromRGB(255, 255, 255) FOV_Circle.Transparency = 0.5 FOV_Circle.Filled = false FOV_Circle.NumSides = 64 FOV_Circle.Radius = Config.SilentAimFOV RunService.RenderStepped:Connect(function() local vps = Camera.ViewportSize FOV_Circle.Position = Vector2.new(vps.X / 2, vps.Y / 2) FOV_Circle.Radius = Config.SilentAimFOV FOV_Circle.Visible = Config.SilentAim end) local function GetClosestPlayerToCenter() local myChar = LocalPlayer.Character if not myChar then return nil end local myHRP = myChar:FindFirstChild("HumanoidRootPart") if not myHRP then return nil end local viewportCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) local closestPart, minScreenDist = nil, Config.SilentAimFOV local playerList = Players:GetPlayers() for i = 1, #playerList do local player = playerList[i] if player ~= LocalPlayer and player.Character then local humanoid = player.Character:FindFirstChildOfClass("Humanoid") local targetPart = player.Character:FindFirstChild(Config.TargetPart) if humanoid and humanoid.Health > 0 and targetPart then local worldDist = (targetPart.Position - myHRP.Position).Magnitude if worldDist <= Config.MaxDistance then local screenPos, onScreen = Camera:WorldToViewportPoint(targetPart.Position) if onScreen then local screenDist = (Vector2.new(screenPos.X, screenPos.Y) - viewportCenter).Magnitude if screenDist < minScreenDist then minScreenDist = screenDist closestPart = targetPart end end end end end end return closestPart end local function ModifySettingsTable(settings) if typeof(settings) ~= "table" then return end if Config.ZeroRecoil then settings.camRecoil = { camRecoilUp = {0, 0}, camRecoilTilt = {0, 0}, camRecoilLeft = {0, 0}, camRecoilRight = {0, 0}, } settings.gunRecoil = { gunRecoilUp = {0, 0}, gunRecoilTilt = {0, 0}, gunRecoilLeft = {0, 0}, gunRecoilRight = {0, 0}, } settings.MinRecoilPower = 0 settings.MaxRecoilPower = 0 settings.RecoilPowerStepAmount = 0 settings.AimRecoilReduction = 0 end if Config.ZeroSpread then settings.MinSpread = 0 settings.MaxSpread = 0 settings.AimInaccuracyStepAmount = 0 settings.AimInaccuracyDecrease = 0 settings.HipSpread = 0 settings.CrosshairOffset = 0 end if Config.FastFirerate then settings.ShootRate = 9999 end if Config.InstantHit then settings.MuzzleVelocity = 99999 settings.BulletDrop = 0 end end local function ModifyTool(tool) if not tool then return end local mod = tool:FindFirstChild("ACS_Settings") if mod then local ok, settings = pcall(require, mod) if ok and typeof(settings) == "table" then ModifySettingsTable(settings) end end end local function SetupCharacter(character) local tool = character:FindFirstChildOfClass("Tool") if tool then ModifyTool(tool) end character.ChildAdded:Connect(function(child) if child:IsA("Tool") then task.wait(0.1) ModifyTool(child) end end) end if LocalPlayer.Character then SetupCharacter(LocalPlayer.Character) end LocalPlayer.CharacterAdded:Connect(SetupCharacter) ShootModule.fire = function(shooter, origin, direction, config, extra) if Config.SilentAim and shooter == LocalPlayer then local target = GetClosestPlayerToCenter() if target then local originPos = (config and config.origin) or origin direction = (target.Position - originPos).Unit if config then config.maxPenetrationCount = 999 config.currentPenetrationCount = 0 config.BulletPenetration = 999 if Config.InstantHit then config.shellSpeed = 99999 config.shellGravity = Vector3.new(0, 0, 0) end end end end return OldFire(shooter, origin, direction, config, extra) end BulletHitDetector.canRayPierce = function(shooter, hitPart, config) if Config.Wallbang and shooter == LocalPlayer then local humanoid = hitPart.Parent and hitPart.Parent:FindFirstChildOfClass("Humanoid") if humanoid and humanoid.Health > 0 then OldCanPierce(shooter, hitPart, config) return true else return true end end return OldCanPierce(shooter, hitPart, config) end BulletHitDetector.onHit = function(shooter, hitPart, hitPos, cosmeticBullet, config) return OldOnHit(shooter, hitPart, hitPos, cosmeticBullet, config) end