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