hey i'm a bit new to coding, so i apologize if this is a dumb question, but basically i have a script where if you touch the block, the gui enables and then the text changes to basically "talk" to the player on what to do. my goal with this is when you touch the block, the gui enables, and the text changes, (wait 3 seconds, it changes again, and so on.) my problem is that the text changes when the gui isn't enabled (before player touches it) so if the player decides to not touch the block, then touch it after 10 seconds, then the won't see the first 3 lines of text if that makes sense. here is my code if you need.
local part = workspace.indicator1
part.Touched:Connect(function(hit)
local plr = game.Players:GetPlayerFromCharacter(hit.Parent)
if plr == game.Players.LocalPlayer then
plr.PlayerGui.speakng.Enabled = true
end
end)
i then have this exact code again but to set walkspeed to 0, and then I have my text.
setText("first line")
wait(3)
setText("second line")
wait(3)
and then i have a tween to fade the gui out and then I disable the gui. this repeats for all my indicators.
I am so sorry for this being so long but I really need help on it, thank you!

2 comments
Is the script a localscript, and whats listening to the property change a server script?
this is a local script, and i don't have any server scripts.