[OPEN SOURCE] SPOOFER FPS, RAM, PIXELS, GQ
Key Required

[OPEN SOURCE] SPOOFER FPS, RAM, PIXELS, GQ

Flex Your FPS And Ping!VearyTryVearyTry 555 views 2.3K executesUpdated Jul 16, 2026
0.0/ 5(1 votes)
010% Positive
Lua Script•300 lines (11246 chars)
--[[
	please tag me (@VearyTry) if it was helpful :)
]]

-- anticheat adonis bypass
local detected, kill
local hooked = {}

if typeof(setthreadidentity) == "function" then
    setthreadidentity(2)
elseif typeof(setidentity) == "function" then
    setidentity(2)
end

for _, v in ipairs(getgc(true)) do
    if typeof(v) == "table" then
        local d_func = rawget(v, "Detected")
        local k_func = rawget(v, "Kill")
        
        if typeof(d_func) == "function" and not detected then
            detected = d_func
            hookfunction(detected, function(...) return true end)
            table.insert(hooked, detected)
        end
        
        if rawget(v, "Variables") and rawget(v, "Process") and typeof(k_func) == "function" and not kill then
            kill = k_func
            hookfunction(kill, function(...) return end)
            table.insert(hooked, kill)
        end
        
        if pcall(function() return rawget(v, "indexInstance") end) and typeof(rawget(v, "indexInstance")) == "table" then
            if v.indexInstance[1] == "kick" then
                pcall(setreadonly, v, false)
                v.indexInstance = { "kick", function() return game:WaitForChild("NeutralizedByBypass") end }
            end
        end
        
        if pcall(function() return rawget(v, "namecallInstance") end) and typeof(rawget(v, "namecallInstance")) == "table" then
            if v.namecallInstance[1] == "kick" then
                pcall(setreadonly, v, false)
                v.namecallInstance = { "kick", function() return game:WaitForChild("NeutralizedByBypass") end }
            end
        end
    end
end

-- debug.info metamethod spoof
local old_nc, old_idx, old_nidx
local hook_nc, hook_idx, hook_nidx

local old_dbg
old_dbg = hookfunction(debug.info, newcclosure(function(arg, ...)
    if typeof(arg) == "function" then
        if hook_nc and arg == hook_nc then arg = old_nc
        elseif hook_idx and arg == hook_idx then arg = old_idx
        elseif hook_nidx and arg == hook_nidx then arg = old_nidx end
    end
    local res = { old_dbg(arg, ...) }
    if typeof(arg) == "number" then
        for i, val in ipairs(res) do
            if typeof(val) == "function" then
                if hook_nc and val == hook_nc then res[i] = old_nc
                elseif hook_idx and val == hook_idx then res[i] = old_idx
                elseif hook_nidx and val == hook_nidx then res[i] = old_nidx end
            end
        end
    end
    return unpack(res)
end))

if typeof(setthreadidentity) == "function" then
    setthreadidentity(7)
elseif typeof(setidentity) == "function" then
    setidentity(7)
end

-- variables & services
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local nya = ReplicatedStorage:WaitForChild("nya", 15)
local executor_name = (identifyexecutor and identifyexecutor()) or "Unknown Executor"

-- spoofer config
local cfg = {
    enabled = true,
    metrics = true,
    fps = 60,
    gfx = 10,
    mem = 850,
    resX = 1920,
    resY = 1080,
    
    jitter = false,
    j_fps = 5,
    j_mem = 50,
    j_gfx = 0
}

-- namecall hook for metrics
old_nc = hookmetamethod(game, "__namecall", newcclosure(function(self, ...)
    local method = getnamecallmethod()
    local args = {...}
    
    if typeof(self) ~= "Instance" then return old_nc(self, ...) end
    
    local target = nya or ReplicatedStorage:FindFirstChild("nya")
    if not checkcaller() and target and self == target and (method == "FireServer" or method == "fireServer") then
        local p = args[1]
        
        if type(p) == "table" and cfg.enabled then
            if p.t == "metrics" and cfg.metrics then
                local new_p = { t = "metrics", token = p.token }
                
                local f_fps = tonumber(cfg.fps) or 60
                local f_mem = tonumber(cfg.mem) or 850
                local f_gfx = tonumber(cfg.gfx) or 10
                
                -- jitter math
                if cfg.jitter then
                    f_fps = f_fps + math.random(-cfg.j_fps, cfg.j_fps)
                    f_mem = f_mem + math.random(-cfg.j_mem, cfg.j_mem)
                    f_gfx = f_gfx + math.random(-cfg.j_gfx, cfg.j_gfx)
                end
                
                -- clamp limits
                new_p.fps = math.clamp(f_fps, 1, 3500)
                new_p.mem = math.clamp(f_mem, 1, 8192)
                new_p.res = Vector2.new(
                    math.clamp(tonumber(cfg.resX) or 1920, 1, 10240), 
                    math.clamp(tonumber(cfg.resY) or 1080, 1, 10240)
                )
                
                local final_gfx = math.clamp(math.floor(f_gfx), 1, 10)
                local s, enum = pcall(function() return Enum.SavedQualitySetting["QualityLevel" .. final_gfx] end)
                new_p.gfx = s and enum or final_gfx
                
                args[1] = new_p
                return old_nc(self, unpack(args))
            end
        end
    end
    
    return old_nc(self, ...)
end))

