I'd expect to be able to set particle lifetime to zero and have them never die. This relates to the fact that many parameters that shouldn't have a max value are arbitrarily capped e.g. Lifetime at 600, Damping 100, etc ...
You can't keep generating particules infinitely without make them die, so lifetime cannot always be infinite.
For fixed-count particles however (for example 50 orbs rotating in a circle, or grass), that would be relevant.
Is there a particular reason why those parameters are capped as they are? It might not be arbitrary.
If infinite-lifetime particles are allowed, then there should also be no limit to finite-lifetime particle lifetimes.
Looks like the above PR might've fixed it.
If not, maybe setting lifetime to 0 should make it infinite? 0 lifetime doesn't make much sense anyways.
@KoBeWi with the current system for particles it doesnt make sense to have infinite lifetime for particles. However, it would be nice to implement a new feature in conjunction with fixed-count particles. As Zylann explains above.
Is this still being considered for one-shot particles? I'm using those e.g. for vegetation. While the maximum lifetime should realistically never be reached, it still feels a bit hacky.
For static objects you should be using a MultiMeshInstance, not particles.
That being said, someone should still make a PR for infinite life particles.
I'm not sure this is possible given the current setup. I though it might be, but now I don't think so.
For now, as a workaround, you can set the lifetime at 1,000,000,000 seconds which is equivalent to about 317 years. If your game needs to run for more than 317 years, then I am truly sorry.
1 billion seconds is actually 31.7 years, not 317. If Godot supports 64-bit timestamps, we could make it run for about 292,277,000,000 years. If you encounter an issue with this time limit, please file a bug report in whatever bug tracker exists in the future. If bug trackers do not exist in the future, god help you.
My bad. If 31.7 years is a dealbreaker we can always reopen the issue. :laughing:
Most helpful comment
I'm not sure this is possible given the current setup. I though it might be, but now I don't think so.
For now, as a workaround, you can set the lifetime at 1,000,000,000 seconds which is equivalent to about 317 years. If your game needs to run for more than 317 years, then I am truly sorry.