Any help is most appreciated, I'm not sure where I'm going wrong. I'm making a racing game and want there to be rocks that fly off the tires when you go offroad. The problem I'm having is with the particle system not firing when it should. I use this for the ground to trigger a bool and the bool fires fine. Code (CSharp): using System.Collections; using System.Collections.Generic; using UnityEngine; public class GroundEffect : MonoBehaviour { public void OnTriggerEnter(Collider other) { if (other.gameObject.CompareTag("Player")) { other.transform.root.GetComponentInChildren<KartController>().isOnGround = true; } } public void OnTriggerExit(Collider other) { if (other.gameObject.CompareTag("Player")) { other.transform.root.GetComponentInChildren<KartController>().isOnGround = false; } } } In this video, I show the plane settings and the error with my current rocks system and with a default particle system. It also only checks if "IsOnGround" is true which seems to work just fine. Here is the video - Here's the code I'm using in the video. Code (CSharp): void Update() { //Follow Collider transform.position = sphere.transform.position - new Vector3(0, 0.4f, 0); if (!isOnBoostStrip) { //Accelerate if (Input.GetButton("Fire1")) { speed = curAccel; } //Reverse if (Input.GetButton("Fire2")) { speed = -curAccel / 3; } if (!isOnGround) { curAccel = zAcceleration; } if (isOnGround) { curAccel = zAcceleration / 2; } } else if (isOnBoostStrip) { speed = zAcceleration * boostStripSpeed; foreach (ParticleSystem p in exhaustParticles) { if (!isDrifting) { c = turboColors[0]; } var pmain = p.main; pmain.startColor = c; p.Play(); } } //Rocks if (isOnGround) { foreach (ParticleSystem p in groundParticles) { Debug.Log(isOnGround); p.Play(); } } } My other particle systems all work great, I have them on the wheels and the exhaust and they work fine using the same "foreach". So I tried to play the exhaust particles instead of the ground ones in this instance, and they operate with the same weird behavior. Below someone suggested that I see if unity thinks the particles system is playing with a "Debug.Log(p.IsPlaying);" which I did. It shows that it's playing but it isn't. I don't get why the bump triggers it. My code just checks for "if (isOnGround)", now if I remove this the particle system will play non-stop but error-free.