<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://acmods.org/index.php?action=history&amp;feed=atom&amp;title=New_Horizons%3AMSBT</id>
	<title>New Horizons:MSBT - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://acmods.org/index.php?action=history&amp;feed=atom&amp;title=New_Horizons%3AMSBT"/>
	<link rel="alternate" type="text/html" href="https://acmods.org/index.php?title=New_Horizons:MSBT&amp;action=history"/>
	<updated>2026-06-04T01:27:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.2</generator>
	<entry>
		<id>https://acmods.org/index.php?title=New_Horizons:MSBT&amp;diff=169&amp;oldid=prev</id>
		<title>Aeon at 17:57, 21 September 2021</title>
		<link rel="alternate" type="text/html" href="https://acmods.org/index.php?title=New_Horizons:MSBT&amp;diff=169&amp;oldid=prev"/>
		<updated>2021-09-21T17:57:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:57, 21 September 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l67&quot;&gt;Line 67:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 67:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|0x08&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|0x08&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;8&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| -&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| -&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Padding&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Padding&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key acnhmods:diff::1.12:old-159:rev-169 --&gt;
&lt;/table&gt;</summary>
		<author><name>Aeon</name></author>
	</entry>
	<entry>
		<id>https://acmods.org/index.php?title=New_Horizons:MSBT&amp;diff=159&amp;oldid=prev</id>
		<title>Jess: Added New Horizons Category</title>
		<link rel="alternate" type="text/html" href="https://acmods.org/index.php?title=New_Horizons:MSBT&amp;diff=159&amp;oldid=prev"/>
		<updated>2021-09-21T15:42:32Z</updated>

		<summary type="html">&lt;p&gt;Added New Horizons Category&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:42, 21 September 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l218&quot;&gt;Line 218:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 218:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Following the function header, a list of arguments is provided. The data type and purpose of these arguments depend on the function type. For more details refer to the list of all known [[New Horizons:MSBT functions|MSBT functions]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Following the function header, a list of arguments is provided. The data type and purpose of these arguments depend on the function type. For more details refer to the list of all known [[New Horizons:MSBT functions|MSBT functions]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:New Horizons]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key acnhmods:diff::1.12:old-156:rev-159 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jess</name></author>
	</entry>
	<entry>
		<id>https://acmods.org/index.php?title=New_Horizons:MSBT&amp;diff=156&amp;oldid=prev</id>
		<title>Aeon: fixed msbt function header description for arguments</title>
		<link rel="alternate" type="text/html" href="https://acmods.org/index.php?title=New_Horizons:MSBT&amp;diff=156&amp;oldid=prev"/>
		<updated>2021-09-21T14:12:16Z</updated>

		<summary type="html">&lt;p&gt;fixed msbt function header description for arguments&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:12, 21 September 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l215&quot;&gt;Line 215:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 215:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|2&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Unsigned Short&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Unsigned Short&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Argument count&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Argument &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;byte &lt;/ins&gt;count&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Following the function header, a list of arguments is provided. The data type and purpose of these arguments depend on the function type. For more details refer to the list of all known [[New Horizons:MSBT functions|MSBT functions]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Following the function header, a list of arguments is provided. The data type and purpose of these arguments depend on the function type. For more details refer to the list of all known [[New Horizons:MSBT functions|MSBT functions]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key acnhmods:diff::1.12:old-155:rev-156 --&gt;
&lt;/table&gt;</summary>
		<author><name>Aeon</name></author>
	</entry>
	<entry>
		<id>https://acmods.org/index.php?title=New_Horizons:MSBT&amp;diff=155&amp;oldid=prev</id>
		<title>Aeon: Created page with &quot;'''Message Studio Binary Text (MSBT)''' files contain the localized text and other rendering details for the text rendering engine.  ==File Structure== A MSBT file consists of...&quot;</title>
		<link rel="alternate" type="text/html" href="https://acmods.org/index.php?title=New_Horizons:MSBT&amp;diff=155&amp;oldid=prev"/>
		<updated>2021-09-21T11:48:27Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Message Studio Binary Text (MSBT)&amp;#039;&amp;#039;&amp;#039; files contain the localized text and other rendering details for the text rendering engine.  ==File Structure== A MSBT file consists of...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Message Studio Binary Text (MSBT)''' files contain the localized text and other rendering details for the text rendering engine.&lt;br /&gt;
&lt;br /&gt;
==File Structure==&lt;br /&gt;
A MSBT file consists of a file header followed by several sections.&lt;br /&gt;
&lt;br /&gt;
===Header===&lt;br /&gt;
The general MSBT file header contains information about the used byte order, version, number of sections and total file size.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|8&lt;br /&gt;
|String&lt;br /&gt;
|File signature: must be &amp;lt;code&amp;gt;MsgStdBn&amp;lt;/code&amp;gt; for MSBT files&lt;br /&gt;
|-&lt;br /&gt;
|0x08&lt;br /&gt;
|2&lt;br /&gt;
|Unsigned Short&lt;br /&gt;
|Byte order: &amp;lt;code&amp;gt;0xfeff&amp;lt;/code&amp;gt; for big endian, &amp;lt;code&amp;gt;0xfffe&amp;lt;/code&amp;gt; for little endian&lt;br /&gt;
|-&lt;br /&gt;
|0x0a&lt;br /&gt;
|2&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|0x0c&lt;br /&gt;
|1&lt;br /&gt;
|Byte&lt;br /&gt;
|Encoding: &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt; for UTF-8, otherwise Unicode&lt;br /&gt;
|-&lt;br /&gt;
|0x0d&lt;br /&gt;
|1&lt;br /&gt;
|Byte&lt;br /&gt;
|Version&lt;br /&gt;
|-&lt;br /&gt;
|0x0e&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Integer&lt;br /&gt;
|Section count&lt;br /&gt;
|-&lt;br /&gt;
|0x12&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Integer&lt;br /&gt;
|File size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Sections===&lt;br /&gt;
Sections are always aligned to 16-byte blocks. This means that the first section in a MSBT file starts at &amp;lt;code&amp;gt;0x20&amp;lt;/code&amp;gt;. There are several different types of sections: label, attribute and text sections. Not all sections need to be present but at least the label and text sections must exist.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|4&lt;br /&gt;
|String&lt;br /&gt;
|Section type: &amp;lt;code&amp;gt;LBL1&amp;lt;/code&amp;gt; for label sections, &amp;lt;code&amp;gt;ATR1&amp;lt;/code&amp;gt; for attribute sections, &amp;lt;code&amp;gt;TXT2&amp;lt;/code&amp;gt; for text sections&lt;br /&gt;
|-&lt;br /&gt;
|0x04&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Integer&lt;br /&gt;
|Section size&lt;br /&gt;
|-&lt;br /&gt;
|0x08&lt;br /&gt;
|4&lt;br /&gt;
| -&lt;br /&gt;
|Padding&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Label Section====&lt;br /&gt;
The label section contains unique identifiers for all messages. The header contains the number of entries.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Integer&lt;br /&gt;
|Entry count&lt;br /&gt;
|}&lt;br /&gt;
Following the section header, a list of label groups is provided. Each label group header contains the number of labels in the group and the offset (counting from the section header start at &amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;) to the strings.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Integer&lt;br /&gt;
|Label count&lt;br /&gt;
|-&lt;br /&gt;
|0x04&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Integer&lt;br /&gt;
|Group offset&lt;br /&gt;
|}&lt;br /&gt;
Each label data contains the length of the label string, the string itself and a zero-based index to the message the label is for.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|1&lt;br /&gt;
|Byte&lt;br /&gt;
|String length&lt;br /&gt;
|-&lt;br /&gt;
|0x01&lt;br /&gt;
|n&lt;br /&gt;
|String&lt;br /&gt;
|Label string (terminated with a &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; null-byte)&lt;br /&gt;
|-&lt;br /&gt;
|0xnn&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Integer&lt;br /&gt;
|Message index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Attribute Section====&lt;br /&gt;
The attribute section contains additional attribute data for the messages. The header contains the number of entries and the size (in bytes) of the attributes.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Integer&lt;br /&gt;
|Entry count&lt;br /&gt;
|-&lt;br /&gt;
|0x04&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Integer&lt;br /&gt;
|Attribute size&lt;br /&gt;
|}&lt;br /&gt;
Following the section header, a list of all attributes is provided. The exact usage and purpose of this data is not fully known at this point.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|n&lt;br /&gt;
|Byte&lt;br /&gt;
|Attribute bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Text Section====&lt;br /&gt;
The text section contains the actual text strings. The header contains the number of entries.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Integer&lt;br /&gt;
|Entry count&lt;br /&gt;
|}&lt;br /&gt;
Following the section header, a list of string offsets (counting from the section header start at &amp;lt;code&amp;gt;0x10&amp;lt;/code&amp;gt;) is provided. Each offset points to one text string.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|4&lt;br /&gt;
|Unsigned Integer&lt;br /&gt;
|String offset&lt;br /&gt;
|}&lt;br /&gt;
A text string is read starting from the current string offset until the next offset is reached. For the last string, the section size is used to determine the end of the string.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|n&lt;br /&gt;
|String&lt;br /&gt;
|Text string (terminated with a &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; null-byte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==MSBT Functions==&lt;br /&gt;
MSBT text strings contain encoded function calls that are executed by the text rendering engine. The specific functions vary depending on the game. The start of such an encoded function is always indicated by the &amp;lt;code&amp;gt;0x0E&amp;lt;/code&amp;gt; byte sequence and ends with &amp;lt;code&amp;gt;0x0F&amp;lt;/code&amp;gt;. All functions have the following structure.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset&lt;br /&gt;
!Size&lt;br /&gt;
!Data Type&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00&lt;br /&gt;
|2&lt;br /&gt;
|Unsigned Short&lt;br /&gt;
|Function type&lt;br /&gt;
|-&lt;br /&gt;
|0x02&lt;br /&gt;
|2&lt;br /&gt;
|Unsigned Short&lt;br /&gt;
|Function sub-type&lt;br /&gt;
|-&lt;br /&gt;
|0x04&lt;br /&gt;
|2&lt;br /&gt;
|Unsigned Short&lt;br /&gt;
|Argument count&lt;br /&gt;
|}&lt;br /&gt;
Following the function header, a list of arguments is provided. The data type and purpose of these arguments depend on the function type. For more details refer to the list of all known [[New Horizons:MSBT functions|MSBT functions]].&lt;/div&gt;</summary>
		<author><name>Aeon</name></author>
	</entry>
</feed>