Problem Instantiating Particle System

Right so all I’m trying to do is instantiate a particle system that plays a burst of sparks when a bullet hits a collider. Here is my code.

function FireOneShot () {
	var direction = transform.TransformDirection(Vector3.forward);
	var hit : RaycastHit;
	
	audio.PlayOneShot(shotfired);
	
	// Did we hit anything?
	if (Physics.Raycast (transform.position, direction, hit, range)) {
		// Apply a force to the rigidbody we hit
		if (hit.rigidbody)
			hit.rigidbody.AddForceAtPosition(force * direction, hit.point);
		
		Instantiate(hitParticles, hit.point);
		
		audio.PlayClipAtPoint(ricochet, hit.point, .4);

		// Send a damage message to the hit object			
		hit.collider.SendMessageUpwards("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
	}
	
	bulletsLeft--;

	// Register that we shot this frame,
	// so that the LateUpdate function enabled the muzzleflash renderer for one frame
	m_LastFrameShot = Time.frameCount;
	enabled = true;		
}

hitParticles is a variable of type ParticleSystem and I don’t know why but this gives me the following error: “No appropriate version of ‘UnityEngine.Object.Instantiate’ for the argument list ‘(Unity.ParticleSystem, UnityEngine.Vector3)’ was found.”

Instantiate needs three parameters. One for the object you need to spawn, one for it’s position and one for it’s rotation.
Create a prefab of your particle system, change the hitParticles type to a GameObject, drag the prefab to the hitParticles variable in the inspector and replace

Instantiate(hitParticles, hit.point);

with

Instantiate(hitParticles, hit.point,hitParticles.transform.rotation);

Edit: You can also look at the comment i left below for more information.

Thanks snake, yea I was using the particles as a prefab but I was being dumb trying to constrain what type of variable was being used too much.