Plate system not working?

What I would like to achieve is that my game is supposed to load up plates like Plates of Fate and give them out to every player in the game. My issue is that every first round it works completely fine and then the next rounds it dosent. I Have no idea what im doing wrong?? I tried to change my system a little up and trying to find it. but I cant find anything thats affecting it.

for i,v in pairs(Players) do
		
		local num = math.random(1,#availablePlates)
		local chosen = availablePlates[num]
		
		
		
	local plateValue = Instance.new("ObjectValue",v) -- This is the value which i get the players  assigned plate.
	plateValue.Name = "Plate"
	plateValue.Value = plates:FindFirstChild(chosen.Name) -- Somehow it changes to a diffrent plate when its assigned to the same Plate
	
		
	v.Character.HumanoidRootPart.Position = plateValue.Value.Position + offset
	
	table.remove(availablePlates,num)
end
	
for _, player in pairs(Players) do
	local found = table.find(availablePlates,player)

	if found then
		table.remove(availablePlates,found)
	end
end
	
for i,v in pairs(availablePlates) do
	v.Transparency = 1
	v.CanCollide = false
end
	

It’s because you set this for only time.
Have you tried making a round system?

You can use the for i = 1, (selected time) system to create a round system and then once it’s over allow the game to began and reset the for i loop once it’s over so it would repeat

This runs under a while task.wait() do

But the problem was that after the first round it would teleport the player to the right plate. but all the events finds the players plate by the object value under
game.Players[Player].Plate.Value
But it seems like it has been set to something else and not the plate they are standing on?