local ReplicatedStorage = game:GetService("ReplicatedStorage") local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local Shucky = require(ReplicatedStorage.Modules.Shucky) local function getAllTargets() local targets = {} local localTeam = LocalPlayer:GetAttribute("Team") for _, v in pairs(Players:GetPlayers()) do if v ~= LocalPlayer and v:GetAttribute("Team") ~= localTeam then if v:GetAttribute("Health") and v:GetAttribute("Health") > 0 then if v.Character and v.Character:FindFirstChild("Head") then table.insert(targets, v.Character.Head) end end end end return targets end local function getCurrentWeapon() local char = LocalPlayer.Character if char then local gunName = char:GetAttribute("WhatGun") if gunName then return Shucky.GetWep(gunName, LocalPlayer) end end return nil end local function isVisible(part) local origin = LocalPlayer.Character.Head.Position local raycastParams = RaycastParams.new() raycastParams.FilterType = Enum.RaycastFilterType.Exclude raycastParams.FilterDescendantsInstances = {LocalPlayer.Character, part.Parent} local result = workspace:Raycast(origin, part.Position - origin, raycastParams) return result == nil end task.spawn(function() while task.wait(0.05) do if LocalPlayer:GetAttribute("Health") and LocalPlayer:GetAttribute("Health") > 0 then local targetHeads = getAllTargets() local weapon = getCurrentWeapon() if #targetHeads > 0 and weapon then local hitData = {} local overallWallbang = nil for _, head in ipairs(targetHeads) do local visible = isVisible(head) local wallbangVal = not visible or nil if wallbangVal then overallWallbang = true end table.insert(hitData, { Hit = head, Position = head.Position, Normal = Vector3.new(0, 1, 0), Wallbang = wallbangVal }) end Shucky.activateresult( hitData, weapon, LocalPlayer.Character.Head.Position, overallWallbang, nil, nil, nil ) end end end end)