local lib = getgenv().Library local rows = {} for _, d in ipairs(lib.Open.Gui:GetDescendants()) do if d:IsA("Frame") and d.Name:sub(1, 7) == "Slider_" then local label = d:FindFirstChild("Label") local value = d:FindFirstChild("Value") local track = d:FindFirstChild("Track") if label and value and track then local labelEnd = label.AbsolutePosition.X + label.AbsoluteSize.X local valueStart = value.AbsolutePosition.X local valueEnd = valueStart + value.AbsoluteSize.X local trackStart = track.AbsolutePosition.X table.insert(rows, {name = d.Name:sub(8), rowW = math.floor(d.AbsoluteSize.X), labelEnd = labelEnd, valueStart = valueStart, gap = valueStart - labelEnd, valueTrackGap = trackStart - valueEnd, truncated = label.TextBounds.X > label.AbsoluteSize.X + 0.5}) end end end table.sort(rows, function(a, b) return a.gap < b.gap end) print("RESULTS: rows: " .. #rows) for i = 1, math.min(#rows, 6) do local r = rows[i] print(string.format(" %-26s rowW=%d labelEnd=%.0f valueStart=%.0f gap=%.0f value->track gap=%.0f trunc=%s", r.name, r.rowW, r.labelEnd, r.valueStart, r.gap, r.valueTrackGap, tostring(r.truncated))) end local trunc = 0 for _, r in ipairs(rows) do if r.truncated then trunc += 1 end end print(" truncated labels: " .. trunc .. " / " .. #rows)