Credits
Pigeon is heavily inspired by roblox-sockets by OMouta. If you have not seen it, go and look at it.
roblox-sockets
roblox-sockets brought the socket style to Roblox networking. You name an event, you
listen for it with On, you raise it with Emit, and the
RemoteEvents stay out of your way. Pigeon's whole shape comes from that idea.
These are the parts Pigeon took from it:
| Idea | Where it shows up in Pigeon |
|---|---|
Named events with On and Emit |
Sending and Receiving |
| Rooms | Rooms |
| Middleware on the way in and the way out | Middleware |
| Request and response with a timeout | Requests and Replies |
| An unreliable mode for cheap, lossy sends | Unreliable Sending |
The shape carried over, not the method names. In Pigeon Emit is client
to server only; the server raises an event with Broadcast,
BroadcastTo or BroadcastExcept.
If that list is everything your game needs, roblox-sockets may well be the better fit. It is a good library and it got there first.
What Pigeon adds
Pigeon grew out of wanting a few more things on top. These are the parts that are its own.
| Addition | What it is for |
|---|---|
| A shared hashed remote pool | Channels share a pool of RemoteEvents. It grows by one per sixteen transformers and stops at thirty-two. |
| Per channel readiness and buffering | The server holds a channel's messages until that client says it is listening. |
| Handshake locked channels | A channel that carries nothing for a client the server has not approved. |
| Staged tables | A table whose writes replicate to the clients holding it. |
| Transformer based group teardown | One call drops a whole group of channels and every listener on them. |
Licence
Pigeon is released under the MIT licence, copyright 2026 Gage Ruben. Use it, change it, ship it in a paid game. Keep the copyright notice and the permission notice with the code and you are fine.
Roblox and Luau are trademarks of Roblox Corporation. Pigeon is an independent project and is not made by or endorsed by them.