Ello Developers!

As the title says, I am trying to modify this script so that It will keep giving the players weapons until the round stops

local RS = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Folder = RS:WaitForChild("Melee")

local roundEvent = RS:WaitForChild('RoundEvent')
-- Change the "Folder" if you change the folder name in Replicated Storage

local function givePlayer(character)
	local Tools = Folder:GetChildren()
	local ToolsTable = Tools
	local chosenTools = {}

	repeat
		local selectedIndex = math.random(1, #ToolsTable)
		table.insert(chosenTools, ToolsTable[selectedIndex])
		table.remove(ToolsTable, selectedIndex)
	until #chosenTools >= 1
	-- Numbers of tools going to give

	local plr = Players:GetPlayerFromCharacter(character)
	for i,v in pairs(chosenTools) do
		Folder:FindFirstChild(v.Name):Clone().Parent = plr.Backpack
	end
end

roundEvent.Event:Connect(function()
	for _, plr in Players:GetChildren() do
		givePlayer(plr.Character)
		script.AlreadyHasMelee.Value = true
	end
end)

local function onAdded(player)
	player.CharacterAdded:Connect(givePlayer) -- Triggers when the player spawns or respawns
end

Players.PlayerAdded:Connect(onAdded)

The Script that fires "roundEvent"

local lobbyLocation = game.Workspace.SpawnLocation.Position + Vector3.new(0,3,0)



local ReplicatedStorage = game:GetService('ReplicatedStorage')

local timeEvent = ReplicatedStorage:WaitForChild('TimeEvent')

local roundEvent = ReplicatedStorage:WaitForChild('RoundEvent')



local function playGame()

	local timeAmount = 180

	local timerText = 'Remaining Time: '

	while timeAmount > 0 do

		timeEvent:FireAllClients(timeAmount, timerText)

		wait(1)

		timeAmount -= 1

	end

end



local function playIntermission()

	local intermission = 10

	local timerText = 'Intermission: '

	while intermission > 0 do

		timeEvent:FireAllClients(intermission, timerText)

		wait(1)

		intermission -= 1

	end

end



local function resetPlayers()

	for _, plr in pairs(game.Players:GetChildren()) do

		plr.Character.HumanoidRootPart.CFrame = CFrame.new(lobbyLocation)

		local CurrentMapFolder = game.Workspace.CurrentMap:GetChildren()

		for _, Map in ipairs(CurrentMapFolder) do

			if Map:IsA("Model") then

				Map:Destroy()

			end

		end

		local WeaponGiverFolder = game.Workspace.WeaponGivers:GetChildren()

		for _, Script in ipairs(WeaponGiverFolder) do

			if Script:IsA("Script") then

				Script.Enabled = false

			end

		end

	end 

end



local function teleportPlayers()

	for _, plr in pairs(game.Players:GetChildren()) do

		local RandomMap = math.random(1,1)

		if RandomMap == 1 then
			local OldSFOTHMap = game:GetService("ReplicatedStorage").Maps["Old SFOTH Map"]:Clone()
			OldSFOTHMap.Parent = game.Workspace
		end
		
		if RandomMap == 2 then
			local CubeSchool = game:GetService("ReplicatedStorage").Maps["Cube School"]:Clone()
			CubeSchool.Parent = game.Workspace
		end

		local WeaponGiverFolder = game.Workspace.WeaponGivers:GetChildren()

		for _, Script in ipairs(WeaponGiverFolder) do

			if Script:IsA("Script") then

				Script.Enabled = true

			end

		end

	end 

end



while true do

	resetPlayers()

	playIntermission()

	teleportPlayers()

	roundEvent:Fire()

	playGame()

end