A web-based application for managing BattleTech forces with interactive record sheets that can be used online or printed.
🌐 Latest stable build: https://mekbay.com
🌐 Latest experimental build: https://next.mekbay.com (can break anytime! use at your own risk!)
MekBay is an Angular-based application designed for BattleTech enthusiasts to:
- Manage BattleTech Forces: Organize and track your mechs, vehicles, and other units
- Interactive Record Sheets: Use digital record sheets during gameplay with real-time damage tracking and status updates
- Print Support: Generate printable versions of record sheets for tabletop play
- Force Organization: Build and maintain multiple force compositions, save/load/share them across devices with cloud sync
Follow the steps below to set up your local development environment.
Before you begin, ensure you have the following installed on your machine:
- Node.js: Version 24 LTS or higher is required. You can download it from nodejs.org.
- npm: This is usually installed automatically with Node.js.
- Angular CLI: Version 21+, while not strictly required to run scripts (as we use local binaries), installing it globally is helpful for generating components.
npm install -g @angular/cli
- Git: For version control and cloning the repository.
-
Clone the repository:
git clone https://github.com/MegaMek/mekbay.git cd mekbay -
Install dependencies: This command downloads all necessary packages defined in
package.json.npm install
The application depends on the mm-data repository for the prerun task (see Development section below). Clone it as a sibling to the mekbay folder.
cd ..
git clone https://github.com/MegaMek/mm-data.git
cd mekbayNote: You can configure a custom path to mm-data by creating a .env file in the project root and setting the MM_DATA_PATH variable (for example: MM_DATA_PATH=../../mm-data).
To start a local development server, follow these steps:
-
Generate Assets: Before running the app for the first time, you must generate compressed assets and metadata (required only once).
npm run prerun
Note: The
mm-datarepository is required for generating compressed assets. Without it, the application will still run, but unit icons and other resources will be missing. -
Start the Server: Launch the development server. This watches for file changes and rebuilds the app in memory.
npm start
-
Access the App: Open your browser and navigate to
http://localhost:4200/. The application will automatically reload if you change any of the source files.
To build the project run:
npm run buildThis will compile your project and store the build artifacts in the dist/ directory. By default, the production build optimizes your application for performance and speed.
| Shortcut | Action |
|---|---|
Ctrl+A / Cmd+A |
Select all units |
Escape |
Clear selection / close dialogs |
Press Ctrl+Shift+F (or Cmd+Shift+F on Mac) to activate Filter hotkeys, then press a second key to open the corresponding filter dialog.
Alpha Strike:
| Key | Filter |
|---|---|
p |
PV |
m |
Movement |
t |
TMM |
o |
Overheat Value |
a |
Armor |
s |
Structure |
y |
Year |
z |
Size |
h |
Threshold |
1 |
Damage (Short) |
2 |
Damage (Medium) |
3 |
Damage (Long) |
Classic:
| Key | Filter |
|---|---|
b |
BV |
t |
Tons |
a |
Armor |
s |
Structure |
f |
Firepower |
d |
Damage/Turn |
h |
Heat |
i |
Dissipation |
e |
Heat Efficiency |
r |
Range |
w |
Walk MP |
u |
Run MP |
j |
Jump MP |
c |
Cost |
y |
Year |
For questions, issues, or feature requests, please:
- Check the Issues page
- Create a new issue if needed
- Join our community discussions on the MegaMek Discord
MekBay is part of the MegaMek family.
MekBay is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License (GPL), version 3 or (at your option) any later version, as published by the Free Software Foundation.
MekBay is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
A copy of the GPL should have been included with this project; if not, see https://www.gnu.org/licenses/.
See NOTICE for copyright, trademark, and third-party attribution details.