local frag = getgenv().fragESP local lib = getgenv().Library local holder = frag.holder local cam = workspace.CurrentCamera lib.Registry["Max Distance"].Set(1500) lib.Registry["Show Distance"].Set(true) lib.Registry["Show Held Item"].Set(true) local function sorted() local out = {} for _, p in ipairs(game:GetService("Players"):GetChildren()) do if p ~= game:GetService("Players").LocalPlayer then local r = p.Character and p.Character:FindFirstChild("HumanoidRootPart") if r then table.insert(out, {p = p, r = r, d = (r.Position - cam.CFrame.Position).Magnitude}) end end end table.sort(out, function(a, b) return a.d < b.d end) return out end local t = sorted() print("players with roots:", #t, "| closest dist:", t[1] and math.floor(t[1].d)) local function measure(playerName) local box, name, dist, item for _, v in ipairs(holder:GetChildren()) do if v:GetAttribute("fragPlayer") == playerName and v.Visible then if v.Name == "LeftTop" then box = string.format("w=%d h=%d", v.Size.X.Offset, v.Size.Y.Offset) end if v.Name == "LeftSide" then box = (box or "") .. string.format(" boxH=%d", v.Size.Y.Offset) end if v.Name == "Name" then name = v.Text .. " y=" .. v.Position.Y.Offset end if v.Name == "Distance" then dist = v.Text .. " y=" .. v.Position.Y.Offset end if v.Name == "Weapon" then item = v.Text .. " y=" .. v.Position.Y.Offset end end end return box, name, dist, item end local function expected(p) local cf, sz = p.Character:GetBoundingBox() local hp = cam:WorldToScreenPoint(cf.Position + Vector3.yAxis * (sz.Y / 2)) local fp = cam:WorldToScreenPoint(cf.Position - Vector3.yAxis * (sz.Y / 2)) local wp = cam:WorldToScreenPoint(cf.Position + cam.CFrame.RightVector * (math.max(sz.X, sz.Z) * 0.5)) local cx = (hp.X + fp.X) / 2 return math.floor(math.abs(wp.X - cx) * 2 + 3), math.floor(math.abs(fp.Y - hp.Y) + 3) end for _, entry in ipairs({t[1], t[math.min(3, #t)]}) do if entry then task.wait(0.35) local box, name, dist, item = measure(entry.p.Name) local ew, eh = expected(entry.p) print(string.format("%-18s dist=%d drawn[%s] expect w=%d h=%d | name:%s dist:%s item:%s", entry.p.Name, math.floor(entry.d), tostring(box), ew, eh, tostring(name), tostring(dist), tostring(item))) end end -- count visible boxes vs visible names overall local vb, vn = 0, 0 for _, v in ipairs(holder:GetChildren()) do if v.Visible and v.Name == "LeftTop" then vb += 1 end if v.Visible and v.Name == "Name" then vn += 1 end end print("visible boxes:", vb, "| visible name labels:", vn, "| both drawn for same players:", vb == vn)