<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Mapdev%3ASMF_format</id>
	<title>Mapdev:SMF format - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Mapdev%3ASMF_format"/>
	<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Mapdev:SMF_format&amp;action=history"/>
	<updated>2026-04-21T07:30:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Mapdev:SMF_format&amp;diff=555&amp;oldid=prev</id>
		<title>Qrow: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Mapdev:SMF_format&amp;diff=555&amp;oldid=prev"/>
		<updated>2025-11-13T02:14:55Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:14, 12 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Qrow</name></author>
	</entry>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Mapdev:SMF_format&amp;diff=554&amp;oldid=prev</id>
		<title>interwiki&gt;Funkencool: to match source code</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Mapdev:SMF_format&amp;diff=554&amp;oldid=prev"/>
		<updated>2014-10-03T06:53:58Z</updated>

		<summary type="html">&lt;p&gt;to match source code&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= SMF(Spring Map File) Reference =&lt;br /&gt;
SMF is a binary format&lt;br /&gt;
* [https://github.com/spring/spring/blob/2e5bc43dc464ec27d6b880d105f0c618e07c4ff8/rts/Map/SMF/mapfile.h mapfile.h]&lt;br /&gt;
* [https://github.com/spring/spring/blob/2e5bc43dc464ec27d6b880d105f0c618e07c4ff8/rts/Map/SMF/SmfMapFile.cpp SmfMapFile.cpp]&lt;br /&gt;
&lt;br /&gt;
== File location ==&lt;br /&gt;
maparchive.sd7/maps/mymapname.smf&lt;br /&gt;
&lt;br /&gt;
== Data Map ==&lt;br /&gt;
* smu = spring map unit, the size you see when in the lobby. roughly between 2 and 64.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;left&amp;quot; | Header&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Bytes&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 16 || &amp;lt;code&amp;gt;char[]&amp;lt;/code&amp;gt; || Magic number; &amp;quot;spring map file\0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Version number; &amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;unsigned int&amp;lt;/code&amp;gt; || ID, should be as unique as possible.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Width; smu * 64&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Length; smu * 64&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Square size; 8&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Texels per square size; 8&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Tile size; 32&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; || Depth/min height; 512 = 1*smu&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; || Height/max height; 512 = 1*smu&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Byte offset to start of height map&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Byte offset to start of type map&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Byte offset to start of tile index&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Byte offset to start of mini map&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Byte offset to start of metal map&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Byte offset to start of features map&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || No of extra headers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;left&amp;quot; | + Extra Headers&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Bytes&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Size of the header&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Type of header&lt;br /&gt;
|-&lt;br /&gt;
| * || * || Data of header&lt;br /&gt;
|}&lt;br /&gt;
* &lt;br /&gt;
* &lt;br /&gt;
* &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;left&amp;quot; | + Height Map&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Bytes&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| (width+1)*(length+1) || &amp;lt;code&amp;gt;unsigned short[]&amp;lt;/code&amp;gt; || Data for height map.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;left&amp;quot; | + Type Map&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Bytes&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| (width/2)*(length/2) || &amp;lt;code&amp;gt;char[]&amp;lt;/code&amp;gt; || Data for type map.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;left&amp;quot; | + Mini Map&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Bytes&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 699048 || &amp;lt;code&amp;gt;char[]&amp;lt;/code&amp;gt; || raw DXT1 compressed 1024x1024 image.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;left&amp;quot; | + Tile Index Header&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Bytes&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Number of tile files&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Total number of tiles in all files.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;left&amp;quot; | + SMT File Infos&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Bytes&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Number of tiles in this file&lt;br /&gt;
|-&lt;br /&gt;
| size of filename || &amp;lt;code&amp;gt;char[]&amp;lt;/code&amp;gt; || The filename of the smt.&lt;br /&gt;
|}&lt;br /&gt;
* &lt;br /&gt;
* &lt;br /&gt;
*&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;left&amp;quot; | + Tile Index&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Bytes&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| (width / 4) * (length / 4) || &amp;lt;code&amp;gt;int[]&amp;lt;/code&amp;gt; || Index numbers of tiles in SMT&amp;#039;s&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;left&amp;quot; | + Metal Map&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Bytes&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| (width / 2) * (length / 2) || &amp;lt;code&amp;gt;char[]&amp;lt;/code&amp;gt; || Metal Density&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;left&amp;quot; | + Features Header&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Bytes&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Number of features&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Number of feature types&lt;br /&gt;
|-&lt;br /&gt;
| * || &amp;lt;code&amp;gt;char[]&amp;lt;/code&amp;gt; || List of feature names delimited by null&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;left&amp;quot; | + Features&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Bytes&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Type of feature, corresponds with feature name list.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; || X Position (along the width of the map)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; || Y Position (Up into the sky)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; || Z Position (along the length of the map)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; || rotation, not sure of scale&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; || relative size (not implemented); 1&lt;br /&gt;
|}&lt;br /&gt;
* &lt;br /&gt;
* &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Optional Extra Headers &amp;amp; data ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;left&amp;quot; | + Grass Extra header&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Bytes&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Size of the header; 12&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Type of header; 1&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; || Byte offset to beginning of grass map&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;left&amp;quot; | + Grass Data&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot; | (width / 4) * (length / 4)&lt;br /&gt;
| style=&amp;quot;width: 20%&amp;quot; | &amp;lt;code&amp;gt;unsigned char&amp;lt;/code&amp;gt;&lt;br /&gt;
| Map defining the grass on the map. not sure what 256 available values mean.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>interwiki&gt;Funkencool</name></author>
	</entry>
</feed>