Particle emitter limit on low graphics is impacting my game

i am making a core game, and particles are supposed to come out of it, like auras going around the core for example, but low graphics cause these said auras to only appear once in a while and i dont know how to fix this, any help would be appreciated

1 Like

The reason the particles are limited is because the low graphics…
People need the low graphics to run roblox sometimes…

If particles were being rendered at full detail no matter what it would cause your game to crash on many devices that arent capable of rendering much.

And, not to mention, since particles are only visual, it isnt really impacting your game. Its just a cool visual thing that people who can handle higher graphics will be able to see properly.

Short answer:
There is no way to “fix” this as it is just roblox optimizing their game for worse devices.

Bad answer, which I don’t recommend doing, and I also think is impossible but I’m not sure:
You could try and detect what graphics quality the user is on and increase the particle rate depending what the graphics quality is.

Particles are not too expensive in low amounts, prefer setting a high particle lifetime and keeping the rate low, that way you get the aura effect you mentioned without unnecessarily bottlenecking performance, I believe that will also fix your issue, at least with the low amount of context I have.

If you can provide more information it would be useful to know at what distance or what situations this happens in specifically, rendering issues are hard to track down if you don’t know when it happens.

Now for a hacky solution to the quality issue @Chark_Proto mentioned, if you really want to, regardless of the quality settings, output a specific amount you could make a script that emits the particles manually using ParticleEmitter:Emit(), which always emits the exact amount you pass.
An example of what I mean would be:

local emitter: ParticleEmitter = ...

while true do
    emitter:Emit(1)
    task.wait(1 / emitter.Rate)
end

Though this is just an example to illustrate what I mean. Assuming the emitters Rate is 16 this code will emit 1 particle 16 times a second, regardless of quality settings.
Remember not to use too many, you don’t need a lot of particles for your desired effect.

2 Likes

heres the difference for the main particles for my game assuming you use graphics 2 without any of the bypasses

i implemented this (added a boolvalue to allow toggle functionality), and when its off, you get the exhausted allowed execution time error

edit: i fixed this by adding a task.wait() to the script

Although this would work, there is a “bug” where if you are emitting a particle outside of the player’s viewport, it would stop the particle’s time and completely freeze unless it gets back in the viewport.

thats not an issue, its only effects for the core, and 90% of the time the player wouldnt even notice. It just makes a giant outburst when the effect re-enters the viewport

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.