raknet.receive Synchronous

  • RakNet.Receive
  • RakNet.receive
  • raknet.Receive

Submit an incoming packet to the game from protocol-valid data. Use it only when the receiving side is expected to understand the payload; the packet passes through incoming observers.

Syntax
Luau
raknet.receive(
    data: PacketData | PacketOptions | RakNetPacket,
    priority: number?,
    reliability: number?,
    channel: number?
) -> ()

Parameters

Function parameters
ParameterTypeDescription
dataPacketData | PacketOptions | RakNetPacketNonempty string, buffer, dense byte array, PacketOptions table with Data, or live RakNetPacket.
prioritynumber?Optional priority 0–3; defaults to 2.
reliabilitynumber?Optional reliability 0–7; defaults to 3.
channelnumber?Optional ordering channel 0–31; defaults to 0.

Argument fields

PacketData fields
Luau
PacketData = string | buffer | {number}
PacketOptions fields
Luau
PacketOptions = {
  Data: PacketData, Priority: number?, Reliability: number?, OrderingChannel: number?,
  SystemIdentifier: (string | number)?, Broadcast: boolean?, ForceReceiptNumber: number?
}
RakNetPacket fields
Luau
RakNetPacket = {
  Data: buffer, AsArray: {number}, AsBuffer: buffer, AsString: string,
  Size: number, PacketId: number, ID: number, Id: number, PacketID: number, Priority: number,
  Reliability: number, OrderingChannel: number,
  SystemIdentifier: string, Broadcast: boolean, ForceReceiptNumber: number
}

Returns

()

No value.

Usage notes

The RakNet library must be enabled in Environment settings and connected to an active game generation.

The payload can contain at most 268,435,455 bytes, the most the transport’s bit count can represent. An active peer and a previously observed packet source are required; an invalid, empty, or larger payload raises an error.

A PacketOptions table supplies its own packet settings; positional priority, reliability, and channel are ignored in that form.

Availability

RakNet is disabled by default. RakNet and raknet are removed when the setting is off; retained references can still call is_enabled().

Example

Example
Luau
local function receiveKnownPacket(validPayload)
    assert(raknet.is_enabled(), "RakNet is unavailable")
    raknet.receive(validPayload, 2, 3, 0)
end
-- Call receiveKnownPacket only with a verified incoming payload.