-- delay checker local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local LocalPlayer = Players.LocalPlayer local mouse = LocalPlayer:GetMouse() local tool = Instance.new("Tool") tool.Name = "PingCheck" tool.RequiresHandle = false tool.Parent = LocalPlayer.Backpack local function getHRP(p) local c = p and p.Character return c and c:FindFirstChild("HumanoidRootPart") end local function noCollide(c) for _, d in ipairs(c:GetDescendants()) do if d:IsA("BasePart") then d.CanCollide = false end end end local function slide(part, goal, dur) local tw = TweenService:Create(part, TweenInfo.new(dur, Enum.EasingStyle.Linear), { CFrame = goal }) tw:Play() tw.Completed:Wait() end local function run(target) local th = getHRP(target) local mh = getHRP(LocalPlayer) if not th or not mh then return end noCollide(LocalPlayer.Character) task.wait(0.2) local last = th.Position local still = 0 while still < 30 do RunService.Heartbeat:Wait() th = getHRP(target) or th local p = th.Position if (p - last).Magnitude > 0.15 then still = 0 else still += 1 end last = p end mh = getHRP(LocalPlayer) or mh th = getHRP(target) or th slide(mh, th.CFrame * CFrame.new(0, 0, 10), 1.2) task.wait(0.5) local t0 = nil local p0 = nil local moved = false local ms = 0 local done = false local endT = nil task.spawn(function() local m = getHRP(LocalPlayer) or mh local t = getHRP(target) or th slide(m, t.CFrame * CFrame.new(0, 0, -10), 1.2) done = true endT = os.clock() end) while not moved do RunService.Heartbeat:Wait() mh = getHRP(LocalPlayer) or mh th = getHRP(target) or th if not t0 then if (mh.Position - th.Position).Magnitude <= 3 then t0 = os.clock() p0 = th.Position elseif done and endT and (os.clock() - endT) > 5 then break end else ms = (os.clock() - t0) * 1000 if (th.Position - p0).Magnitude > 0.05 then moved = true elseif ms > 5000 then break end end end if moved then print(string.format("%.6f", ms)) end end tool.Activated:Connect(function() local hit = mouse.Target if not hit then return end local model = hit:FindFirstAncestorOfClass("Model") if not model then return end local plr = Players:GetPlayerFromCharacter(model) if plr and plr ~= LocalPlayer then run(plr) end end)