Colyseus v1.0 Roadmap
Colyseus is an independent open-source project that has been around since 2015. The project has been used in production by several indies and companies and has been battle-tested in many different scenarios. The project is currently stable, but there are still many features and improvements that we’d like to add.
If you’d like to support the project, please consider sponsoring my work.
- Release the Native SDK:
- Database-first features:
- Since Colyseus doesn’t currently have an official database recommendation tool, we can’t provide database-first features out of the box. Features that depend on a database tool are: player identity, leaderboards, configs, etc.
- State Sync:
@colyseus/schema- Bidirectional schema instances:- Allow to send schema instance updates from client to server
- Client-side prediction:
- Allow to specify client-side prediction techniques on the frontend (?)
- Decouple
@colyseus/schemafrom the core:- Allow to use other serialization methods for the state:
- Yjs (CRDT) connection provider via Colyseus Rooms.
- Wild idea: support RPC calls via schema instances (?)
- WebTransport:
- Improve and stabilize WebTransport support
- Matchmaking:
- Improve filtering and sorting options
- General improvements:
- Add request/response model to rooms (#331)
- Introduce the concept of “low priority” and “high priority” messages. Drop “low priority” messages if clients are under backpressure.
- Introduce “version check” to allow native SDKs to communicate with newer versions of the server
Shippped in v0.17 (February 2026)
- Matchmaking:
SQL Driver - Provide a SQL driver as alternative to@colyseus/redis-driver(should support SQLite / PostgreSQL, possibly on top of Kysely)- Added PostgreSQL Driver
New “queue” matchmaking type:A queue would keep more clients than needed before starting a matchUser specifies logic that combines clients into a new roomReserve seats for selected clients and redirect them to the newly created room- Added Queue matchmaking type
- Full-stack + TypeScript Improvements:
Allow to specifyclient.authandclient.userDatatypes on the backend only onceAllow to infer types for room message and payload definitions from frontend (room.send())Allow to infer http routes and request/response body types from frontend (client.http.*)