> ## Documentation Index
> Fetch the complete documentation index at: https://docs.projectreal.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# Scripts

> Consultas de script, bytecode e ambiente.

<div className="real-category-page">
  Consultas de script, bytecode e ambiente.

  ## Funções disponíveis

  <CardGroup cols={2}>
    <Card title="decompile" href="./decompile">
      Descompila um script Roblox e retorna o source text gerado quando há bytecode disponível. O argument deve ser uma script Instance compatível. Se não houver bytecode utilizável, a function retorna nil.
    </Card>

    <Card title="dumpstring" href="./dumpstring">
      Retorna o decompressed bytecode string de um Roblox script object. dumpstring e registrado na mesma C++ function que getscriptbytecode, entao seu comportamento e identico. O argument deve ser object. O bytecode reader compartilhado aceita valores ClassName ModuleScript, LocalScript, CoreScript e Script. Para Script, RunContext deve ser Client. Se ClassName estiver ausente, a function gera "Invalid Instance". Se ClassName nao for uma script class suportada, gera "Script expected". Se o valor for um Script com outro RunContext, gera "Expected a Script with RunContext set to Client". Se o embedded bytecode reference for invalido ou o tamanho do stored bytecode for 8 bytes ou menos, a function retorna nil. Caso contrario, descomprime o stored bytecode com DecompressBytecode e retorna os resulting bytes como Luau string. Hash mismatch, too-short compressed data ou ZSTD decompression errors sao retornados como error text bytes por DecompressBytecode em vez de serem gerados aqui.
    </Card>

    <Card title="getcallingscript" href="./getcallingscript">
      Retorna o script armazenado no current Luau thread object. A function nao aceita arguments. Ela le the current thread script, que e um stored reference. Se esse stored reference nao estiver expired, a function faz push da script Instance com Instance cache e a retorna. Se o stored reference estiver expired, a function retorna nil. A function nao inspeciona o Lua call stack, nao procura ancestor scripts e nao verifica o script ClassName.
    </Card>

    <Card title="getinstancesbyclass" href="./getinstancesbyclass">
      Retorna instances da Instance cache table cujo ClassName field corresponde exatamente ao string solicitado. O primeiro argumento e lido com string type checking. Um empty string gera "ClassName required". A function cria uma nova array table, itera a cache armazenada em Instance cache, mantem apenas values cujo Lua type e object, le o ClassName field de cada object value e compara com strcmp contra o className solicitado. Matches sao inseridos sequential a partir de index 1. A correspondencia e exact e case-sensitive. A function nao usa IsA, nao inclui subclasses, nao faz walk descendants, nao filtra por Parent e nao ordena o result. getinstancesofclass e um alias para a mesma function.
    </Card>

    <Card title="getloadedmodules" href="./getloadedmodules">
      Returns a new array table containing live entries from loaded module list. The optional excludeCore argument is read with optional boolean handling and defaults to true when omitted or nil. If excludeCore is true, entries whose instance is a descendant of core packages or CoreGui are skipped. Expired weak entries and locked stored references without a value are skipped. The function pushes each remaining entry with Instance cache at sequential array indexes starting at 1. The function does not check ClassName, does not sort the result, and does not walk the DataModel.
    </Card>

    <Card title="getmenv" href="./getmenv">
      Returns the environment table associated with a ModuleScript. The argument must be a ModuleScript object. Invalid objects raise "Invalid Instance", non-ModuleScript objects raise "ModuleScript expected", and ModuleScripts without an available thread raise "invalid thread". The function does not accept Script or LocalScript; use getsenv for those cases.
    </Card>

    <Card title="getreferencedby" href="./getreferencedby">
      Returns cached Instance values whose supported reference properties point to the provided Instance. The argument must be an Instance.
    </Card>

    <Card title="getrunningscripts" href="./getrunningscripts">
      Retorna uma nova array table de unique script Instances obtidas de live Lua threads. A function nao recebe arguments. Ela percorre the live Luau thread list, le cada thread node e ignora entries sem thread node, sem weak thread ref, sem LiveLuaRef, sem Lua state, sem object ou com expired Script stored reference. Para cada thread restante, bloqueia scriptThread->object->Script(), deduplica pelo script reference, envia a Instance com Instance cache e a insere em array indexes sequenciais comecando em 1. A function nao escaneia o DataModel, nao verifica ClassName e nao ordena o result.
    </Card>

    <Card title="getscriptbytecode" href="./getscriptbytecode">
      Retorna o decompressed bytecode string de um Roblox script object. getscriptbytecode e registrado na mesma C++ function que dumpstring, entao seu comportamento e identico. O argument deve ser object. O bytecode reader compartilhado aceita valores ClassName ModuleScript, LocalScript, CoreScript e Script. Para Script, RunContext deve ser Client. Se ClassName estiver ausente, a function gera "Invalid Instance". Se ClassName nao for uma script class suportada, gera "Script expected". Se o valor for um Script com outro RunContext, gera "Expected a Script with RunContext set to Client". Se o embedded bytecode reference for invalido ou o tamanho do stored bytecode for 8 bytes ou menos, a function retorna nil. Caso contrario, descomprime o stored bytecode com DecompressBytecode e retorna os resulting bytes como Luau string. Hash mismatch, too-short compressed data ou ZSTD decompression errors sao retornados como error text bytes por DecompressBytecode em vez de serem gerados aqui.
    </Card>

    <Card title="getscriptclosure" href="./getscriptclosure">
      Loads the stored bytecode for a supported Roblox script Instance and returns it as a Lua closure. Returns nil when usable bytecode is not available.
    </Card>

    <Card title="getscripthash" href="./getscripthash">
      Retorna um uppercase SHA384 hex digest para o stored bytecode string de um Roblox script object. O argument deve ser object. O helper compartilhado GetBytecode aceita valores ClassName ModuleScript, LocalScript, CoreScript e Script. Para Script, RunContext deve ser Client. Se ClassName estiver ausente, a function gera "Invalid Instance". Se ClassName nao for uma das script classes suportadas, gera "Script expected". Se o valor for um Script com outro RunContext, gera "Expected a Script with RunContext set to Client". Se o embedded bytecode reference for invalido ou o comprimento de stored bytecode for 8 bytes ou menos, a function retorna nil. Caso contrario, calcula SHA384 dos stored bytecode bytes exatos e retorna o uppercase hex string. A function nao chama DecompressBytecode e nao calcula hash de decompressed bytecode.
    </Card>

    <Card title="getscripts" href="./getscripts">
      Retorna valores script object presentes atualmente no Instance cache. A function nao recebe arguments. Ela itera a cache armazenada na chave Instance cache lightobject e considera apenas entries cujo value e object. Ela le o campo ClassName de cada value com optional string handling. Entries LocalScript e ModuleScript sao incluidas. Entries Script sao incluidas somente quando seu RunContext offset e CLIENT ou PLUGIN. Outros valores ClassName, entries sem string ClassName e entries CoreScript sao ignorados. O resultado e uma Luau table sequencial. A function nao percorre o DataModel e nao garante sorted order.
    </Card>

    <Card title="getscriptthread" href="./getscriptthread">
      Retorna o Lua thread associado a um script object quando Real consegue encontra-lo. O argument deve ser object. A function le o campo ClassName do valor e gera "not a valid Instance" se esse campo nao for string. Os valores ClassName aceitos sao Script, LocalScript e ModuleScript; qualquer outro valor gera "Script expected". Primeiro, ela verifica o ScriptThreadCache da Real pelo script reference. Em um cache hit, retorna o Luau thread em cache como thread. Em um cache miss, valores Script devem ter RunContext Client ou a function gera "Expected a Script with RunContext set to Client". Depois, ela percorre the live Luau thread list, segue a first weak thread reference de cada thread node ate LiveLuaRef, ignora missing thread data ou expired Script stored references e compara cada script reference com o script solicitado. Se encontrar um match, retorna esse Luau thread como thread. Se nenhum match for encontrado, retorna nil.
    </Card>

    <Card title="getsenv" href="./getsenv">
      Returns the environment table associated with a LocalScript, Script, or ModuleScript. Unsupported script objects or scripts without an available thread raise the same errors as the underlying script lookup.
    </Card>

    <Card title="loadstring" href="./loadstring">
      Compiles a Luau source string and returns the loaded function. If loading fails, it returns nil and an error message. The returned function is not executed automatically.
    </Card>
  </CardGroup>
</div>
