All players spawning in the same spot

So I have plot system where players have their own plot. But im trying to make it so they spawn in their own seperate plot. I removed the spawn point, and making them spawn where there supposed to spawn does not work and they all spawn in the middle of the map. here is the script

for _,stand in pairs(getAllStands) do
		local spawnPart = stand:FindFirstChild("SpawnPartForPlayer")
		if stand:GetAttribute("Claimed") == false and spawnPart:GetAttribute("Occupied") == false then
			local plrCharacter = plr.Character or plr.CharacterAdded:Wait()
			
			if plrCharacter then
				local humRootPart = plrCharacter:FindFirstChild("HumanoidRootPart")
				humRootPart.CFrame = spawnPart.CFrame
				spawnPart:SetAttribute("Occupied", true)
				
				if dataModule.Get(plr).PassedTutorial == false then
					tutorial.PlayTutorial(plr, stand)
					
				end
				
			end
			break
		end
	end

You need to make it so that when a player claims a plot, it finds they character and binds a respawn function to their player.CharacterAdded()

so like when they claim a plot add

local PlayerClaimedPlot(plr, spawnpoint)
    plr.CharacterAdded:Connect(function(char)
        char:WaitForChild("HumanoidRootPart").CFrame = spawnpoint.CFrame
    end)
end

Then if you call Player Claimed exactly once (it will be bad if you call that more than once per player without disconnecting) then every time that player respawns you’ll detect it and teleport them to the spawnpoint.