Skip to content

Z ​

Types ​

Read type ​

luau
type Read = (b: buffer, offset: number) -> (any, number)

Write type ​

luau
type Write = (b: buffer, offset: number, value: any) -> number

ZType type ​

luau
type ZType = { read: Read, write: Write }

Data type ​

luau
type Data = { [number | string | ZType]: any }

SchemaDefinition type ​

luau
type SchemaDefinition = { [number | string | ZType]: ZType }

Field type ​

luau
type Field = { key: number | string | ZType, read: Read, write: Write, type: string }

Schema type ​

luau
type Schema = {
	count: number,
	fields: { Field },
	keys: { number | string | ZType },
	reads: { Read },
	writes: { Write },
	isList: boolean,
	isMap: boolean,
	name: string,
	read: Read,
	write: Write,
	maxItems: number?,
	readLen: typeof(buffer.readu8)?,
	writeLen: typeof(buffer.writeu8)?,
	sizeLen: number?,
}

Properties ​

BUFFER ​

luau
Z.BUFFER: buffer

TRIM_STRINGS ​

luau
Z.TRIM_STRINGS: boolean

boolean ​

luau
Z.boolean: bool

number ​

luau
Z.number: f64

str8 ​

luau
Z.str8

str16 ​

luau
Z.str16

str32 ​

luau
Z.str32

string ​

luau
Z.string

buffer8 ​

luau
Z.buffer8

buffer16 ​

luau
Z.buffer16

buffer32 ​

luau
Z.buffer32

buffer ​

luau
Z.buffer

Vector2int16 ​

luau
Z.Vector2int16: Vector2i16

Vector3int16 ​

luau
Z.Vector3int16: Vector3i16

Functions ​

some ​

luau
Z.some(t: ZType): ZType

Wraps a ZType to make it optional, adding 1 byte of overhead.

ser ​

luau
Z.ser(schema: Schema, obj: any, b: buffer?, offset: number?, maxSize: number?): (buffer? | number?, string?)

Serializes a table. Returns a new buffer or the next write offset if a buffer is provided.

des ​

luau
Z.des(schema: Schema | ZType, b: buffer, offset: number?, safe: boolean?): (Data, number)

Deserializes a buffer into a table. The safe flag suppresses errors from incomplete data.

migrate ​

luau
Z.migrate(old: Schema, new: Schema, b: buffer, change: ((Data) -> Data)?): ((buffer | number)?, string?)

Migrates a buffer to a new schema. When provided, the change function's result will be serialized with the new schema.

schema ​

luau
Z.schema(definition: SchemaDefinition, bits: number?): Schema

Creates a schema for serialization.

schema8 ​

luau
Z.schema8(definition: SchemaDefinition): Schema

Creates a schema with a 8-bit item limit, if it's a list or map schema.

schema16 ​

luau
Z.schema16(definition: SchemaDefinition): Schema

Creates a schema with a 16-bit item limit, if it's a list or map schema.

schema32 ​

luau
Z.schema32(definition: SchemaDefinition): Schema

Creates a schema with a 32-bit item limit, if it's a list or map schema.

bool ​

read ​

luau
Z.bool.read(b: buffer, offset: number): (boolean, number)

write ​

luau
Z.bool.write(b: buffer, offset: number, value: boolean): number

bools ​

read ​

luau
Z.bools.read(b: buffer, offset: number): ({ boolean }, number)

write ​

luau
Z.bools.write(b: buffer, offset: number, value: { boolean }): number

u8 ​

read ​

luau
Z.u8.read(b: buffer, offset: number): (number, number)

write ​

luau
Z.u8.write(b: buffer, offset: number, value: number): number

u16 ​

read ​

luau
Z.u16.read(b: buffer, offset: number): (number, number)

write ​

luau
Z.u16.write(b: buffer, offset: number, value: number): number

u32 ​

read ​

luau
Z.u32.read(b: buffer, offset: number): (number, number)

write ​

luau
Z.u32.write(b: buffer, offset: number, value: number): number

uint ​

read ​

luau
Z.uint.read(b: buffer, offset: number): (number, number)

write ​

luau
Z.uint.write(b: buffer, offset: number, value: number): number

i8 ​

read ​

