You can play it for free on itch.
The Steam version offers Achievements and Cloud Saves.
A trigger-based autobattler in a 3x3 board. This repository is open source (MIT) — see Contributing to run it locally or hack on it.
cd phaser
npm install
npm run dev # game at http://localhost:8080
cd server
npm install
npm run dev # multiplayer API at http://127.0.0.1:8787
Single-player and local multiplayer work out of the box. Online logins
(Steam / itch.io / Google) require server-side keys the maintainers hold —
see cp .env.example .env and docs/building-and-running.md
for details.
Mana Battle is a strategic auto-battler where players build teams and try to outlive the enemy team's core. Key features:
server/)phaser/src/)
framework/): system for managing screens and listenerscore/): pure, framework-agnostic packageserver/): authoritative Node API (sessions, matchmaking, auth) — see docs/game-server.mdDetailed documentation is organized by topic in the docs directory:
See AGENTS.md for the AI agent guide — project knowledge index, current issues, task queue, and workflow instructions.
Issues and pull requests are welcome. Each package has its own AGENTS.md
with conventions — read it before editing (core/, framework/, server/,
phaser/). Run the package's tests + typecheck before submitting; format with
npm run format from the repo root. For AI-assisted contributions, start at
AGENTS.md.
Publishing needs private credentials (Steam, itch.io, Play signing keys) that are not in this repo — forks cannot run these targets as-is.
Release builds must be made with
MANA_SERVER_URL=https://us-central1-mana-battle-f3b15.cloudfunctions.net/api(andMANA_ITCH_CLIENT_IDfor the web build) so multiplayer points at the deployed server instead of the player's ownhttp://127.0.0.1:8787. The production webpack build warns if either is missing. See docs/building-and-running.md and docs/release-audit.md.
make steam-publish — builds the desktop app for Windows/macOS/Linux and
uploads it to Steam via steamcmd (Docker runner by default; credentials in the
root .env — see steam/STEAM_UPLOAD.md).make steam-publish-demo.make itch-publish — builds the web build and pushes it to itch.io via butler.make android-build, then, in Android Studio, Build > Generate Signed Bundle / APK.MIT — see LICENSE.
TypeScript
95.3%
HTML
1.6%
Shell
1.4%
JavaScript
1.1%
You can play it for free on itch.
The Steam version offers Achievements and Cloud Saves.
A trigger-based autobattler in a 3x3 board. This repository is open source (MIT) — see Contributing to run it locally or hack on it.
cd phaser
npm install
npm run dev # game at http://localhost:8080
cd server
npm install
npm run dev # multiplayer API at http://127.0.0.1:8787
Single-player and local multiplayer work out of the box. Online logins
(Steam / itch.io / Google) require server-side keys the maintainers hold —
see cp .env.example .env and docs/building-and-running.md
for details.
Mana Battle is a strategic auto-battler where players build teams and try to outlive the enemy team's core. Key features:
server/)phaser/src/)
framework/): system for managing screens and listenerscore/): pure, framework-agnostic packageserver/): authoritative Node API (sessions, matchmaking, auth) — see docs/game-server.mdDetailed documentation is organized by topic in the docs directory:
See AGENTS.md for the AI agent guide — project knowledge index, current issues, task queue, and workflow instructions.
Issues and pull requests are welcome. Each package has its own AGENTS.md
with conventions — read it before editing (core/, framework/, server/,
phaser/). Run the package's tests + typecheck before submitting; format with
npm run format from the repo root. For AI-assisted contributions, start at
AGENTS.md.
Publishing needs private credentials (Steam, itch.io, Play signing keys) that are not in this repo — forks cannot run these targets as-is.
Release builds must be made with
MANA_SERVER_URL=https://us-central1-mana-battle-f3b15.cloudfunctions.net/api(andMANA_ITCH_CLIENT_IDfor the web build) so multiplayer points at the deployed server instead of the player's ownhttp://127.0.0.1:8787. The production webpack build warns if either is missing. See docs/building-and-running.md and docs/release-audit.md.
make steam-publish — builds the desktop app for Windows/macOS/Linux and
uploads it to Steam via steamcmd (Docker runner by default; credentials in the
root .env — see steam/STEAM_UPLOAD.md).make steam-publish-demo.make itch-publish — builds the web build and pushes it to itch.io via butler.make android-build, then, in Android Studio, Build > Generate Signed Bundle / APK.MIT — see LICENSE.
TypeScript
95.3%
HTML
1.6%
Shell
1.4%
JavaScript
1.1%