PyLibMS
PyLibMS is a library built in Python 3.10 and above for reading and writing of libMessageStudio (LMS) proprietary file formats from Nintendo.
The following is supported
| Format | Read | Write | Configuration Support |
|---|---|---|---|
MSBT |
✅ | ✅ | Support for full attribute (ATR1) decoding. Tag decoding 1:1 with the official Nintendo .mstxt file format. |
MSBF |
✅ | ✅ | Support for custom node definitions, attaching names and descriptions to nodes. Altering parameter datatypes for flexibility between games. |
MSBP |
✅ | ❌ | Generating configuration files for use with MSBT files. |
This library is designed to support LMS revision >=3.0. These include files generated for late Wii titles, Nintendo 3DS, Wii U, Mobile, Nintendo Switch and Nintendo Switch 2 games.
Features and Usage
Simple preview of the library is below. See the wiki for more explanations and examples.
Reading
MSBT
from lms.message.msbtio import read_msbt_path
msbt = read_msbt_path("Text.msbt")
MSBP
from lms.project.msbpread import read_msbp_path
msbp = read_msbp_path("Project.msbp")
MSBF
from lms.flowchart.msbfio import read_msbf_path
msbf = read_msbf_path("Flowchart.msbf")
Writing
There is no writing for MSBP files as most of the time it acts as leftover metadata and not actually loaded by games.
MSBT
from lms.message.msbtio import write_msbt_path
write_msbt_path("Out_text.msbt")
MSBF
from lms.flowchart.msbfio import write_msbf_path
write_msbf_path("Out_Flowchart.msbf")
Adding/Editing Presets
To add or edit Preset, you may create an issue with the relevant yaml file and the game it is for.
Installation
pip install PyLibMS
Build Instructions
Python version must be 3.10 or higher.
Clone the repository, then run pip install (venv recommended)
git clone https://github.com/AbdyyEee/PylibMS.git
cd PyLibMS
pip install -e .
Credits & Sources
- SS-Decomp: Referenced some parts of their MSBF decomp when adding the format to Nintendo-File-Formats and this library.
- Nintendo-File-Formats by Kinnay: For existing information on the MSBT and MSBP file formats.
- Trippixyz: For helping me get started general decompilation of the formats and general help.
- AeonSake: Inspiration for some the implementation of the library and a bit of general help.
Release files for PyLibMS 4.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pylibms-4.2.2.tar.gz | 66.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pylibms-4.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 154.5 kB
Release files / pylibms-4.2.2.tar.gz
| Download URL | pylibms-4.2.2.tar.gz |
|---|---|
| Size | 66.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ff36b1bb6ba25ad8b1313e46164989e9d7502580069fd1299cd1e6b05c6adb9d
|
|
BLAKE2b-256 checksum How to use checksums |
736769bf32add011ca9326ce9e3415729aedf4ac1adc61c86613cc70ea86614c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / pylibms-4.2.2-py3-none-any.whl
| Download URL | pylibms-4.2.2-py3-none-any.whl |
|---|---|
| Size | 87.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5824a4f0aefe6c811e16702727cc2f68c34b263763b779b6c7a61815fef0e0aa
|
|
BLAKE2b-256 checksum How to use checksums |
ea97a555a3d5b4646872a7c9d172aa4d6c1c84b3ec30928b0252a1d1c5ed4cc2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|