luau
Z.i8.read(b: buffer, offset: number): (number, number)

write ​

luau
Z.i8.write(b: buffer, offset: number, value: number): number

i16 ​

read ​

luau
Z.i16.read(b: buffer, offset: number): (number, number)

write ​

luau
Z.i16.write(b: buffer, offset: number, value: number): number

i32 ​

read ​

luau
Z.i32.read(b: buffer, offset: number): (number, number)

write ​

luau
Z.i32.write(b: buffer, offset: number, value: number): number

int ​

read ​

luau
Z.int.read(b: buffer, offset: number): (number, number)

write ​

luau
Z.int.write(b: buffer, offset: number, value: number): number

f32 ​

read ​

luau
Z.f32.read(b: buffer, offset: number): (number, number)

write ​

luau
Z.f32.write(b: buffer, offset: number, value: number): number

f64 ​

read ​

luau
Z.f64.read(b: buffer, offset: number): (number, number)

write ​

luau
Z.f64.write(b: buffer, offset: number, value: number): number

byte ​

read ​

luau
Z.byte.read(b: buffer, offset: number): (string, number)

write ​

luau
Z.byte.write(b: buffer, offset: number, value: string): number

Angle8 ​

read ​

luau
Z.Angle8.read(b: buffer, offset: number): (number, number)

write ​

luau
Z.Angle8.write(b: buffer, offset: number, value: number): number

Axes ​

read ​

luau
Z.Axes.read(b: buffer, offset: number): (Axes, number)

write ​

luau
Z.Axes.write(b: buffer, offset: number, value: Axes): number

BrickColor ​

read ​

luau
Z.BrickColor.read(b: buffer, offset: number): (BrickColor, number)

write ​

luau
Z.BrickColor.write(b: buffer, offset: number, value: BrickColor): number

CFrame ​

read ​

luau
Z.CFrame.read(b: buffer, offset: number): (CFrame, number)

write ​

luau
Z.CFrame.write(b: buffer, offset: number, value: CFrame): number

CFrame28 ​

read ​

luau
Z.CFrame28.read(b: buffer, offset: number): (CFrame, number)

write ​

luau
Z.CFrame28.write(b: buffer, offset: number, value: CFrame): number

CFrame15 ​

read ​

luau
Z.CFrame15.read(b: buffer, offset: number): (CFrame, number)

write ​

luau
Z.CFrame15.write(b: buffer, offset: number, value: CFrame): number

Color3 ​

read ​

luau
Z.Color3.read(b: buffer, offset: number): (Color3, number)

write ​

luau
Z.Color3.write(b: buffer, offset: number, value: Color3): number

ColorSequenceKeypoint ​

read ​

luau
Z.ColorSequenceKeypoint.read(b: buffer, offset: number): (ColorSequenceKeypoint, number)

write ​

luau
Z.ColorSequenceKeypoint.write(b: buffer, offset: number, value: ColorSequenceKeypoint): number

ColorSequence ​

read ​

luau
Z.ColorSequence.read(b: buffer, offset: number): (ColorSequence, number)

write ​

luau
Z.ColorSequence.write(b: buffer, offset: number, value: ColorSequence): number

DateTime ​

read ​

luau
Z.DateTime.read(b: buffer, offset: number): (DateTime, number)

write ​

luau
Z.DateTime.write(b: buffer, offset: number, value: DateTime): number

EnumItem ​

read ​

luau
Z.EnumItem.read(b: buffer, offset: number): (EnumItem, number)

write ​

luau
Z.EnumItem.write(b: buffer, offset: number, value: EnumItem): number

Faces ​

read ​

luau
Z.Faces.read(b: buffer, offset: number): (Faces, number)

write ​

luau
Z.Faces.write(b: buffer, offset: number, value: Faces): number

FloatCurveKey ​

read ​

luau
Z.FloatCurveKey.read(b: buffer, offset: number): (FloatCurveKey, number)

write ​

luau
Z.FloatCurveKey.write(b: buffer, offset: number, value: FloatCurveKey): number

Font ​

read ​

luau
Z.Font.read(b: buffer, offset: number): (Font, number)

write ​

luau
Z.Font.write(b: buffer, offset: number, value: Font): number

NumberRange ​

read ​

