{
  "Metatable":{
    "getnamecallmethod":{
      "title":"getnamecallmethod",
      "signature":"function getnamecallmethod(): string?",
      "parameters":[],
      "link":"https://docs.sunc.su/Metatable/getnamecallmethod",
      "description":"`getnamecallmethod` returns the name of the method that invoked the [`__namecall`](https://devforum.roblox.com/t/how-do-i-get-namecall-method/2848439/5) metamethod."
    },
    "getrawmetatable":{
      "title":"getrawmetatable",
      "signature":"function getrawmetatable(object: { any } | userdata): { [any]: any } | nil",
      "parameters":{
        "object":"The object whose metatable to retrieve."
      },
      "link":"https://docs.sunc.su/Metatable/getrawmetatable",
      "description":"`getrawmetatable` returns the raw metatable of an object, even if that object has a `__metatable` field set."
    },
    "setrawmetatable":{
      "title":"setrawmetatable",
      "signature":"function setrawmetatable<T>(object: T & ({ any } | userdata), metatable: { any }): T",
      "parameters":{
        "metatable":"The new metatable to assign.",
        "object":"The value whose metatable will be overwritten."
      },
      "link":"https://docs.sunc.su/Metatable/setrawmetatable",
      "description":"`setrawmetatable` forcibly sets the metatable of a value, bypassing the `__metatable` protection field."
    },
    "_description":"The **Metatable** library enables advanced interaction with [metatables](https://create.roblox.com/docs/luau/metatables) in Luau. It provides direct access to core metamethods and internal table behaviours - including those normally protected or hidden via `__metatable` locks.\nThis library is especially useful when trying to modify or access hidden things within locked Roblox objects.",
    "_link":"https://docs.sunc.su/Metatable",
    "isreadonly":{
      "title":"isreadonly",
      "signature":"function isreadonly(table: { any }): boolean",
      "parameters":{
        "table":"The table to check for readonly status."
      },
      "link":"https://docs.sunc.su/Metatable/isreadonly",
      "description":"`isreadonly` checks whether a table is currently set as **readonly**."
    },
    "setreadonly":{
      "title":"setreadonly",
      "signature":"function setreadonly(table: { any }, state: boolean): ()",
      "parameters":{
        "state":"`true` to lock the table, `false` to unlock it.",
        "table":"The table whose readonly status you want to modify."
      },
      "link":"https://docs.sunc.su/Metatable/setreadonly",
      "description":"`setreadonly` sets whether a table is **readonly** or **writable**."
    }
  },
  "Reflection":{
    "isscriptable":{
      "title":"isscriptable",
      "signature":"function isscriptable(object: Instance, property: string): boolean | nil",
      "parameters":{
        "property":"The name of the property to check.",
        "object":"The [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance) that owns the target property."
      },
      "link":"https://docs.sunc.su/Reflection/isscriptable",
      "description":"`isscriptable` returns whether the given property of an [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance) is scriptable (i.e. it does not have the `notscriptable` tag)."
    },
    "getthreadidentity":{
      "title":"getthreadidentity",
      "signature":"function getthreadidentity(): number",
      "parameters":[],
      "link":"https://docs.sunc.su/Reflection/getthreadidentity",
      "description":"`getthreadidentity` retrieves the thread's identity of the running [Luau thread](https://create.roblox.com/docs/reference/engine/libraries/coroutine#running)."
    },
    "gethiddenproperty":{
      "title":"gethiddenproperty",
      "signature":"function gethiddenproperty(instance: Instance, property_name: string): (any, boolean)",
      "parameters":{
        "property_name":"The name of the property to access.",
        "instance":"The [instance](https://create.roblox.com/docs/reference/engine/classes/Instance) containing the hidden property."
      },
      "link":"https://docs.sunc.su/Reflection/gethiddenproperty",
      "description":"`gethiddenproperty` retrieves the value of a hidden or non-scriptable property (e.g. `BinaryString`, `SharedString`, `SystemAddress`) from a given [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance), even if it would normally throw an error when accessed directly."
    },
    "sethiddenproperty":{
      "title":"sethiddenproperty",
      "signature":"function sethiddenproperty(instance: Instance, property_name: string, property_value: any): boolean",
      "parameters":{
        "instance":"The [instance](https://create.roblox.com/docs/reference/engine/classes/Instance) that owns the target property.",
        "property_value":"The new value to assign to the property.",
        "property_name":"The name of the property to update."
      },
      "link":"https://docs.sunc.su/Reflection/sethiddenproperty",
      "description":"`sethiddenproperty` assigns a value to a hidden or non-scriptable property of an [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance), even if that property is normally read-only or inaccessible."
    },
    "_description":"The **Reflection** library allows access to and manipulation of hidden or non-scriptable properties of [Instances](https://create.roblox.com/docs/reference/engine/classes/Instance) and internal execution context. It is primarily used to bypass standard Luau restrictions in controlled environments.",
    "_link":"https://docs.sunc.su/Reflection",
    "setthreadidentity":{
      "title":"setthreadidentity",
      "signature":"function setthreadidentity(id: number): ()",
      "parameters":{
        "id":"The identity level to set the current thread to."
      },
      "link":"https://docs.sunc.su/Reflection/setthreadidentity",
      "description":"`setthreadidentity` sets the current [Luau thread](https://create.roblox.com/docs/reference/engine/libraries/coroutine#running) identity and capabilities matching that identity."
    },
    "setscriptable":{
      "title":"setscriptable",
      "signature":"function setscriptable(instance: Instance, property_name: string, state: boolean): boolean | nil",
      "parameters":{
        "instance":"The [Instance](https://create.roblox.com/docs/reference/engine/classes/Instance) that owns the target property.",
        "state":"Whether to enable (`true`) or disable (`false`) scriptability.",
        "property_name":"The name of the property to make scriptable or un-scriptable."
      },
      "link":"https://docs.sunc.su/Reflection/setscriptable",
      "description":"`setscriptable` toggles the scriptability of a hidden or non-scriptable property on an [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance). When a property is made scriptable, it can be accessed or assigned through standard indexing."
    }
  },
  "Instances":{
    "getcallbackvalue":{
      "title":"getcallbackvalue",
      "signature":"function getcallbackvalue(object: Instance, property: string): any | nil",
      "parameters":{
        "property":"The name of the callback property to retrieve.",
        "object":"The [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance) that owns the callback property."
      },
      "link":"https://docs.sunc.su/Instances/getcallbackvalue",
      "description":"`getcallbackvalue` retrieves the **assigned callback property** on an [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance), such as [`OnInvoke`](https://create.roblox.com/docs/reference/engine/classes/BindableFunction#OnInvoke)."
    },
    "_description":"The **Instances** library provides direct access to and manipulation of [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance) objects in the game world. It includes tools for listing, referencing, and firing Roblox-native interactions.\nThese functions are especially useful for inspecting hidden instances, working with UI safely, or simulating player interactions with in-game objects.",
    "_link":"https://docs.sunc.su/Instances",
    "gethui":{
      "title":"gethui",
      "signature":"function gethui(): BasePlayerGui | Folder",
      "parameters":[],
      "link":"https://docs.sunc.su/Instances/gethui",
      "description":"`gethui` returns a **hidden [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance)** container used for safely storing UI elements. This container is mainly designed to **avoid detections**."
    },
    "compareinstances":{
      "title":"compareinstances",
      "signature":"function compareinstances(object1: Instance, object2: Instance): boolean",
      "parameters":{
        "object1":"This first [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance) to compare.",
        "object2":"The second [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance) to compare against."
      },
      "link":"https://docs.sunc.su/Instances/compareinstances",
      "description":"`compareinstances` checks if two [`Instances`](https://create.roblox.com/docs/reference/engine/classes/Instance) are equal."
    },
    "getinstances":{
      "title":"getinstances",
      "signature":"function getinstances(): { Instance }",
      "parameters":[],
      "link":"https://docs.sunc.su/Instances/getinstances",
      "description":"`getinstances` retrieves **every [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance)** from the registry. Which means that instances that are/were parented to `nil` will also be returned."
    },
    "firetouchinterest":{
      "title":"firetouchinterest",
      "signature":"function firetouchinterest(part1: BasePart, part2: BasePart, toggle: boolean | number): ()",
      "parameters":{
        "part2":"The [`BasePart`](https://create.roblox.com/docs/reference/engine/classes/BasePart) that should be touched.",
        "toggle":"Whether to simulate touch start or end. `true` or `0` simulates touch; `false` or `1` simulates un-touch.",
        "part1":"The initiating [`BasePart`](https://create.roblox.com/docs/reference/engine/classes/BasePart)."
      },
      "link":"https://docs.sunc.su/Instances/firetouchinterest",
      "description":"`firetouchinterest` simulates a physical touch event between two [`BasePart`](https://create.roblox.com/docs/reference/engine/classes/BasePart) objects. It can emulate both the start and end of a [`Touched`](https://create.roblox.com/docs/reference/engine/classes/BasePart#Touched) event."
    },
    "fireclickdetector":{
      "title":"fireclickdetector",
      "signature":"function fireclickdetector(detector: ClickDetector, distance: number?, event: string?): ()",
      "parameters":{
        "distance?":"Distance from which the click is simulated. Defaults to infinite.",
        "event?":"The event to trigger.",
        "detector":"The [`ClickDetector`](https://create.roblox.com/docs/reference/engine/classes/ClickDetector) to trigger."
      },
      "link":"https://docs.sunc.su/Instances/fireclickdetector",
      "description":"`fireclickdetector` triggers a [`ClickDetector`](https://create.roblox.com/docs/reference/engine/classes/ClickDetector) event. By default, it fires the [`MouseClick`](https://create.roblox.com/docs/reference/engine/classes/ClickDetector#MouseClick) event."
    },
    "getnilinstances":{
      "title":"getnilinstances",
      "signature":"function getnilinstances(): { Instance }",
      "parameters":[],
      "link":"https://docs.sunc.su/Instances/getnilinstances",
      "description":"`getnilinstances` returns a list of [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance) objects that are **currently unparented**. These instances exist in memory but are no longer part of the [`DataModel`](https://create.roblox.com/docs/reference/engine/classes/DataModel) hierarchy."
    },
    "cloneref":{
      "title":"cloneref",
      "signature":"function cloneref<T>(object: T & Instance): T",
      "parameters":{
        "object":"The [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance) to clone a safe reference from."
      },
      "link":"https://docs.sunc.su/Instances/cloneref",
      "description":"`cloneref` returns a **reference clone** of an [`Instance`](https://create.roblox.com/docs/reference/engine/classes/Instance). The returned object behaves identically to the original but is not strictly equal (`==`) to it."
    },
    "fireproximityprompt":{
      "title":"fireproximityprompt",
      "signature":"function fireproximityprompt(prompt: ProximityPrompt): ()",
      "parameters":{
        "prompt":"The [`ProximityPrompt`](https://create.roblox.com/docs/reference/engine/classes/ProximityPrompt) to trigger."
      },
      "link":"https://docs.sunc.su/Instances/fireproximityprompt",
      "description":"`fireproximityprompt` instantly triggers a [`ProximityPrompt`](https://create.roblox.com/docs/reference/engine/classes/ProximityPrompt), bypassing its [`HoldDuration`](https://create.roblox.com/docs/reference/engine/classes/ProximityPrompt#HoldDuration) and activation distance."
    }
  },
  "Filesystem":{
    "writefile":{
      "title":"writefile",
      "signature":"function writefile(path: string, data: string): ()",
      "parameters":{
        "path":"The file path to write to.",
        "data":"The string data to write into the file."
      },
      "link":"https://docs.sunc.su/Filesystem/writefile",
      "description":"`writefile` writes data to a file at the specified path. If the file already exists, its contents will be overwritten."
    },
    "loadfile":{
      "title":"loadfile",
      "signature":"function loadfile<A...>(path: string): ((A...) -> any | nil, string?)",
      "parameters":{
        "path":"The path to the file to be loaded."
      },
      "link":"https://docs.sunc.su/Filesystem/loadfile",
      "description":"`loadfile` compiles the Luau source code from a file and returns the resulting function (chunk). This chunk runs in the global environment."
    },
    "listfiles":{
      "title":"listfiles",
      "signature":"function listfiles(path: string): { string }",
      "parameters":{
        "path":"The path to the directory to scan."
      },
      "link":"https://docs.sunc.su/Filesystem/listfiles",
      "description":"`listfiles` returns an array of strings representing all files and folders within the specified directory."
    },
    "_description":"The **Filesystem** library provides access to an executor's virtual file system. It enables reading, writing, creating, and deleting files and folders, as well as utility functions for interacting with content assets.\nThis library is especially useful when storing persistent data, managing resources across sessions, or loading runtime content dynamically.",
    "_link":"https://docs.sunc.su/Filesystem",
    "getcustomasset":{
      "title":"getcustomasset",
      "signature":"function getcustomasset(path: string): string",
      "parameters":{
        "path":"The file path to convert into an asset ID."
      },
      "link":"https://docs.sunc.su/Filesystem/getcustomasset",
      "description":"`getcustomasset` returns a content ID (e.g. `rbxasset://`) that can be used in Roblox APIs for loading audio, meshes, UI images, and other asset types."
    },
    "readfile":{
      "title":"readfile",
      "signature":"function readfile(path: string): string",
      "parameters":{
        "path":"The file path to read from."
      },
      "link":"https://docs.sunc.su/Filesystem/readfile",
      "description":"`readfile` retrieves the contents of a file at the specified path and returns it as a string."
    },
    "makefolder":{
      "title":"makefolder",
      "signature":"function makefolder(path: string): ()",
      "parameters":{
        "path":"The folder path to create."
      },
      "link":"https://docs.sunc.su/Filesystem/makefolder",
      "description":"`makefolder` creates a folder at the specified path if one does not already exist."
    },
    "isfile":{
      "title":"isfile",
      "signature":"function isfile(path: string): boolean",
      "parameters":{
        "path":"The path to check."
      },
      "link":"https://docs.sunc.su/Filesystem/isfile",
      "description":"`isfile` checks whether a given path exists and refers to a file."
    },
    "isfolder":{
      "title":"isfolder",
      "signature":"function isfolder(path: string): boolean",
      "parameters":{
        "path":"The path to check."
      },
      "link":"https://docs.sunc.su/Filesystem/isfolder",
      "description":"`isfolder` checks whether a given path exists and refers to a folder."
    },
    "delfolder":{
      "title":"delfolder",
      "signature":"function delfolder(path: string): ()",
      "parameters":{
        "path":"The path of the folder to delete."
      },
      "link":"https://docs.sunc.su/Filesystem/delfolder",
      "description":"`delfolder` deletes the folder at the specified path if it exists."
    },
    "appendfile":{
      "title":"appendfile",
      "signature":"function appendfile(path: string, contents: string): ()",
      "parameters":{
        "path":"The file path to append to.",
        "contents":"The string content to add to the file."
      },
      "link":"https://docs.sunc.su/Filesystem/appendfile",
      "description":"`appendfile` appends string content to the end of a file at the specified path. If the file does not exist, it will be created."
    },
    "delfile":{
      "title":"delfile",
      "signature":"function delfile(path: string): ()",
      "parameters":{
        "path":"The path of the file to delete."
      },
      "link":"https://docs.sunc.su/Filesystem/delfile",
      "description":"`delfile` deletes the file at the specified path if it exists."
    }
  },
  "WebSocket":{
    "_description":"The `WebSocket` class provides a lightweight interface for establishing and working with WebSocket connections. It allows scripts to **send** and **receive** messages over a persistent connection to a [WebSocket](https://en.wikipedia.org/wiki/WebSocket) server.",
    "_link":"https://docs.sunc.su/WebSocket"
  },
  "Signals":{
    "firesignal":{
      "title":"firesignal",
      "signature":"function firesignal(signal: RBXScriptSignal, ...: any?)",
      "parameters":{
        "signal":"The signal whose connections you want to manually fire.",
        "...?":"The arguments to pass to the connected functions."
      },
      "link":"https://docs.sunc.su/Signals/firesignal",
      "description":"`firesignal` Invokes all Luau [connections](https://create.roblox.com/docs/reference/engine/datatypes/RBXScriptConnection) connected to a given [`RBXScriptSignal`](https://create.roblox.com/docs/reference/engine/datatypes/RBXScriptSignal)."
    },
    "_description":"The **Signals** library provides functions for inspecting and manipulating [`RBXScriptSignal`](https://create.roblox.com/docs/reference/engine/datatypes/RBXScriptSignal) and [`RBXScriptConnection`](https://create.roblox.com/docs/reference/engine/datatypes/RBXScriptConnection) objects.",
    "getconnections":{
      "title":"getconnections",
      "signature":"function getconnections(signal: RBXScriptSignal): {Connection}",
      "parameters":{
        "signal":"The signal to inspect for active connections."
      },
      "link":"https://docs.sunc.su/Signals/getconnections",
      "description":"`getconnections` retrieves a list of [`Connection`](https://docs.sunc.su/Signals/Connection) objects currently attached to a given [`RBXScriptSignal`](https://create.roblox.com/docs/reference/engine/datatypes/RBXScriptSignal)."
    },
    "replicatesignal":{
      "title":"replicatesignal",
      "signature":"function replicatesignal(signal: RBXScriptSignal, ...: any?)",
      "parameters":{
        "signal":"The signal to replicate to the server.",
        "...?":"Arguments to pass to the signal."
      },
      "link":"https://docs.sunc.su/Signals/replicatesignal",
      "description":"`replicatesignal` replicates a signal to the server with the provided arguments, if possible. The arguments must also match accordingly to the signal itself. To know a signal's arguments, visit [this](https://robloxapi.github.io/ref/)."
    },
    "_link":"https://docs.sunc.su/Signals"
  },
  "Encoding":{
    "lz4compress":{
      "title":"lz4compress",
      "signature":"function lz4compress(data: string): string",
      "parameters":{
        "data":"The string to compress."
      },
      "link":"https://docs.sunc.su/Encoding/lz4compress",
      "description":"`lz4compress` compresses a string with the [LZ4](https://en.wikipedia.org/wiki/LZ4_(compression_algorithm)) compression algorithm."
    },
    "base64encode":{
      "title":"base64encode",
      "signature":"function base64encode(data: string): string",
      "parameters":{
        "data":"The string to encode."
      },
      "link":"https://docs.sunc.su/Encoding/base64encode",
      "description":"`base64encode` encodes a string with [Base64](https://en.wikipedia.org/wiki/Base64) encoding."
    },
    "_description":"The **Encoding** library provides functions for common binary transformation operations such as Base64 and LZ4 - the **encoding**, **decoding**, **compression**, and **decompression** of data.\nThis library replaces the old `crypt` library, which has now been fully deprecated.",
    "_link":"https://docs.sunc.su/Encoding",
    "lz4decompress":{
      "title":"lz4decompress",
      "signature":"function lz4decompress(data: string): string",
      "parameters":{
        "data":"The string to decompress."
      },
      "link":"https://docs.sunc.su/Encoding/lz4decompress",
      "description":"`lz4decompress` decompresses a string that was encoded using the [LZ4](https://en.wikipedia.org/wiki/LZ4_(compression_algorithm)) compression algorithm back to regular data."
    },
    "base64decode":{
      "title":"base64decode",
      "signature":"function base64decode(data: string): string",
      "parameters":{
        "data":"The Base64-encoded string to decode."
      },
      "link":"https://docs.sunc.su/Encoding/base64decode",
      "description":"`base64decode` decodes a [Base64-encoded](https://en.wikipedia.org/wiki/Base64) string back into its original form."
    }
  },
  "Miscellaneous":{
    "identifyexecutor":{
      "title":"identifyexecutor",
      "signature":"function identifyexecutor(): (string, string)",
      "parameters":[],
      "link":"https://docs.sunc.su/Miscellaneous/identifyexecutor",
      "description":"`identifyexecutor` returns the name and version of the currently running executor."
    },
    "_link":"https://docs.sunc.su/Miscellaneous",
    "request":{
      "title":"request",
      "signature":"type RequestOptions = {\n    Url: string,\n    Method: \"GET\" | \"HEAD\" | \"POST\" | \"PUT\" | \"DELETE\" | \"OPTIONS\" | \"PATCH\",\n    Body: string?,\n    Headers: { [string]: string }?,\n    Cookies: { [string]: string }?\n}\ntype Response = {\n    Success: boolean,\n    Body: string,\n    StatusCode: number,\n    StatusMessage: string,\n    Headers: { [string]: string }\n}\nfunction request(options: RequestOptions): Response",
      "parameters":{
        "StatusMessage":"`string`",
        "Url":"`string`",
        "Method":"`string`",
        "Body":"`string`",
        "options":"A table of fields defining the HTTP request.",
        "Headers":"`{ [string]: string }`",
        "Cookies":"`{ [string]: string }?`",
        "Success":"`boolean`",
        "StatusCode":"`number`"
      },
      "link":"https://docs.sunc.su/Miscellaneous/request",
      "description":"`request` sends a [HTTP request](https://en.wikipedia.org/wiki/HTTP) to the given URL using the provided configuration table. It yields until the request is complete and returns a structured response."
    },
    "_description":"The **Miscellaneous** library contains functions that do not belong to a specific category."
  },
  "Debug":{
    "getupvalue":{
      "title":"debug.getupvalue",
      "signature":"function debug.getupvalue(func: (...any) -> (...any) | number, index: number): any",
      "parameters":{
        "index":"The position of the upvalue.",
        "func":"The Luau function (or stack level) to retrieve an upvalue from."
      },
      "link":"https://docs.sunc.su/Debug/getupvalue",
      "description":"`debug.getupvalue` returns the upvalue at the specified index from a Luau function's closure. If the index is invalid or out of bounds, an error will occur."
    },
    "getproto":{
      "title":"debug.getproto",
      "signature":"function debug.getproto(func: (...any) -> (...any) | number, index: number, activated: boolean?): (...any) -> (...any) | { (...any) -> (...any) }",
      "parameters":{
        "index":"The index of the prototype to return.",
        "activated?":"If `true`, returns a table of currently active functions based on the proto.",
        "func":"The Luau function (or stack level) to extract a proto from."
      },
      "link":"https://docs.sunc.su/Debug/getproto",
      "description":"`debug.getproto` returns a specific function prototype from a Luau function by index. Optionally, it can search for **active functions** of the proto, if the `activated` parameter is set to `true`."
    },
    "_description":"The **Debug** library offers powerful tools for inspecting and modifying Luau functions at a bytecode level.\nIt allows you to access constants, upvalues, stack frames, and internal structures of functions that would otherwise be hidden - making it especially useful for reverse engineering and hooking.",
    "_link":"https://docs.sunc.su/Debug",
    "setconstant":{
      "title":"debug.setconstant",
      "signature":"function debug.setconstant(func: (...any) -> (...any) | number, index: number, value: number | string | boolean | nil): ()",
      "parameters":{
        "index":"The position of the constant to change.",
        "value":"The new constant value to set.",
        "func":"The Luau function (or stack level) whose constant to modify."
      },
      "link":"https://docs.sunc.su/Debug/setconstant",
      "description":"`debug.setconstant` modifies a constant at the specified index in a Luau function bytecode."
    },
    "getprotos":{
      "title":"debug.getprotos",
      "signature":"function debug.getprotos(func: (...any) -> (...any) | number): { (...any) -> (...any) }",
      "parameters":{
        "func":"The Luau function (or stack level) to extract protos from."
      },
      "link":"https://docs.sunc.su/Debug/getprotos",
      "description":"`debug.getprotos` returns all function prototypes defined within the specified Luau function."
    },
    "setstack":{
      "title":"debug.setstack",
      "signature":"function debug.setstack(level: number, index: number, value: any): ()",
      "parameters":{
        "level":"The stack level to target. `1` refers to the current function.",
        "index":"The index/slot in the stack frame to replace.",
        "value":"The new value to assign at that stack slot."
      },
      "link":"https://docs.sunc.su/Debug/setstack",
      "description":"`debug.setstack` replaces a value in a specified stack frame."
    },
    "getstack":{
      "title":"debug.getstack",
      "signature":"function debug.getstack(level: number, index: number?): any | { any }",
      "parameters":{
        "level":"The stack level to inspect. `1` is the current function.",
        "index?":"The specific slot/index at that stack level to read."
      },
      "link":"https://docs.sunc.su/Debug/getstack",
      "description":"`debug.getstack` retrieves values from the stack at the specified call level."
    },
    "getupvalues":{
      "title":"debug.getupvalues",
      "signature":"function debug.getupvalues(func: (...any) -> (...any) | number): { any }",
      "parameters":{
        "func":"The Luau function (or stack level) to retrieve upvalues from."
      },
      "link":"https://docs.sunc.su/Debug/getupvalues",
      "description":"`debug.getupvalues` returns a list of upvalues captured by a Luau function. These are the external variables that a function closes over from its surrounding scope."
    },
    "getconstant":{
      "title":"debug.getconstant",
      "signature":"function debug.getconstant(func: (...any) -> (...any) | number, index: number): number | string | boolean | nil",
      "parameters":{
        "index":"The position of the desired constant.",
        "func":"The Luau function (or stack level) whose constant to retrieve."
      },
      "link":"https://docs.sunc.su/Debug/getconstant",
      "description":"`debug.getconstant` returns the constant at the specified index from a Luau function. If no constant exists at that index, it returns `nil` instead."
    },
    "setupvalue":{
      "title":"debug.setupvalue",
      "signature":"function debug.setupvalue(func: (...any) -> (...any) | number, index: number, value: any): ()",
      "parameters":{
        "index":"The index of the upvalue to be replaced.",
        "value":"The new value to assign to the upvalue.",
        "func":"The function (or stack level) whose upvalue to replace."
      },
      "link":"https://docs.sunc.su/Debug/setupvalue",
      "description":"`debug.setupvalue` replaces an upvalue at the specified index in a Luau function, with a new value."
    },
    "getconstants":{
      "title":"debug.getconstants",
      "signature":"function debug.getconstants(func: (...any) -> (...any) | number): { number | string | boolean | nil }",
      "parameters":{
        "func":"The Luau function (or stack level) whose constants will be returned."
      },
      "link":"https://docs.sunc.su/Debug/getconstants",
      "description":"`debug.getconstants` returns a list of all constants used within a Luau function's bytecode. This includes literal values like numbers, strings, booleans, and `nil`."
    }
  },
  "Environment":{
    "filtergc":{
      "title":"filtergc",
      "signature":"export type AnyFunction = (...any) -> (...any)\nexport type AnyTable = { [any]: any }\ndeclare filtergc: \n    (( filterType: \"function\", filterOptions: FunctionFilterOptions, returnOne: true) -> AnyFunction? ) &\n    ((( filterType: \"function\", filterOptions: FunctionFilterOptions, returnOne: false?) -> ( AnyFunction | { AnyFunction } ) )) &\n    (( filterType: \"table\", filterOptions: TableFilterOptions, returnOne: true) -> { AnyTable? } ) &\n    (( filterType: \"table\", filterOptions: TableFilterOptions, returnOne: false? ) -> { AnyTable })",
      "parameters":{
        "filterType":"The type of value to search for.",
        "filterOptions":"A set of rules used to match functions or tables. [See below.](#filter-option-types)",
        "returnOne?":"If `true`, returns the first match, instead of a table of matches."
      },
      "link":"https://docs.sunc.su/Environment/filtergc",
      "description":"`filtergc` allows you to retrieve specific garbage-collected values from Luau's memory, using fine-tuned filters."
    },
    "getgc":{
      "title":"getgc",
      "signature":"export type AnyFunction = (...any) -> (...any)\nexport type AnyTable = { [any]: any }\nexport type userdata = typeof(newproxy()) -- (1)\ndeclare getgc:\n    ((includeTables: true) -> { AnyTable | AnyFunction | userdata }) &\n    ((includeTables: false?) -> { AnyFunction | userdata })",
      "parameters":{
        "includeTables?":"If `true`, also includes tables in the returned list. Defaults to `false`."
      },
      "link":"https://docs.sunc.su/Environment/getgc",
      "description":"`getgc` returns a list of **non-dead garbage-collectable values**. These include functions, userdatas, and optionally tables."
    },
    "getrenv":{
      "title":"getrenv",
      "signature":"function getrenv(): { any }",
      "parameters":[],
      "link":"https://docs.sunc.su/Environment/getrenv",
      "description":"`getrenv` returns the **Roblox global environment**, which is used by the entire game. Changes to this environment will affect your executor environment as well."
    },
    "_description":"The **Environment** library allows access and inspection to our and Roblox's environment.",
    "_link":"https://docs.sunc.su/Environment",
    "getgenv":{
      "title":"getgenv",
      "signature":"function getgenv(): { any }",
      "parameters":[],
      "link":"https://docs.sunc.su/Environment/getgenv",
      "description":"`getgenv` returns the **executor's global environment table**, which is shared across all executor-made threads."
    },
    "getreg":{
      "title":"getreg",
      "signature":"function getreg(): { [any]: any }",
      "parameters":[],
      "link":"https://docs.sunc.su/Environment/getreg",
      "description":"`getreg` returns the **Luau registry table**. The registry is a special table which is used internally to store references like threads, functions, and data shared between C and Luau (userdata)."
    }
  },
  "Scripts":{
    "getcallingscript":{
      "title":"getcallingscript",
      "signature":"function getcallingscript(): BaseScript | ModuleScript | nil",
      "parameters":[],
      "link":"https://docs.sunc.su/Scripts/getcallingscript",
      "description":"`getcallingscript` returns the [`Script`](https://create.roblox.com/docs/reference/engine/classes/Script), [`LocalScript`](https://create.roblox.com/docs/reference/engine/classes/LocalScript), or [`ModuleScript`](https://create.roblox.com/docs/reference/engine/classes/ModuleScript) that **triggered the current code execution**."
    },
    "_description":"The **Scripts** library provides advanced functions for inspecting and interacting with script objects. It allows you to analyse bytecode, retrieve closures and environments, and simulate the loading or running of scripts.",
    "_link":"https://docs.sunc.su/Scripts",
    "getscripthash":{
      "title":"getscripthash",
      "signature":"function getscripthash(script: BaseScript | ModuleScript): string | nil",
      "parameters":{
        "script":"The [BaseScript](https://create.roblox.com/docs/reference/engine/classes/BaseScript) or [ModuleScript](https://create.roblox.com/docs/reference/engine/classes/ModuleScript) instance to hash."
      },
      "link":"https://docs.sunc.su/Scripts/getscripthash",
      "description":"`getscripthash` returns a [SHA-384 hash](https://en.wikipedia.org/wiki/SHA-3) in ***hexadecimal format*** of the raw bytecode for a given [`Script`](https://create.roblox.com/docs/reference/engine/classes/Script), [`LocalScript`](https://create.roblox.com/docs/reference/engine/classes/LocalScript), or [`ModuleScript`](https://create.roblox.com/docs/reference/engine/classes/ModuleScript)."
    },
    "getscriptbytecode":{
      "title":"getscriptbytecode",
      "signature":"function getscriptbytecode(script: BaseScript | ModuleScript): string | nil",
      "parameters":{
        "script":"The script instance to retrieve the bytecode from."
      },
      "link":"https://docs.sunc.su/Scripts/getscriptbytecode",
      "description":"`getscriptbytecode` retrieves the bytecode of a [`LocalScript`](https://create.roblox.com/docs/reference/engine/classes/LocalScript), [`ModuleScript`](https://create.roblox.com/docs/reference/engine/classes/ModuleScript), and [`Script`](https://create.roblox.com/docs/reference/engine/classes/Script)."
    },
    "getscripts":{
      "title":"getscripts",
      "signature":"function getscripts(): { BaseScript | ModuleScript }",
      "parameters":[],
      "link":"https://docs.sunc.su/Scripts/getscripts",
      "description":"`getscripts` returns a list of **all [`Script`](https://create.roblox.com/docs/reference/engine/classes/Script), [`LocalScript`](https://create.roblox.com/docs/reference/engine/classes/LocalScript), and [`ModuleScript`](https://create.roblox.com/docs/reference/engine/classes/ModuleScript) instances** present."
    },
    "getrunningscripts":{
      "title":"getrunningscripts",
      "signature":"function getrunningscripts(): { BaseScript | ModuleScript }",
      "parameters":[],
      "link":"https://docs.sunc.su/Scripts/getrunningscripts",
      "description":"`getrunningscripts` returns a list of **all running scripts** in the caller's global state. This includes [`Script`](https://create.roblox.com/docs/reference/engine/classes/Script), [`LocalScript`](https://create.roblox.com/docs/reference/engine/classes/LocalScript), and [`ModuleScript`](https://create.roblox.com/docs/reference/engine/classes/ModuleScript) instances - excluding [`CoreScripts`](https://robloxapi.github.io/ref/class/CoreScript.html) by default."
    },
    "getloadedmodules":{
      "title":"getloadedmodules",
      "signature":"function getloadedmodules(): { ModuleScript }",
      "parameters":[],
      "link":"https://docs.sunc.su/Scripts/getloadedmodules",
      "description":"`getloadedmodules` returns a list of all [`ModuleScript`](https://create.roblox.com/docs/reference/engine/classes/ModuleScript) instances that have been **loaded** (e.g. [`require`'d](https://create.roblox.com/docs/reference/engine/globals/LuaGlobals#require))."
    },
    "getscriptclosure":{
      "title":"getscriptclosure",
      "signature":"function getscriptclosure(script: BaseScript | ModuleScript): (...any) -> (...any) | nil",
      "parameters":{
        "script":"The script instance to convert into a function."
      },
      "link":"https://docs.sunc.su/Scripts/getscriptclosure",
      "description":"`getscriptclosure` creates and returns a Luau **function closure** from the compiled bytecode of a [`Script`](https://create.roblox.com/docs/reference/engine/classes/Script), [`LocalScript`](https://create.roblox.com/docs/reference/engine/classes/LocalScript), or [`ModuleScript`](https://create.roblox.com/docs/reference/engine/classes/ModuleScript)."
    },
    "getsenv":{
      "title":"getsenv",
      "signature":"function getsenv(script: BaseScript | ModuleScript): { [any]: any } | nil",
      "parameters":{
        "script":"The script instance whose environment should be retrieved."
      },
      "link":"https://docs.sunc.su/Scripts/getsenv",
      "description":"`getsenv` returns the **global environment table** of a given [`Script`](https://create.roblox.com/docs/reference/engine/classes/Script), [`LocalScript`](https://create.roblox.com/docs/reference/engine/classes/LocalScript), or [`ModuleScript`](https://create.roblox.com/docs/reference/engine/classes/ModuleScript)."
    }
  },
  "Closures":{
    "hookfunction":{
      "title":"hookfunction",
      "signature":"function hookfunction<A1..., R1..., A2..., R2...>(functionToHook: (A1...) -> R1..., hook: (A2...) -> R2...): (A1...) -> R1...",
      "parameters":{
        "hook":"The function that will be used as a hook",
        "functionToHook":"The function that will be hooked"
      },
      "link":"https://docs.sunc.su/Closures/hookfunction",
      "description":"`hookfunction` allows you to hook a function with another wanted function, returning the original unhooked function."
    },
    "loadstring":{
      "title":"loadstring",
      "signature":"function loadstring<A...>(source: string, chunkname: string?): (((A...) -> any) | nil, string?)",
      "parameters":{
        "chunkname?":"Custom chunk name.",
        "source":"The source code string to compile."
      },
      "link":"https://docs.sunc.su/Closures/loadstring",
      "description":"`loadstring` compiles a string of Luau code and returns it as a runnable function. If the code has errors, two things are returned: `nil` and a `string`, which is the error message."
    },
    "_link":"https://docs.sunc.su/Closures",
    "iscclosure":{
      "title":"iscclosure",
      "signature":"function iscclosure(func: (...any) -> (...any)): boolean",
      "parameters":{
        "func":"The function to check."
      },
      "link":"https://docs.sunc.su/Closures/iscclosure",
      "description":"`iscclosure` checks whether a given function is a C closure or not."
    },
    "newcclosure":{
      "title":"newcclosure",
      "signature":"function newcclosure<A..., R...>(functionToWrap: (A...) -> R...): (A...) -> R...",
      "parameters":{
        "functionToWrap":"A function to be wrapped."
      },
      "link":"https://docs.sunc.su/Closures/newcclosure",
      "description":"`newcclosure` takes any Luau function and wraps it into a C closure."
    },
    "clonefunction":{
      "title":"clonefunction",
      "signature":"function clonefunction<A..., R...>(functionToClone: (A...) -> R...): (A...) -> R...",
      "parameters":{
        "functionToClone":"The function to clone."
      },
      "link":"https://docs.sunc.su/Closures/clonefunction",
      "description":"`clonefunction` creates and returns a new function that has the exact same behaviour as the passed function."
    },
    "hookmetamethod":{
      "title":"hookmetamethod",
      "signature":"function hookmetamethod(object: { [any]: any } | Instance | userdata, metamethodName: string, hook: (...any) -> (...any)): (...any) -> (...any)",
      "parameters":{
        "metamethodName":"The name of the metamethod to hook.",
        "hook":"The function that will be used as a hook.",
        "object":"The object which has a metatable."
      },
      "link":"https://docs.sunc.su/Closures/hookmetamethod",
      "description":"`hookmetamethod` takes any Luau object that can have a metatable, and attempts to hook the specified metamethod of the object. Internally, it essentially uses [`hookfunction`](https://docs.sunc.su/Closures/hookfunction) to hook specific metamethods."
    },
    "getfunctionhash":{
      "title":"getfunctionhash",
      "signature":"function getfunctionhash(functionToHash: (...any) -> (...any)): string",
      "parameters":{
        "functionToHash":"The function to retrieve the hash of."
      },
      "link":"https://docs.sunc.su/Closures/getfunctionhash",
      "description":"`getfunctionhash` returns the ***hex-represented*** [SHA384 hash](https://en.wikipedia.org/wiki/SHA-2) of a provided function's instructions (code) and constants."
    },
    "restorefunction":{
      "title":"restorefunction",
      "signature":"function restorefunction(functionToRestore: (...any) -> (...any)): ()",
      "parameters":{
        "functionToRestore":"The hooked function that you want to restore"
      },
      "link":"https://docs.sunc.su/Closures/restorefunction",
      "description":"`restorefunction` restores a hooked function back to the very first original function, even if it has been hooked multiple times."
    },
    "isexecutorclosure":{
      "title":"isexecutorclosure",
      "signature":"function isexecutorclosure(func: (...any) -> (...any)): boolean",
      "parameters":{
        "func":"The function to check."
      },
      "link":"https://docs.sunc.su/Closures/isexecutorclosure",
      "description":"`isexecutorclosure` checks whether a given function is a closure of the executor. This also includes closures retrieved using [`getscriptclosure`](https://docs.sunc.su/Scripts/getloadedmodules) or [`loadstring`](https://docs.sunc.su/Closures/loadstring)."
    },
    "_description":"The **Closures** library enables the inspection, modification and creation of Luau closures with precise control.\nIt is one of the most powerful tools available, exposing internals in a way that Luau does not natively support out of the box.\nThis library is incredibly useful for hooking functions to modify game logic to your own advantage, and any other creative uses you can think of.",
    "checkcaller":{
      "title":"checkcaller",
      "signature":"function checkcaller(): boolean",
      "parameters":[],
      "link":"https://docs.sunc.su/Closures/checkcaller",
      "description":"`checkcaller` returns a boolean indicating whether the **current function was invoked from the executor's own thread**. This is useful for differentiating between your own calls and those made by the game."
    },
    "islclosure":{
      "title":"islclosure",
      "signature":"function islclosure(func: (...any) -> (...any)): boolean",
      "parameters":{
        "func":"The function to check."
      },
      "link":"https://docs.sunc.su/Closures/islclosure",
      "description":"`islclosure` checks whether a given function is a Luau closure or not."
    }
  },
  "Drawing":{
    "getrenderproperty":{
      "title":"getrenderproperty",
      "signature":"function getrenderproperty(drawing: Drawing, property: string): any",
      "parameters":{
        "drawing":"A valid [`Drawing`](https://docs.sunc.su/Drawing/) object.",
        "property":"The name of the property to retrieve."
      },
      "link":"https://docs.sunc.su/Drawing/getrenderproperty",
      "description":"`getrenderproperty` retrieves the value of a property from a [`Drawing`](https://docs.sunc.su/Drawing/) object. This behaves identically to using `object[property]`, but is useful when working with dynamic property names or for reflection-like access."
    },
    "cleardrawcache":{
      "title":"cleardrawcache",
      "signature":"function cleardrawcache(): ()",
      "parameters":[],
      "link":"https://docs.sunc.su/Drawing/cleardrawcache",
      "description":"`cleardrawcache` removes **all active drawing objects** created with [`Drawing.new`](https://docs.sunc.su/Drawing/#constructor)."
    },
    "_description":"The `Drawing` class represents a renderable 2D object that appears on the user's screen. Every specific drawing type (e.g. `Circle`, `Text`, `Line`) inherits from this base and extends it with shape-specific properties.\nDrawing objects are ***not*** instances - they are client-only graphical primitives that do not interact with the 3D world and must be managed manually.",
    "_link":"https://docs.sunc.su/Drawing",
    "isrenderobj":{
      "title":"isrenderobj",
      "signature":"function isrenderobj(object: any): boolean",
      "parameters":{
        "object":"The value to check for Drawing validity."
      },
      "link":"https://docs.sunc.su/Drawing/isrenderobj",
      "description":"`isrenderobj` checks whether a given value is a valid [`Drawing`](https://docs.sunc.su/Drawing/) object."
    },
    "setrenderproperty":{
      "title":"setrenderproperty",
      "signature":"function setrenderproperty(drawing: Drawing, property: string, value: any): ()",
      "parameters":{
        "drawing":"A valid [`Drawing`](https://docs.sunc.su/Drawing/) object.",
        "property":"The name of the property to assign.",
        "value":"The value to assign to the specified property."
      },
      "link":"https://docs.sunc.su/Drawing/setrenderproperty",
      "description":"`setrenderproperty` assigns a value to a property of a [`Drawing`](https://docs.sunc.su/Drawing/) object. This behaves identically to `object[property] = value`, but is useful for dynamic or abstracted property access."
    }
  }
}