hook_nc = getrawmetatable(game).__namecall

-- translation dictionary
local lang_data = {
    EN = {
        title = "FPS Spoofer | By @VearyTry",
        tab_main = "Main",
        tab_met = "Metrics",
        tab_jit = "Jitter",
        tab_cred = "Credits",
        tab_set = "Settings",
        g_set = "Global Settings",
        t_spf = "Enable Spoofer",
        t_met = "Spoof Metrics",
        b_vals = "Base Values",
        i_fps = "FPS (1 to 3500)",
        i_ram = "RAM (1 to 8192 MB)",
        s_gfx = "Graphics Level",
        i_resx = "Screen Width X (1 to 10240)",
        i_resy = "Screen Height Y (1 to 10240)",
        f_vals = "Floating Values",
        j_tit = "What is this?",
        j_desc = "Makes your metrics more natural by adding random spread to base values every tick.",
        t_jit = "Enable Jitter",
        i_jfps = "FPS Spread (+/-)",
        i_jram = "RAM Spread (+/- MB)",
        i_jgfx = "Graphics Spread (+/- Level)",
        c_auth = "Author & Socials",
        c_copy = "Copied to clipboard!",
        s_lang = "Select Language",
        exec = "Current Executor: "
    },
    RU = {
        title = "FPS Спуфер | От @VearyTry",
        tab_main = "Главная",
        tab_met = "Метрики",
        tab_jit = "Разброс",
        tab_cred = "Авторы",
        tab_set = "Настройки",
        g_set = "Глобальные настройки",
        t_spf = "Включить Спуфер",
        t_met = "Спуфить Метрики",
        b_vals = "Базовые значения",
        i_fps = "FPS (от 1 до 3500)",
        i_ram = "ОЗУ (от 1 до 8192 MB)",
        s_gfx = "Уровень графики",
        i_resx = "Ширина экрана X (от 1 до 10240)",
        i_resy = "Высота экрана Y (от 1 до 10240)",
        f_vals = "Плавающие значения",
        j_tit = "Что это?",
        j_desc = "Делает значения естественными, добавляя случайный разброс к базе каждую секунду.",
        t_jit = "Включить Jitter",
        i_jfps = "Разброс FPS (+/-)",
        i_jram = "Разброс ОЗУ (+/- MB)",
        i_jgfx = "Разброс Графики (+/- Уровень)",
        c_auth = "Автор и Соцсети",
        c_copy = "Скопировано в буфер!",
        s_lang = "Выбор языка",
        exec = "Ваш инжектор: "
    }
}

-- ui caching logic
local current_lang = "EN"
local RayfieldAPI = nil
local rayfield_source = game:HttpGet('https://sirius.menu/rayfield')

local function copy_link(link, txt)
    setclipboard(link)
    if RayfieldAPI then
        RayfieldAPI:Notify({
            Title = txt,
            Content = link,
            Duration = 3,
            Image = "clipboard"
        })
    end
end

