Yuari
Documentation
Docs/Scripts & decompiling

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

Alias of loadstring.

local fn = load("return 2 + 2", "chunk")
print(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