Skip to content

Class: net_packet

Read/write network packet used by server entities and events.

Reading methods advance the read cursor. Writing methods append to the packet unless the method name says otherwise.

Source

C++ class net_packet

Custom Constructor

net_packet

Remarks

Packet reads are positional. Use r_tell, r_seek, r_elapsed, and r_eof when reading mixed payloads. Native packets are capped at 16 KB and assert on read/write overruns.

Constructors

Constructor

ts
new net_packet(): net_packet;

Create an empty packet.

Returns

net_packet

Methods

r_advance()

ts
r_advance(size: number): void;

Advance the read cursor.

Parameters

ParameterTypeDescription
sizenumberNumber of bytes to skip.

Returns

void

Remarks

Does not read skipped bytes. Native code verifies that the new cursor stays inside the packet.


r_angle16()

ts
r_angle16(value: number): void;

Read a 16-bit compressed angle into a placeholder.

Parameters

ParameterTypeDescription
valuenumberOutput placeholder.

Returns

void

Remarks

Angles use the same 0..2 * PI range as w_angle16.


r_angle8()

ts
r_angle8(value: number): void;

Read an 8-bit compressed angle into a placeholder.

Parameters

ParameterTypeDescription
valuenumberOutput placeholder.

Returns

void

Remarks

Angles use the same 0..2 * PI range as w_angle8.


r_begin()

ts
r_begin(type: number): number;

Read packet message header.

Parameters

ParameterTypeDescription
typenumberOutput placeholder for message type.

Returns

number

Packet receive time.

Remarks

Resets the read cursor to the packet start before reading the message type.


r_bool()

ts
r_bool(): boolean;

Read boolean value.

Returns

boolean

Boolean value.

Remarks

Booleans are serialized as one byte.


r_clientID()

ts
r_clientID(): ClientID;

Read client id.

Returns

ClientID

Client id.


r_dir()

ts
r_dir(vector: vector): void;

Read a compressed direction vector.

Parameters

ParameterTypeDescription
vectorvectorVector to fill.

Returns

void


r_elapsed()

ts
r_elapsed(): number;

Get unread byte count.

Returns

number

Remaining bytes.


r_eof()

ts
r_eof(): boolean;

Check whether the read cursor reached the end.

Returns

boolean

Whether packet is fully read.


r_float()

Call Signature

ts
r_float(): number;

Read float value.

Returns

number

Float value.

Call Signature

ts
r_float(value: number): number;

Read float value through a Lua-style placeholder overload.

Parameters
ParameterTypeDescription
valuenumberPlaceholder value.
Returns

number

Float value.


r_float_q16()

ts
r_float_q16(
   min: number, 
   max: number, 
   value: number): number;

Read a 16-bit quantized float.

Parameters

ParameterTypeDescription
minnumberMinimum decoded value.
maxnumberMaximum decoded value.
valuenumberPlaceholder value.

Returns

number

Decoded float.

Remarks

Use the same min and max that were used when writing the value.


r_float_q8()

ts
r_float_q8(
   min: number, 
   max: number, 
   value: number): number;

Read an 8-bit quantized float.

Parameters

ParameterTypeDescription
minnumberMinimum decoded value.
maxnumberMaximum decoded value.
valuenumberPlaceholder value.

Returns

number

Decoded float.

Remarks

Use the same min and max that were used when writing the value.


r_matrix()

ts
r_matrix(matrix: matrix): matrix;

Read matrix data.

Parameters

ParameterTypeDescription
matrixmatrixMatrix to fill.

Returns

matrix

Filled matrix.


r_s16()

Call Signature

ts
r_s16(): number;

Read signed 16-bit integer.

Returns

number

Signed 16-bit integer.

Call Signature

ts
r_s16(value: number): number;

Read signed 16-bit integer through a placeholder overload.

Parameters
ParameterTypeDescription
valuenumberPlaceholder value.
Returns

number

Signed 16-bit integer.


r_s32()

Call Signature

ts
r_s32(): number;

Read signed 32-bit integer.

Returns

number

Signed 32-bit integer.

Call Signature

ts
r_s32(value: number): number;

Read signed 32-bit integer through a placeholder overload.

Parameters
ParameterTypeDescription
valuenumberPlaceholder value.
Returns

number

Signed 32-bit integer.


r_s64()

Call Signature

ts
r_s64(): number;

Read signed 64-bit integer.

Returns

number