luau
Z.NumberRange.read(b: buffer, offset: number): (NumberRange, number)

write ​

luau
Z.NumberRange.write(b: buffer, offset: number, value: NumberRange): number

NumberSequenceKeypoint ​

read ​

luau
Z.NumberSequenceKeypoint.read(b: buffer, offset: number): (NumberSequenceKeypoint, number)

write ​

luau
Z.NumberSequenceKeypoint.write(b: buffer, offset: number, value: NumberSequenceKeypoint): number

NumberSequence ​

read ​

luau
Z.NumberSequence.read(b: buffer, offset: number): (NumberSequence, number)

write ​

luau
Z.NumberSequence.write(b: buffer, offset: number, value: NumberSequence): number

UDim ​

read ​

luau
Z.UDim.read(b: buffer, offset: number): (UDim, number)

write ​

luau
Z.UDim.write(b: buffer, offset: number, value: UDim): number

UDim2 ​

read ​

luau
Z.UDim2.read(b: buffer, offset: number): (UDim2, number)

write ​

luau
Z.UDim2.write(b: buffer, offset: number, value: UDim2): number

Vector2 ​

read ​

luau
Z.Vector2.read(b: buffer, offset: number): (Vector2, number)

write ​

luau
Z.Vector2.write(b: buffer, offset: number, value: Vector2): number

Vector2i16 ​

read ​

luau
Z.Vector2i16.read(b: buffer, offset: number): (Vector2int16, number)

write ​

luau
Z.Vector2i16.write(b: buffer, offset: number, value: Vector2int16): number

Vector3 ​

read ​

luau
Z.Vector3.read(b: buffer, offset: number): (Vector3, number)

write ​

luau
Z.Vector3.write(b: buffer, offset: number, value: Vector3): number

Vector3i16 ​

read ​

luau
Z.Vector3i16.read(b: buffer, offset: number): (Vector3int16, number)

write ​

luau
Z.Vector3i16.write(b: buffer, offset: number, value: Vector3int16): number

Path2DControlPoint ​

read ​

luau
Z.Path2DControlPoint.read(b: buffer, offset: number): (Path2DControlPoint, number)

write ​

luau
Z.Path2DControlPoint.write(b: buffer, offset: number, v: Path2DControlPoint): number

PathWaypoint ​

read ​

luau
Z.PathWaypoint.read(b: buffer, offset: number): (PathWaypoint, number)

write ​

luau
Z.PathWaypoint.write(b: buffer, offset: number, value: PathWaypoint): number

PhysicalProperties ​

read ​

luau
Z.PhysicalProperties.read(b: buffer, offset: number): (PhysicalProperties, number)

write ​

luau
Z.PhysicalProperties.write(b: buffer, offset: number, value: PhysicalProperties): number

Ray ​

read ​

luau
Z.Ray.read(b: buffer, offset: number): (Ray, number)

write ​

luau
Z.Ray.write(b: buffer, offset: number, value: Ray): number

Rect ​

read ​

luau
Z.Rect.read(b: buffer, offset: number): (Rect, number)

write ​

luau
Z.Rect.write(b: buffer, offset: number, value: Rect): number

Region3 ​

read ​

luau
Z.Region3.read(b: buffer, offset: number): (Region3, number)

write ​

luau
Z.Region3.write(b: buffer, offset: number, value: Region3): number

Region3int16 ​

read ​

luau
Z.Region3int16.read(b: buffer, offset: number): (Region3int16, number)

write ​

luau
Z.Region3int16.write(b: buffer, offset: number, value: Region3int16): number

RotationCurveKey ​

read ​

luau
Z.RotationCurveKey.read(b: buffer, offset: number): (RotationCurveKey, number)

write ​

luau
Z.RotationCurveKey.write(b: buffer, offset: number, value: RotationCurveKey): number

TweenInfo ​

read ​

luau
Z.TweenInfo.read(b: buffer, offset: number): (TweenInfo, number)

write ​

luau
Z.TweenInfo.write(b: buffer, offset: number, value: TweenInfo): number

table ​

read ​

luau
Z.table.read(b: buffer, offset: number): ({ [any]: any }, number)

write ​

luau
Z.table.write(b: buffer, offset: number, value: { [any]: any }): number