Ive been working on this script for about a day now and I have never worked with teams before and I was wondering if anyone could help me out a little bit. I kinda wanted to have 5 players on each team and when lets say someone on red team died it would give blue team 1 point and when one team reached 50 points it would end the game and give the people on blue team cash or something.

Heres the script ive gotten so far, this is my last wall that I have to get over... Other than data saving. Anyone care to help me out :)

I was thinking it would go before "Game time" starts.

local replicatedstorage = game:GetService("ReplicatedStorage")
local status = replicatedstorage:WaitForChild("InfoValue")
local mapstorage = game.Workspace:WaitForChild("MapStorage")
local serverstorage = game:GetService("ServerStorage")

local intTime = 5
local MapLoadTime = 3
local GameTime = 5
local RoundOver = 3

while true do
	-- Waiting for players to join
	while game.Players.NumPlayers < 2 do
		status.Value = "Waiting For Players!" 
		repeat wait(2) until game.Players.NumPlayers >= 2
	end

	-- Intermission
	for i = intTime, 0, -1 do
		status.Value = "Intermission: "..i
		wait(1)
	end
	
	-- Loading a map
	local mapsinserverstorage = game:GetService("ServerStorage").Maps:GetChildren()
	status.Value = "Loading Map..."
	wait(MapLoadTime) -- Map loading time
	status.Value = "Map Loaded!"
	wait(1) -- Map loaded time
	local chosemap = mapsinserverstorage[math.random(1, #mapsinserverstorage)]
	chosemap:Clone().Parent = mapstorage
	
	-- Teleporting players
	status.Value = "Pick Your Class!"
	local spawns = chosemap:WaitForChild("Spawns"):GetChildren()
	for _, player in pairs(game.Players:GetPlayers()) do
		if player and #spawns > 0 then
			local uppertorso = player.Character:WaitForChild("UpperTorso")
			local allspawns = math.random(1, #spawns)
			local randomspawn = spawns[allspawns]
			if randomspawn and uppertorso then
				table.remove(spawns, allspawns)
				uppertorso.CFrame = CFrame.new(randomspawn.Position + Vector3.new(0, 3, 0))
				local classgui = game.StarterGui:FindFirstChild("ClassGUI"):Clone()
				classgui.Enabled = true
				classgui.Parent = player.PlayerGui
				wait(10)
				player.PlayerGui:FindFirstChild("ClassGUI"):Destroy()
			end
		end
	end
	-- Game time
	for i = GameTime, 0, -1 do
		status.Value = i.." Time Left!"
		if i == 0 then
			status.Value = "Round Over!"
			wait(RoundOver)
			-- Give players points
			for _, player in pairs(game.Players:GetPlayers()) do
				if player:FindFirstChild("leaderstats") then
					player.leaderstats.Presents.Value = player.leaderstats.Presents.Value + 5

				end
			end
			break
		else
		end
		wait(1)
	end
	mapstorage:ClearAllChildren()
	wait()	
end

Thanks for your time. Even a YouTube tutorial would help.