How can I add inaccuracy to this script?

I have a machine-gun script that I would like to add bullet spread to. Could someone please take this script and add in bullet inaccuracy please? Here is the script:

#pragma strict

var Effect : Transform;
var TheDammage = 100;
var gunshotSound : AudioClip;
var reloadGrenade : AudioClip; //sound clip to reload our grenade launcher
var ammoCount : int = 47; //how much ammo in our clip
var totalAmmo : int = 235; //how much total ammo we have available
var reloadTime : int = 5; //how long it takes before we've reloaded
var reloadAmount : int = 47; //how many grenades we'll reload
var ammo : GUIText; //our GUI text that displays our ammo in text format
var fireRate : float = 0.1;
var bulletHole : Material;
var force = 10;
private var nextFire : float =0.0;
public var spreadFactor : float = 0.02;
 
function Update ()
{ 
	Fire ();
	Reload();
	OnGUI();
}
 
function Fire () {

	if (Input.GetButton("Fire1") && Time.time > nextFire) {
		
		if (ammoCount > 0) {
 
			nextFire = Time.time + fireRate;
 
			InstantiateGrenade();
 
			ammoCount -=1;
 
		}
 
	}
 
}
 
//---------------------------------------------------------------------------------
 
function InstantiateGrenade () {
	var hit : RaycastHit;
	var ray : Ray = Camera.main.ScreenPointToRay(Vector3(Screen.width*0.5, Screen.height*0.5, 0));
	
	if (Input.GetMouseButton(0))
	{
		AudioSource.PlayClipAtPoint(gunshotSound, transform.position, 1);
		if (Physics.Raycast (ray, hit, 500))
		{
			var particleClone = Instantiate(Effect, hit.point, Quaternion.LookRotation(hit.normal));
			var hitRotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
			Instantiate(bulletHole, hit.point, hitRotation);
			Destroy(particleClone.gameObject, 2);
			hit.transform.SendMessage("ApplyDammage", TheDammage, SendMessageOptions.DontRequireReceiver);
		}
	}
}
 
//---------------------------------------------------------------------------------
 
function Reload () {
 
	if(ammoCount < 1 && totalAmmo > 10) { //if we have less than 1 bullet then we can reload
 
	if(Input.GetKeyDown("r")) {
 
		AudioSource.PlayClipAtPoint(reloadGrenade, transform.position, 1); //plays reload soundclip
 
		yield WaitForSeconds(reloadTime); //waits for "reloadTime" before adding ammo
 
ammoCount += reloadAmount; //adds ammo to our "clip" based off the reloadAmount
 
totalAmmo -= reloadAmount; //subtracts whatever the reloadAmount was from our total ammo every time we reload
 
}
 
}
 
}
 
//---------------------------------------------------------------------------------
 
function OnGUI () {
 
ammo.text = "Ammo: " + ammoCount + "/" +  totalAmmo.ToString(); //displays our GUI Text in the format we want. The sections in "" will appear exactly as their written
 
}

where is the part that relevant to ammo fire? i see only the grenades part…