Watch
1
0
Fork
You've already forked Impartation
0
mirror of https://github.com/CarbonC39/Impartation.git synced 2026-11-02 18:34:17 +00:00
A 2D multiplayer space built with Phaser 4, Colyseus, and Tiled.
  • TypeScript 90.3%
  • CSS 6.1%
  • HTML 3.1%
  • JavaScript 0.2%
  • Dockerfile 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-28 11:09:39 -07:00
.claude layout: move sound and mic toggles to the map toolbar 2026-10-18 13:53:07 -07:00
.github/workflows Fix private-room communication and reconnect UX; rename to Impartation 2026-10-24 14:15:52 -07:00
apps fix: preserve layer overlap across Y-sorted world bands 2026-10-28 11:09:39 -07:00
assets assets: update lobby 2026-10-27 20:26:37 -07:00
docs fix: preserve layer overlap across Y-sorted world bands 2026-10-28 11:09:39 -07:00
packages/shared fix: preserve overlapping interactions and native attachment visuals 2026-10-26 20:28:08 -07:00
scripts Fix private-room communication and reconnect UX; rename to Impartation 2026-10-24 14:15:52 -07:00
.dockerignore docs(deploy): align Compose example with runtime and tool routes 2026-10-21 16:15:14 -07:00
.env.example Merge origin/main and reconcile Space queue with reconnect lifecycle 2026-10-24 14:24:34 -07:00
.gitignore docs(deploy): align Compose example with runtime and tool routes 2026-10-21 16:15:14 -07:00
.nvmrc chore: scaffold Phaser Colyseus TypeScript workspace 2026-10-10 00:40:57 -07:00
AGENTS.md docs: streamline and translate documentation 2026-10-24 19:00:08 -07:00
Caddyfile Fix private-room communication and reconnect UX; rename to Impartation 2026-10-24 14:15:52 -07:00
compose.env.example Fix private-room communication and reconnect UX; rename to Impartation 2026-10-24 14:15:52 -07:00
compose.example.yml assets: update lobby 2026-10-27 20:26:37 -07:00
Dockerfile Add build, release, and multi-architecture Docker workflow 2026-10-18 15:17:11 -07:00
package-lock.json Fix private-room communication and reconnect UX; rename to Impartation 2026-10-24 14:15:52 -07:00
package.json Fix private-room communication and reconnect UX; rename to Impartation 2026-10-24 14:15:52 -07:00
playwright.config.ts Fix private-room communication and reconnect UX; rename to Impartation 2026-10-24 14:15:52 -07:00
README.md docs: streamline and translate documentation 2026-10-24 19:00:08 -07:00
README.zh-CN.md docs: streamline and translate documentation 2026-10-24 19:00:08 -07:00
tsconfig.base.json chore: scaffold Phaser Colyseus TypeScript workspace 2026-10-10 00:40:57 -07:00
tsconfig.e2e.json Keep seat anchors invisible and make camera zoom configurable 2026-10-12 18:10:13 -07:00

Impartation

English | 简体中文

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