> ## 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

> Requêtes de script, de bytecode et d'environnement.

<div className="real-category-page">
  Requêtes de script, de bytecode et d'environnement.

  ## Fonctions disponibles

  <CardGroup cols={2}>
    <Card title="decompile" href="./decompile">
      Décompile un script Roblox et renvoie le source text généré lorsque le bytecode est disponible. L’argument doit être une script Instance prise en charge. Si aucun bytecode utilisable n’est disponible, la function renvoie nil.
    </Card>

    <Card title="dumpstring" href="./dumpstring">
      Renvoie le decompressed bytecode string pour un Roblox script object. dumpstring est enregistre sur la meme C++ function que getscriptbytecode, donc son comportement est identique. L argument doit etre object. Le bytecode reader partage accepte les valeurs ClassName ModuleScript, LocalScript, CoreScript et Script. Pour Script, RunContext doit etre Client. Si ClassName manque, la function leve "Invalid Instance". Si ClassName n est pas une script class prise en charge, elle leve "Script expected". Si la valeur est un Script avec un autre RunContext, elle leve "Expected a Script with RunContext set to Client". Si le embedded bytecode reference est invalide ou si la longueur du stored bytecode est de 8 bytes ou moins, la function renvoie nil. Sinon, elle decompresse le stored bytecode avec DecompressBytecode et renvoie les resulting bytes comme Luau string. Hash mismatch, too-short compressed data ou ZSTD decompression errors sont renvoyes comme error text bytes par DecompressBytecode au lieu d etre leves ici.
    </Card>

    <Card title="getcallingscript" href="./getcallingscript">
      Renvoie le script stocke sur le current Luau thread object. La function n accepte aucun arguments. Elle lit the current thread script, qui est un stored reference. Si ce stored reference n est pas expired, la function pousse la script Instance avec Instance cache et la renvoie. Si le stored reference est expired, la function renvoie nil. L function n inspecte pas le Lua call stack, ne cherche pas d ancestor scripts et ne verifie pas le script ClassName.
    </Card>

    <Card title="getinstancesbyclass" href="./getinstancesbyclass">
      Renvoie les instances de la Instance cache table dont le ClassName field correspond exactement au string demande. Le premier argument est lu avec string type checking. Un empty string leve "ClassName required". La function cree une nouvelle array table, parcourt la cache stockee sous Instance cache, garde seulement les values dont le Lua type est object, lit le ClassName field de chaque object value, puis le compare avec strcmp au className demande. Les matches sont inseres sequential a partir de index 1. La correspondance est exact et case-sensitive. L function n utilise pas IsA, n inclut pas les subclasses, ne fait pas de walk descendants, ne filtre pas par Parent et ne trie pas le result. getinstancesofclass est un alias de la meme 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">
      Renvoie une nouvelle array table de unique script Instances issues de live Lua threads. La function ne prend aucun arguments. Elle parcourt the live Luau thread list, lit chaque thread node et ignore les entries sans thread node, sans weak thread ref, sans LiveLuaRef, sans Lua state, sans object, ou avec un expired Script stored reference. Pour chaque thread restant, elle verrouille scriptThread->object->Script(), deduplique par script reference, pousse l Instance avec Instance cache et l insere dans des array indexes sequentiels a partir de 1. L function ne scanne pas le DataModel, ne verifie pas ClassName et ne trie pas le result.
    </Card>

    <Card title="getscriptbytecode" href="./getscriptbytecode">
      Renvoie le decompressed bytecode string pour un Roblox script object. getscriptbytecode est enregistre sur la meme C++ function que dumpstring, donc son comportement est identique. L argument doit etre object. Le bytecode reader partage accepte les valeurs ClassName ModuleScript, LocalScript, CoreScript et Script. Pour Script, RunContext doit etre Client. Si ClassName manque, la function leve "Invalid Instance". Si ClassName n est pas une script class prise en charge, elle leve "Script expected". Si la valeur est un Script avec un autre RunContext, elle leve "Expected a Script with RunContext set to Client". Si le embedded bytecode reference est invalide ou si la longueur du stored bytecode est de 8 bytes ou moins, la function renvoie nil. Sinon, elle decompresse le stored bytecode avec DecompressBytecode et renvoie les resulting bytes comme Luau string. Hash mismatch, too-short compressed data ou ZSTD decompression errors sont renvoyes comme error text bytes par DecompressBytecode au lieu d etre leves ici.
    </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">
      Renvoie un uppercase SHA384 hex digest pour le stored bytecode string d une Roblox script object. L argument doit etre object. Le helper partage GetBytecode accepte les valeurs ClassName ModuleScript, LocalScript, CoreScript et Script. Pour Script, RunContext doit etre Client. Si ClassName manque, la function leve "Invalid Instance". Si ClassName n est pas une des script classes prises en charge, elle leve "Script expected". Si la valeur est un Script avec un autre RunContext, elle leve "Expected a Script with RunContext set to Client". Si le embedded bytecode reference est invalide ou si la longueur du stored bytecode est de 8 bytes ou moins, la function renvoie nil. Sinon, elle calcule SHA384 sur les stored bytecode bytes exacts et renvoie le uppercase hex string. L function n appelle pas DecompressBytecode et ne hashe pas le decompressed bytecode.
    </Card>

    <Card title="getscripts" href="./getscripts">
      Renvoie les valeurs script object actuellement presentes dans le Instance cache. La function ne prend aucun argument. Elle parcourt la cache stockee sous la cle Instance cache lightobject et ne considere que les entries dont la value est object. Elle lit le champ ClassName de chaque value avec optional string handling. Les entries LocalScript et ModuleScript sont incluses. Les entries Script sont incluses seulement lorsque leur RunContext offset vaut CLIENT ou PLUGIN. Les autres valeurs ClassName, les entries sans string ClassName et les entries CoreScript sont ignorees. Le resultat est une Luau table sequentielle. L function ne parcourt pas le DataModel et ne garantit aucun sorted order.
    </Card>

    <Card title="getscriptthread" href="./getscriptthread">
      Renvoie le Lua thread associe a une script object quand Real peut en trouver un. L argument doit etre object. La function lit le champ ClassName de la valeur et leve "not a valid Instance" si ce champ n est pas un string. Les valeurs ClassName acceptees sont Script, LocalScript et ModuleScript; toute autre valeur leve "Script expected". Elle verifie d abord le ScriptThreadCache de Real avec le script reference. En cas de cache hit, elle renvoie le Luau thread mis en cache comme thread. En cas de cache miss, les valeurs Script doivent avoir RunContext Client, sinon la function leve "Expected a Script with RunContext set to Client". Ensuite, elle parcourt the live Luau thread list, suit la first weak thread reference de chaque thread node vers LiveLuaRef, ignore les missing thread data ou expired Script stored references, et compare chaque script reference au script demande. Si elle trouve un match, elle renvoie ce Luau thread comme thread. Si aucun match n est trouve, elle renvoie 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>
