TypeWriter Text Not Working

100% recommend this method over the previous one as highlighted by @Dev_BB1 and in that article.

The main reason is that the property allows for a much more controlled approach over the typewriter effect. It blends in well through the use of tweening (yes, you can just use TweenService and change the number value!) and doesn’t yield the thread as it would with the old method which uses wait().

I’ve already notified the folks in charge of the wiki to update the article, though the timeframe I’ve gotten is soon™.

First thing, it’s very useless to put WaitForChild since it’s already there, it’s never deleted and it’s only being cloned. (1st line)

So do:

local textLabel = script.Parent.Main.TextLabel

Secondly, I don’t know why no one noticed this problem, also the main problem, but you are changing the Enabled property from StarterGui, not PlayerGui, in a LocalScript. It will have no effect on server because it’s a LocalScript and GUIs replicate from server-sided StarterGui to the CharacterAdded’s character’s player. So, you should do:

script.Parent.Enabled = false

wait(10)

script.Parent.Enabled = true

Now you are done!

Local Script:

local textLabel = script.Parent.Main.TextLabel
script.Parent.Enabled = false

wait(10)

script.Parent.Enabled = true

local function typewrite(object, text)
    for i = 1, string.len(text) do
        object.Text = string.sub(text,1,i)
    	wait(0.05)
    end
end

typewrite(textLabel,"You've been asleep for 10 days, run at the wall in front of you.")

Edit:

print(#"Hello") -- 5
print(string.len("Hello")) -- 5

So it doesn’t make a difference.