TypeScript
metro-savefile-doctor
If Young Metro don't trust your save file, I'm gon' restore it. TUI tool for editing Subway Builder save files.
- Files
- 77
- Size
- 598.7 KB
- Langs
- 7
- Stars
- 1
- Created
- Dec 10, 2025
- Last push
- 9 months ago
README.md
🏥 Subway Builder Savefile Doctor
A beautiful TUI (Text User Interface) tool for editing Subway Builder save files.
Desktop App
Cross-platform desktop app with a crackintro aesthetic:
- macOS:
.dmg(Apple Silicon & Intel) - Windows:
.msiinstaller - Linux:
.AppImage/.deb/.rpm
Features drag & drop, quick editing, analysis reports, and auto-backup.
Features
- 💰 Edit Money - Give yourself unlimited cash
- ⏱️ Edit Game Time - Change elapsed simulation time
- 🚆 Edit Train Count - Change owned train count
- 🎫 Edit Transit Cost - Change ticket price for riders
- 💾 Auto Backup - Creates backups before modifying
- 📦 Binary Format Support - Handles both JSON and .metro binary saves
- ✨ Beautiful TUI - Interactive terminal interface with colors
Installation
cd tools/savefile-doctor
npm install
chmod +x cli.js
Usage
Basic Usage
# Edit a .metro binary save file (creates backup automatically)
./cli.js ~/Documents/SubwayBuilder/my-save.metro
# Or edit a JSON save file
./cli.js ~/path/to/your-save.json
Advanced Options
# Save to a different file
./cli.js my-save.json --output modified-save.json
# Don't create backup
./cli.js my-save.json --no-backup
# Install globally
npm link
savefile-doctor ~/saves/my-save.json
Controls
- Arrow Keys - Navigate menu
- Enter - Edit selected field
- Escape - Cancel editing
- s - Save changes
- q - Quit (without saving if you haven't pressed 's')
Examples
Give Yourself Money
- Run the tool:
./cli.js my-save.metro - Select "💰 Money"
- Enter new amount (e.g.,
999999999) - Press Enter
- Press 's' to save
Fix Train Count
- Run the tool:
./cli.js my-save.metro - Select "🚆 Owned Trains"
- Enter new count (e.g.,
100) - Press Enter
- Press 's' to save
Safety
- Automatic Backups: By default, creates
.backupfile before modifying - Validation: Checks file format before editing
- Non-Destructive: Original file preserved unless you save changes
Requirements
- Node.js 18+
- Subway Builder save file (.metro binary or JSON format)
Supported Formats
- 📦 .metro files - Binary format with 4KB header, compressed game data, and metadata
- 📄 JSON files - Plain JSON save files
The tool automatically detects the format and handles both seamlessly.
Troubleshooting
"Invalid save file format"
- Make sure you're using a Subway Builder save file
- File must be valid JSON with
dataandversionfields
"File not found"
- Check the file path is correct
- Use absolute paths or relative to current directory
Technical Details
Built with:
License
MIT