Show raw api
{
"functions": [
{
"name": "print",
"desc": "Pretty prints a Cursor record.",
"params": [
{
"name": "cursor",
"desc": "",
"lua_type": "Cursor"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 18,
"path": "src/moonwave.luau"
}
},
{
"name": "cursor",
"desc": "",
"params": [
{
"name": "size",
"desc": "",
"lua_type": "number?"
},
{
"name": "position",
"desc": "",
"lua_type": "number?"
}
],
"returns": [
{
"desc": "",
"lua_type": "Cursor"
}
],
"function_type": "static",
"source": {
"line": 24,
"path": "src/moonwave.luau"
}
},
{
"name": "frombuffer",
"desc": "",
"params": [
{
"name": "buf",
"desc": "",
"lua_type": "buffer"
}
],
"returns": [
{
"desc": "",
"lua_type": "Cursor"
}
],
"function_type": "static",
"source": {
"line": 29,
"path": "src/moonwave.luau"
}
},
{
"name": "tobuffer",
"desc": "",
"params": [
{
"name": "cursor",
"desc": "",
"lua_type": "Cursor"
}
],
"returns": [
{
"desc": "",
"lua_type": "buffer"
}
],
"function_type": "static",
"source": {
"line": 34,
"path": "src/moonwave.luau"
}
},
{
"name": "T",
"desc": "",
"params": [
{
"name": "x",
"desc": "",
"lua_type": "SerDes<T>"
}
],
"returns": [
{
"desc": "",
"lua_type": "T"
}
],
"function_type": "static",
"source": {
"line": 39,
"path": "src/moonwave.luau"
}
},
{
"name": "boolean",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "{ ser: (Cursor, boolean, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?, boolean?) -> (), des: (Cursor) -> (boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean) }"
}
],
"function_type": "static",
"source": {
"line": 43,
"path": "src/moonwave.luau"
}
},
{
"name": "uint",
"desc": "Accuracy diminishes using 7 or 8 bytes.",
"params": [
{
"name": "bytes",
"desc": "",
"lua_type": "number"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<number>"
}
],
"function_type": "static",
"source": {
"line": 51,
"path": "src/moonwave.luau"
}
},
{
"name": "int",
"desc": "Accuracy diminishes using 7 or 8 bytes.",
"params": [
{
"name": "bytes",
"desc": "",
"lua_type": "number"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<number>"
}
],
"function_type": "static",
"source": {
"line": 59,
"path": "src/moonwave.luau"
}
},
{
"name": "number",
"desc": "Only supports 4 or 8 bytes.",
"params": [
{
"name": "bytes",
"desc": "",
"lua_type": "number"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<number>"
}
],
"function_type": "static",
"source": {
"line": 67,
"path": "src/moonwave.luau"
}
},
{
"name": "vector",
"desc": "Either vector3 or vector4 depending on the Luau configuration's default vector width.",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<vector>"
}
],
"function_type": "static",
"source": {
"line": 75,
"path": "src/moonwave.luau"
}
},
{
"name": "vector2",
"desc": "The x, y components.",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<vector>"
}
],
"function_type": "static",
"source": {
"line": 81,
"path": "src/moonwave.luau"
}
},
{
"name": "vector3",
"desc": "The x, y, z components.",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<vector>"
}
],
"function_type": "static",
"source": {
"line": 87,
"path": "src/moonwave.luau"
}
},
{
"name": "vector4",
"desc": "The x, y, z, w components.",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<vector>"
}
],
"function_type": "static",
"source": {
"line": 93,
"path": "src/moonwave.luau"
}
},
{
"name": "range",
"desc": "The given min and max must be integers, and min < max. Uses the smallest uint representation for a given range.",
"params": [
{
"name": "min",
"desc": "",
"lua_type": "number"
},
{
"name": "max",
"desc": "",
"lua_type": "number"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<number>"
}
],
"function_type": "static",
"source": {
"line": 102,
"path": "src/moonwave.luau"
}
},
{
"name": "string",
"desc": "",
"params": [
{
"name": "length",
"desc": "",
"lua_type": "number?"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<string>"
}
],
"function_type": "static",
"source": {
"line": 182,
"path": "src/moonwave.luau"
}
},
{
"name": "buffer",
"desc": "",
"params": [
{
"name": "length",
"desc": "",
"lua_type": "number?"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<buffer>"
}
],
"function_type": "static",
"source": {
"line": 189,
"path": "src/moonwave.luau"
}
},
{
"name": "vlq",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<number>"
}
],
"function_type": "static",
"source": {
"line": 195,
"path": "src/moonwave.luau"
}
},
{
"name": "opt",
"desc": "",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<T>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<T?>"
}
],
"function_type": "static",
"source": {
"line": 202,
"path": "src/moonwave.luau"
}
},
{
"name": "array",
"desc": "When passing a number as the length, it will optimize out the length entirely. If a number serializer is provided, it will serialize the length using that, else it will use a vlq. Will bitpack booleans and optional values.",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<T>"
},
{
"name": "length",
"desc": "",
"lua_type": "(number | SerDes<number>)?"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<{T}>"
}
],
"function_type": "static",
"source": {
"line": 211,
"path": "src/moonwave.luau"
}
},
{
"name": "tuple",
"desc": "",
"params": [
{
"name": "...",
"desc": "",
"lua_type": "T..."
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<T...>"
}
],
"function_type": "static",
"source": {
"line": 218,
"path": "src/moonwave.luau"
}
},
{
"name": "record",
"desc": "Will bitpack booleans and optional values.",
"params": [
{
"name": "schema",
"desc": "",
"lua_type": "T"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<T>"
}
],
"function_type": "static",
"source": {
"line": 226,
"path": "src/moonwave.luau"
}
},
{
"name": "map",
"desc": "When passing a number as the length, it will optimize out the length entirely. If a number serializer is provided, it will serialize the length using that, else it will use a vlq.",
"params": [
{
"name": "keySerDes",
"desc": "",
"lua_type": "SerDes<K>"
},
{
"name": "valueSerDes",
"desc": "",
"lua_type": "SerDes<V>"
},
{
"name": "length",
"desc": "",
"lua_type": "(number | SerDes<number>)?"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<{[K]: V}>"
}
],
"function_type": "static",
"source": {
"line": 236,
"path": "src/moonwave.luau"
}
},
{
"name": "literal",
"desc": "",
"params": [
{
"name": "literals",
"desc": "",
"lua_type": "... any"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<any>"
}
],
"function_type": "static",
"source": {
"line": 243,
"path": "src/moonwave.luau"
}
},
{
"name": "table",
"desc": "Serializes tables given a schema mapping types to serializers.\nIf a type is not defined in the schema, it will be ignored when serializing tables.\n**This is an expensive and heavy serializer compared to Record, Map, and Array.**\n**It is highly recommended that you do not use this for tables you know the type of already.**\n\nWhen passing a number as the length, it will optimize out the length entirely. If a number serializer is provided, it will serialize the length using that, else it will use a vlq.",
"params": [
{
"name": "schema",
"desc": "",
"lua_type": "{ [string]: SerDes<any> }"
},
{
"name": "length",
"desc": "",
"lua_type": "(number | SerDes<number>)?"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<any>"
}
],
"function_type": "static",
"source": {
"line": 259,
"path": "src/moonwave.luau"
}
},
{
"name": "Axes",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<Axes>"
}
],
"function_type": "static",
"source": {
"line": 265,
"path": "src/moonwave.luau"
}
},
{
"name": "BrickColor",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<BrickColor>"
}
],
"function_type": "static",
"source": {
"line": 271,
"path": "src/moonwave.luau"
}
},
{
"name": "EnumItem",
"desc": "",
"params": [
{
"name": "enum",
"desc": "",
"lua_type": "Enum"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<EnumItem>"
}
],
"function_type": "static",
"source": {
"line": 278,
"path": "src/moonwave.luau"
}
},
{
"name": "CatalogueSearchParams",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<CatalogSearchParams>"
}
],
"function_type": "static",
"source": {
"line": 284,
"path": "src/moonwave.luau"
}
},
{
"name": "CFrame",
"desc": "",
"params": [
{
"name": "positionSerDes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<CFrame>"
}
],
"function_type": "static",
"source": {
"line": 291,
"path": "src/moonwave.luau"
}
},
{
"name": "rotation",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<CFrame>"
}
],
"function_type": "static",
"source": {
"line": 297,
"path": "src/moonwave.luau"
}
},
{
"name": "Color3",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<Color3>"
}
],
"function_type": "static",
"source": {
"line": 303,
"path": "src/moonwave.luau"
}
},
{
"name": "ColorSequenceKeypoint",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<ColorSequenceKeypoint>"
}
],
"function_type": "static",
"source": {
"line": 309,
"path": "src/moonwave.luau"
}
},
{
"name": "ColorSequence",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<ColorSequence>"
}
],
"function_type": "static",
"source": {
"line": 315,
"path": "src/moonwave.luau"
}
},
{
"name": "DateTime",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<DateTime>"
}
],
"function_type": "static",
"source": {
"line": 321,
"path": "src/moonwave.luau"
}
},
{
"name": "Faces",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<Faces>"
}
],
"function_type": "static",
"source": {
"line": 327,
"path": "src/moonwave.luau"
}
},
{
"name": "FloatCurveKey",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<FloatCurveKey>"
}
],
"function_type": "static",
"source": {
"line": 333,
"path": "src/moonwave.luau"
}
},
{
"name": "Font",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<Font>"
}
],
"function_type": "static",
"source": {
"line": 339,
"path": "src/moonwave.luau"
}
},
{
"name": "NumberRange",
"desc": "",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<NumberRange>"
}
],
"function_type": "static",
"source": {
"line": 346,
"path": "src/moonwave.luau"
}
},
{
"name": "NumberSequenceKeypoint",
"desc": "",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<NumberSequenceKeypoint>"
}
],
"function_type": "static",
"source": {
"line": 353,
"path": "src/moonwave.luau"
}
},
{
"name": "NumberSequence",
"desc": "",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<NumberSequence>"
}
],
"function_type": "static",
"source": {
"line": 360,
"path": "src/moonwave.luau"
}
},
{
"name": "OverlapParams",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<OverlapParams>"
}
],
"function_type": "static",
"source": {
"line": 366,
"path": "src/moonwave.luau"
}
},
{
"name": "RaycastParams",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<RaycastParams>"
}
],
"function_type": "static",
"source": {
"line": 372,
"path": "src/moonwave.luau"
}
},
{
"name": "Vector3",
"desc": "",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<Vector3>"
}
],
"function_type": "static",
"source": {
"line": 379,
"path": "src/moonwave.luau"
}
},
{
"name": "PathWaypoint",
"desc": "",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<PathWaypoint>"
}
],
"function_type": "static",
"source": {
"line": 386,
"path": "src/moonwave.luau"
}
},
{
"name": "PhysicalProperties",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<PhysicalProperties>"
}
],
"function_type": "static",
"source": {
"line": 392,
"path": "src/moonwave.luau"
}
},
{
"name": "Ray",
"desc": "",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<Ray>"
}
],
"function_type": "static",
"source": {
"line": 399,
"path": "src/moonwave.luau"
}
},
{
"name": "RaycastResult",
"desc": "Returns a `SquashRaycastResult` because Roblox does not allow instantiating RaycastResults.",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<SquashRaycastResult>"
}
],
"function_type": "static",
"source": {
"line": 414,
"path": "src/moonwave.luau"
}
},
{
"name": "Vector2",
"desc": "",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<Vector2>"
}
],
"function_type": "static",
"source": {
"line": 421,
"path": "src/moonwave.luau"
}
},
{
"name": "Rect",
"desc": "",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<Rect>"
}
],
"function_type": "static",
"source": {
"line": 428,
"path": "src/moonwave.luau"
}
},
{
"name": "Region3",
"desc": "",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<Region3>"
}
],
"function_type": "static",
"source": {
"line": 435,
"path": "src/moonwave.luau"
}
},
{
"name": "Region3int16",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<Region3int16>"
}
],
"function_type": "static",
"source": {
"line": 441,
"path": "src/moonwave.luau"
}
},
{
"name": "RotationCurveKey",
"desc": "",
"params": [
{
"name": "positionSerDes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<RotationCurveKey>"
}
],
"function_type": "static",
"source": {
"line": 448,
"path": "src/moonwave.luau"
}
},
{
"name": "TweenInfo",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<TweenInfo>"
}
],
"function_type": "static",
"source": {
"line": 454,
"path": "src/moonwave.luau"
}
},
{
"name": "UDim",
"desc": "",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<UDim>"
}
],
"function_type": "static",
"source": {
"line": 461,
"path": "src/moonwave.luau"
}
},
{
"name": "UDim2",
"desc": "",
"params": [
{
"name": "serdes",
"desc": "",
"lua_type": "SerDes<number>"
}
],
"returns": [
{
"desc": "",
"lua_type": "SerDes<UDim2>"
}
],
"function_type": "static",
"source": {
"line": 468,
"path": "src/moonwave.luau"
}
},
{
"name": "Vector2int16",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<Vector2int16>"
}
],
"function_type": "static",
"source": {
"line": 474,
"path": "src/moonwave.luau"
}
},
{
"name": "Vector3int16",
"desc": "",
"params": [],
"returns": [
{
"desc": "",
"lua_type": "SerDes<Vector3int16>"
}
],
"function_type": "static",
"source": {
"line": 480,
"path": "src/moonwave.luau"
}
}
],
"properties": [],
"types": [
{
"name": "Cursor",
"desc": "An import of the Redblox Buffit Cursor type for better cross-library interaction",
"fields": [
{
"name": "Buf",
"lua_type": "buffer",
"desc": ""
},
{
"name": "Pos",
"lua_type": "number",
"desc": ""
}
],
"source": {
"line": 8,
"path": "src/moonwave.luau"
}
},
{
"name": "SerDes",
"desc": "",
"fields": [
{
"name": "ser",
"lua_type": "(Cursor, T...) -> ()",
"desc": ""
},
{
"name": "des",
"lua_type": "(Cursor) -> T...",
"desc": ""
}
],
"source": {
"line": 13,
"path": "src/moonwave.luau"
}
},
{
"name": "SquashRaycastResult",
"desc": "",
"fields": [
{
"name": "Distance",
"lua_type": "number,",
"desc": ""
},
{
"name": "Position",
"lua_type": "Vector3",
"desc": ""
},
{
"name": "Normal",
"lua_type": "Vector3",
"desc": ""
},
{
"name": "Material",
"lua_type": "Enum.Material",
"desc": ""
}
],
"source": {
"line": 408,
"path": "src/moonwave.luau"
}
}
],
"name": "Squash",
"desc": "",
"source": {
"line": 2,
"path": "src/moonwave.luau"
}
}