Skip to main content

Serializer

Growable little-endian buffer writer and reader, rotation quantization and string interning. Shared by the Recorder and the Player.

Functions​

newWriter​

Serializer.newWriter(initial: number?) → Writer

Creates a writer with an initial capacity. The buffer doubles as needed.

writeRotation​

Serializer.writeRotation(
w: Writer,
cf: CFrame
) → ()

Writes the rotation of a CFrame as an axis-angle vector quantized to 3 x i16.

rotationFromDelta​

Serializer.rotationFromDelta(
x: number,
y: number,
z: number
) → CFrame

Rotation delta from three i8 axis-angle components in 1/ROT_Q radians.

isYawOnly​

Serializer.isYawOnly(cf: CFrame) → boolean

True when the CFrame is a pure rotation about the world Y axis, the common case for characters and vehicles.

toBase64​

Serializer.toBase64(data: buffer) → string

Base64 encodes a buffer so it can live inside JSON such as plugin settings.

newStringTable​

Serializer.newStringTable() → StringTable

Interns strings to 1-based ids so the op stream only carries u16 references.

Show raw api
{
    "functions": [
        {
            "name": "newWriter",
            "desc": "Creates a writer with an initial capacity. The buffer doubles as needed.",
            "params": [
                {
                    "name": "initial",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Writer\n"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 60,
                "path": "src/Flashback/Serializer.luau"
            }
        },
        {
            "name": "writeRotation",
            "desc": "Writes the rotation of a CFrame as an axis-angle vector quantized to 3 x i16.",
            "params": [
                {
                    "name": "w",
                    "desc": "",
                    "lua_type": "Writer"
                },
                {
                    "name": "cf",
                    "desc": "",
                    "lua_type": "CFrame"
                }
            ],
            "returns": [],
            "function_type": "static",
            "source": {
                "line": 239,
                "path": "src/Flashback/Serializer.luau"
            }
        },
        {
            "name": "rotationFromDelta",
            "desc": "Rotation delta from three i8 axis-angle components in 1/ROT_Q radians.",
            "params": [
                {
                    "name": "x",
                    "desc": "",
                    "lua_type": "number"
                },
                {
                    "name": "y",
                    "desc": "",
                    "lua_type": "number"
                },
                {
                    "name": "z",
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "CFrame\n"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 260,
                "path": "src/Flashback/Serializer.luau"
            }
        },
        {
            "name": "isYawOnly",
            "desc": "True when the CFrame is a pure rotation about the world Y axis, the common\ncase for characters and vehicles.",
            "params": [
                {
                    "name": "cf",
                    "desc": "",
                    "lua_type": "CFrame"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean\n"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 276,
                "path": "src/Flashback/Serializer.luau"
            }
        },
        {
            "name": "toBase64",
            "desc": "Base64 encodes a buffer so it can live inside JSON such as plugin settings.",
            "params": [
                {
                    "name": "data",
                    "desc": "",
                    "lua_type": "buffer"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "string\n"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 311,
                "path": "src/Flashback/Serializer.luau"
            }
        },
        {
            "name": "newStringTable",
            "desc": "Interns strings to 1-based ids so the op stream only carries u16 references.",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "StringTable\n"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 371,
                "path": "src/Flashback/Serializer.luau"
            }
        }
    ],
    "properties": [],
    "types": [],
    "name": "Serializer",
    "desc": "Growable little-endian buffer writer and reader, rotation quantization and\nstring interning. Shared by the Recorder and the Player.",
    "source": {
        "line": 7,
        "path": "src/Flashback/Serializer.luau"
    }
}