PlayerAdded fires again when character spawns in

The code: (DOESNT BELONG TO ME!!!)

game.Players.PlayerAdded:Connect(function(plr)

	local ui = plr:WaitForChild("PlayerGui")
	for i,v in pairs(game.StarterGui:GetChildren()) do
		v:Clone().Parent = ui
	end

end)

basically i have characterautoloads set to false and it doesnt load the gui when i load in the game so i have this script in SSS, the problem is, is when i call LoadCharacter() it clones the gui again

This is probably because you have the gui inside of startergui which means it will load the gui and then in your script it does it again so just put the gui somewhere like in replicatedstorage and then clone into the players PlayerGui when they are added to the game