Project Plateau
Project Plateau는 네 개의 유리판과 하나의 살아있는 계곡, 캠프로 돌아가는 길을 의미
BattleTech Total Warfare 보드게임용 결정적 TypeScript 규칙 엔진과 이를 실제 플레이에서 검증하는 단일 페이지 웹 앱
btlib10x: a deterministic TypeScript rules engine for the BattleTech Total Warfare board game (subset), plus single-page web apps that prove it out in play.
게임TypeScript · HTMLGitHub @stone628온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗btlib10x is a zero-dependency TypeScript library that simulates a subset of
the BattleTech Total Warfare board game rules for bipedal 'Mechs: movement,
line of sight, to-hit, weapon and physical attacks, damage and criticals,
heat, piloting rolls and Battle Value scoring. It is deterministic given an
injected RNG and keeps the whole battle in one serializable BattleState.
The repository also holds single-page web apps built on the library. They are proof-of-concept demos of how the engine plays, not a finished game:
web/terminal.html) — a terminal-emulator UI that exposes
everything the engine simulates through typed commands.web/instant.html) — a menu-driven "pick a lance, pick a
map, drop" battle on a vector hex map.web/avatar.html, web/gallery.html) — glyph
'Mech avatars, with a small Cloudflare Pages backend for the gallery.web/tui.js, web/tui.css) — the plain-JS terminal-style
component kit Instant Action is built on.The live site is on two hosts:
New here? Start with the BT10X User Manual. It is a BattleTech primer for game developers, with step-by-step walkthroughs of the bt10x terminal and Instant Action.
Requires Node.js 20 or newer.
npm install
npm run build # library → dist/
npm run dev:web # build the web apps and serve web/ at http://localhost:8012
Other common commands:
| Command | What it does |
|---|---|
npm test | Tests affected by your changes (npm run test:all for the full suite) |
npm run lint / npm run typecheck | Biome check / tsc --noEmit |
npm run build:web | Bundle the engine and apps into web/ |
npm run dist:web | Build the deployable static site into dist/web/ |
npm run dist:pages | Same site without the avatar gallery, for GitHub Pages, into dist/pages/ |
npm run dist:standalone | Single-file terminal app at dist/standalone/bt10x.html |
npm run pack | Pack data/mechs and data/maps into data/btlib10x.jsonl |
Run npm run build after engine changes: web code and session tests import
btlib10x through dist/. AGENTS.md has the full command list and caveats.
import { loadCatalog, createBattle, executeMove, declareAttacks, resolveAllAttacks } from "btlib10x";
See docs/USAGE.md for a full turn walkthrough and
docs/API.md for the public surface. In the browser, the bundle
web/btlib10x.js with its types in web/btlib10x.d.ts is all you need.
src/core/ hex geometry, dice, terrain, shared types
src/data/ catalog schemas, codecs, weapon/ammo/terrain data
src/rules/ pure rule functions; src/rules/game/ is the battle state machine
data/ 'Mech and map sources (JSON) and the packed catalog
web/ static site: landing page, terminal, Instant Action, avatar, TUI kit
functions/ Cloudflare Pages Functions (avatar gallery API)
migrations/ D1 database migrations for the gallery
scripts/ build, pack and MTF import scripts
tests/ vitest suites
docs/ documentation
Unofficial fan project. It is not affiliated with, endorsed, sponsored or approved by Catalyst Game Labs, The Topps Company, Inc. or Microsoft.
BattleTech, BattleMech, 'Mech and MechWarrior are trademarks or registered trademarks of their respective owners. BattleTech is owned by The Topps Company, Inc. and the tabletop game is published under license by Catalyst Game Labs. 'Mech names and game data are used for reference only, and no claim to them is made. Rules are referenced by page from Total Warfare; buy the rulebook to play the full game.
The web app's font, Bt10x Mono, is a subset of JuliaMono by cormullion,
used under the SIL Open Font License 1.1 (see web/fonts/OFL.txt).
The source code is released under the MIT License,
Copyright (c) 2026 stone628. The license covers the code only. It does not
cover BattleTech trademarks, game data, or the third-party material listed in
CREDITS.md.
masterunitlist.battletech.com)..mtf record sheets exported from Flechs Sheets
(https://sheets.flechs.net/), generated by the MegaMek Suite, and
converted into data/mechs/ and the docs/mtf/ roster packs.See CREDITS.md for licenses, terms and where each source is used.