Teleport System Code Doesn't Work

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? Keep it simple and clear!

Once an individual dies within the elevator, the player is removed from the table or when they press the left button.

  1. What is the issue? Include screenshots / videos if possible!

Detects the player dying but does not remove them from the table.
https://gyazo.com/2a8b34df4b63837f72e1c54fbab066fb

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local TeleportService = game:GetService("TeleportService")

local elevators = workspace.Elevators

local playersInElevator = {}
local countdownRunning = false

--local function MoveElevator()
	
--end

RunService.Heartbeat:Connect(function()
    for _, elevator in elevators:GetChildren() do
        local foundPlayers = {}
		local gui = elevator.ElevatorCountdown.SurfaceGui

		local function TeleportPlayers()
			local placeId = (i have it inserted but)
			TeleportService:TeleportAsync(placeId, playersInElevator)
		end

		local function RunCountdown()
			countdownRunning = true
			for i=10, 1, -1 do 
				gui.Countdown.Text = "" .. i
				task.wait(1)
				--print(#playersInElevator)
				if #playersInElevator < 1 then
					print("no people")
					countdownRunning = false
					gui.Countdown.TextTransparency = 1
					return
				end
			end
			countdownRunning = false
			print("teleporting")
			TeleportPlayers()
		end

        for _, v in workspace:GetPartsInPart(elevator) do
            local char = v:FindFirstAncestorOfClass("Model")
            
            if char and Players:GetPlayerFromCharacter(char) and not table.find(foundPlayers, Players:GetPlayerFromCharacter(char)) and char.Humanoid:GetState() ~= Enum.HumanoidStateType.Dead then
                table.insert(foundPlayers, Players:GetPlayerFromCharacter(char))
            end
		end
		
        if #foundPlayers > 0 then
            for _, player in pairs(foundPlayers) do
                local tp = false

                if not playersInElevator[elevator] then
                    playersInElevator[elevator] = {player}
					elevator.Players.Value = #playersInElevator[elevator]
					table.insert(playersInElevator, player)
                    tp = true
                else
                    if not table.find(playersInElevator[elevator], player) and #playersInElevator[elevator] < tonumber(elevator.Name) then
						table.insert(playersInElevator, player) --s
						table.insert(playersInElevator[elevator], player)
                        elevator.Players.Value = #playersInElevator[elevator]
						tp = true
                    end
                end

				if tp then
					print("can tp")
					player.Character.HumanoidRootPart.CFrame = elevator.SpawnLocation.WorldCFrame
					ReplicatedStorage.ElevatorCamera:FireClient(player, true, elevator)
					if not countdownRunning then
						RunCountdown()
					end
				end
			end
        end
    end
end)

Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		character.Humanoid.Died:Once(function()
			for _, elevator in pairs(elevators:GetChildren()) do
				if playersInElevator[elevator] then
					if table.find(playersInElevator[elevator], player) then
						print("died")
						print(playersInElevator)
						print(elevator)
						elevator.Players.Value = #playersInElevator[elevator]
						table.remove(playersInElevator[elevator], table.find(playersInElevator[elevator], player))
						ReplicatedStorage.ElevatorCamera:FireClient(player, false, elevator)
						break
					end
				end
			end
		end)
	end)
end)

ReplicatedStorage.ElevatorCamera.OnServerEvent:Connect(function(player, enabled, elevator)
	if not enabled then
		for _, elevator in pairs(elevators:GetChildren()) do
			if playersInElevator[elevator] then
				if table.find(playersInElevator[elevator], player) then
					table.remove(playersInElevator[elevator], table.find(playersInElevator[elevator], player))
					elevator.Players.Value = #playersInElevator[elevator]
					ReplicatedStorage.ElevatorCamera:FireClient(player, false, elevator)

					player.Character.HumanoidRootPart.CFrame = elevator.LeaveLocation.WorldCFrame

					break
				end
			end
		end
	end
end)```