--[[ 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()