Signed 64-bit integer.

Call Signature

ts
r_s64(value: number): number;

Read signed 64-bit integer through a placeholder overload.

Parameters
ParameterTypeDescription
valuenumberPlaceholder value.
Returns

number

Signed 64-bit integer.


r_s8()

Call Signature

ts
r_s8(): number;

Read signed 8-bit integer.

Returns

number

Signed 8-bit integer.

Call Signature

ts
r_s8(value: number): number;

Read signed 8-bit integer through a placeholder overload.

Parameters
ParameterTypeDescription
valuenumberPlaceholder value.
Returns

number

Signed 8-bit integer.


r_sdir()

ts
r_sdir(vector: vector): void;

Read a signed compressed direction vector.

Parameters

ParameterTypeDescription
vectorvectorVector to fill.

Returns

void


r_seek()

ts
r_seek(offset: number): void;

Move read cursor to an absolute byte offset.

Parameters

ParameterTypeDescription
offsetnumberByte offset.

Returns

void

Remarks

The engine allows seeking to the packet end. Offsets beyond the written byte count fail native verification.


r_stringZ()

ts
r_stringZ<T>(): T;

Read zero-terminated string.

Type Parameters

Type ParameterDefault type
T extends stringstring

Returns

T

String value.

Remarks

Advances past the trailing zero byte.


r_tell()

ts
r_tell(): number;

Get current read cursor offset.

Returns

number

Byte offset.


r_u16()

Call Signature

ts
r_u16(): number;

Read unsigned 16-bit integer.

Returns

number

Unsigned 16-bit integer.

Call Signature

ts
r_u16(value: number): number;

Read unsigned 16-bit integer through a placeholder overload.

Parameters
ParameterTypeDescription
valuenumberPlaceholder value.
Returns

number

Unsigned 16-bit integer.


r_u32()

Call Signature

ts
r_u32(): number;

Read unsigned 32-bit integer.

Returns

number

Unsigned 32-bit integer.

Call Signature

ts
r_u32(value: number): number;

Read unsigned 32-bit integer through a placeholder overload.

Parameters
ParameterTypeDescription
valuenumberPlaceholder value.
Returns

number

Unsigned 32-bit integer.


r_u64()

Call Signature

ts
r_u64(): number;

Read unsigned 64-bit integer.

Returns

number

Unsigned 64-bit integer.

Call Signature

ts
r_u64(value: number): number;

Read unsigned 64-bit integer through a placeholder overload.

Parameters
ParameterTypeDescription
valuenumberPlaceholder value.
Returns

number

Unsigned 64-bit integer.


r_u8()

Call Signature

ts
r_u8(): number;

Read unsigned 8-bit integer.

Returns

number

Unsigned 8-bit integer.

Call Signature

ts
r_u8(value: number): number;

Read unsigned 8-bit integer through a placeholder overload.

Parameters
ParameterTypeDescription
valuenumberPlaceholder value.
Returns

number

Unsigned 8-bit integer.


r_vec3()

ts
r_vec3(vector: vector): void;

Read 3D vector.

Parameters

ParameterTypeDescription
vectorvectorVector to fill.

Returns

void


w_angle16()

ts
w_angle16(value: number): void;

Write a 16-bit compressed angle.

Parameters

ParameterTypeDescription
valuenumberAngle in radians.

Returns

void

Remarks

The engine normalizes the angle and stores it as a 16-bit quantized value over 0..2 * PI.


w_angle8()

ts
w_angle8(value: number): void;

Write an 8-bit compressed angle.

Parameters

ParameterTypeDescription
valuenumberAngle in radians.

Returns

void

Remarks

The engine normalizes the angle and stores it as an 8-bit quantized value over 0..2 * PI.


w_begin()

ts
w_begin(type: number): void;

Start packet with message type.

Parameters

ParameterTypeDescription
typenumberMessage type.

Returns

void

Remarks

Clears existing packet contents before writing the message type.


w_bool()

ts
w_bool(value: boolean): void;

Write boolean value.

Parameters

ParameterTypeDescription
valuebooleanBoolean value.

Returns

void

Remarks

Booleans are serialized as one byte.


w_chunk_close16()

ts
w_chunk_close16(marker: number): void;

Close a 16-bit size-prefixed chunk.

Parameters

ParameterTypeDescription
markernumberChunk marker returned by w_chunk_open16.

Returns

void

Remarks

