Colyseus is an MIT-licensed authoritative multiplayer framework for Node.js that provides synchronizable data structures, room-based matchmaking, and client SDKs for TypeScript, React, Unity, Godot, GameMaker, Defold, Construct, Haxe, and C, aimed at developers building realtime and turn-based multiplayer games.
What it is
Colyseus is a multiplayer framework built on Node.js and TypeScript. It supplies an authoritative server model in which game logic runs on the server rather than the client, together with synchronizable data structures that keep client state aligned with server state automatically. The framework ships official client SDKs across a wide range of platforms and engines, including @colyseus/sdk for TypeScript, @colyseus/react for React, a Unity plugin distributed as Colyseus_Plugin.unitypackage, native SDKs for Godot, GameMaker and C, an addon for Construct, and haxelib install colyseus for Haxe. The stated mission is to serve as a standard netcode and matchmaking solution for any kind of project.
The concrete problem it solves is the netcode and matchmaking layer that teams would otherwise assemble themselves. Instead of writing bespoke WebSocket state synchronization, binary encoding, room lifecycle, queueing and reconnection handling, a developer defines state on the server and the framework synchronizes it to all clients, delta-compressed and binary-encoded. Matchmaking is room-based, with filtering, queuing and reconnection supported out of the box, so the framework replaces hand-rolled transport, state replication and lobby logic within the Node.js ecosystem.
Key capabilities
- Automatic state synchronization: define state on the server and it synchronizes to all clients, delta-compressed and binary-encoded.
- Room-based matchmaking with filtering, queuing and reconnection support built in.
- Authoritative server model, so game logic runs on the server rather than the client.
- Horizontal and vertical scaling from 10 to 10,000+ CCU using Redis and load balancers.
- Client SDKs for TypeScript (
npm install @colyseus/sdk), React (npm install @colyseus/react), Unity, Godot, GameMaker, Defold, Construct, Haxe (haxelib install colyseus) and C static libraries.
- Project scaffolding through
npm create colyseus-app@latest.
- Support for both realtime and turn-based games.
Who uses it and how
- Teams building realtime multiplayer games on a Node.js and TypeScript stack, using the same language on server and client.
- Studios working in Unity, Godot, GameMaker, Defold or Construct that integrate a native client SDK while keeping the server in Node.js.
- Turn-based game projects that need room matchmaking and reconnection rather than continuous tick synchronization.
- Projects scaling beyond a single process, adding Redis and load balancers to move from roughly 10 to more than 10,000 concurrent users.
- Developers who want an authoritative model so that game logic is not trusted to the client.
Getting started
Scaffold a server with npm create colyseus-app@latest ./my-server, then run cd my-server and npm start. Client code uses the matching SDK for the target platform, such as npm install @colyseus/sdk for TypeScript or npm install @colyseus/react for React.
How it compares
The facts provided do not name any similar or competing tools, so Colyseus stands alone in this registry. No comparison against paid alternatives can be made from the available information.
When to use it — and when not to
A self-hoster runs a Node.js server, and for horizontal scaling must also operate Redis and load balancers, so the operational surface grows with player count. Developers outside the Node.js and TypeScript ecosystem, or those who want a managed service with no infrastructure to run, should weigh that before adopting it; Colyseus Cloud subscriptions and sponsorships are what sustain the project. The framework is also still working toward version 1.0 according to its public roadmap, which is worth noting for teams that require a long-settled API.
project readme (upstream, from github) — read inline
Colyseus is an Authoritative Multiplayer Framework for Node.js, with SDKs
available for all major platforms and engines.
Client SDKs
The project focuses on providing synchronizable data structures for realtime and
turn-based games, matchmaking, and ease of usage both on the server-side and
client-side.
The mission of the framework is to be a standard netcode & matchmaking solution
for any kind of project you can think of!
Why developers choose Colyseus:
- ⚡️ Real-time state sync that just works → Define your state on the server and it automatically synchronizes to all clients, delta-compressed and binary-encoded.
- ⚔️ Built-in matchmaking → Room-based architecture with filtering, queuing, and reconnection support out of the box.
- 📈 Scalable → Go from 10 to 10,000+ CCU by scaling vertically or horizontally with Redis and load balancers.
- 🛡️ Cheat-proof by design → Authoritative server model ensures game logic runs on the server, not the client.
- 🛠️ Use the tools you already know → Built on Node.js and TypeScript with a simple, familiar API on both server and client.
- 💙 Free forever → MIT licensed, even for commercial games.
See public roadmap for version 1.0.
🚀 Quickstart
Set up your own Colyseus server project for your game using npm create colyseus-app@latest:
npm create colyseus-app@latest ./my-server
cd my-server
npm start
Sponsors
The sustainability of the project relies on Colyseus Cloud subscriptions and sponsorships. If you are not using Colyseus Cloud, please consider sponsoring the project 💖
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification.
Contributions of any kind are welcome!
Contributing
We encourage you to contribute to Colyseus! Please check out the Contributing
guide for guidelines about how to proceed. Join us!
Everyone interacting in Colyseus and its sub-projects' codebases, issue trackers
and chat rooms is expected to follow the code of conduct.
License
MIT