Time script/round system

-- Round Variable
local roundLength = 270
local intermissionLength = 15
local InRound = game.ReplicatedStorage.InRound
local LobbySpawn = game.Workspace.LobbyFloor
local BorderPart = game.Workspace.Walls.BorderPart
local Status = game.ReplicatedStorage.Status
local TMF = require(script.TFM)
local reset = game.ReplicatedStorage.Reset

InRound.Changed:Connect(function()
	task.wait(1)
	if InRound.Value == true then
		BorderPart.Transparency = 1
		BorderPart.CanCollide = false
		BorderPart.SurfaceGui.TextLabel.Visible = false
	else
		BorderPart.Transparency = 0.2
		BorderPart.CanCollide = true
		BorderPart.SurfaceGui.TextLabel.Visible = true
		for _, v in pairs(game.Players:GetChildren()) do
			local char = v.Character
			char.HumanoidRootPart.CFrame = LobbySpawn.CFrame
		end
	end
end)




local function roundTimer()
	while wait() do
		for i = intermissionLength, 1, -1 do
			InRound.Value = false
			wait(1)
			Status.Value = "Intermission: ".. i .. " seconds left!"
		end
		
		for i = roundLength, 1, -1 do
			local convers = TMF:Convert(i, "Default", false)
			InRound.Value = true
			wait(1)
			Status.Value = convers
		end
	
	end
end

spawn(roundTimer)

the part script

local part = script.Parent
local part2 = game.Workspace.LobbyFloor
local sht = part.ToAddWins
local shp = part.ToAddMoney
local Status = game.ReplicatedStorage.Status
local InRound = game.ReplicatedStorage.InRound
local reset = game.ReplicatedStorage.Reset

part.Touched:Connect(function(hit)
	local player = game:GetService("Players"):GetPlayerFromCharacter(hit.Parent)
	
	for _, players  in pairs(game.Players:GetChildren()) do
		players.Character.HumanoidRootPart.CFrame = part2.CFrame
	end
	
	reset.Value = true
	
	player:WaitForChild("leaderstats").Wins.Value += sht.Value
	player:WaitForChild("leaderstats").Cash.Value += shp.Value
	
end)

when i try to do if the value true it will "intermission" and if the value false it will do "game time" but it doesn't work.