Baldur's Gate 3 modding tools for macOS? In this economy?
MacPak ([M]acOS + .[P]ak files): a self-contained BG3 modding toolkit app designed specifically for macOS modders.
MacLarian ([M]acOS + Larian): the, ahem, engine behind MacPak. MacLarian is also available as a standalone Rust library + CLI on crates.io.
| MacPak Tab | General Purpose |
|---|---|
| Browser | In-app file browser and previewer for text, image, and GR2 files (via bevy) |
| Editor | In-app, multi-tab text file editor and converter (TXT, XML, LOCA, LSF, LSX, LSJ, and JSON) |
| PAK Ops | Browse, extract, and create PAK files |
| Convert | LSF ↔ LSX ↔ LSJ and LOCA ↔ XML single-file and batch conversion |
| GR2 ↔ glTF/GLB extraction, conversion, and texture matching | |
| Virtual texture (GTS/GTP) extraction and DDS ↔ PNG conversion | |
| Dye Lab | Import/export clothing and armor dye mods and create custom color palettes |
| Search | Search across PAK contents (file name + contents both supported) without extraction |
| Dialogue | Search and view character dialogue trees and play linked audio |
| Workbench | Start a new mod with sample recipes for armor, dyes, spells, etc. |
Important
Full documentation is in the wiki → (Coming Soon)
- Download the MacPak macOS app from Releases (Coming Soon)
- That's it.
To install the MacLarian library as a dependency crate, add this to your Cargo.toml:
[dependencies]
maclarian = "0.1"To use MacLarian as a CLI tool (need to have Rust installed first):
cargo install maclarian
# Extract entire PAK
maclarian pak extract -s Shared.pak -d ./extracted
# Extract only LSF files
maclarian pak extract -s Shared.pak -d ./extracted --filter "*.lsf"
See the MacLarian README and CLI section of the wiki for more examples and/or browse docs.rs for the library API.
| OS | Compatibility |
|---|---|
| macOS (Apple Silicon) | Yes (Built with M2 Max) |
| macOS (Intel) | Currently Testing (Intel iMac) |
| Windows 10 (Boot Camp) | Currently Testing (Intel iMac) |
| Windows 11 | Currently Testing |
| Linux | Unknown |
Caution
In case it's not abundantly clear, even though Rust is largely OS-agnostic, this is a macOS-focused project. Any cross-platform support (Windows, Linux) is incidental and will not be actively maintained.
MacPak is self-contained, so there's no need to download/install/build any external dependencies. Audio playback in the Dialogue tab of MacPak technically requires vgmstream-cli, but the macOS binary for that is already included within the MacPak app.
Core functionality is derived from (and wouldn't be possible without):
- LSLib
- PAK handling
- LSF/LSX/LSJ handling
- Note: LSLib metadata is intentionally used in MacLarian's LSF/LSX/LSJ output.
- GR2/glTF conversion
- Virtual texture handling
- Loca file handling
- xiba
- PAK handling in Rust
- pybg3 and Knit
- GR2 decompression (clean room Bitknit decompression reverse-engineering)
- BG3 Dialog Reader
- Character dialogue tree and bark handling
- Padme's BG3 Tutorials Templates and Modding Resources
- Dye mod templates