A way to make ParticleEmitter rate ignore graphics quality

As a Roblox developer, it is currently too hard to have decent looking particles in low detail.
I am trying to make an item that can be bought, that emits bubbles. In low detail mode, the bubbles come out at a rate so slow, it would be considered scamming the player when they bought it!

Here is a prototype. The first video is with high graphics, the second one is with low graphics.

If Roblox is able to address this issue, it would improve my development experience because I would be able to safely sell an item that is compatible with a low graphics quality.

EDIT: I believe this is possible to do with ParticleEmitter:Emit()


I and all developers making effects could really use this.

1 Like

If nothing else, the rate limiter for lower graphics should be made smarter. There is no reason my particles that have a rate of 1.25 should be so severely rate limited.

Here’s how my effect looks at graphics 10:

Not bad. Here’s the sad nothing it becomes at lower graphics levels:

Of note is how it looks at graphics 1, which is what most people with low-end devices set-and-forget their graphics level at.

Unfortunately, my only way of working around this is by manually emitting at set intervals. This is a pretty annoying workaround to a problem that doesn’t even really need to be a thing in the first place, in my opinion.


The problem with manually emitting particles is that they freeze if the particle is offscreen.

This can become a big deal later on and could result in poor performance:

For more info I guess

Recently, I have developed a resource that effectively removes the LOD that’s imposed from the engine. Until Roblox implements a method allowing developers to adjust the LOD natively, my resource remains the only available one to achieve this. Please note that this approach does not use :Emit(int) as there’s performance concerns, instead, it recalculates the particle rate property dynamically based on your Settings quality & Camera distance.

This should effectively mitigate your problems for the meanwhile, though I still want to make it clear that Roblox should be making it so that developers can control the LOD for such features as blocking this is only lowering the bar for creativity.


I dont see any other way except for using :Emit() function