Particle Emitters do not emit particles unless looked at once

When having Enabled ParticleEmitter objects spawned in the world, they do not emit particles until you look at them at least once.
This issue becomes apparent when having objects with long lifetimes, where the player must look at the particle first before it starts rendering. This issue is especially apparent in this video:

Expected behavior

ParticleEmitters should always emit particles much like Beams, stacking off-screen.

Reproduction

ParticleEmitter_BugRepro.rbxl (34 KB)
Open the following place in Studio, and press ‘Run’ (F8), playing on the server.
The camera position starts off facing the opposite way of the particles, and rotates 180 degrees 3 seconds later.
The ParticleEmitter object should have already emitted some particles before that, but does not.

Workarounds

None. I originally planned to implement custom emission through the following code:

while true do
	ParticleEmitter:Emit(1)

	task.wait((1 / ParticleEmitter.Rate) / ParticleEmitter.TimeScale)
end

But when doing so, the spawned particles never de-rendered when off-screen, and instead kept stacking. The spawned particles start de-rendering normally again when looked at once.

17 Likes

For clarification: I structured this post in the format of a bug report, but I’m told by staff this currently is intended behavior.
Sorry for any possible confusion in terms of the post’s structure.

4 Likes

I posted about this a while ago, and yeah, it is intended behavior. I think it is very frustrating though, and if it’s meant to be a cover-all performance optimization, then we should be given the ability to disable this behavior for specified emitters. It can be really disruptive for a game’s art direction if a large particle pops in and out of existence based on whether or not you look at it.

8 Likes

Agreed. Despite it being expected behavior, it is extremely disruptive to development workflows, as there are no alternatives provided - creating one’s own emitter system has it’s own bugs and demerits, making it impossible to circumnavigate this behavior in any way.

1 Like

Just for reference of other readers, here is the source:

Basically it’s a known limitation yeah.

2 Likes