I would like my particle effect to fire once when I shoot and that's it. I think I got the code setup so that it ques when firing alright however the particles keep playing. I turned off looping and play on awake. Not sure what's causing it if it's in my code or the particle system. In this script I also have an impact effect with a fire rate set at .50f. Does the fire rate also effect how often the particle effect will go? I'm trying to get it so that when I "Fire" the dust comes out of the gun and the impact effect hits the wall instantly. .50 later I can fire again. Thank you!! Code (CSharp): using UnityEngine; public class Gun : MonoBehaviour { public float damage = 10f; //Damage public float range = 500f; //Range of bullet public float fireRate = .50f; //Greater fire rate = less time between shots. public float impactForce = 30f; //Impact (velocity) public ParticleSystem Muzzle; public Camera fpsCam; //Camera. Click and drag off of hierarchy public GameObject impactEffect; //Prefab system for impact private float nextTimeToFire = 0f; //Instant shot (no lag when pressing down) void Update() { if (Input.GetButtonDown("Fire1") && Time.time >= nextTimeToFire) { nextTimeToFire = Time.time + 1f / fireRate; Shoot(); } } void Shoot() { Muzzle.Play(); //Play muzzle / barrel RaycastHit hit; if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range)) { Target target = hit.transform.GetComponent<Target>(); if (target != null) { target.TakeDamage(damage); } if (hit.rigidbody != null) //Hit rigidbody component { hit.rigidbody.AddForce(-hit.normal * impactForce); } GameObject impactGO = Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal)); Destroy(impactGO, .25f); // Destroy impact effect { } } } }