So this is in a game script I am making for a game. For some reason, it only works once in the beginning of the first round, but won't work in the second round.
Output gave me nothing and I have no idea what is the problem. Can someone please help me? Here's the script:
--[[
All of the variables and such are defined. I will only be posting the ones that I suspect are part of this issue.
--]]
local back = game.ServerStorage:WaitForChild("BackUp")
local clone = back:clone()
local time2remove = game.Workspace:WaitForChild("Item")
function Respawn()
time2remove:remove()
wait(0.01)
clone.Parent = game.Workspace
clone.Name = "Item"
end
while wait() do
if NewGameMustStart.Value == true then
NewGameMustStart.Value = false
msg.Parent = game.Workspace
msg.Text = "Welcome!"
wait(3)
msg.Text = "A new game is beginning! Sit tight!"
wait(3)
msg.Text = "Game Beginning!"
wait(2)
Respawn()
GameOn.Value = true
msg:remove()
end
end --- There's more to this script, but I'm only posting the parts that matter in this issue.

2 comments
Before the code is just a bunch of definitions and variables. And I haven't noticed any issues with the "msg" before.
Okay, could you explain what you expect to happen and what actually happens?