Problem with countdown gui syncing

hello, i’ve been trying to write some code for a round system (also adding a second script i made as well, this one is for the round starting and ending, and the other one is for a break time, both have a countdown system, if it’s needed i’ll provide them both), and although it works perfectly, it doesn’t sync with all the players, one player (who started the game) will have started the round, but a player that joins will have the break time just starting (since it’s what it does when you first join the game), i want the countdown(s) to sync with the players, even if a new player joins it’ll display if a round has started or not yet, sorry if this script is messy

local text = script.Parent
local folder = workspace.maps
local timer = 35

folder.ChildAdded:Connect(function(map)
	task.wait(3)
	text.Text = "Map chosen: "..map.Name
	task.wait(3)
	text.Text = "Get ready.."
	task.wait(3)
	for i = timer, 0, -1 do
		text.Text = "round time: "..i
		task.wait(1)
		if i == 0 then
			text.Text = "Time!"
			task.wait(3)
			text.Text = "Cleaning up.."
			map:Destroy()
			task.wait(5)
			script.Parent["make part"].Enabled = true
		end
	end
end)

again, i’ll provide both scripts if it’s needed, i don’t know scripting too well, so i don’t know how to fit them both in one singular script, thanks in advance!

Try this:

create a text object with a string value

-- Server

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextObject = ReplicatedStorage:WaitForChild("TextObject")

local Maps = workspace.Maps
local timer = 35

Maps.ChildAdded:Connect(function(map)
	task.wait(3)
	TextObject.Value = "Map chosen: "..map.Name
	task.wait(3)
	TextObject.Value = "Get ready.."
	task.wait(3)

	for i = timer, 0, -1 do
		TextObject.Value = "round time: "..i
		task.wait(1)

		if i == 0 then
			TextObject.Value = "Time!"
			task.wait(3)
			TextObject.Value = "Cleaning up.."

			map:Destroy()
			task.wait(5)
			script.Parent["make part"].Enabled = true
		end
	end
end)


-- Client

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextObject = ReplicatedStorage:WaitForChild("TextObject")

local text = script.Parent

TextObject:GetPropertyChangedSignal("Value"):Connect(function()
	text.Text = TextObject.Value
end)