Don't know how to get a player's maximum framerate setting

For what I know, there’s the possibility of getting the graphics quality setting of a player, and not long ago Roblox released a maximum framerate setting. Is there any way to get that setting of a player, just like the graphics quality one?

this post here shows how to get the player fps not the MAX fps is it still of use?

I know I can get the framerate, I was just curious and wanted to know if it was possible to get that setting. Thanks for the help though!

Did you find anything about this?

My best guess is just to constantly track the user framerate and see which two framerate options it falls between.
(e.g., player has 100 fps. That’s between 120 and 60, so we can assume that the player’s maximum framerate settings is set to 120.)

Here’s a script I made based on the suggestions in the replies. This script estimates the max fps setting based on the fps that the client is running at. Because of this if the client is lagging it may estimate a lower amount than the actual setting.

I rushed this in like 30 minutes so excuse my code. I also tried to leave some comments to make this script easier to understand. Also fps changing is broken on Metal so if you’re using a Mac change the Graphics Mode setting under Studio Settings > Rendering to something like OpenGL and restart Studio when testing this script.

local fpsValues = {60, 120, 144, 160, 165, 180, 200, 240} -- default fps setting values to compare to
local variation = 1 -- the maximum the fps can go over the fps setting before it's considered the next level
local historyValues = 250 -- the amount of values which gets stored in the lastestimations table
local estimatedMaxFps = -1 -- the estimated max fps variable - not config. i'm using -1 to signal that the max fps hasn't been detected yet
local lastEstimations = {} -- this table is used to store previous estimations to filter out outlier values - also not config
local StatsService = game:GetService("Stats")

local fps = 0 -- im using this variable to store the fps for reference outside the renderstepped connection

local function getMode(inputTable) -- gets the mode of the values in a table
	local counts = {}
	local maxCount = 0
	local modeValue = nil

	for _, value in pairs(inputTable) do
		counts[value] = (counts[value] or 0) + 1
	end

	for value, count in pairs(counts) do
		if count > maxCount then
			maxCount = count
			modeValue = value
		end
	end

	return modeValue, maxCount
end

game:GetService("RunService").RenderStepped:Connect(function()
	fps = 1 / StatsService.FrameTime -- stats.rameTime returns a more reliable value than delta time for our use case
	
	local newEstimation = 0 -- if this value remains 0 then the fps is above the highest max fps setting
	for i, value in pairs(fpsValues) do -- compare current fps to the fps settings table
		if fps < value + variation  then
			newEstimation = value
			break
		end
	end
	
	-- we use a table that stores 15 of the last max framerate estimations to filter out outliers
	table.insert(lastEstimations, newEstimation)
	if #lastEstimations > historyValues then
		table.remove(lastEstimations, 1)
	end
	newEstimation = getMode(lastEstimations) -- gets the mode, or most often recurring value from the table
	if estimatedMaxFps ~= newEstimation then
		estimatedMaxFps = newEstimation
		
		-- Add your own code here. This runs whenever the FPS setting is changed.
		print("Max FPS setting changed to "..estimatedMaxFps)
	end
end)

while true do -- loop to print the estimated max fps every 0.25 seconds
	print(estimatedMaxFps)
	task.wait(0.25)
end