I have a particle system that spawns one particle per second, with a technically “infinite” (100000 seconds) lifetime. I am using them to leave a trace of the trajectory of an object in time.
However after about 1000 seconds they start disappearing. I though it might have been some memory or buffer issue, but even spawning 10 particles per second, the first ones start disappearing after about 1000 seconds.
There was a similar question asked years ago, but it seemed like it never got solved : https://answers.unrealengine.com/questions/130672/view.html
For any future reader, I think I might have solved this.
Both in the Particletrail2EmitterInstance.cpp and in the ParticleGpuSimulation.cpp modules there are two lines of code which clamp particle.OneOverMaxLifetime to 0.001 if it is smaller than that, and that is equivalent to a lifetime of 1000 seconds. Changing both those lines allowed me to get particles that survive for more than 1000 seconds (It might be enough to change one of the two, but just to be sure i changed both). I am not sure if this will break some other part of the engine, but for now it seems to work.
If any Epic emplyee reads this, let me know if it is an intended feature or a bug.