So in the script the function runRounds() works with 'round1' as the parameter. Everything goes well, and when one of the players dies, it will run the function again, but on the line where it teleports the players back to the spawn, the player who died does not tp back into the spawn.

local Players = game:GetService('Players')
local replicatedStorage = game:GetService('ReplicatedStorage')

local arena = script.Parent
local spawns = arena.spawns

local pad = arena.pad
local pad1 = arena.pad1

local board = arena.board
local boardgui = board.SurfaceGui

local status = arena.status
local timeLeft = arena:WaitForChild('timeLeft')
local round = arena.round

local sword = replicatedStorage.Sword


local function runRounds(round)
	
	print("started "..status.Value)
	local user = tostring(pad.player.Value)
	local user1 = tostring(pad1.player.Value)


	local player = game.Workspace[user]
	local player1 = game.Workspace[user1]
	
	local winner

	player.Humanoid.Died:Connect(function()
		winner = player1.Name
		print(player1.Name.." won ".. status.Value.."!")
		if round == "round1" then
			status.Value = "round2"
			runRounds(tostring(status.Value))
		elseif round == "round2" then
			status.Value = "round3"
			runRounds(tostring(status.Value))
		elseif round == "round3" then
			status.Value = "intermission"
			round.Value = "waiting"
			db = false

		end
	end)

	player1.Humanoid.Died:Connect(function()
		winner = player.Name
		print(player.Name.." won ".. status.Value.."!")
		if round == "round1" then
			status.Value = "round2"
			runRounds(tostring(status.Value))
		elseif round == "round2" then
			status.Value = "round3"
			runRounds(tostring(status.Value))
		elseif round == "round3" then
			status.Value = "intermission"
			round.Value = "waiting"
			db = false

		end
	end)


--this part of the script is what doesntwork for when the player who just dies vvv
		player:WaitForChild('HumanoidRootPart').CFrame = spawns.spawn.CFrame 
		player1:WaitForChild('HumanoidRootPart').CFrame = spawns.spawn1.CFrame

--rest of the script

print("spawned")

if status.Value == 'round1' then
	local sword1 = sword:Clone()
	local sword2 = sword:Clone()

	sword1.Parent = player
	sword2.Parent = player1
elseif status.Value ~= 'round1' then
	if winner == player1.Name then
		local sword1 = sword:Clone()
		sword1.Parent = player

	else
		local sword1 = sword:Clone()
		sword1.Parent = player1
	end
end

end