✓ Accepted answer
You can use RemoteEvents to tell the clients to unhide a gui with the message and change its text, and also after how many seconds it should hide it again.
Example:
Server:
local msgRemote = Instance.new("RemoteEvent")
msgRemote.Parent = game.ReplicatedStorage
msgRemote.Name = "msgRemote"
msgRemote:FireAllClients("Game will start in 5 seconds! Prepare!", 5)
Client:
local msgRemote = game.ReplicatedStorage:WaitForChild("msgRemote")
local gui = script.Parent
msgRemote.OnClientEvent:Connect(function(text, time)
gui.Visible = true
gui.MessageLabel.Text = text
wait(time)
gui.Visible = false
end)
3 comments
I think you should use remove events?
You would have to use Remote Event and FireAllClients(); Let me know if you need an example. I think it is pretty straight forward but if you do need an example, do let me know.
Also, you don't want to utilize Server Script for any Graphic User Interface, simply because it isn't a good practice. Always use Local Script for anything related to Guis.