local plrs = game:GetService("Players") local ws = game:GetService("Workspace") local rs = game:GetService("RunService") local gui = game:GetService("GuiService") local rep = game:GetService("ReplicatedStorage") local lp = plrs.LocalPlayer local mouse = lp:GetMouse() getgenv().cfg = { silent = true, part = "Head", wallcheck = true, chance = 100, headshot = true, fov = true, fov_r = 150, fov_c = Color3.fromRGB(0, 255, 200), trigger = true, trigger_delay = 0.05, mods = true, no_recoil = true, fast_reload = true, big_hitbox = true, reload_t = 0.01, bullet_r = 5, esp = true, esp_bots = true, esp_plrs = true, tracers = true, names = true, } local c = getgenv().cfg -- fov local fovCircle = Drawing.new("Circle") fovCircle.Thickness = 1.5; fovCircle.NumSides = 64 fovCircle.Filled = false; fovCircle.Transparency = 0.7 rs.RenderStepped:Connect(function() fovCircle.Radius = c.fov_r fovCircle.Color = c.fov_c fovCircle.Visible = c.fov local inset = gui:GetGuiInset() fovCircle.Position = Vector2.new(mouse.X, mouse.Y + inset.Y) end) local function canSee(part, origin) local rp = RaycastParams.new() rp.FilterType = Enum.RaycastFilterType.Exclude local f = {lp.Character, ws.CurrentCamera} for _, v in ipairs(plrs:GetPlayers()) do if v ~= lp and v.Character then f[#f+1] = v.Character end end if ws:FindFirstChild("bots") then for _, v in ipairs(ws.bots:GetChildren()) do f[#f+1] = v end end rp.FilterDescendantsInstances = f return ws:Raycast(origin, part.Position - origin, rp) == nil end local function getTarget() local cam = ws.CurrentCamera if not cam then return end local bestPart, bestModel, isBot = nil, nil, false local bestDist = c.fov_r local inset = gui:GetGuiInset() local mPos = Vector2.new(mouse.X, mouse.Y + inset.Y) local function tryModel(mdl, bot) if not mdl or mdl == lp.Character then return end local hum = mdl:FindFirstChildOfClass("Humanoid") local tgt = mdl:FindFirstChild(c.part) or mdl:FindFirstChild("Head") if not hum or not tgt or hum.Health <= 0 then return end local screenPos, onScreen = cam:WorldToViewportPoint(tgt.Position) if not onScreen then return end local dist = (Vector2.new(screenPos.X, screenPos.Y) - mPos).Magnitude if dist < bestDist then if c.wallcheck and not canSee(tgt, cam.CFrame.Position) then return end bestDist = dist bestPart = tgt bestModel = mdl isBot = bot end end for _, v in ipairs(plrs:GetPlayers()) do if v ~= lp then tryModel(v.Character, false) end end if ws:FindFirstChild("bots") then for _, v in ipairs(ws.bots:GetChildren()) do tryModel(v, true) end end return bestPart, bestModel, isBot end local wc = nil pcall(function() wc = require(rep.client.controllers.WeaponController) end) if wc and wc.request_fire then local _fire = nil _fire = hookfunction(wc.request_fire, newcclosure(function(self, ...) if not c.silent then return _fire(self, ...) end local tgt = getTarget() if tgt and math.random(100) <= c.chance then local cam = ws.CurrentCamera local savedCF = cam.CFrame cam.CFrame = CFrame.new(savedCF.Position, tgt.Position) local ret = {_fire(self, ...)} cam.CFrame = savedCF return unpack(ret) end return _fire(self, ...) end)) end local zap = nil pcall(function() zap = require(rep.client.zap) end) if zap and zap.shoot and zap.shoot.fire then local _shootFire = nil _shootFire = hookfunction(zap.shoot.fire, newcclosure(function(data) if c.silent and data then local tgt, mdl, bot = getTarget() if tgt and not bot and math.random(100) <= c.chance then local cam = ws.CurrentCamera data.direction = (tgt.Position - (data.origin or cam.CFrame.Position)).Unit if c.headshot then data.is_headshot = true end for _, p in ipairs(plrs:GetPlayers()) do if p.Character == mdl then data.target = p; break end end end end return _shootFire(data) end)) end if zap and zap.shoot_dummy and zap.shoot_dummy.fire then local _dummyFire = nil _dummyFire = hookfunction(zap.shoot_dummy.fire, newcclosure(function(data) if c.silent and data then local tgt, mdl, bot = getTarget() if tgt and bot and math.random(100) <= c.chance then local cam = ws.CurrentCamera data.direction = (tgt.Position - (data.origin or cam.CFrame.Position)).Unit if c.headshot then data.is_headshot = true end data.dummy = mdl end end return _dummyFire(data) end)) end local fireTimer = 0 rs.Heartbeat:Connect(function(dt) if c.mods and wc then local loadout = wc.loadout if loadout and loadout.weapon then local weap = loadout.weapon local stats = weap.weapon_stats if stats then if c.no_recoil then weap.recoil_amount = Vector2.new(0,0) end if c.fast_reload then stats.reload_duration = c.reload_t end if c.big_hitbox then stats.bullet_radius = c.bullet_r end end end end if c.trigger and wc and wc.request_fire then fireTimer = fireTimer + dt if fireTimer >= c.trigger_delay then fireTimer = 0 if getTarget() then pcall(wc.request_fire, wc) end end end end) -- esp stuff local espObjects = {} local function addEsp(mdl, bot) if espObjects[mdl] then return end local line = Drawing.new("Line") line.Thickness = 1.5; line.Visible = false line.Color = bot and Color3.fromRGB(255,170,0) or Color3.fromRGB(255,50,50) line.Transparency = 0.8 local label = Drawing.new("Text") label.Size = 14; label.Center = true label.Outline = true; label.Visible = false label.Color = Color3.new(1,1,1) espObjects[mdl] = {line = line, label = label, isBot = bot} end local function cleanEsp(mdl) local obj = espObjects[mdl] if not obj then return end obj.line:Remove() obj.label:Remove() espObjects[mdl] = nil end rs.RenderStepped:Connect(function() local cam = ws.CurrentCamera if not c.esp or not cam then for _, v in pairs(espObjects) do v.line.Visible = false v.label.Visible = false end return end for _, v in ipairs(plrs:GetPlayers()) do if v ~= lp and v.Character then addEsp(v.Character, false) end end if ws:FindFirstChild("bots") then for _, v in ipairs(ws.bots:GetChildren()) do addEsp(v, true) end end for mdl, obj in pairs(espObjects) do local head = mdl:FindFirstChild("Head") local hum = mdl:FindFirstChildOfClass("Humanoid") if not head or not hum or hum.Health <= 0 or not mdl.Parent then cleanEsp(mdl) else local pos, onScreen = cam:WorldToViewportPoint(head.Position) if onScreen then local myRoot = lp.Character and lp.Character:FindFirstChild("HumanoidRootPart") local d = myRoot and math.floor((myRoot.Position - head.Position).Magnitude) or 0 obj.line.From = Vector2.new(cam.ViewportSize.X/2, cam.ViewportSize.Y) obj.line.To = Vector2.new(pos.X, pos.Y) obj.line.Visible = c.tracers local prefix = obj.isBot and "[BOT] " or "" obj.label.Position = Vector2.new(pos.X, pos.Y - 25) obj.label.Text = prefix .. mdl.Name .. " [" .. d .. "m]" obj.label.Visible = c.names else obj.line.Visible = false obj.label.Visible = false end end end end)