I'm actually pretty surprised of this issue. It would seem so simple but it just doesn't work, no errors either.
local text = script.Parent.Text text = ('hello')
when doing something like
local text = script.Parent.Text
it is essentially setting a variable equivalent
to the text of the object, rather than actually being tied to the text of the object.
For that, you would do something like this:
local thing = script.Parent thing.Text = "hello"
ik this goes without saying but, if this is a surface gui on the server, be sure to use a server script
Hopefully this helped!