String File Format (MH3) - GReinoso96/XXModding GitHub Wiki

All research based on data00_eng.bin

The files themselves are containers.

All offset and length values are in Big Endian format.

Structure

The files are divided into 3 sections, Header, Blocks and Sections.

Header is the basic file structure info found at the start.

Sections are large chunks of data that contain blocks, Item Strings, Blademaster Strings, Gunner Strings, etc.

Blocks are the different partitions of each section, for example, the Blademaster Strings section contains 2 blocks for each weapon class, one for names and one for strings.

All offsets found inside blocks expect the section to start at 0x00.

Header Definition

Byte Length Description
0x00 0x04 Magic (OMOM/0x4F4D4F4D)
0x04 0x04 Number of files

Section Definition

These work with global offsets.

Byte Length Description
0x00 0x04 Offset to Section
0x04 0x04 Size of Section
... ... Repeat for Number of Files

Block Definition

Unfortunately, there doesn't seem to be a simple way to programatically get the number of blocks per section.

Byte Length Description
0x00 0x04 Offset to block strings's offsets
0x04 0x04 Number of strings for this block
... ... Repeat for Number of Blocks