Colliders won't be added to List?

So I’m doing an explosives script, similar to the gun from “Resistance 2” where the bullet I shoot connects to the surface/enemy I shoot at and then on right click the bullet explodes damaging everything in range. The problem I’m having is that the only thing that will get added to the trigger (I’m using a trigger to check whats in range) is the player. Any idea’s on why this is happening?

This is my pistol script

	public float fireRate = 1;
	public float timeToNextFire = 0;

	public int ammoCount = 9;
	public int maxAmmo = 9;
	public int minAmmo = 0;
	public int reserveAmmo = 27;

	public int damage = 10;

	public RaycastHit hit;
	public Transform rayOrigin;

	public Text ammoCountText;
	public Text reserveAmmoText;
	public Text outOfAmmo;
	public Image ammoBar;
	public Text outOfGrenade;
	public Image hitMarker;

	public GameObject Explosive;

	// Use this for initialization
	void Start () 
	{
		UpdateUI ();
		hitMarker.enabled = false;
		outOfGrenade.enabled = false;
		outOfAmmo.enabled = false;
	}

	// Update is called once per frame
	void Update ()
	{
		if (ammoCount > 0) 
		{
			outOfAmmo.enabled = false;
		}
		UpdateUI ();
		if (ammoCount == 0) 
		{
			Debug.Log ("Reload!");
			outOfAmmo.enabled = true;
		}

		if (Input.GetMouseButtonDown (0)) 
		{
			Shoot ();
		}
		else 
		{
			if (Input.GetKeyDown (KeyCode.R)) 
			{
				Reload ();
				UpdateUI ();
			}
		}
		Vector3 fwd = rayOrigin.transform.TransformDirection (Vector3.forward);
	}

	void Shoot()
	{
		if(ammoCount >0)
		{
			ammoCount--;
			Vector3 fwd = Camera.main.transform.TransformDirection(Vector3.forward);
			if(Physics.Raycast(rayOrigin.transform.position, fwd, out hit))
			{
				GameObject explosive = (GameObject) Instantiate (Explosive, hit.point, Quaternion.FromToRotation (Vector3.forward, hit.normal));
				explosive.transform.parent = hit.collider.gameObject.transform;
				print (hit.collider.tag);
				if(hit.collider.tag == "Target")
				{
					Debug.Log ("Hit");
					hit.collider.gameObject.GetComponent<Target>().Damage(damage);
					StartCoroutine (Hitmarker ());
				}
			}
		}
	}


	void Reload()
	{
		if(reserveAmmo > 0)
		{
			int BulletsNeeded = 0;
			BulletsNeeded = maxAmmo - ammoCount;
			if (reserveAmmo < BulletsNeeded) 
			{
				ammoCount = reserveAmmo + ammoCount;
				reserveAmmo = 0;
			} 
			else 
			{
				reserveAmmo -= BulletsNeeded;
				ammoCount += BulletsNeeded;
			}
			outOfAmmo.enabled = false;
		}
	}

	void UpdateUI ()
	{
		ammoCountText.text = ammoCount.ToString ();
		reserveAmmoText.text = reserveAmmo.ToString ();
		ammoBar.fillAmount = ((float)ammoCount) / ((float)maxAmmo);
	}
	IEnumerator Hitmarker () 
	{
		hitMarker.enabled = true;
		yield return new WaitForSeconds(0.1f);
		hitMarker.enabled = false;

	}
	public void addAmmo (int amount)
	{
		amount = Mathf.Abs (amount);
		reserveAmmo = Mathf.Min (reserveAmmo + amount, 100);
	}
}

and this is the script that is on the bullet that instantiates

{
	public int ExplosiveDamage = 10;
	public int ExplosiveDamgePlayer = 5; 
	[SerializeField]
	List<GameObject> inRange;

	public GameObject Particle;
	// Use this for initialization
	void Start () 
	{
		inRange = new List<GameObject> ();
		Particle.SetActive (false);
	}
	
	// Update is called once per frame
	void Update () 
	{
		if (Input.GetMouseButton (1)) // && gameObject.GetComponentInParent<GunSwapScript>().usingPistol == true
		{
			Particle.SetActive (true);
			Explode ();
//			Destroy (gameObject);
		}
		if (Input.GetKeyDown (KeyCode.R))
		{
			Particle.SetActive (true);
			Explode ();
//			Destroy (gameObject);
		}
	}
	void Explode () 
	{
		foreach (GameObject obj in inRange) 	
		{
			if (obj.tag == "Target" && gameObject != null) 
			{
				Target Enemy = obj.GetComponentInParent<Target> ();
				Enemy.Damage (ExplosiveDamage);
			} 
			else if (obj.tag == "Player") 
			{
				HealthScript Player = obj.GetComponent<HealthScript> ();
				Player.Damage (ExplosiveDamgePlayer);
			} 
			else 
			{
			}
		}

	}

	void OnColliderEnter (Collision other) 
	{
		if (!inRange.Contains (other.gameObject)) 
		{
			inRange.Add (other.gameObject);
		}
	}

	void OnColliderExit (Collision other) 
	{
		if (inRange.Contains (other.gameObject)) 
		{
			inRange.Remove (other.gameObject);
		}
	}
}

Like I said, the only think that will be added/taken away from the inRange list is the player.

Rather than maintaining a list, inside your Explode() you can get colliders in range using Physics.OverlapSphere or Physics.OverlapBox as done here in example source code Rigidbody.AddExplosionForce

You can use similar logic to that script where you can get the array of colliders and then iterate over them to apply damage.