Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Making it so that 8+ graphics don't affect particles?

Is there any way to make it so that if your graphics are really high they won't affect the quality of particles? As of right now, if you higher your graphics to 8+, particles become really nice and all, but they cause a lot of lag. Is there any way to make it so that players can't choose 8+ graphics or make it so that 8+ graphics doesn't change the particles quality?

3 comments

0

you can't because Roblox made that as a feature, but there is some possibility that can happen, i think

0

you can't because Roblox made that as a feature, but there is some possibility that can happen, i think

0

You cannot force a player to use a setting. Most of the time users wull have it set to auto so I do not see the problem.

1 answer

Ok so there is a property of UserSettings which can tell you what the player's graphics quality is. However, if you used a function such as the one below:

local setting = UserSettings():GetService("UserGameSettings")
local prevent = {Enum.SavedQualitySetting.QualityLevel8, Enum.SavedQualitySetting.QualityLevel9, Enum.SavedQualitySetting.QualityLevel10}

setting:GetPropertyChangedSignal("SavedQualityLevel"):Connect(function()
	for index, enum in pairs(prevent) do
		if setting.SavedQualityLevel == enum then
			setting.SavedQualityLevel = Enum.SavedQualitySetting.QualityLevel7
		end
	end
end)

You would get an error stating you cannot directly set the graphics quality Enum.

However, you can use the same set-up to directly affect the particle emitters since the property change can be read from:

local setting = UserSettings():GetService("UserGameSettings")
local prevent = {Enum.SavedQualitySetting.QualityLevel8, Enum.SavedQualitySetting.QualityLevel9, Enum.SavedQualitySetting.QualityLevel10}

setting:GetPropertyChangedSignal("SavedQualityLevel"):Connect(function()
	for index, enum in pairs(prevent) do
		if setting.SavedQualityLevel == enum then
			for i, v in pairs(workspace:GetDescendants()) do
				if v:IsA("ParticleEmitter") then
					-- Changes Here
				end
			end
		end
	end
end)

List of Changeable Properties Here: https://developer.roblox.com/api-reference/class/ParticleEmitter

Use the :GetPropertyChangedSignal() to determine if there is a change in graphics quality.

This discussion is preserved as it was. New answers, comments, and votes are closed.