Script: (Line 50 for player choosing)

local IntTime = 20
local GameTime = 120
local ChooseTime = 15
local WallTime = 15

local Walls = workspace.Walls
local Colors = workspace.Colors

local ColorsChose = {
	Red = {},
	Blue = {},
	Green = {},
	Yellow = {},
}

function Chose(plr)
	local Red = ColorsChose.Red
	local Blue = ColorsChose.Blue
	local Green = ColorsChose.Green
	local Yellow = ColorsChose.Yellow
	if Red[plr] or Blue[plr] or Green[plr] or Yellow[plr] then
		return true
	else
		return false
	end
end

while wait() do
	-- Wait For Intermission
	for i = 0,IntTime,1 do
		wait(1)
	end
	print("Opening Walls")
	-- Open Walls
	for i,v in pairs(Walls:GetChildren()) do
		v.Transparency = 1
		v.CanCollide = false
	end
	warn("Opened Walls")
	for i = 0,WallTime,1 do
		wait(1)
	end
	for i,v in pairs(Walls:GetChildren()) do
		v.Transparency = 0.5
		v.CanCollide = true
	end
	print("Closed Walls")
	-- Game Time
	warn("Starting Game")
	for i = 0,GameTime,1 do
		for i,v in pairs(Colors:GetChildren()) do
			v.Touched:Connect(function(hit)
				local Par = hit.Parent
				local Player = game.Players:GetPlayerFromCharacter(Par)
				if Player and not Chose(Player) then
					print("Player Chose")
					if v.Name == "Green" then
						table.insert(ColorsChose.Green,Player)
					elseif v.Name == "Red" then
						table.insert(ColorsChose.Red,Player)
					elseif v.Name == "Blue" then
						table.insert(ColorsChose.Blue,Player)
					elseif v.Name == "Yellow" then
						table.insert(ColorsChose.Yellow,Player)
					end
				else
					warn(Player.Name.." Already Chose A Color")	
				end
			end)
		end
		wait(1)
	end
	warn("Game Over")
	-- End game
	local Red = ColorsChose.Red
	local Blue = ColorsChose.Blue
	local Green = ColorsChose.Green
	local Yellow = ColorsChose.Yellow
	for i,v in pairs(Red) do
		table.remove(Red,i)
	end
	for i,v in pairs(Blue) do
		table.remove(Blue,i)
	end
	for i,v in pairs(Green) do
		table.remove(Green,i)
	end
	for i,v in pairs(Yellow) do
		table.remove(Yellow,i)
	end
	print("Starting Over")
	for i,v in pairs(game.Players:GetChildren()) do
		local Char = v.Character
		local Hum = Char.Humanoid
		Hum.Health = 0
	end
end

1 comment

0

Don't have time to read through, but a tip: The way your script is setup is that a player can only pick a color every second on the script's count, instead of whenever the player wants to. Not sure if this is what you wanted, but a heads up