Packet
Suphi Kaner's buffer-based networking library: declare a packet's types once, then fire and respond with typed values.
Packet is Suphi Kaner's buffer-based networking library, published here with a few quality-of-life changes. It replaces ad-hoc RemoteEvents with named packets whose parameter types you declare once. Values are serialized into a buffer (with a side list for instances), so payloads are compact and every send is checked against the declared types. Packets support fire-and-forget on both sides, server-to-one-client, and request/response with a timeout.
Use it when
- You send frequent small updates and want to cut bandwidth and avoid untyped remotes.
- You want one file that declares every network message in your game, shared by server and client.
Install
Studio Wally
Using the Studio Wally plugin:
- Open the widget.
- Search
kashtheking/packet. - Press download and choose Shared module (recommended for almost every package).
Wally
Add this to the [dependencies] section of your wally.toml, then run wally install:
Packet = "kashtheking/packet@1.0.0"
local Packet = require(ReplicatedStorage.Packages.Packet)
Dependencies
None. The package is a single module with no dependencies.
Credits
Packet was created by Suphi Kaner (original release on the DevForum). This is his library with a few quality-of-life changes by KashTheKing, published to Wally as kashtheking/packet. The design, the serialization engine and the bundled Signal, Task and Types modules are all his.
API
Every constructor, method, property and type is documented on the Packet API page, generated from the doc comments in init.luau. Each entry links to its line in the source.
Help
Questions and bug reports: the Discord or a GitHub issue. See Help & contact for everything else.