MCPcopy
hub / github.com/colyseus/colyseus

github.com/colyseus/colyseus @0.17.10 sqlite

repository ↗ · DeepWiki ↗ · release 0.17.10 ↗
1,529 symbols 4,267 edges 227 files 113 documented · 7%
README

Discussion forum

Multiplayer Framework for Node.js. View documentation

Colyseus is an Authoritative Multiplayer Framework for Node.js, with SDKs available for all major platforms and engines.

Client SDKs

Platform Install Documentation Demo
TypeScript npm install @colyseus/sdk Getting Started PlayCanvas
React npm install @colyseus/react Getting Started R3F Lobby
Unity Download Getting Started Tank Battle
Godot Download Getting Started Tank Battle
GameMaker Download Getting Started Tank Battle
Defold See documentation → Getting Started Tank Battle
Construct Download Getting Started Raw Demo
Haxe haxelib install colyseus Getting Started Tank Battle
C / Static Libraries Download GitHub raylib

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):

Aymeric Chauvin 💬 💡 Brian Hay 🖋 Damian A. Pastorini 💬 📖 🐛 Darek Greenly 💬 🐛 💻 David Rydwanski 💬 💻 Dr. Burton 🧑‍🏫 Endel Dreyer 💻 📖 💡
Enriqueto 💼 Fazri Zubair 💼 Federico 🐛 💻 James Jacoby 💬 💡 🖋 Jonas Voland 💬 🐛 💻 🤔 💡 Kyle J. Kemp 💬 🐛 💻 🤔 Luke Wood 💬 🐛 💻
Milad Doorbash 🐛 💻 Nikita Borisov 🐛 💻 💼 🤔 Phil Harvey 📖 Sergey 🐛 💻 Sophie 💬

Extension points exported contracts — how you extend this code

Client (Interface)
(no doc) [10 implementers]
packages/core/src/Transport.ts
ITransport (Interface)
(no doc) [6 implementers]
packages/sdk/src/transport/ITransport.ts
GameMetadata (Interface)
(no doc)
bundles/colyseus/test/MetadataAPI.test.ts
ConfigOptions (Interface)
(no doc)
packages/tools/src/index.ts
MyState (Interface)
(no doc)
packages/shared-types/test/types.test.ts
AuthSettings (Interface)
(no doc)
packages/auth/src/auth.ts
WebSocketData (Interface)
(no doc)
packages/transport/bun-websockets/src/BunWebSockets.ts
MonitorOptions (Interface)
(no doc)
packages/monitor/src-backend/index.ts

Core symbols most depended-on inside this repo

joinOrCreate
called by 241
packages/sdk/src/Client.ts
timeout
called by 170
bundles/colyseus/test/utils/index.ts
push
called by 151
packages/playground/src/utils/LimitedArray.ts
send
called by 134
packages/core/src/Transport.ts
get
called by 132
packages/core/src/presence/Presence.ts
resolve
called by 96
packages/core/src/utils/Utils.ts
leave
called by 94
packages/core/src/Transport.ts
on
called by 89
packages/sdk/src/core/nanoevents.ts

Shape

Method 695
Function 483
Class 275
Interface 74
Enum 2

Languages

TypeScript100%

Modules by API surface

bundles/colyseus/test/utils/index.ts64 symbols
packages/core/src/Room.ts56 symbols
packages/sdk/src/debug.ts55 symbols
packages/core/src/MatchMaker.ts46 symbols
bundles/colyseus/test/MetadataAPI.test.ts46 symbols
bundles/colyseus/test/DevMode.test.ts42 symbols
packages/core/src/presence/LocalPresence.ts37 symbols
packages/presence/redis-presence/src/index.ts36 symbols
packages/core/src/presence/Presence.ts35 symbols
packages/core/src/errors/RoomExceptions.ts31 symbols
packages/shared-types/test/types.test.ts24 symbols
packages/sdk/src/Room.ts22 symbols

Dependencies from manifests, versioned

@colyseus/authworkspace:^ · 1×
@colyseus/better-callworkspace:^ · 1×
@colyseus/bun-websocketsworkspace:^ · 1×
@colyseus/coreworkspace:^ · 1×
@colyseus/drizzle-driverworkspace:^ · 1×
@colyseus/greeting-bannerworkspace:^ · 1×
@colyseus/h3-transportworkspace:^ · 1×
@colyseus/monitorworkspace:^ · 1×
@colyseus/msgpackr* · 1×
@colyseus/playgroundworkspace:^ · 1×
@colyseus/redis-driverworkspace:^ · 1×
@colyseus/redis-presenceworkspace:^ · 1×

Datastores touched

RoomCacheCollection · 1 repos
(mongodb)Database · 1 repos
colyseusDatabase · 1 repos
postgresDatabase · 1 repos

For agents

$ claude mcp add colyseus \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact