local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local LocalPlayer = Players.LocalPlayer local TaseEvent = ReplicatedStorage:WaitForChild("TaserRemotes"):WaitForChild("TaseTargetEvent") local RANGE = 50 local COOLDOWN = 2 local lastTaseTime = {} local function getPosition(character) if not character then return nil end local root = character:FindFirstChild("HumanoidRootPart") or character:FindFirstChild("Torso") if not root then return nil end return root.Position end local function getMyPosition() local char = LocalPlayer.Character if not char then return nil end return getPosition(char) end local function tasePlayer(player) if not player.Character then return end pcall(function() TaseEvent:FireServer(player.Character) end) end task.spawn(function() while true do local myPos = getMyPosition() local now = tick() if myPos then for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer then local pos = getPosition(player.Character) if pos then local dist = (pos - myPos).Magnitude if dist <= RANGE then local lastTime = lastTaseTime[player] or 0 if now - lastTime >= COOLDOWN then tasePlayer(player) lastTaseTime[player] = now print("Tased: " .. player.Name .. " (Distance: " .. math.floor(dist) .. ")") end end end end end end task.wait(0.2) end end) Players.PlayerAdded:Connect(function(player) print("Player joined: " .. player.Name .. ", waiting for character...") player.CharacterAdded:Connect(function() print(player.Name .. " character loaded") end) end) print("Range tase started, range: " .. RANGE .. " studs") print("Cooldown: " .. COOLDOWN .. "s")