PyLibMS
PyLibMS is a library built in Python 3.11 and above for reading and writing of revision >=3 of the libMessageStudio (LMS) proprietary file formats from Nintendo. These include files generated for late Wii titles, Nintendo 3DS, Wii U, Mobile, Nintendo Switch and Nintendo Switch 2 games.
The following is supported:
| Format | Read | Write | Support |
|---|---|---|---|
MSBT |
✅ | ✅ | 1:1 Reading and writing. Support for majority of sections. Full attribute (ATR1) decoding with configurations. Tag decoding 1:1 with the official Nintendo .mstxt file format. |
UMSBT |
✅ | ✅ | 1:1 Reading and writing. Accessing, adding, inserting and deleting MSBT files within UMSBT archives. |
MSBF |
✅ | ✅ | 1:1 Reading and writing flowcharts (FLW3). Support for custom node definitions, attaching names and descriptions to nodes. Altering parameter datatypes for flexibility between games. |
MSBP |
✅ | ❌ | Viewing all MSBP relevant metadata and generating configuration files for use with MSBT files. |
Documentation
PyLibMS documentation is on readthedocs. A simple preview is below:
Reading
# MSBT
from lms.message.msbtio import read_msbt_path
msbt = read_msbt_path("Text.msbt")
# UMSBT
from lms.message.umsbtio import read_umsbt_path
umsbt = read_umsbt_path("TextU.umsbt")
# 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
# MSBT
from lms.message.msbtio import write_msbt_path
write_msbt_path("Out_text.msbt")
# UMSBT
from lms.message.umsbtio import write_umsbt_path
write_umsbt_path("Out_textu.umsbt")
# 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
Python version must be `>=3.11.
pip install PyLibMS
Build Instructions
Clone the repository, then run pip install.
git clone https://github.com/AbdyyEee/PylibMS.git
cd PyLibMS
pip install -e .
AI Disclaimer
PyLibMS and its code is handwritten, developed and maintained by abdyyeee.
AI was occasionally consulted for minor implementation references during the development of MSBT, USMBT and MSBF. No AI was utilized for MSBP. Any references were reviewed and tested beforehand, and no code was ever directly pasted from any generative source.
The development of unit-tests were AI assisted.
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 UMSBT implementation and other bits of the library.
Metadata
Release files for PyLibMS 5.0.7
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-5.0.7.tar.gz | 44.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pylibms-5.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 106.8 kB
Release files / pylibms-5.0.7.tar.gz
| Download URL | pylibms-5.0.7.tar.gz |
|---|---|
| Size | 44.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
765c506ef56af13647a8cb371b9607db28c7d0cf463f8d2c7c9bed17a380649a
|
|
BLAKE2b-256 checksum How to use checksums |
4ee37107ca687c237ebd3eba863afbdc545df1a388f6290e76c58cd667a8e46a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / pylibms-5.0.7-py3-none-any.whl
| Download URL | pylibms-5.0.7-py3-none-any.whl |
|---|---|
| Size | 62.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
201de6cac1f898f89021aa6b827ca8d38ae72598205436208ed52e5779c09cf3
|
|
BLAKE2b-256 checksum How to use checksums |
d70c250f6c0f46eaa8c47d681f947d3a5b2318833d384ff9fa6abfbc96f99d18
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency log