-- https://discord.gg/8wSP7XedR8 do local weakTarget = nil for _, v in next, getgc(true) do if type(v) == 'table' and getrawmetatable(v) then local mt = getrawmetatable(v) local mode = rawget(mt, '__mode') if rawequal(mode, 'kv') then setreadonly(mt, false) mt.__len = function(self, idx) return 3 end setreadonly(mt, true) weakTarget = v end end end local safeEnv = getrenv() local getFenv; getFenv = hookfunction(getfenv, newcclosure(function(...) local result = getFenv(...) if type(result) ~= 'table' then return result end local mt = getrawmetatable(result) if not mt or (mt and not rawget(mt, '__index')) or (mt and rawget(mt, '__index') and type(rawget(mt, '__index')) ~= 'table') then return result end local idx = mt.__index local idxMt = getrawmetatable(idx) if not idxMt then setrawmetatable(idx, { __index = function(self, key) local proxy = rawget(safeEnv, key) return proxy end }) end return result end)) local rawLen; rawLen = hookfunction(rawlen, newcclosure(function(userdata) if userdata == weakTarget then return task.wait(9e9) end return rawLen(userdata) end)) end