Waiting for players to touch a brick not working

So I tried to make a script that waits for a certain amount of players to touch a brick then after the amount of players is reached the script destroys the baseplate, that was just an example.

There are no errors in the output but the problem with this script is that once the amount of players are reached the script does nothing.

Here is the script.

local sp = script.Parent
local PlayersTouched = {}

sp.Touched:Connect(function(hit)
    if game.Players:GetPlayerFromCharacter(hit.Parent) then
        local Players = game.Players:GetPlayerFromCharacter(hit.Parent)
        table.insert(PlayersTouched, Players) 
    end
end)

sp.TouchEnded:Connect(function(hit)
    if game.Players:GetPlayerFromCharacter(hit.Parent) then
        local Player = game.Players:GetPlayerFromCharacter(hit.Parent)
        table.remove(PlayersTouched, table.find(PlayersTouched, Player))
    end
end)

while true do
	wait()
	if #PlayersTouched == 1 then -- Setting this to one because I am the only one testing
		game.Workspace.Baseplate:Destroy()
	else
		print("Not destroyed")
	end
end

But when I set it to if #PlayersTouched == 0 then It destroys the baseplate.
Thanks in advance.

It may not work because you are not checking if the player is in the list already. And since you are using .Touched roblox might count it as multiple touches (Torso,Head,Arms,Legs) and the PlayersTouched table will be greater than 1. I suggest you to check if the player is already in the list before adding the player to the list. (I might be wrong so if it doesnt work sorry)