Scripts & decompiling
Tools for inspecting scripts inside the game — all reading from live game memory.
Collects every script (LocalScript, Script, ModuleScript) in the tree under root — defaults to the whole DataModel. Capped at 8000 scripts.
for _, script in ipairs(getscripts()) do
print(script:GetFullName())
end
Raw Luau bytecode of a script. Returns an empty string for non-scripts.
local script = getscripts()[1]
print(#getscriptbytecode(script))
Decompiles a script instance (or a raw bytecode string) back to Luau source.
for _, s in ipairs(getscripts()) do
local src = decompile(s)
if src and src:find("RemoteEvent") then
print(s:GetFullName())
end
end
Script environment accessor (compatibility shim).
local script = getscripts()[1]
print(getsenv(script))
FNV-1a hash of the script's bytecode, as a decimal string ("0" when unavailable).
print(getscripthash(getscripts()[1]))
Compiles a string with the Luau compatibility pass applied. Like Roblox, syntax errors yield a function that raises the error when called.
local fn = loadstring("print('hello from a string')")
fn()
Environment get/set for functions, Roblox-style. getfenv() with no usable argument returns the global table; getgenv() always returns it.
local value = 1
local fn = function() return value end
local env = getfenv(fn)
print(env)
setfenv(fn, env)
getgenv().shared = true