-- ui builder function
local function build_ui()
    -- destroy old instance if exists
    if RayfieldAPI then
        RayfieldAPI:Destroy()
    end
    
    -- load fresh rayfield from cache
    RayfieldAPI = loadstring(rayfield_source)()
    
    local t = lang_data[current_lang]
    
    local Window = RayfieldAPI:CreateWindow({
       Name = t.title,
       LoadingTitle = "Loading...",
       LoadingSubtitle = "@VearyTry",
       ConfigurationSaving = { Enabled = false },
       KeySystem = false,
    })

    -- tabs
    local t_main = Window:CreateTab(t.tab_main, "home")
    local t_met = Window:CreateTab(t.tab_met, "bar-chart-2")
    local t_jit = Window:CreateTab(t.tab_jit, "activity")
    local t_cred = Window:CreateTab(t.tab_cred, "users")
    local t_set = Window:CreateTab(t.tab_set, "settings")

    -- main
    t_main:CreateLabel(t.exec .. executor_name)
    t_main:CreateSection(t.g_set)
    t_main:CreateToggle({Name = t.t_spf, CurrentValue = cfg.enabled, Callback = function(v) cfg.enabled = v end})
    t_main:CreateToggle({Name = t.t_met, CurrentValue = cfg.metrics, Callback = function(v) cfg.metrics = v end})

    -- metrics
    t_met:CreateSection(t.b_vals)
    t_met:CreateInput({Name = t.i_fps, PlaceholderText = tostring(cfg.fps), RemoveTextAfterFocusLost = false, Callback = function(v) cfg.fps = v end})
    t_met:CreateInput({Name = t.i_ram, PlaceholderText = tostring(cfg.mem), RemoveTextAfterFocusLost = false, Callback = function(v) cfg.mem = v end})
    t_met:CreateSlider({Name = t.s_gfx, Range = {1, 10}, Increment = 1, Suffix = " GFX", CurrentValue = cfg.gfx, Callback = function(v) cfg.gfx = v end})
    t_met:CreateInput({Name = t.i_resx, PlaceholderText = tostring(cfg.resX), RemoveTextAfterFocusLost = false, Callback = function(v) cfg.resX = v end})
    t_met:CreateInput({Name = t.i_resy, PlaceholderText = tostring(cfg.resY), RemoveTextAfterFocusLost = false, Callback = function(v) cfg.resY = v end})

    -- jitter
    t_jit:CreateSection(t.f_vals)
    t_jit:CreateParagraph({Title = t.j_tit, Content = t.j_desc})
    t_jit:CreateToggle({Name = t.t_jit, CurrentValue = cfg.jitter, Callback = function(v) cfg.jitter = v end})
    t_jit:CreateInput({Name = t.i_jfps, PlaceholderText = tostring(cfg.j_fps), RemoveTextAfterFocusLost = false, Callback = function(v) cfg.j_fps = math.abs(tonumber(v) or 0) end})
    t_jit:CreateInput({Name = t.i_jram, PlaceholderText = tostring(cfg.j_mem), RemoveTextAfterFocusLost = false, Callback = function(v) cfg.j_mem = math.abs(tonumber(v) or 0) end})
    t_jit:CreateInput({Name = t.i_jgfx, PlaceholderText = tostring(cfg.j_gfx), RemoveTextAfterFocusLost = false, Callback = function(v) cfg.j_gfx = math.abs(tonumber(v) or 0) end})

    -- credits
    t_cred:CreateSection(t.c_auth)
    t_cred:CreateLabel("Created by @VearyTry")
    t_cred:CreateButton({Name = "RScripts.net", Callback = function() copy_link("https://rscripts.net/@VearyTry", t.c_copy) end})
    t_cred:CreateButton({Name = "ScriptBlox", Callback = function() copy_link("https://scriptblox.com/u/VearyTry", t.c_copy) end})
    t_cred:CreateButton({Name = "Telegram", Callback = function() copy_link("https://telegram.me/VearyTry", t.c_copy) end})

    -- settings
    t_set:CreateSection(t.s_lang)
    t_set:CreateDropdown({
       Name = t.s_lang,
       Options = {"EN", "RU"},
       CurrentOption = {current_lang},
       MultipleOptions = false,
       Callback = function(opt)
          if opt[1] ~= current_lang then
              current_lang = opt[1]
              task.spawn(function()
                  build_ui() -- seamless respawn
              end)
          end
       end,
    })
end

-- run ui
build_ui()

Features & Information

P.S.: It may lag at first. If the game freezes, wait about a minute. FPS Spoofer allows you to spoof the client metrics sent to the server, including FPS, RAM usage, graphics quality, and screen resolution. Every value is fully customizable, and optional Jitter adds realistic random variation to make the metrics appear more natural. Features: - Spoof FPS - Spoof RAM Usage - Spoof Graphics Quality - Spoof Screen Resolution - Jitter (Randomized Values) - English & Russian Language Support
#free#keyless#spoofer

Community Comments (0)

No comments yet for this script.

More Scripts for Flex Your FPS And Ping!