raknet.add_receive_hook Synchronous

  • RakNet.add_receive_hook
  • RakNet.addreceivehook
  • raknet.addreceivehook

Register a persistent callback for incoming packets. It is useful for observing an identified packet type or changing a packet before the game receives it.

Syntax
Luau
raknet.add_receive_hook(callback: (RakNetPacket) -> ()) -> Function

Parameters

Function parameters
ParameterTypeDescription
callback(RakNetPacket) -> ()Function receiving a temporary RakNetPacket view for each incoming packet.

Argument fields

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

Function

The same callback function, for later use with raknet.remove_receive_hook.

Usage notes

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

Callbacks must not yield. If a callback raises, Kawaii reports a warning and continues dispatching.

The RakNetPacket view is valid only during its callback. Save fields or copy Data inside the callback if you need them later.

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
if raknet.is_enabled() then
    local function onReceive(packet)
        print("Received packet ID", packet.ID, "with", packet.Size, "bytes")
    end
    raknet.add_receive_hook(onReceive)
    task.delay(5, function() raknet.remove_receive_hook(onReceive) end)
end
Kawaii documentation