The chunk payload must fit into 65535 bytes.


w_chunk_close8()

ts
w_chunk_close8(marker: number): void;

Close an 8-bit size-prefixed chunk.

Parameters

ParameterTypeDescription
markernumberChunk marker returned by w_chunk_open8.

Returns

void

Remarks

The chunk payload must fit into 255 bytes.


w_chunk_open16()

ts
w_chunk_open16(marker: number): void;

Open a 16-bit size-prefixed chunk.

Parameters

ParameterTypeDescription
markernumberOutput placeholder for chunk marker.

Returns

void

Remarks

Writes a placeholder size at the current write cursor. Pass the returned marker to w_chunk_close16.


w_chunk_open8()

ts
w_chunk_open8(marker: number): void;

Open an 8-bit size-prefixed chunk.

Parameters

ParameterTypeDescription
markernumberOutput placeholder for chunk marker.

Returns

void

Remarks

Writes a placeholder size at the current write cursor. Pass the returned marker to w_chunk_close8.


w_clientID()

ts
w_clientID(client_id: ClientID): void;

Write client id.

Parameters

ParameterTypeDescription
client_idClientIDClient id.

Returns

void


w_dir()

ts
w_dir(vector: vector): void;

Write compressed direction vector.

Parameters

ParameterTypeDescription
vectorvectorDirection vector.

Returns

void


w_float()

ts
w_float(value: number): void;

Write float value.

Parameters

ParameterTypeDescription
valuenumberFloat value.

Returns

void


w_float_q16()

ts
w_float_q16(
   value: number, 
   min: number, 
   max: number): void;

Write a 16-bit quantized float.

Parameters

ParameterTypeDescription
valuenumberValue to write.
minnumberMinimum encoded value.
maxnumberMaximum encoded value.

Returns

void

Remarks

Native code verifies that value is inside [min, max].


w_float_q8()

ts
w_float_q8(
   value: number, 
   min: number, 
   max: number): void;

Write an 8-bit quantized float.

Parameters

ParameterTypeDescription
valuenumberValue to write.
minnumberMinimum encoded value.
maxnumberMaximum encoded value.

Returns

void

Remarks

Native code verifies that value is inside [min, max].


w_matrix()

ts
w_matrix(matrix: matrix): void;

Write matrix data.

Parameters

ParameterTypeDescription
matrixmatrixMatrix to write.

Returns

void


w_s16()

ts
w_s16(value: number): void;

Write signed 16-bit integer.

Parameters

ParameterTypeDescription
valuenumberSigned 16-bit integer.

Returns

void


w_s32()

ts
w_s32(value: number): void;

Write signed 32-bit integer.

Parameters

ParameterTypeDescription
valuenumberSigned 32-bit integer.

Returns

void


w_s64()

ts
w_s64(value: number): void;

Write signed 64-bit integer.

Parameters

ParameterTypeDescription
valuenumberSigned 64-bit integer.

Returns

void


w_sdir()

ts
w_sdir(vector: vector): void;

Write signed compressed direction vector.

Parameters

ParameterTypeDescription
vectorvectorDirection vector.

Returns

void


w_stringZ()

ts
w_stringZ(value: Nillable<string>): void;

Write zero-terminated string.

Parameters

ParameterTypeDescription
valueNillable<string>String value.

Returns

void

Remarks

The binding writes the string bytes followed by \0.


w_tell()

ts
w_tell(): number;

Get current write cursor offset.

Returns

number

Byte offset.


w_u16()

ts
w_u16(value: number): void;

Write unsigned 16-bit integer.

Parameters

ParameterTypeDescription
valuenumberUnsigned 16-bit integer.

Returns

void


w_u32()

ts
w_u32(value: number): void;

Write unsigned 32-bit integer.

Parameters

ParameterTypeDescription
valuenumberUnsigned 32-bit integer.

Returns

void


w_u64()

ts
w_u64(value: number): void;

Write unsigned 64-bit integer.

Parameters

ParameterTypeDescription
valuenumberUnsigned 64-bit integer.

Returns

void


w_u8()

ts
w_u8(value: number): void;

Write unsigned 8-bit integer.

Parameters

ParameterTypeDescription
valuenumberUnsigned 8-bit integer.

Returns

void


w_vec3()

ts
w_vec3(vector: vector): void;

Write 3D vector.

Parameters

ParameterTypeDescription
vectorvectorVector to write.

Returns

void