Didn’t I tell you that you don’t have to wait a frame anymore?
Here’s the same script in the reply that I linked, but with TextScaled = true and the size of the frame is changed instead of the text.
local sg = Instance.new("ScreenGui")
sg.Parent = game:GetService("CoreGui")
local label = Instance.new("TextLabel", sg)
label.Text = "Test"
label.Size = UDim2.new(0, 100, 0, 100)
label.TextScaled = true
print(label.TextBounds)
label.Size = UDim2.new(0, 200, 0, 200)
print(label.TextBounds)
wait(1)
print(label.TextBounds)
This will print:
99, 59
165, 100 (x2)
Again, you don’t need to wait a frame anymore for the values of properties to update.