Argument out of range when checking at List[0], C#

Im creating a list of a class and trying to check the values and write over the values for saving/loading player stats and there are no errors until i enter play mode.
it looks like im not finding anything at saveData[0] when i try to. and the debug doesnt go off. So im a little confused, is my script ‘not’ creating a new instance of a class and storing it in saveData or is there something wrong with my script?

here is the scripts(mostly–i trimmed them down too be clean and relevant):

#PlayerProcessor.CS

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Serialization;
using System.IO;

public class PlayerProcessor : MonoBehaviour {
	public Player player = new Player();
	public PlayerData playerData = new PlayerData();
	public string path = "";
	public string playerPass = "arandompass";
	public bool modded = false;
	public string location = "whereiam";
	void Start(){
		if (player.saveData == null){
			player.saveData = new List<PlayerData>();
		}
		playerData.MakePlayerData(playerPass, modded, location);
		player.saveData[0] = playerData;
		//Debug.Log (player.saveData[0].pass);
		if(Network.isServer){
			renderer.material.color = new Color(255, 0, 0);
		}
		if(!Network.isServer){
			renderer.material.color = new Color(0, 0, 255);
		}
		Save();
	}
}

#PlayerData.CS

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Serialization;

public class PlayerData {
	[XmlAttribute("name")]
	public string pass = "";
	public bool isMod = false;
	public string area = "";
	public void MakePlayerData(string a, bool b, string c){
		pass = a;
		isMod = b;
		area = c;
	}
}

#Player.CS

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Serialization;

public class Player { 
[XmlArray("PlayerData")] 
[XmlArrayItem("Players")] 
public List<PlayerData> saveData;
	
}

You create a new list of type PlayerData with an unspecified size, then try to assign to it. Use the Add method to populate your list. So on line 20 of PlayerProcessor.cs:

player.saveData.Add(playerData);