Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

LMS > Overview > Project File (MSBP)

This file is identified by the magic number MsgPrjBn. This file defines various metadata for MSBT files.

This page describes file format version 3 and 4.

All blocks are optional.

CLR1 Block

OffsetSizeDescription
0x04Number of colors
0x44 per colorRGBA colors

CLB1 Block

This block contains labels for the CLR1 block.

ATI2 Block

This block defines the layout of a global attribute structure.

OffsetSizeDescription
0x04Number of attributes
0x48 per attributeAttributes

Attribute

If the attribute type is an enum, the enum id is an index into the ALI2 block.

OffsetSizeDescription
0x01Type
0x11Padding
0x22Enum id
0x44Offset

ALB1 Block

This block contains labels for the ATI2 block.

ALI2 Block

This block contains names for enum values. It is referenced by the ATI2 block.

OffsetSizeDescription
0x04Number of enums
0x44 per enumOffsets to enum declarations, relative to start of block
Enum declarations

Enum Declaration

OffsetSizeDescription
0x04Number of enum member names
0x44 per enumOffsets to enum member names, relative to start of enum declaration
Null-terminated enum member names

Every enum declaration is padded until its size is a multiple of 4 bytes.

TGG2 Block

This block defines control tag groups for MSBT files.

Control tags allow developers to apply modifiers (such as bold or cursive) and insert placeholders for other text. Tags are organized into groups.

OffsetSizeDescription
0x02Number of tag groups
0x22Padding
0x44 per groupOffsets to tag groups, relative to start of block
Tag groups

Tag Group

Every tag group is identified by an id. In version 3, the id is simply the index of the group. In version 4, it is explicitly stored in the file.

Version 3:

OffsetSizeDescription
0x02Number of tags
0x22 per tagTag indices (in TAG2 block)
Null-terminated tag group name

Version 4:

OffsetSizeDescription
0x02Tag group id
0x22Number of tags
0x42 per tagTag indices (in TAG2 block)
Null-terminated tag group name

Every tag group is padded so that its size is a multiple of 4.

TAG2 Block

OffsetSizeDescription
0x02Number of tags
0x22Padding
0x44 per tagOffsets to tags, relative to start of block

Tag

OffsetSizeDescription
0x02Number of tag parameters
0x22 per parameterTag parameter indices (in TGP2 block)
Null-terminated tag name

Every tag is padded so that its size is a multiple of 4.

TGP2 Block

OffsetSizeDescription
0x02Number of parameters
0x22Padding
0x44 per parameterOffsets to parameters, relative to start of block

Tag Parameter

If the parameter type is not an enum:

OffsetSizeDescription
0x01Parameter type
0x1Null terminated parameter name

If the parameter type is an enum:

OffsetSizeDescription
0x01Parameter type
0x1Null terminated parameter name
0x11Padding
0x22Number of enum members
0x42 per list itemEnum member name indices (in TGL2 block)
Null terminated parameter name

Every tag parameter is padded so that its size is a multiple of 4.

TGL2 Block

This block defines enum member names for tag parameters.

OffsetSizeDescription
0x02Number of enum member names
0x22Padding
0x44 per list itemOffsets to enum member names, relative to start of block
Null-terminated enum member names

SYL3 Block

OffsetSizeDescription
0x04Number of styles
0x416 per styleStyles

Style

OffsetSizeDescription
0x04Region width
0x44Line num
0x84Font index
0xC4Base color index

SLB1 Block

This block contains labels for the SYL3 block.

CTI1 Block

This block contains the names of the source files that the MSBT and MSBF files were generated from. The source files often have the .mstxt or .msflw extension.

OffsetSizeDescription
0x04Number of filenames
0x44 per filenameOffsets to filename strings
Null-terminated filename strings

Value Types

The following type ids are used by attributes and tag parameters.

IDDescription
0Int8
1Uint8
2Int16
3Uint16
4Int32
5Uint32
6Float
7Double
8String
9Enum