Skip to main content

PyLibMS

Python Versions LICENSE PyPI version

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 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.
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.

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

# 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

Pip Page

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 .

AI Disclaimer

Code in this library was written by me. AI was utilized occasionally when fit and always reviewed by me.

MSBT: Only usage of AI was for control tag regex formats and for understanding implementing string importing with re.

MSBP: AI was not utilized anywhere.

MSBF: AI was only utilized for the LMS_BaseNode.get_descendents function and for consultation for ways to improve the API.

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.

Metadata

Release files for PyLibMS 5.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PyLibMS 5.0.0
File Size Uploaded
pylibms-5.0.0.tar.gz 57.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PyLibMS 5.0.0
File Interpreter ABI Platform
pylibms-5.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 135.0 kB

Release files / pylibms-5.0.0.tar.gz

Download URL pylibms-5.0.0.tar.gz
Size 57.3 kB
Tags Source
SHA-256 checksum
How to use checksums
0fdc0fc1cb65ff2e68f2743510d3ccdff13fe55409f128dac01d4e5a018d5268
BLAKE2b-256 checksum
How to use checksums
7cf96e46b1394b3ed5bad7c94d2073f6bc2c0a77cb31258778245198415cf1cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / pylibms-5.0.0-py3-none-any.whl

Download URL pylibms-5.0.0-py3-none-any.whl
Size 77.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
26f9eb5b8ee7be759dfcfd24a4156996a14149ad23ff9a93dd97872fec7fff15
BLAKE2b-256 checksum
How to use checksums
3eb46419ae9a5be184f6bea24688e485a8d09b8089540ad12aff06fed970a031
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

5.0.7

2 release files

5.0.6

2 release files

5.0.5

2 release files

5.0.4

2 release files

5.0.3

2 release files

5.0.2

2 release files

5.0.1

2 release files

This release

5.0.0 This release

2 release files

4.3.4

2 release files

4.3.3

2 release files

4.3.2

2 release files

4.3.1

2 release files

4.3.0

2 release files

4.2.5

2 release files

4.2.4

2 release files

4.2.3

2 release files

4.2.2

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.7

2 release files

4.1.6

2 release files

4.1.5

2 release files

4.1.4

2 release files

4.1.3

2 release files

4.1.2

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.4

2 release files

4.0.3

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.3.9

2 release files

3.3.8

2 release files

3.3.7

2 release files

3.3.5

2 release files

3.3.4

2 release files

3.3.3

2 release files

3.3.2

2 release files

3.3.1

2 release files

3.3

2 release files

3.2.6

2 release files

3.2.5

2 release files

3.2.4

2 release files

3.2.3

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.8

2 release files

3.1.7

2 release files

3.1.6

2 release files

3.1.5

2 release files

3.1.4

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.0.9

2 release files

3.0.8

2 release files

3.0.7

2 release files

3.0.6

2 release files

3.0.5

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.9

2 release files

2.0.8

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

0.7.4

1 release file

0.7.3

1 release file

0.7.2

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.4

1 release file

0.6.3

1 release file

0.6.2

1 release file

0.6.1

1 release file

0.6

1 release file

0.5.1

1 release file

0.5

1 release file

0.4.4

1 release file

0.4.3

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.8

1 release file

0.3.7

1 release file

0.3.6

1 release file

0.3.5

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.9

1 release file

0.2.8

1 release file

0.2.7

1 release file

0.2.6

1 release file

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.9

1 release file

0.1.8

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.5

1 release file

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page