@richardkettlewell I use the ParticleSystem not just for traditional particle effects, but also as a "generic fast renderer". For example, I use the ParticleSystem to emit footprints and bullet impacts. Using a particle system to render hundreds of these objects is a lot faster than using a MeshRenderer for each single "decal". I use the "Max Particles" property to limit the particle system to e.g. 100. Now I walk around with the player and emit lots of footprint particles in the world. If the particle system contains 100 particles, no further particles will be emitted, unless old ones die. I would like to have an option that a new particle is emitted always, BUT it replaces the oldest particle, like a ring-buffer concept. This has a big advantage for rendering these kind of things. So far, I need to specify a particle lifetime to make sure there is always room for a new particle. However, if the player does not move and is just looking around, it's very noticeable that older footprints vanish due to the lifetime. (no matter whether they fade out or just hide immediately) If the particle system supports to replace the oldest particle with a new one, particles can have an infinite lifetime, while maintaining the "Max Particles" budget. In my case, the problem with obvious vanishing of footprints would be minimized as well, because old particles get replaced while the player is moving only, which is hiding this issue. The same applies to bullet impacts. Several games seem to use that "ring buffer" concept for these things. For example, I noticed this recently in Call of Duty Modern Warfare Remastered. I believe this mode is generic and could be used for a lot of things, not only for what I use it in my game. That's why I suggest it here for the ParticleSystem, rather than coming up with a custom solution. I could probably use DrawMeshInstancedIndirect for that as well, but it feels a bit overkill for just a quad to use GPU instancing for that. The ParticleSystem also comes with a lot of useful other options, that would require a tremendous effort to reimplement in an own system. What do you think?