In my game, the graphics quality affecting particle emission rates decreases the smoothness and quality of some aspects of my game.
I’m wondering if there are any possible solutions to avoiding this, and if so how?
There aren’t really an easy way but you can do the :Emit method for particle emitters
ParticleEmitter:Emit(20 -- number of particles)
This one disregards the Graphics Quality so even if you’re at 1 it will still emit 20 particles. You do have to create your system to continuously emit.
To clear the emitted particles you can do the :Clear method.
A solution that worked for me, and hopefully others coming across this post, was this code here:
local lastSetting = -1
game:GetService("RunService").RenderStepped:connect(function()
local GraphicsLevel = UserSettings().GameSettings.SavedQualityLevel.Value
for i,v in pairs(workspace:GetDescendants())do
if v:IsA("ParticleEmitter")then
if not particlesFixed[v] then
local EmitterRealRate = v.Rate
v.Rate = EmitterRealRate * 10 / GraphicsLevel
particlesFixed[v] = EmitterRealRate
elseif GraphicsLevel ~= lastSetting then
local EmitterRealRate = particlesFixed[v]
v.Rate = EmitterRealRate * 10 / GraphicsLevel
particlesFixed[v] = EmitterRealRate
end
end
end
lastSetting = GraphicsLevel
end)
this snippet is the math behind this:
v.Rate = EmitterRealRate * 10 / GraphicsLevel
It shows how you calculate a rate based on graphics level and original emit rate