Hey, so I put a local script with the code below inside as a child of a TextLabel. My idea was that if there are less than 5 players in the game, the text inside the TextLabel would change to say how many people are needed (run upon joining), and if there are more than 5 and the game is loading, you state how many seconds there are before the next round starts
contents = script.Parent.Text
players = game:GetService('Players')
plrArr = players:GetChildren()
rs = game:GetService('ReplicatedStorage')
status = rs:WaitForChild('Status')
events = rs:WaitForChild('Events')
tc = events:WaitForChild('TimerChange')
if status.Value == 'Waiting' then
print('waiting')
contents = 'WAITING FOR ' .. tostring(5 - #plrArr) .. ' MORE PLAYERS'
elseif status.Value == 'Loading' then
contents = 'GAME STARTING IN ' .. rs:WaitForChild('TimerSecs').Value .. ' SECONDS'
end
tc.OnClientEvent:Connect(function(secs)
if status == 'Loading' then
contents = 'GAME STARTING IN ' .. secs .. ' SECONDS'
end
end)
The print function runs, but the text stays as its default. Any ideas why? any help would be much appreciated. Thanks in advance

1 comment
Ah thank you so much! I just came back from a long period of using node.js so I completely forgot stuff like this. It's much appreciated