As a Roblox developer, it is currently too hard to use particles and beams to reliably convey different images or effects. Due to the way graphics level automatically reduces particle rates and beam segments, users may not see the intended effect based on their settings which is a problem in specific cases.
For example, I made this effect using beams where a circle grows into a flower, and it looks great on high graphics, but when turning graphics level down it is literally just a square:
With max graphics: https://i.gyazo.com/18f0e148ef0668af916fa71d74048e53.mp4
With min graphics: https://i.gyazo.com/49c324c821d803ceb1481d8408c1034f.mp4
Another more simple example is this splash effect. In these clips, the emitter is only enabled for 0.5 seconds the rate is 30, and the lifetime is 0.5-0.7. That’s 15 particles on screen for less than a second, and low graphics brings it down to just 1, making an important part of the effect barely visible (the ripple & plunge effect are both controlled using the Emit function)
Max graphics: https://i.gyazo.com/1590b52507a1754048124e45b0f2b766.mp4
Min graphics: https://i.gyazo.com/12c027389eba67d97dbb21829a45bd26.mp4
I don’t mean to discredit the graphic levels because I’m sure reducing particle rates does help with performance across the board, but in the examples I’ve shown the reduction is way too harsh and I would personally take 14 more particles and a few beam segments over a tiny performance benefit.
Developers can already bypass the decreased emission by manually calling :Emit(x) but that presents several issues:
- If your camera isn’t facing the emitter it won’t emit until you look at it
- You have to manually script emission for really simple effects
I suggest a new property on particle emitters & beams that disables the scaling with graphics altogether. I know it’s implemented for good reasons, but it is frustrating in cases where the full effect would most likely run fine on all devices.