This is something that I wrote as a bug report before, but was flabbergasted to find out this is considered “intentional” behavior - Particles, typically despawning on a timer, do not run their time when not being looked at. This is clearly not good behavior, by anyone’s definition of the term, but evidently it’s something the developers knew about when making particles, so technically not a bug.
For those of you who don’t know what I’m talking about, please look at these two videos below - Notice how when looking away, particles continue to be spawned, but do not expire on their timer.
This should honestly, in my humble, but brutal opinion, never have been allowed into the game in this state. It has been becoming increasingly painful to me in game design. A game I’m working on is heavily invested into particles - It makes fluffy clouds out of a few particles. It has airplanes that leave behind trails, too. But this “intentional” lack of functionality destroys my particle effects and pushes the particles to the render limit far, far more often than it actually should be.
Here are some more examples - Top is normal, Bottom is after I had been turned around.
The contrail on the plane is multiple times longer than it should be - due to the manually-spawned particles simply ignoring their timer until I look at them.
It is simply not pleasant - It can even crash clients due to overloading their particles.
There is nothing I can do about this as a developers - any usage of particles, especially manually-spawned ones, can cause this to occur. Particles can last indefinitely when not looked at, seemingly - So even the most minor of particle usage can lead to extreme results. That is not acceptable in my opinion.
So the feature request is simple.
I just want particles to stop being immortal when I’m not staring directly at them.
I agree, this really needs to be changed, or reverted to how it was before this.
Regardless of if a particle is automatic or manually-spawned, on or off-screen, the developer most likely intends for it to be removed after its lifetime. I can’t think of a reason why any developer would want a particle spawned off-screen to be frozen until it’s seen like this.
This discourages me from ever considering manually emitting particles.
I was making a rain system involving many particle emitters, and I noticed as I turned around I could see random large chunks of particles coming into view which didn’t depawn while I was looking away from them. Looks very ugly and causes lag, please fix this!
I believe you can simply disable any particle emitters that are “immortal” while you aren’t looking at them. This happens to my rain system, but since the attachments move in the camera’s view randomly, I don’t have an issue.
I could imagine Roblox making this an opt-in as well.
I’d dare say going through every one of dozens, if not hundreds, of particle emitters a full-size game could have and manually calculating whether or not the player is looking at them is the farthest thing to “simply” one could image.
Doable with some clever localscript usage? Sure.
Simple? Not really.
I’ve had this problem too. Not to the degree of the OP, but when my towers are destroyed they emitted a particle. But if you’ve looked at the particle emitter before the tower was destroyed, and then come back, I still see the emission as if the tower was only just destroyed at the moment I came back to look at it.
I specialize in VFX and when some particles are played and not being currently observed by the client, it’s as if the particles’ existence is paused, and when the player looks in that direction again, they play out as they should.
This is extremely frustrating in many cases, as particles won’t despawn long after the initial effect should’ve concluded, leading to some… awkward scenarios where the player sees the particles play out for an effect that should’ve been long finished.
The only workaround I’ve found for this was by using a module to clear each particle emitter after their LifeTime’s MaxTime.
Running a timer is less intensive than keeping particles rendered on the screen off somewhere. The system does not need to update the particles while they’re not being looked at, only their timer, and if their timer runs out before the person looks back the particle, get rid of it. Stop drawing it.
The system does not need to emit new particles until the person is looking at it again. This is basic optimisation tricks that I’m surprised Roblox hasn’t figured out
As of recently, I’ve started to have to deal with this “bug”.
I added rain to my experience, and I’ve found out the hard way that it manually emits particles. If I look in one direction for a while (or switch to the server’s view for a bit then return), some of the rain will morph into nasty, opaque white blobs! (I tried to get this to happen, but strangely, I only saw duplicated “splashes” tuhat turned into orbs.)
absolutely agreed, it’s completely asinine that this behaviour was even thought of, this has less use cases than the temperature number in antartica, why would you ever need particles to freeze if you arent looking at them??? freeze MECHANICALLY* like whattt, i had to go back to using rate on my auras because this was causing such extreme lag for even 5 seconds of not looking… this NEEDS to change…there’s no reason for this…