- TypeScript 90.3%
- CSS 6.1%
- HTML 3.1%
- JavaScript 0.2%
- Dockerfile 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .claude | ||
| .github/workflows | ||
| apps | ||
| assets | ||
| docs | ||
| packages/shared | ||
| scripts | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .nvmrc | ||
| AGENTS.md | ||
| Caddyfile | ||
| compose.env.example | ||
| compose.example.yml | ||
| Dockerfile | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| README.md | ||
| README.zh-CN.md | ||
| tsconfig.base.json | ||
| tsconfig.e2e.json | ||
Impartation
A 2D multiplayer space built with Phaser 4, Colyseus, and Tiled. Create a character, explore maps with others, chat, use built-in interactions, and open external collaboration tools. The server manages accounts, world state, and map access.
Run locally
Requires Node.js 24 or later and npm.
cp .env.example .env
npm ci
npm run dev
Open http://localhost:5173. Registration is open by default; configure REGISTRATION_MODE=code with REGISTRATION_CODE, or use REGISTRATION_MODE=admin to disable public registration. See account and permission guide for production identity setup.
Common commands
| Command | Purpose |
|---|---|
npm run check |
Type checks, Node tests, and production builds |
npm run test:e2e |
Chromium browser tests |
npm run check:all |
Runs both checks above |
npm run build |
Builds all workspaces |
npm start |
Starts the built backend |
Install Chromium before the first browser test run with npx playwright install chromium. See testing for test coverage and environment details.
Configuration and deployment
Copy .env.example for local development. For deployment, set a random IDENTITY_SECRET of at least 32 characters, IDENTITY_BASE_URL, and IDENTITY_TRUSTED_ORIGINS. The project currently uses one backend instance and SQLite; persist and back up data/world.sqlite.
See the hosting guide for Spaces, maps, Docker mounts, deployment, and rollback. The repository also includes a Docker Compose example and a Docker image.
Tiled JSON defines map geometry and interactions. See map authoring. The interaction guide explains built-in features and external service boundaries; see external tool configuration to configure EXTERNAL_TOOLS.
Documentation
| Document | Contents |
|---|---|
| Hosting guide | Space setup, map deployment, Docker, updates, and troubleshooting |
| Architecture | Modules, state ownership, and feature boundaries |
| Accounts | Registration, sessions, saved outfits, and administrator actions |
| Tiled maps | Map authoring and validation contract |
| Integrations | Built-in interactions and external service boundaries |
| Testing | Commands, coverage, and known gaps |