server delay checker
Key RequiredUniversal

server delay checker

Universal Scriptwumpawumpa 1.1K views 646 executesUpdated Sep 26, 2026
Unrated
00
Lua Script•104 lines (2400 chars)
-- 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)

Features & Information

lets u check ping from client to client from u client without server

Community Comments (2)

DevishDevishSep 26, 2026

Kinda good

Replying to @Devish
wumpawumpaSep 26, 2026

@Devish thank u baby i use it for prediction and my other scripts that are visuals or physics based so its best for that like carrys or headsits/stands etc

More Scripts for Universal Scripts