<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Enetheru</id>
	<title>Spring - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Enetheru"/>
	<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/wiki/Special:Contributions/Enetheru"/>
	<updated>2026-11-08T21:49:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Main&amp;diff=13543</id>
		<title>Mapdev:Main</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Main&amp;diff=13543"/>
		<updated>2016-02-05T23:00:28Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Specific to Map Development */ updated link to smf_tools&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Map Development =&lt;br /&gt;
Maps are the fields on which the battles are fought, made with the implicit contract that they shall not alter game mechanics. They are made up of images and text files which describe the environment and its features, such as height, colour, background, details features, atmosphere and lighting etc. These images and text files are then compressed into a 7zip archive for distribution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-Game Screenshot&lt;br /&gt;
|[[File:Screen00364.jpg|640px]]&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Beginners Tutorial =&lt;br /&gt;
This beginners tutorial is split into three parts, the basic stuff, the more advanced basic stuff, and how to compile and create a map archive for distribution. It is intended to get you started, when you are comfortable with the concepts, please look over the technical documentation to further your knowledge.&lt;br /&gt;
* [[Mapdev:Tutorial_Simple|Stage 1]]&lt;br /&gt;
* [[Mapdev:Tutorial_Intermediate|Stage 2]]&lt;br /&gt;
* [[Mapdev:Tutorial_Finalizing|Finalizing]]&lt;br /&gt;
&lt;br /&gt;
= Blueprint =&lt;br /&gt;
Due to the amount of boiler plate files needed to create a fairly feature complete map, [[User:Jk|Jk]] has created a blueprint map to get things started&lt;br /&gt;
* [https://github.com/jk3064/Map-Blueprint/archive/master.zip Link to blueprint zip]&lt;br /&gt;
&lt;br /&gt;
= Technical Documentation =&lt;br /&gt;
; &#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:mapinfo.lua|mapinfo.lua]]&lt;br /&gt;
* [[Mapdev:set.lua|set.lua]] - feature set&lt;br /&gt;
* [[Mapdev:SMT format|SMT format]]&lt;br /&gt;
* [[Mapdev:SMF format|SMF format]]&lt;br /&gt;
* [[Gamedev:Archives]]&lt;br /&gt;
* [[Mapdev:sounds]]&lt;br /&gt;
* [[Mapdev:performance]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Terrain Shading&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:diffuse]]&lt;br /&gt;
* [[Mapdev:detail]]&lt;br /&gt;
* [[Mapdev:splatdetail]]&lt;br /&gt;
* [[Mapdev:splatdetailnormals]]&lt;br /&gt;
* [[Mapdev:specular]]&lt;br /&gt;
* [[Mapdev:normal]]&lt;br /&gt;
* [[Mapdev:parallax]]&lt;br /&gt;
* [[Mapdev:skyreflectmod]]&lt;br /&gt;
* [[Mapdev:lightemission]]&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Terrain Features&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:height]]&lt;br /&gt;
* [[Mapdev:metal]]&lt;br /&gt;
* [[Mapdev:terraintype]]&lt;br /&gt;
* [[Mapdev:grass]]&lt;br /&gt;
* [[Mapdev:features]]&lt;br /&gt;
* [[Mapdev:water]]&lt;br /&gt;
* [[Mapdev:borders]]&lt;br /&gt;
* [[Mapdev:minimap]]&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Environment&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:skybox]]&lt;br /&gt;
* [[Mapdev:lighting]]&lt;br /&gt;
* [[Mapdev:atmosphere]]&lt;br /&gt;
&lt;br /&gt;
= Scripting =&lt;br /&gt;
* [[Mapdev:MapOptions]]&lt;br /&gt;
* [[Mapdev:LuaShaders]]&lt;br /&gt;
* [[Mapdev:Mutators]] [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21808 forum discussion]&lt;br /&gt;
&lt;br /&gt;
= Howto&#039;s =&lt;br /&gt;
* [[Mapdev:Howto_voidwater/space]]&lt;br /&gt;
* [[Mapdev:Howto_spring_features_v1]]&lt;br /&gt;
* [[Mapdev:Howto_skybox]]&lt;br /&gt;
* [[Mapdev:howto_height_blender|Making a height map with Blender]]&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
A big list of tools used in developing spring games and assets:&lt;br /&gt;
* [[Map,_Game,_And_Unit_Development_Programs]]&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* [https://github.com/eronoobos/spring-metal-spot-resources Metal Spot Resources]&lt;br /&gt;
&lt;br /&gt;
== Specific to Map Development ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|+ Tools vs Platform&lt;br /&gt;
! Tool !! Windows !! Linux !! MacOS&lt;br /&gt;
|-&lt;br /&gt;
| [[MapConv]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[MapConvNG]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[Mapdeconv]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[smf_decompiler]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| Start Position Editor&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  [http://springfiles.com/spring/tools/mapping-tools Yes]&lt;br /&gt;
|-&lt;br /&gt;
| Das Bruce&#039;s Mapconv Frontend&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  [http://springfiles.com/spring/tools/mapping-tools Yes]&lt;br /&gt;
|-&lt;br /&gt;
| FrostRegen&#039;s [[Maps:SpringMapEdit|SpringMapEdit]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/enetheru/smf_tools/releases Enetheru&#039;s smf_tools]&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; |&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot; | yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spring Add-Ons ==&lt;br /&gt;
* [[Map_Making:_Feature_Placer|FeaturePlacer]]&lt;br /&gt;
* [[ToolBox]]&lt;br /&gt;
* [http://springfiles.com/spring/tools/spring-features Spring Features V1.0]&lt;br /&gt;
&lt;br /&gt;
= Common Problems =&lt;br /&gt;
== Pink Map ==&lt;br /&gt;
Renaming the SMT file and not defining the new name in mapinfo.lua will result in a map with a pink texture. Also don&#039;t put any spaces in the name.&lt;br /&gt;
&lt;br /&gt;
== Map doesn&#039;t show in spring after compressing with 7zip==&lt;br /&gt;
The most likely cause is that it was compressed using the solid archive option.&lt;br /&gt;
&lt;br /&gt;
{{FIXME}}Add windows and MacOS solutions.&lt;br /&gt;
&lt;br /&gt;
For linux the option &amp;lt;code&amp;gt;-ms=off&amp;lt;/code&amp;gt; needs to be given on the command line. eg.&lt;br /&gt;
: &amp;lt;code&amp;gt; 7z a -ms=off myarchivename.sd7 dem files I want to archive&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flipped Images ==&lt;br /&gt;
Heightmap images compiled into map files are inverted. It is necessary to use the -i parameter of Mapconv to vertically flip the image so that it matches the texture.&lt;br /&gt;
&lt;br /&gt;
== smt name defined in smf ==&lt;br /&gt;
The SMT file name is hardcoded in the SMF, and renaming the SMT used to cause pink map issues, but the SMT can now be manually defined in mapinfo.lua thereby bypassing the entire issue altogether.&lt;br /&gt;
&lt;br /&gt;
= Map Development Wiki =&lt;br /&gt;
* [[Mapdev:WikiGuide|Mapdev Wiki Guide]]&lt;br /&gt;
&lt;br /&gt;
= Deprecated but not Deleted =&lt;br /&gt;
We plan on integrating any and all useful knowledge from these pages into the rest of the wiki, they are kept here so that they are not hidden away.&lt;br /&gt;
== Full Guides For Map Making (Outdated) ==&lt;br /&gt;
The guides listed below are outdated and scheduled for archival.&lt;br /&gt;
*[[Create maps|aGorm&#039;s map creating Guide]]&lt;br /&gt;
*[[Map Making Guide|aGorms Ultimate Map Making Guide(unfinished)]]&lt;br /&gt;
*[[IceXuick Map Design Help|IceXuicks Map creating Guide]]&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?t=3941 Forboding Angel&#039;s map creating Tutorial]&lt;br /&gt;
*[[Maps:Tutorial|Another tutorial from a designing point of view]]&lt;br /&gt;
*[[A Complete Map Making Tutorial|A Complete Map Making Tutorial (under construction)]]&lt;br /&gt;
*[[Runecrafter|Runecrafter&#039;s Map Tutorial]]&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=15390 Beherith&#039;s map creating tutorial using the World in Conflict map editor]&lt;br /&gt;
&lt;br /&gt;
== Specific Guides (Extremely Outdated!) ==&lt;br /&gt;
The linked pages below are scheduled for archival.&lt;br /&gt;
*[[Maps:SMD|Spring Map Definition(smd) reference]]&lt;br /&gt;
*[[Maps:Compiling|Everything about Compiling your map]]&lt;br /&gt;
*[[MapsBalance|Some things about map balance]]&lt;br /&gt;
*[[MapSizes|Map sizes in pixels]] and memory information about map sizes&lt;br /&gt;
*[[Height Map Tutorial|RogerN&#039;s height map tutorial]]&lt;br /&gt;
*[[Create map texture with povray|Basic howto: create map texture with Povray]]&lt;br /&gt;
&lt;br /&gt;
[[Spring_Features]] is an Archive which contains Stones, rocks, trees, and can be used for your map.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru/Dump&amp;diff=20534</id>
		<title>User:Enetheru/Dump</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru/Dump&amp;diff=20534"/>
		<updated>2015-05-25T06:32:35Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: added another thought.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m so sick of these thoughts that repeatedly pop into my head.. so here is a place to dump them, so hopefully they will stop running around in there causing me strife.&lt;br /&gt;
= Lobby =&lt;br /&gt;
Why is there some weird dedicated IRC chat thingo.. really i just want to be able to load up my irc client and log in to ask questions and hang out.. I really don&#039;t want to use some shitty lobby, i know there is an IRC bridge, but extra work is putting up barriers to entry.&lt;br /&gt;
&lt;br /&gt;
= file formats =&lt;br /&gt;
== textures ==&lt;br /&gt;
Why are the formats so fucked up and difficult to use, and why are there so many.&lt;br /&gt;
the primary texture for any object should be its diffuse+alpha, then everything else put in a secondary or more textures. it makes no sense to do it any other way.. it creates difficulty unnecessarily.&lt;br /&gt;
== 3d models ==&lt;br /&gt;
Why does the engine support so many formats, it may be slightly convenient for that one person who uses some obscure format.. but it fragments the art dev community. pick something that works and use it, everything else can be marked as unsuitable. then all assets will be the same.. if you need to change it, perform a system wide change.. also i cant imagine how much code maintenance that must be to support. this goes for 3d formats as well as 2d formats.. official documentation should pick one and stick to it.&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
== MapConv ==&lt;br /&gt;
Why is one of the core tools Mapconv separate from the engine, considering spring is supposed to be an engine which others use, the fact that mapconv isn&#039;t treated as an integral part of the whole is ludicrous.. currently its suffering bitrot and incompatibility due to lack of maintenance.&lt;br /&gt;
&lt;br /&gt;
= incubation, birth, learning, leaving the nest =&lt;br /&gt;
== Spring hosted ==&lt;br /&gt;
Spring is an incubator for its projects, provide servers, tools, community, testing etc. all the games use this incubation chamber to run their world. but it appears that leaving the nest is super hard.&lt;br /&gt;
== turnkey ==&lt;br /&gt;
Network infrastructure.. or infrastructure in general is also a tool.. if i want to create a game using the engine i don&#039;t necessarily want to integrate with the rest of the spring community, but i want it as an option.. when i download the package i want to have the tools to create me own game and release in multiple ways. a client, a server. and the server i want options for not just a host, but a chat host, file server for maps and mods, mumble server.. basically for a client i just want the lobby + engine.. but for the server i want Live CD/meta-package that auto installs all components and has shell scripts all made to run all services on the host. that way i can use the engine to make my game, and then run servers completely independently from the rest of the spring community. I also want the options to not run independently, if my game is small, or experimental.&lt;br /&gt;
&lt;br /&gt;
= map format ideas =&lt;br /&gt;
== Rotation of Tiles ==&lt;br /&gt;
The tileindex inside the smf uses 32bit unsigned integers to store the index, thats 4 294 967 296 tiles that can be referenced.. lets put that in perspective..&lt;br /&gt;
* if every tile was unique&lt;br /&gt;
* the map was square&lt;br /&gt;
* 32x32 was the smallest tile size&lt;br /&gt;
that&#039;s a map size of 4096x4096.&amp;lt;br&amp;gt;&lt;br /&gt;
the current recommended maximum size of maps is 32x32... so you would have to reference 16 384 different smt&#039;s with unique data the same as a 32x32 map to use up all those integers... I think we have unused data in the map format!&lt;br /&gt;
&lt;br /&gt;
What would be good is a dual strategy, if you dont need all the bits, dont use all the bits and pack up the data tighter, this would definitely help smf size, but compared to the smt only a drop in the ocean.&lt;br /&gt;
&lt;br /&gt;
we could use the unused bits to specify rotation, 28 bits still leaves 268 435 456 tiles thats still a map size of 1024x1024 of unique tiles. but I think a round figure like 24 bits for tile references, which is a map size of 256x256 unique tiles, leaves 8 bits for extra purposes.&lt;br /&gt;
&lt;br /&gt;
2 of those bits can be used to specify tile rotation, if your map is mirrored on the x and y coordinates then you can receive a 4x reduction in smt size.&lt;br /&gt;
=== Challenges ===&lt;br /&gt;
the shading for the terrain mesh is spread out all over the place, &lt;br /&gt;
The shading methods are three fold, fixed function, ARB shaders GLSL shader. each system would need to be modified to complete the project. SMFRenderState.{cpp,h}&lt;br /&gt;
&lt;br /&gt;
The UV coordintes are generated with glgentexi for each ROAM patch, so the size of the tiles at render time are the size of patches.&lt;br /&gt;
&lt;br /&gt;
= Modularisation =&lt;br /&gt;
The engine project should support drop in replacement/selectable replacement for components like the pathfinder/map format/assets/interface use etc. for instance, once again the discussion on why we cant have nice things(3d terrain) came up again and i got to thinking of researching how and why again.. it all leads to the same place.. dont break backwards compatability, new features are slower shittier.. so i got to thinking of replacing a single component of the system for testing purposes... but why cannot that be the norm? surely for certain styles of games a different pathfinder would be faster/more accurate depending on needs. its up to the games to determine what they want to use. everything is too closely linked. the source code already gives some ways to do this, and some features already support similar things, like water, old terrain and ROAM. perhaps a protocol for communicating replacement concepts.&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:3dpathway&amp;diff=20629</id>
		<title>User:Enetheru:3dpathway</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:3dpathway&amp;diff=20629"/>
		<updated>2015-05-22T04:30:03Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Why cant we have tunnels? */ removing fluff&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Why cant we have tunnels? =&lt;br /&gt;
General resource page for why tunnels are a no go, technical limitations etc&lt;br /&gt;
&lt;br /&gt;
Perhaps you&#039;ve read this page:&lt;br /&gt;
http://www.ai-blog.net/archives/000152.html&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a thread which discusses exactly this:&lt;br /&gt;
https://springrts.com/phpbb/viewtopic.php?f=12&amp;amp;t=30880&amp;amp;p=548944&amp;amp;hilit=navigation+mesh#p548944&lt;br /&gt;
&lt;br /&gt;
and another:&lt;br /&gt;
https://springrts.com/phpbb/viewtopic.php?f=15&amp;amp;t=22289&amp;amp;p=416327&amp;amp;hilit=navigation+mesh#p416327&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:3dpathway&amp;diff=20628</id>
		<title>User:Enetheru:3dpathway</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:3dpathway&amp;diff=20628"/>
		<updated>2015-05-22T03:58:27Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: added another link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Why cant we have tunnels? =&lt;br /&gt;
General resource page for why tunnels are a no go, technical limitations etc&lt;br /&gt;
&lt;br /&gt;
Perhaps you&#039;ve read this page:&lt;br /&gt;
http://www.ai-blog.net/archives/000152.html&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a thread which discusses exactly this:&lt;br /&gt;
https://springrts.com/phpbb/viewtopic.php?f=12&amp;amp;t=30880&amp;amp;p=548944&amp;amp;hilit=navigation+mesh#p548944&lt;br /&gt;
&lt;br /&gt;
and another:&lt;br /&gt;
https://springrts.com/phpbb/viewtopic.php?f=15&amp;amp;t=22289&amp;amp;p=416327&amp;amp;hilit=navigation+mesh#p416327&lt;br /&gt;
&lt;br /&gt;
no single large change will make this happen. The task needs to be separated into portions related to the limitations of the current engine design and tackled tiny bit by tiny bit to remove those limitations without causing performance degradation, and breaking compatibility.&lt;br /&gt;
&lt;br /&gt;
goals would be to create fully abstract 3d world&lt;br /&gt;
Challenges would be &lt;br /&gt;
* Pathfinding&lt;br /&gt;
* visibility(semi transparent undergrounds)&lt;br /&gt;
* world destruction/creation&lt;br /&gt;
* portals&lt;br /&gt;
* water&lt;br /&gt;
* arbitrary gravity&lt;br /&gt;
&lt;br /&gt;
As you can see such a change would require so much work as to be prohibitive, but for arguments sake, what would be some smaller changes that may help?.&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:3dpathway&amp;diff=20627</id>
		<title>User:Enetheru:3dpathway</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:3dpathway&amp;diff=20627"/>
		<updated>2015-05-22T03:55:08Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: re-worked purpose of page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Why cant we have tunnels? =&lt;br /&gt;
General resource page for why tunnels are a no go, technical limitations etc&lt;br /&gt;
&lt;br /&gt;
Perhaps you&#039;ve read this page:&lt;br /&gt;
http://www.ai-blog.net/archives/000152.html&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a thread which discusses exactly this:&lt;br /&gt;
https://springrts.com/phpbb/viewtopic.php?f=12&amp;amp;t=30880&amp;amp;p=548944&amp;amp;hilit=navigation+mesh#p548944&lt;br /&gt;
&lt;br /&gt;
no single large change will make this happen. The task needs to be separated into portions related to the limitations of the current engine design and tackled tiny bit by tiny bit to remove those limitations without causing performance degradation, and breaking compatibility.&lt;br /&gt;
&lt;br /&gt;
goals would be to create fully abstract 3d world&lt;br /&gt;
Challenges would be &lt;br /&gt;
* Pathfinding&lt;br /&gt;
* visibility(semi transparent undergrounds)&lt;br /&gt;
* world destruction/creation&lt;br /&gt;
* portals&lt;br /&gt;
* water&lt;br /&gt;
* arbitrary gravity&lt;br /&gt;
&lt;br /&gt;
As you can see such a change would require so much work as to be prohibitive, but for arguments sake, what would be some smaller changes that may help?.&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:3dpathway&amp;diff=20626</id>
		<title>User:Enetheru:3dpathway</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:3dpathway&amp;diff=20626"/>
		<updated>2015-05-22T03:24:22Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: searched forums for answers.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thoughts on how to get to 3d terrain&lt;br /&gt;
&lt;br /&gt;
Discussions on the forum, my own personal desire to see more things and a need to get it out of my head into some form of editable page.&lt;br /&gt;
&lt;br /&gt;
no single large change will make this happen. The task needs to be separated into portions related to the limitations of the current engine design and tacled tiny bit by tiny bit to remove those limitations without causing performance degradation, and breaking compatibility.&lt;br /&gt;
&lt;br /&gt;
If any change would introduce a performance penalty, then an ability to have it turned off, or tuned to mitigate the loss.&lt;br /&gt;
&lt;br /&gt;
goals would be to create fully abstract 3d world&lt;br /&gt;
Challenges would be &lt;br /&gt;
* Pathfinding&lt;br /&gt;
* visibility(semi transparent undergrounds)&lt;br /&gt;
* world destruction/creation&lt;br /&gt;
* portals&lt;br /&gt;
* water&lt;br /&gt;
* arbitrary gravity&lt;br /&gt;
&lt;br /&gt;
As you can see such a change would require so much work as to be prohibitive, but for arguments sake, what would be some smaller changes that may help.&lt;br /&gt;
&lt;br /&gt;
* decoupling water height from zero&lt;br /&gt;
* new pathfinding that can handle tunnels and some method to generate the grids.&lt;br /&gt;
&lt;br /&gt;
looking into the pathfinding conundrum(searching is my friend:&lt;br /&gt;
https://springrts.com/phpbb/viewtopic.php?f=12&amp;amp;t=30880&amp;amp;p=548944&amp;amp;hilit=navigation+mesh#p548944&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:3dpathway&amp;diff=20625</id>
		<title>User:Enetheru:3dpathway</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:3dpathway&amp;diff=20625"/>
		<updated>2015-05-22T01:38:25Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: blah&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thoughts on how to get to 3d terrain&lt;br /&gt;
&lt;br /&gt;
Discussions on the forum, my own personal desire to see more things and a need to get it out of my head into some form of editable page.&lt;br /&gt;
&lt;br /&gt;
no single large change will make this happen. The task needs to be separated into portions related to the limitations of the current engine design and tacled tiny bit by tiny bit to remove those limitations without causing performance degradation, and breaking compatibility.&lt;br /&gt;
&lt;br /&gt;
If any change would introduce a performance penalty, then an ability to have it turned off, or tuned to mitigate the loss.&lt;br /&gt;
&lt;br /&gt;
goals would be to create fully abstract 3d world&lt;br /&gt;
Challenges would be &lt;br /&gt;
* Pathfinding&lt;br /&gt;
* visibility(semi transparent undergrounds)&lt;br /&gt;
* world destruction/creation&lt;br /&gt;
* portals&lt;br /&gt;
* water&lt;br /&gt;
* arbitrary gravity&lt;br /&gt;
&lt;br /&gt;
As you can see such a change would require so much work as to be prohibitive, but for arguments sake, what would be some smaller changes that may help.&lt;br /&gt;
&lt;br /&gt;
* decoupling water height from zero&lt;br /&gt;
* new pathfinding that can handle tunnels and some method to generate the grids.&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:3dpathway&amp;diff=20624</id>
		<title>User:Enetheru:3dpathway</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:3dpathway&amp;diff=20624"/>
		<updated>2015-05-21T10:47:09Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: temp thoughts.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thoughts on how to get to 3d terrain&lt;br /&gt;
&lt;br /&gt;
by piecemeal&lt;br /&gt;
&lt;br /&gt;
each portion needs to be replaced with something that is equally as performant or at least ends up having a cost to benefit ration that exceeds expectations.&lt;br /&gt;
&lt;br /&gt;
for the overhang pathfinder needs replacing with something not dependent on a 2d grid.&lt;br /&gt;
for sphere or curved worlds, the gravity and water levels needs to be independent of a 1 dimensional height level.&lt;br /&gt;
terrain format needs to work with pathfinder and geometry, be that voxel or arbitrary&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru&amp;diff=20518</id>
		<title>User:Enetheru</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru&amp;diff=20518"/>
		<updated>2015-05-21T10:43:32Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Current Wiki Projects */ added link to new page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Current Wiki Projects =&lt;br /&gt;
* [[Enetheru:mapping2|Mapping Proposal]]&lt;br /&gt;
* [[Enetheru:BlenderVision|My Vision for Blender Use]]&lt;br /&gt;
* [[Enetheru:Map_Features|Map Features]]&lt;br /&gt;
* [[Enetheru:Meshes|Object Meshes]]&lt;br /&gt;
* [[Enetheru:mapWishList|Places]] I want to see battles waged in.&lt;br /&gt;
* [[Enetheru:Dump]]&lt;br /&gt;
* [[Enetheru:SMF-SMT Update]]&lt;br /&gt;
* [[User:Enetheru/MapCreation/Blender/Sculpting Terrain]]&lt;br /&gt;
* [[User:Enetheru/MapCreation/Blender/Diffuse Map]]&lt;br /&gt;
* [[Enetheru:3dpathway|3D Terrain Pathway]] &lt;br /&gt;
&lt;br /&gt;
== Random Thought ==&lt;br /&gt;
Features need specification pages, they also need quick tutorials, demonstration files.&lt;br /&gt;
SpringRTS needs to start releasing versions with similar documentation to blender and mypaint, with pretty documents and development examples to really show off the latest and greatest.. anyway.&lt;br /&gt;
&lt;br /&gt;
Thats pretty interesting, i could go through the changelogs to see if there is anything i can use for the mapping feature pages.&lt;br /&gt;
&lt;br /&gt;
= Migrated to Main Wiki =&lt;br /&gt;
* [[Maps:SMD|smd Reference]]&lt;br /&gt;
* [[MapConv|Mapconv]]&lt;br /&gt;
* [[Mapdev:Main|main mapdev page]]&lt;br /&gt;
&lt;br /&gt;
= Sift List =&lt;br /&gt;
* Space [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=22861 1],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=22314 2]&lt;br /&gt;
* Optimisation(for size) [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=23440 1],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=23440 2]&lt;br /&gt;
* Dynamic Features[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=23177 1]&lt;br /&gt;
* Wet/Dry/Day/Night [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=22005&amp;amp;start=40 1],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=18892 2]&lt;br /&gt;
* Dependencies [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21808 1]&lt;br /&gt;
* Rain/Snow/Dust [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21899 1],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21902 2],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=20092 3]&lt;br /&gt;
* Different water height and waterfalls [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=19405 1]&lt;br /&gt;
[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=22425 1],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=22329 2],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=22191 3],&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=28156 thread for obj2s3o]&lt;br /&gt;
* [http://pastebin.com/DCsJjT6T ssmf undocumented features]&lt;br /&gt;
* [http://www.gamasutra.com/view/feature/130877/making_quality_game_textures.php?print=1 dds texture info]&lt;br /&gt;
* [http://youtu.be/grP28n3S73k blender asset sketcher]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:grass&amp;diff=13808</id>
		<title>Mapdev:grass</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:grass&amp;diff=13808"/>
		<updated>2015-04-19T04:05:25Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Distribution Image */  overrides&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Grass =&lt;br /&gt;
Grass is entirely optional, but can be customized via map parameters and adds a nice touch to your map.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| [[File:Mapdev-grass.png]] || [[File:Mapdev-grass-example.png|451px]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Grass Disribution&lt;br /&gt;
! In Game Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   smf = {&lt;br /&gt;
        ....&lt;br /&gt;
        grassmapTex = &amp;quot;&amp;quot;,&lt;br /&gt;
        ....&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
   resources = {&lt;br /&gt;
      ...&lt;br /&gt;
      grassBladeTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      grassShadingTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
   grass = {&lt;br /&gt;
      bladeWaveScale = 1.0,&lt;br /&gt;
      bladeWidth = 0.32,&lt;br /&gt;
      bladeHeight = 4.0,&lt;br /&gt;
      bladeAngle = 1.57,&lt;br /&gt;
      bladeColor = {0.59, 0.81, 0.57},&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
=== Blade Wave Scale ===&lt;br /&gt;
Defaults to 1. It specifies how much the blades will wave in the wind. Higher makes them wave more.&lt;br /&gt;
&lt;br /&gt;
=== Blade Height ===&lt;br /&gt;
Default is 4. Defines the length of the blade of grass in elmos.&lt;br /&gt;
&lt;br /&gt;
=== Blade Angle ===&lt;br /&gt;
Default is pi/4. It defines how much each blade of grass curves.&lt;br /&gt;
&lt;br /&gt;
=== Blade Color ===&lt;br /&gt;
does nothing when blade texture is set.&lt;br /&gt;
&lt;br /&gt;
== Distribution Image ==&lt;br /&gt;
Formerly [[Mapdev:features|Feature]] Map. Grass distribution is defined by blue pixels, the more blue the pixel is (the closer to blue 255 it is), the thicker grass will be at that location. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| The distribution map is an intermediary file compiled into the SMF/SMT files using [[MapConv]] or [[MapConvNG]], it can also be specified in the mapinfo.lua&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that Mapconv programs support&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| Greyscale&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| &amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!Spring Map Size&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
!pixels = Spring Map Size * 16&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 96&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| 512&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left;font-style:italic&amp;quot; colspan=2 | &amp;amp;#42; must be multiples of 2&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shading Image ==&lt;br /&gt;
* If a shading image is not present, the minimap will be used in its place.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| ./maps/&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| PNG, TGA&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| Any, recommended powers of two, will be stretched over the terrain.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| [[File:Grassmap_Map_example.jpegâ€Ž]] || [[File:Grassmap_Map_ingame.jpg|512px|â€Ž]]&lt;br /&gt;
|-&lt;br /&gt;
! Example !! Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Blade Texture ==&lt;br /&gt;
{{FIXME}} need more info.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| ./maps/&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| PNG, TGA&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| {{FIXME}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| {{FIXME}} || {{FIXME}}&lt;br /&gt;
|-&lt;br /&gt;
! Example !! Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Forum Discussions =&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=27585 Try to keep perspective]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:terraintype&amp;diff=14046</id>
		<title>Mapdev:terraintype</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:terraintype&amp;diff=14046"/>
		<updated>2015-04-19T04:05:02Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Image File */  added overrides&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Terrain Types =&lt;br /&gt;
Type Maps or terrain Types allow altering the speed of units, and the mount of deformation.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| ({{FIXME}} Example typemap)&lt;br /&gt;
|-&lt;br /&gt;
! Example Typemap&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
{{Caution|The use of type maps for unit speed adjustment is discouraged; due to the way units are automatically assigned to categories and the invisible nature of the type map it makes game play unpredictable.}}&lt;br /&gt;
&lt;br /&gt;
Spring already provides speed alteration, with pathing optimisation based on terrain incline. Units will always take the &amp;quot;road&amp;quot; if its completely flat and have to travel a fair distance along otherwise uneven terrain.&lt;br /&gt;
&lt;br /&gt;
Type maps use in deformation can show distinction between terrains like sand, rock, etc. This will suffer from edges between hardness levels having different heights after deformation, however it can be somewhat mitigated by making transitional typemaps with multiple hardness levels.&lt;br /&gt;
&lt;br /&gt;
Use sparingly, with obvious visual indicators in the texture image.&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
The relevant sections of the mapinfo.lua file are in the [[Map_Making:mapinfo.lua#terrainTypes|terrainTypes subtable]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   smf = {&lt;br /&gt;
        ....&lt;br /&gt;
        typemapTex = &amp;quot;&amp;quot;,&lt;br /&gt;
        ....&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
   terrainTypes = {&lt;br /&gt;
      [0] = {&lt;br /&gt;
         name = &amp;quot;Default&amp;quot;,&lt;br /&gt;
         hardness = 1.0,&lt;br /&gt;
         receiveTracks = true,&lt;br /&gt;
         moveSpeeds = {&lt;br /&gt;
            tank  = 1.0,&lt;br /&gt;
            kbot  = 1.0,&lt;br /&gt;
            hover = 1.0,&lt;br /&gt;
            ship  = 1.0,&lt;br /&gt;
         },&lt;br /&gt;
      },&lt;br /&gt;
      [1]  = { &lt;br /&gt;
         ...&lt;br /&gt;
      },&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image File ==&lt;br /&gt;
An 8bpp greyscale image has 256 values for grey. each value represents a different terrain type, so you can have 256 different terrains, starting at zero(black)(default) to 255(white)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| The metal map is an intermediary file compiled into the SMF file using [[MapConv]] or [[MapConvNG]], it can also be specified in the mapinfo.lua&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that the Mapconv programs support&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| Greyscale&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| &amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!Spring Map Size&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
!pixels = Spring Map Size * 32&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 128&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 192&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| 1024&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left;font-style:italic&amp;quot; colspan=2 | &amp;amp;#42; must be multiples of 2&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Forum Discussions =&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21669 Typemap rant thread.]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:metal&amp;diff=13932</id>
		<title>Mapdev:metal</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:metal&amp;diff=13932"/>
		<updated>2015-04-19T04:04:46Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Image File */  added overrides&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Metal =&lt;br /&gt;
Metal maps are used for the built in resourcing scheme (Metal/Energy), they define metal areas on a battlefield based upon the values in the red channel of the metal map.&lt;br /&gt;
&lt;br /&gt;
{{Caution|There are several games for Spring which use their own resourcing system. If you are creating a map for one of those games a metal map may not be necessary, however it is always nice if you can make your maps as compatible with other games as possible, but this is a choice left entirely up to you.}}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-metal.png|256px]] || [[File:Mapdev-metal-example.png]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Metal Map !! Ingame Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
* [[Mapdev:mapinfo.lua|mapinfo.lua]]&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;mapinfo ={&lt;br /&gt;
   ...&lt;br /&gt;
   maxMetal        = 0.02,&lt;br /&gt;
   extractorRadius = 500.0,&lt;br /&gt;
   autoShowMetal   = true,&lt;br /&gt;
   ...&lt;br /&gt;
   smf = {&lt;br /&gt;
        ....&lt;br /&gt;
        metalmapTex = &amp;quot;&amp;quot;,&lt;br /&gt;
        ....&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image File ==&lt;br /&gt;
* The red value of pixel corresponds to the metal value.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| The metal map is an intermediary file compiled into the SMF file using [[MapConv]] or [[MapConvNG]], it can also be specified in the mapinfo.lua.&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that the Mapconv programs support&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| Greyscale&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| &amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!Spring Map Size&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
!pixels = Spring Map Size * 32&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 128&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 256&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| 1024&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left;font-style:italic&amp;quot; colspan=2 | &amp;amp;#42; must be multiples of 2&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Additional Information =&lt;br /&gt;
== Patch Technique ==&lt;br /&gt;
If you do want perfect metal patches, use a 6x6 pixel pencil in your image editor with a red value of 255. This combined with setting the &amp;quot;MaxMetal&amp;quot; tag in the definitions to 1, will result in a perfect 2.0 metal generation per patch (using Balanaced Annihilation values). The game use isn&#039;t the point however. The fact is that if you can predict how much each spot will output (typically), using the &amp;quot;MaxMetal&amp;quot; parameter, you can easily scale the values up and down. As an example of another extreme, Evolution RTS dictates that all metal patches will output 0.5 metal regardless of the map settings. So whether you need to put a lot of thought into your metal map values depends entirely upon the game for which you are creating the map.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:minimap&amp;diff=13940</id>
		<title>Mapdev:minimap</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:minimap&amp;diff=13940"/>
		<updated>2015-04-19T04:03:37Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Image File */  added overrides&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mini-Map =&lt;br /&gt;
It is traditionally a simplified top down view of the battlefield, it can also be an arbitrary image. It is used in the lobby when viewing and selecting maps.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-diffuse.jpg]] || [[File:Minimap_example.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Minimap !! Example of use&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   smf = {&lt;br /&gt;
      ...&lt;br /&gt;
      minimapTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
== Image File ==&lt;br /&gt;
* The mini map will update when the terrain is terraformed to reflect the changes.&lt;br /&gt;
* The mini map is used as the grass shading map if a grass shading map hasn&#039;t been specified.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| This image is an intermediary file compiled into the SMF file using [[MapConv]] or [[MapConvNG]], it can also be specified in the mapinfo.lua&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that Mapconv programs can use&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| 1024x1024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:grass&amp;diff=13807</id>
		<title>Mapdev:grass</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:grass&amp;diff=13807"/>
		<updated>2015-04-19T04:02:19Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* mapinfo.lua */ added lua overrides&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Grass =&lt;br /&gt;
Grass is entirely optional, but can be customized via map parameters and adds a nice touch to your map.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| [[File:Mapdev-grass.png]] || [[File:Mapdev-grass-example.png|451px]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Grass Disribution&lt;br /&gt;
! In Game Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   smf = {&lt;br /&gt;
        ....&lt;br /&gt;
        grassmapTex = &amp;quot;&amp;quot;,&lt;br /&gt;
        ....&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
   resources = {&lt;br /&gt;
      ...&lt;br /&gt;
      grassBladeTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      grassShadingTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
   grass = {&lt;br /&gt;
      bladeWaveScale = 1.0,&lt;br /&gt;
      bladeWidth = 0.32,&lt;br /&gt;
      bladeHeight = 4.0,&lt;br /&gt;
      bladeAngle = 1.57,&lt;br /&gt;
      bladeColor = {0.59, 0.81, 0.57},&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
=== Blade Wave Scale ===&lt;br /&gt;
Defaults to 1. It specifies how much the blades will wave in the wind. Higher makes them wave more.&lt;br /&gt;
&lt;br /&gt;
=== Blade Height ===&lt;br /&gt;
Default is 4. Defines the length of the blade of grass in elmos.&lt;br /&gt;
&lt;br /&gt;
=== Blade Angle ===&lt;br /&gt;
Default is pi/4. It defines how much each blade of grass curves.&lt;br /&gt;
&lt;br /&gt;
=== Blade Color ===&lt;br /&gt;
does nothing when blade texture is set.&lt;br /&gt;
&lt;br /&gt;
== Distribution Image ==&lt;br /&gt;
Formerly [[Mapdev:features|Feature]] Map. Grass distribution is defined by blue pixels, the more blue the pixel is (the closer to blue 255 it is), the thicker grass will be at that location. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| The distribution map is an intermediary file compiled into the SMF/SMT files using [[MapConv]] or [[MapConvNG]].&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that Mapconv programs support&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| Greyscale&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| &amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!Spring Map Size&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
!pixels = Spring Map Size * 16&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 96&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| 512&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left;font-style:italic&amp;quot; colspan=2 | &amp;amp;#42; must be multiples of 2&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shading Image ==&lt;br /&gt;
* If a shading image is not present, the minimap will be used in its place.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| ./maps/&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| PNG, TGA&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| Any, recommended powers of two, will be stretched over the terrain.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| [[File:Grassmap_Map_example.jpegâ€Ž]] || [[File:Grassmap_Map_ingame.jpg|512px|â€Ž]]&lt;br /&gt;
|-&lt;br /&gt;
! Example !! Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Blade Texture ==&lt;br /&gt;
{{FIXME}} need more info.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| ./maps/&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| PNG, TGA&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| {{FIXME}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| {{FIXME}} || {{FIXME}}&lt;br /&gt;
|-&lt;br /&gt;
! Example !! Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Forum Discussions =&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=27585 Try to keep perspective]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:metal&amp;diff=13931</id>
		<title>Mapdev:metal</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:metal&amp;diff=13931"/>
		<updated>2015-04-19T04:01:51Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* mapinfo.lua */ added lua overrides&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Metal =&lt;br /&gt;
Metal maps are used for the built in resourcing scheme (Metal/Energy), they define metal areas on a battlefield based upon the values in the red channel of the metal map.&lt;br /&gt;
&lt;br /&gt;
{{Caution|There are several games for Spring which use their own resourcing system. If you are creating a map for one of those games a metal map may not be necessary, however it is always nice if you can make your maps as compatible with other games as possible, but this is a choice left entirely up to you.}}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-metal.png|256px]] || [[File:Mapdev-metal-example.png]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Metal Map !! Ingame Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
* [[Mapdev:mapinfo.lua|mapinfo.lua]]&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;mapinfo ={&lt;br /&gt;
   ...&lt;br /&gt;
   maxMetal        = 0.02,&lt;br /&gt;
   extractorRadius = 500.0,&lt;br /&gt;
   autoShowMetal   = true,&lt;br /&gt;
   ...&lt;br /&gt;
   smf = {&lt;br /&gt;
        ....&lt;br /&gt;
        metalmapTex = &amp;quot;&amp;quot;,&lt;br /&gt;
        ....&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image File ==&lt;br /&gt;
* The red value of pixel corresponds to the metal value.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| The metal map is an intermediary file compiled into the SMF file using [[MapConv]] or [[MapConvNG]].&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that the Mapconv programs support&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| Greyscale&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| &amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!Spring Map Size&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
!pixels = Spring Map Size * 32&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 128&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 256&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| 1024&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left;font-style:italic&amp;quot; colspan=2 | &amp;amp;#42; must be multiples of 2&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Additional Information =&lt;br /&gt;
== Patch Technique ==&lt;br /&gt;
If you do want perfect metal patches, use a 6x6 pixel pencil in your image editor with a red value of 255. This combined with setting the &amp;quot;MaxMetal&amp;quot; tag in the definitions to 1, will result in a perfect 2.0 metal generation per patch (using Balanaced Annihilation values). The game use isn&#039;t the point however. The fact is that if you can predict how much each spot will output (typically), using the &amp;quot;MaxMetal&amp;quot; parameter, you can easily scale the values up and down. As an example of another extreme, Evolution RTS dictates that all metal patches will output 0.5 metal regardless of the map settings. So whether you need to put a lot of thought into your metal map values depends entirely upon the game for which you are creating the map.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:terraintype&amp;diff=14045</id>
		<title>Mapdev:terraintype</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:terraintype&amp;diff=14045"/>
		<updated>2015-04-19T04:01:43Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* mapinfo.lua */ added lua overrides&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Terrain Types =&lt;br /&gt;
Type Maps or terrain Types allow altering the speed of units, and the mount of deformation.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| ({{FIXME}} Example typemap)&lt;br /&gt;
|-&lt;br /&gt;
! Example Typemap&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
{{Caution|The use of type maps for unit speed adjustment is discouraged; due to the way units are automatically assigned to categories and the invisible nature of the type map it makes game play unpredictable.}}&lt;br /&gt;
&lt;br /&gt;
Spring already provides speed alteration, with pathing optimisation based on terrain incline. Units will always take the &amp;quot;road&amp;quot; if its completely flat and have to travel a fair distance along otherwise uneven terrain.&lt;br /&gt;
&lt;br /&gt;
Type maps use in deformation can show distinction between terrains like sand, rock, etc. This will suffer from edges between hardness levels having different heights after deformation, however it can be somewhat mitigated by making transitional typemaps with multiple hardness levels.&lt;br /&gt;
&lt;br /&gt;
Use sparingly, with obvious visual indicators in the texture image.&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
The relevant sections of the mapinfo.lua file are in the [[Map_Making:mapinfo.lua#terrainTypes|terrainTypes subtable]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   smf = {&lt;br /&gt;
        ....&lt;br /&gt;
        typemapTex = &amp;quot;&amp;quot;,&lt;br /&gt;
        ....&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
   terrainTypes = {&lt;br /&gt;
      [0] = {&lt;br /&gt;
         name = &amp;quot;Default&amp;quot;,&lt;br /&gt;
         hardness = 1.0,&lt;br /&gt;
         receiveTracks = true,&lt;br /&gt;
         moveSpeeds = {&lt;br /&gt;
            tank  = 1.0,&lt;br /&gt;
            kbot  = 1.0,&lt;br /&gt;
            hover = 1.0,&lt;br /&gt;
            ship  = 1.0,&lt;br /&gt;
         },&lt;br /&gt;
      },&lt;br /&gt;
      [1]  = { &lt;br /&gt;
         ...&lt;br /&gt;
      },&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image File ==&lt;br /&gt;
An 8bpp greyscale image has 256 values for grey. each value represents a different terrain type, so you can have 256 different terrains, starting at zero(black)(default) to 255(white)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| The metal map is an intermediary file compiled into the SMF file using [[MapConv]] or [[MapConvNG]].&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that the Mapconv programs support&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| Greyscale&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| &amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!Spring Map Size&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
!pixels = Spring Map Size * 32&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 128&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 192&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| 1024&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left;font-style:italic&amp;quot; colspan=2 | &amp;amp;#42; must be multiples of 2&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Forum Discussions =&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21669 Typemap rant thread.]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:mapinfo.lua&amp;diff=13906</id>
		<title>Mapdev:mapinfo.lua</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:mapinfo.lua&amp;diff=13906"/>
		<updated>2015-04-19T02:39:15Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* smf */  added overrides to smf maps.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= mapinfo.lua Reference =&lt;br /&gt;
This file is the primary configuration file for maps, list many things including resources, attributes, ad properties.&lt;br /&gt;
&lt;br /&gt;
==Source==&lt;br /&gt;
The engine source code which reads this file from the map is viewable here:&lt;br /&gt;
* {{sourcelink|file=rts/Map/MapInfo.cpp}}&lt;br /&gt;
* {{sourcelink|file=rts/Map/MapParser.cpp}}&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Can be found in the [https://github.com/jk3064/Map-Blueprint/archive/master.zip map blueprint]&lt;br /&gt;
&lt;br /&gt;
= File Location =&lt;br /&gt;
relative to the root directory of the map&lt;br /&gt;
: ./mapinfo.lua&lt;br /&gt;
&lt;br /&gt;
= Formatting =&lt;br /&gt;
check [http://www.lua.org/docs.html Lua Documentation] for syntax etc.&lt;br /&gt;
&lt;br /&gt;
In this wiki page, variables are organised as such:&lt;br /&gt;
{{tag|name=VariableName|type=type|range=[valid range]|special=Required|default=value&lt;br /&gt;
|description=Description}}&lt;br /&gt;
&lt;br /&gt;
== Data Types ==&lt;br /&gt;
{{DataTypes}}&lt;br /&gt;
&lt;br /&gt;
= Sections =&lt;br /&gt;
== mapinfo ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   name        = &amp;quot;MyMap&amp;quot;,&lt;br /&gt;
   shortname   = &amp;quot;&amp;quot;,&lt;br /&gt;
   description = &amp;quot;&amp;quot;,&lt;br /&gt;
   author      = &amp;quot;&amp;quot;,&lt;br /&gt;
   version     = &amp;quot;&amp;quot;,&lt;br /&gt;
   --mutator   = &amp;quot;deployment&amp;quot;;&lt;br /&gt;
   --mapfile   = &amp;quot;&amp;quot;, --// location of smf/sm3 file, should be set&lt;br /&gt;
   modtype     = 3, --// 1=primary, 0=hidden, 3=map&lt;br /&gt;
   depend      = {&amp;quot;Map Helper v1&amp;quot;},&lt;br /&gt;
   replace     = {},&lt;br /&gt;
&lt;br /&gt;
   --startpic   = &amp;quot;&amp;quot;, --// deprecated&lt;br /&gt;
   --StartMusic = &amp;quot;&amp;quot;, --// deprecated&lt;br /&gt;
&lt;br /&gt;
   maphardness     = 100,&lt;br /&gt;
   notDeformable   = false,&lt;br /&gt;
   gravity         = 130,&lt;br /&gt;
   tidalStrength   = 0,&lt;br /&gt;
   maxMetal        = 0.02,&lt;br /&gt;
   extractorRadius = 500.0,&lt;br /&gt;
   voidWater       = false,&lt;br /&gt;
   voidGround      = false,&lt;br /&gt;
   autoShowMetal   = true,&lt;br /&gt;
&lt;br /&gt;
   smf = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   sound = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   resources = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   splats = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   atmosphere = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   grass = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   lighting = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   water = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   teams = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   terrainTypes = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   custom = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tag|name=name|type=string|special=Required|default=none&lt;br /&gt;
|description=Name of the map}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=shortname|type=string|special=Required&lt;br /&gt;
|description=maps will not show in the map list without a valid shortname(not sure on its requirements)}} &lt;br /&gt;
&lt;br /&gt;
{{tag|name=description|type=string|default=&amp;lt;span style=&amp;quot;color:#cccccc;text-shadow: #111 2px 2px 2px;&amp;quot;&amp;gt;name&amp;lt;/span&amp;gt;&lt;br /&gt;
|description=The description of the map that shows in the multiplayer battleroom}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=author|type=string|default=&amp;quot;&amp;quot;&lt;br /&gt;
|description=Author of the map}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=version|type=string&lt;br /&gt;
|description=version, appended to name}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=mutator|type=string}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=mapfile|type=string&lt;br /&gt;
|description=location of smf/sm3 file}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=modtype|type=int|range=[013]|special=Required&lt;br /&gt;
|description=1=primary, 0=hidden, 3=map}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=depend|special=Required}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=replace}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=maphardness|type=float|default=100.0&lt;br /&gt;
|description=Defines how much a map will deform from impacts. Higher values mean less deformation, negative values will result in negative deformation (really funny looking)}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=notDeformable|type=bool|default=false&lt;br /&gt;
|description=Setting it to 1 means that no explosions can deform the map.}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=gravity|type=float|range=[0.001-max]|default=130.0&lt;br /&gt;
|description=As you would expect, affects ballistics and how far units fly after an explosion. The force of gravity in units/sec^2}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=tidalStrength|type=float|range=[0.0-max]|default=0.0&lt;br /&gt;
|description=The amount of energy which will be given by tidal generators.}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=maxMetal|type=float|range=[0.0-max]|default=0.02&lt;br /&gt;
|description=How much metal a map square with the maximum metal value gives.}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=extractorRadius|type=float|range=[0.0-max]|default=500&lt;br /&gt;
|description=The radius of effect that a single extractor will extract from. If two radii intersect, both extractors will suffer from reduced output.}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=voidWater|type=bool|default=false&lt;br /&gt;
|description=Voidwater means there will be no water plane, and all parts of the map under water will be completely transparent, to show the skybox through the map. For example, check [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=20684&amp;amp;hilit=apophis Apophis_v2]}}. Additionally for this to work, the &amp;lt;code&amp;gt;mapinfo.water.planeColor&amp;lt;/code&amp;gt; variable must not be specified in the mapinfo.lua file, delete or comment it out if it exists.&lt;br /&gt;
&lt;br /&gt;
{{tag|name=voidGround|type=bool|default=false&lt;br /&gt;
|special=&amp;lt;span class=&amp;quot;warning&amp;quot;&amp;gt;New in 92.0&amp;lt;/span&amp;gt;&lt;br /&gt;
|description=Allows portions of the ground to be invisible if the map was compiled with a diffuse image that has an alpha channel. The terrain still exists, its just transparent.}}. &lt;br /&gt;
&lt;br /&gt;
{{tag|name=autoShowMetal|type=bool|default=true&lt;br /&gt;
|description=Defines whether the metal map (F4 mode) is shown automatically when a mex is queued for placement.}}&lt;br /&gt;
&lt;br /&gt;
== smf ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   smf = {&lt;br /&gt;
      minHeight = 1000,&lt;br /&gt;
      maxHeight = -300,&lt;br /&gt;
      minimapTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      smtFileName0 = &amp;quot;&amp;quot;,&lt;br /&gt;
      smtFileName1 = &amp;quot;&amp;quot;,&lt;br /&gt;
      smtFileName.. = &amp;quot;&amp;quot;,&lt;br /&gt;
      smtFileNameN = &amp;quot;&amp;quot;,&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{tag|name=minHeight|type=float|default=0.0&lt;br /&gt;
|description=Overrides the minimum map height specified while compiling. Compile time height used if undefined}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=maxHeight|type=float|default=0.0&lt;br /&gt;
|description=Overrides the maximum map height specified while compiling. Compile time height used if undefined}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=minimapTex|type=string&lt;br /&gt;
|special=&amp;lt;span class=&amp;quot;warning&amp;quot;&amp;gt;New in 99.0&amp;lt;/span&amp;gt;&lt;br /&gt;
| description=Overrides the minimap with an image of your choice, smf used if undefined or invalid}} &lt;br /&gt;
&lt;br /&gt;
{{tag|name=metalmapTex|type=string&lt;br /&gt;
|special=&amp;lt;span class=&amp;quot;warning&amp;quot;&amp;gt;New in 99.0&amp;lt;/span&amp;gt;&lt;br /&gt;
| description=Overrides the metalmap with an image of your choice, smf used if undefined or invalid}} &lt;br /&gt;
&lt;br /&gt;
{{tag|name=typemapTex|type=string&lt;br /&gt;
|special=&amp;lt;span class=&amp;quot;warning&amp;quot;&amp;gt;New in 99.0&amp;lt;/span&amp;gt;&lt;br /&gt;
| description=Overrides the typemap with an image of your choice, smf used if undefined or invalid}} &lt;br /&gt;
&lt;br /&gt;
{{tag|name=grassmapTex|type=string&lt;br /&gt;
|special=&amp;lt;span class=&amp;quot;warning&amp;quot;&amp;gt;New in 99.0&amp;lt;/span&amp;gt;&lt;br /&gt;
| description=Overrides the grassmap with an image of your choice, smf used if undefined or invalid}} &lt;br /&gt;
&lt;br /&gt;
{{tag|name=smtFileName[N]|type=string}}&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   sound = {&lt;br /&gt;
      preset = &amp;quot;default&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
      passfilter = {&lt;br /&gt;
         ...&lt;br /&gt;
      },&lt;br /&gt;
&lt;br /&gt;
      reverb = {&lt;br /&gt;
         ...&lt;br /&gt;
      },&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tag|name=preset|type=string|default=&amp;quot;default&amp;quot;&lt;br /&gt;
|description=Sets the _reverb_ preset (= echo parameters), passfilter (the direct sound) is unchanged. To get a list of all possible presets check: [https://github.com/spring/spring/blob/master/rts/System/Sound/EFXPresets.cpp EFXPresets.cpp]}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|You can change the preset at runtime via:&lt;br /&gt;
* /tset UseEFX [1&amp;amp;#124;0]&lt;br /&gt;
* /tset snd_eaxpreset preset_name   (may change to a real cmd in the future)&lt;br /&gt;
* /tset snd_filter %gainlf %gainhf  (may    &amp;quot;   &amp;quot;  &amp;quot;  &amp;quot;    &amp;quot;  &amp;quot;   &amp;quot;    &amp;quot;   )}}&lt;br /&gt;
&lt;br /&gt;
=== passfilter ===&lt;br /&gt;
Note, you likely want to set these tags due to the fact that they are _not_ set by `preset`!  So if you want to create a muffled sound you need to use them.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   sound = {&lt;br /&gt;
      ...&lt;br /&gt;
      passfilter = {&lt;br /&gt;
         gainlf = 1.0,&lt;br /&gt;
         gainhf = 1.0,&lt;br /&gt;
      },&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tag|name=gainlf|type=float}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=gainhf|type=float}}&lt;br /&gt;
&lt;br /&gt;
=== reverb ===&lt;br /&gt;
Normally you just want use the `preset` tag but you can use handtweak a preset if wanted with the following tags. To know their function &amp;amp; ranges check the official OpenAL1.1 SDK document.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   sound = {&lt;br /&gt;
      ...&lt;br /&gt;
      reverb = {         &lt;br /&gt;
         --density&lt;br /&gt;
         --diffusion&lt;br /&gt;
         --gain&lt;br /&gt;
         --gainhf&lt;br /&gt;
         --gainlf&lt;br /&gt;
         --decaytime&lt;br /&gt;
         --decayhflimit&lt;br /&gt;
         --decayhfratio&lt;br /&gt;
         --decaylfratio&lt;br /&gt;
         --reflectionsgain&lt;br /&gt;
         --reflectionsdelay&lt;br /&gt;
         --reflectionspan&lt;br /&gt;
         --latereverbgain&lt;br /&gt;
         --latereverbdelay&lt;br /&gt;
         --latereverbpan&lt;br /&gt;
         --echotime&lt;br /&gt;
         --echodepth&lt;br /&gt;
         --modtime&lt;br /&gt;
         --moddepth&lt;br /&gt;
         --airabsorptiongainhf&lt;br /&gt;
         --hfreference&lt;br /&gt;
         --lfreference&lt;br /&gt;
         --roomrollofffactor&lt;br /&gt;
      },&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== resources ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   resources = {&lt;br /&gt;
      grassBladeTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      grassShadingTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      detailTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      specularTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      splatDetailTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      splatDistrTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      skyReflectModTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      detailNormalTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      lightEmissionTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      parallaxHeightTex = &amp;quot;&amp;quot;,&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tag|name=grassBladeTex|type=string&lt;br /&gt;
|description=Specifies the texture to be used on the grass blades themselves. Green-yellow gradients make for some interesting effects. Defaults to the internally generated blade texture. More Information: [[Mapdev:grass]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=grassShadingTex|type=string&lt;br /&gt;
|description=Specifies the color variation of the grass across the map. This defaults to the minimap, so the grass color can match the map color. More Information: [[Mapdev:grass]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=detailTex|type=string&lt;br /&gt;
|description=Specifies the detail texture for the map. More Information: [[Mapdev:detail]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=specularTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:specular]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=splatDetailTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:splatdetail]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=splatDistrTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:splatdetail]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=skyReflectModTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:skyreflectmod]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=detailNormalTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:normal]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=lightEmissionTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:lightemission]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=parallaxHeightTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:parallax]]}}&lt;br /&gt;
&lt;br /&gt;
== splats ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   splats = {&lt;br /&gt;
      texScales = {0.02, 0.02, 0.02, 0.02},&lt;br /&gt;
      texMults  = {1.0, 1.0, 1.0, 1.0},&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{tag|name=texScales|type=float[4]&lt;br /&gt;
|default={0.2, 0.2, 0.2, 0.2}|description=Scale value for the splat texture in the RGBA channels respectively.}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=texMults|type=float[4]&lt;br /&gt;
|default={1.0, 1.0, 1.0, 1.0}|description=Value for the splat texture in the RGBA channels respectively.}}&lt;br /&gt;
&lt;br /&gt;
== atmosphere ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   atmosphere = {&lt;br /&gt;
      minWind      = 5.0,&lt;br /&gt;
      maxWind      = 25.0,&lt;br /&gt;
&lt;br /&gt;
      fogStart     = 0.1,&lt;br /&gt;
      fogEnd       = 1.0,&lt;br /&gt;
      fogColor     = {0.7, 0.7, 0.8},&lt;br /&gt;
&lt;br /&gt;
      sunColor     = {1.0, 1.0, 1.0},&lt;br /&gt;
      skyColor     = {0.1, 0.15, 0.7},&lt;br /&gt;
      skyDir       = {0.0, 0.0, -1.0},&lt;br /&gt;
      skyBox       = &amp;quot;&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
      cloudDensity = 0.5,&lt;br /&gt;
      cloudColor   = {1.0, 1.0, 1.0},&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tag|name=minWind|type=float|range=[0.0-max]|default=5.0|&lt;br /&gt;
description=The minimum amount of energy the wind on the map will give. is clamped to maxwind}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=maxWind|type=float|range=[0.0-max]|default=25.0&lt;br /&gt;
|description=The maximum amount of energy the wind on the map will give}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=fogStart|type=float|default=0.1&lt;br /&gt;
|description=The distance from the camera at which the fog will start. &amp;lt;code&amp;gt;viewRange * fogStart&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=fogEnd|type=float|default=1.0&lt;br /&gt;
|description=The distance from the camera that fog is opaque. &amp;lt;code&amp;gt;viewRange * fogEnd&amp;lt;/code&amp;gt; }}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=fogColor|type=rgb|default={0.7, 0.7, 0.8}&lt;br /&gt;
|description=The color of the fog and the infinite plane below the world. The values are in the order Red, Green, Blue. However, giving values higher than 1.0 will give brighter fog and less than 0.0 will give darker}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=sunColor|type=rgb|default={1.0, 1.0, 1.0}&lt;br /&gt;
|description=The color of the sun in the sky. The values are in the order Red, Green, Blue. This will also effect the size of the star. As the values increase (including over 1.0), the disc will get bigger; the inverse is also true}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=skyColor|type=rgb|default={0.1, 0.15, 0.7}&lt;br /&gt;
|description=The color of the sky itself. The values are in the order Red, Green, Blue}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=skyDir|type=float[3]|default={0.0, 0.0, -1.0}&lt;br /&gt;
|description=Is normalised vector}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=skyBox|type=string&lt;br /&gt;
|description=Specify a .dds skybox (also called skycube) for examples and resources see this [http://springrts.com/phpbb/viewtopic.php?f=56&amp;amp;t=11009 thread]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=cloudDensity|type=float|range=[0.0-max]|default=0.5&lt;br /&gt;
|description=The amount of clouds in the sky}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=cloudColor|type=rgb&lt;br /&gt;
|default={1.0, 1.0, 1.0}|description=The color of the clouds}}&lt;br /&gt;
&lt;br /&gt;
== grass ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   grass = {&lt;br /&gt;
      bladeWaveScale = 1.0,&lt;br /&gt;
      bladeWidth  = 0.32,&lt;br /&gt;
      bladeHeight = 4.0,&lt;br /&gt;
      bladeAngle  = 1.57,&lt;br /&gt;
      bladeColor  = {0.59, 0.81, 0.57},&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{tag|name=bladeWaveScale|type=float|default=1.0&lt;br /&gt;
|description=Specifies how much the wind should effect grass blade movement, as well as the amplitude of the grass motion. Setting it to 0 will stop grass animation}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=bladeWidth|type=float|default=0.32&lt;br /&gt;
|description=Specifies the width of each blade of grass}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=bladeHeight|type=float|default=4.0&lt;br /&gt;
|description=Specifies the length of each blade of grass}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=bladeAngle|type=float|default=1.57&lt;br /&gt;
|description=Specifies the curvature of each blade of grass. Unit is radians. 0 means completely straight blades of grass}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=bladeColor|type=rgb|default={0.59, 0.81, 0.57}&lt;br /&gt;
|description=does nothing when `grassBladeTex` is set}}&lt;br /&gt;
&lt;br /&gt;
== Lighting ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   lighting = {&lt;br /&gt;
      --// dynsun&lt;br /&gt;
      sunStartAngle = 0.0,&lt;br /&gt;
      sunOrbitTime  = 1440.0,&lt;br /&gt;
      sunDir        = {0.0, 1.0, 2.0, 1e9},&lt;br /&gt;
&lt;br /&gt;
      --// unit &amp;amp; ground lighting&lt;br /&gt;
      groundAmbientColor  = {0.5, 0.5, 0.5},&lt;br /&gt;
      groundDiffuseColor  = {0.5, 0.5, 0.5},&lt;br /&gt;
      groundSpecularColor = {0.1, 0.1, 0.1},&lt;br /&gt;
      groundShadowDensity = 0.8,&lt;br /&gt;
      unitAmbientColor    = {0.4, 0.4, 0.4},&lt;br /&gt;
      unitDiffuseColor    = {0.7, 0.7, 0.7},&lt;br /&gt;
      unitSpecularColor   = {0.7, 0.7, 0.7},&lt;br /&gt;
      unitShadowDensity   = 0.8,&lt;br /&gt;
      &lt;br /&gt;
      specularExponent    = 100.0,&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{tag|name=sunStartAngle|type=float|default=0.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=sunOrbitTime|type=float|default=1440.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=sunDir|type=float[3]|default={0.0, 1.0, 2.0}&lt;br /&gt;
|description=The direction of the sun, which is normalized by Spring. The Y-axis is up}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=groundAmbientColor|type=rgb|default={0.5, 0.5, 0.5}&lt;br /&gt;
|description=The ambient (non-sun-lit) color of ground, grass, trees and other features. The values are in the order Red, Green, Blue}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=groundDiffuseColor|type=rgb|default={0.5, 05, 0.5}&lt;br /&gt;
|description=The color of ground where it is fully sun lit (added to GroundAmbientColor). The values are in the order Red, Green, Blue}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=groundSpecularColor|type=rgb|default={0.1, 0.1, 0.1}&lt;br /&gt;
|description=and its effect when a specular map is present?}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=groundShadowDensity|type=float|default=0.8&lt;br /&gt;
|description=How far from the non shadowed to the ambient color stuff in shadow will go.}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=unitAmbientColor|type=float|default={0.4, 0.4, 0.4}&lt;br /&gt;
|description=The ambient (non-sun-lit) color of units and corpses}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=unitDiffuseColor|type=rgb|default={0.7, 0.7, 0.7}&lt;br /&gt;
|description=The color of units where they is fully sun lit (added to UnitAmbientColor). The color of units where they is fully sun lit (added to UnitAmbientColor)}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=unitSpecularColor|type=rgb|default=unitDiffuseColor}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=unitShadowDensity|type=float|default=0.8&lt;br /&gt;
|description=How far from the non shadowed to the ambient color stuff in shadow will go}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=specularExponent|type=float|default=100}}&lt;br /&gt;
&lt;br /&gt;
== water ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   water = {&lt;br /&gt;
      damage =  0.0,&lt;br /&gt;
&lt;br /&gt;
      repeatX = 0.0,&lt;br /&gt;
      repeatY = 0.0,&lt;br /&gt;
&lt;br /&gt;
      absorb    = {0.0, 0.0, 0.0},&lt;br /&gt;
      baseColor = {0.0, 0.0, 0.0},&lt;br /&gt;
      minColor  = {0.0, 0.0, 0.0},&lt;br /&gt;
&lt;br /&gt;
      ambientFactor  = 1.0,&lt;br /&gt;
      diffuseFactor  = 1.0,&lt;br /&gt;
      specularFactor = 1.0,&lt;br /&gt;
      specularPower  = 20.0,&lt;br /&gt;
&lt;br /&gt;
      planeColor = {0.0, 0.4, 0.0},&lt;br /&gt;
&lt;br /&gt;
      surfaceColor  = {0.75, 0.8, 0.85},&lt;br /&gt;
      surfaceAlpha  = 0.55,&lt;br /&gt;
      diffuseColor  = {1.0, 1.0, 1.0},&lt;br /&gt;
      specularColor = {0.5, 0.5, 0.5},&lt;br /&gt;
&lt;br /&gt;
      fresnelMin   = 0.2,&lt;br /&gt;
      fresnelMax   = 0.8,&lt;br /&gt;
      fresnelPower = 4.0,&lt;br /&gt;
&lt;br /&gt;
      reflectionDistortion = 1.0,&lt;br /&gt;
&lt;br /&gt;
      blurBase      = 2.0,&lt;br /&gt;
      blurExponent = 1.5,&lt;br /&gt;
&lt;br /&gt;
      perlinStartFreq  =  8.0,&lt;br /&gt;
      perlinLacunarity = 3.0,&lt;br /&gt;
      perlinAmplitude  =  0.9,&lt;br /&gt;
      windSpeed = 1.0, --// does nothing yet&lt;br /&gt;
&lt;br /&gt;
      shoreWaves = true,&lt;br /&gt;
      forceRendering = false,&lt;br /&gt;
&lt;br /&gt;
      --// undefined == load them from resources.lua!&lt;br /&gt;
      --texture =       &amp;quot;&amp;quot;,&lt;br /&gt;
      --foamTexture =   &amp;quot;&amp;quot;,&lt;br /&gt;
      --normalTexture = &amp;quot;&amp;quot;,&lt;br /&gt;
      --caustics = {&lt;br /&gt;
      --   &amp;quot;&amp;quot;,&lt;br /&gt;
      --   &amp;quot;&amp;quot;,&lt;br /&gt;
      --},&lt;br /&gt;
&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{tag|name=damage|type=float|default=0.0&lt;br /&gt;
|description=Number of hit points per game frame (30 frames per second) a unit will be damaged if it is in the water. As of 95.0 by default damage is also applied to hovercraft units. i wonder if this can be made to give life...?}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=repeatX|type=float|default=0.0&lt;br /&gt;
|description=effects the filing frequency of the watertexture}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=repeatY|type=float|default=0.0&lt;br /&gt;
|description=effects the filing frequency of the watertexture}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=absorb|type=rgb|default={0.0, 0.0, 0.0}&lt;br /&gt;
|description=How fast different colors (RGB in order) are absorbed by the water. Can be used to make the water look murky at deeper sections and so on. How this works: the waterabsorb value for the color channel gets multiplied by the depth of the water at a point, and this product gets subtracted from WaterBaseColor, until WaterMinColor is reached. Example: WaterAbsorb is 0.01, for the red channel, and we want to know how much red will be left in the water at a Spring elevation of -100, since 0.01*100= 1 , at this depth, there will be no more red component in the water, unless WaterMinColor is higher than 0 on the red channel}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=baseColor|type=rgb|default={0.0, 0.0, 0.0}&lt;br /&gt;
|description=The color of the water just beneath the surface plane. This is the starting color from which deeper waters will absorb more color. The values are in the order Red, Green, Blue}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=minColor|type=rgb|default={0.0, 0.0, 0.0}&lt;br /&gt;
|description=The smallest values the water will go down to due to WaterAbsorb}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=ambientFactor|type=float|default=1.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=diffuseFactor|type=float|default=1.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=specularFactor|type=float|default=1.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=specularPower|type=float|default=20.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=planeColor|type=rgb|default={0.0, 0.4, 0.0}&lt;br /&gt;
|description=This sets the color of the groundplane under the water outside the map boundaries}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=surfaceColor|type=rgb|default={0.75, 0.8, 0.85}&lt;br /&gt;
|description=The color of the water surface. Mostly affects the colors of the reflections off the top of the water. Has no effect on bump mapped water!}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=surfaceAlpha|type=float|default=0.55&lt;br /&gt;
|description= Transparency of the water surface. 0 meaning almost fully transparent water plane(low amount of reflections visible), and 1 being nearly opaque (massive amount of reflections)}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=diffuseColor|type=rgb|default=value&lt;br /&gt;
|description=This specifies the diffuse color of the water body. WARNING: use of this tag disables the effect of WaterAbsorb , in fact, this tag does nothing but disable WaterAbsorb. Avoid}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=specularColor|type=rgb|default=lighting.groundDiffuseColor}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=fresnelMin|type=float|default=0.2}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=fresnelMax|type=float|default=0.8}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=fresnelPower|type=float|default=4.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=reflectionDistortion|type=float|default=1.0&lt;br /&gt;
|description=How much the surface should distort reflections that are cause by waves not being level: ergo it adds more choppyness to your reflections sensible from 0 to 20}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=blurBase|type=float|default=2.0&lt;br /&gt;
|description=Something to do with blur, but it just seems to cause banding with values under 2 and corruption with values above 10}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=blurExponent|type=float|default=1.5&lt;br /&gt;
|description=How much reflections on water surface should be blurred together with the water surface, lower values meaning clearer reflections, (0.2-5) Warning: above 5 seems to cause water corruption}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=perlinStartFreq|type=float|default=8.0&lt;br /&gt;
|description=Wave sizes, smaller = big waves, sensible: [1,20] (influence the wave sizes)}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=perlinLacunarity|type=float|default=3.0&lt;br /&gt;
|description=Defines the size of the perlin waves, small values being big waves ([0.2,5] is sensible)}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=perlinAmplitude|type=float|default=0.9&lt;br /&gt;
|description=Base stillness of water surface, 0 is dead still, 1 is &#039;windy&#039; .This doesnt affect the bump texture depth, besides the fact that this disables the bump texture when set to 0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=windSpeed|type=float|default=1.0&lt;br /&gt;
|description=does nothing yet}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=shoreWaves|type=bool|default=true}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=forceRendering|type=bool|default=true}}&lt;br /&gt;
&lt;br /&gt;
will have to ask about those undefined tags&lt;br /&gt;
&lt;br /&gt;
== teams ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   teams = {&lt;br /&gt;
      [0] = {startPos = {x = 2033, z = 852}},&lt;br /&gt;
      [1] = {startPos = {x = 10134, z = 852}},&lt;br /&gt;
      [2] = {startPos = {x = 0, z = 0}},&lt;br /&gt;
      [3] = {startPos = {x = 0, z = 0}},&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Holds an array of start positions&lt;br /&gt;
&lt;br /&gt;
== terrainTypes ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   terrainTypes = {&lt;br /&gt;
      [0] = {&lt;br /&gt;
         name = &amp;quot;Default&amp;quot;,&lt;br /&gt;
         hardness = 1.0,&lt;br /&gt;
         receiveTracks = true,&lt;br /&gt;
         moveSpeeds = {&lt;br /&gt;
            tank  = 1.0,&lt;br /&gt;
            kbot  = 1.0,&lt;br /&gt;
            hover = 1.0,&lt;br /&gt;
            ship  = 1.0,&lt;br /&gt;
         },&lt;br /&gt;
      },&lt;br /&gt;
      [1]  = { &lt;br /&gt;
         ...&lt;br /&gt;
      },&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Holds an array of start types where each element contains:&lt;br /&gt;
&lt;br /&gt;
{{tag|name=name|type=string&lt;br /&gt;
|description=A label for the terrain type}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=hardness|type=float|range=[0.001-max]|default=1.0&lt;br /&gt;
|description=Used as a multiplier against the mapinfo.mapHardness value. Can be used to make a particular terrain type softer or harder. A value of &#039;1&#039; will make it as hard as MapHardness, and 0.5 will make it half as hard}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=receiveTracks|type=bool|default=true&lt;br /&gt;
|description= Effects whether track decals will be placed on the ground from moving vehicles}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=moveSpeeds.tank|type=float|range=[0.0-max]|default=1.0&lt;br /&gt;
|description= Speed multiplier for tanks when travelling on the parent terrain type. A value of &#039;1.0&#039; is normal speed, 0.5 will make them travel at half speed on the parent terrain type}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=moveSpeeds.kbot|type=float|range=[0.0-max]|default=1.0&lt;br /&gt;
|description= Speed multiplier for kbots when travelling on the parent terrain type. A value of &#039;1.0&#039; is normal speed, 0.5 will make them travel at half speed on the parent terrain type}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=moveSpeeds.hover|type=float|range=[0.0-max]|default=1.0&lt;br /&gt;
|description= Speed multiplier for hovercraft when travelling on the parent terrain type. A value of &#039;1.0&#039; is normal speed, 0.5 will make them travel at half speed on the parent terrain type}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=moveSpeeds.ship|type=float|range=[0.0-max]|default=1&lt;br /&gt;
|description= Speed multiplier for ships when travelling on the parent terrain type. A value of &#039;1.0&#039; is normal speed, 0.5 will make them travel at half speed on the parent terrain type}}&lt;br /&gt;
&lt;br /&gt;
== custom ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   custom = {&lt;br /&gt;
      fog = {&lt;br /&gt;
         color    = {0.26, 0.30, 0.41},&lt;br /&gt;
         height   = &amp;quot;80%&amp;quot;, --// allows either absolue sizes or in percent of map&#039;s MaxHeight&lt;br /&gt;
         fogatten = 0.003,&lt;br /&gt;
      },&lt;br /&gt;
      precipitation = {&lt;br /&gt;
         density   = 30000,&lt;br /&gt;
         size      = 1.5,&lt;br /&gt;
         speed     = 50,&lt;br /&gt;
         windscale = 1.2,&lt;br /&gt;
         texture   = &#039;LuaGaia/effects/snowflake.png&#039;,&lt;br /&gt;
      },&lt;br /&gt;
&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=UI_commands&amp;diff=18819</id>
		<title>UI commands</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=UI_commands&amp;diff=18819"/>
		<updated>2015-04-07T09:26:04Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* List of commands, some are even explained */ added scrollbar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Engine_Development|Development]] &amp;lt; [[Lua_Scripting|Lua Scripting]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
=How to use the console=&lt;br /&gt;
The ingame chat is the console. Open with hitting the `&amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;` or `&amp;lt;code&amp;gt;enter&amp;lt;/code&amp;gt;` key.&lt;br /&gt;
If you want to enter a command into ingame chat, you must add a &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; in front&amp;lt;br&amp;gt;&lt;br /&gt;
for example: &amp;lt;code&amp;gt;/commandhelp&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Some commands will also autocomplete if you press &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;. So if you enter &amp;quot;/com&amp;quot; and then to press TAB, it will complete it to `/command` and tells you there is `/commandhelp` &amp;amp; `/commandlist`, if you now enter either `l` or `h` and press TAB again it will complete to one of them.&lt;br /&gt;
&lt;br /&gt;
Also commands are not case-sensitive.&lt;br /&gt;
&lt;br /&gt;
=List of commands, some are even explained=&lt;br /&gt;
&lt;br /&gt;
For a complete (excluding Lua commands &amp;amp; some engine `actions`) use:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;/commandlist&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output (98.0):&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre style=&amp;quot;overflow:auto; width:auto;&amp;quot;&amp;gt;&lt;br /&gt;
Chat commands plus description&lt;br /&gt;
==============================&lt;br /&gt;
/Atm                             (synced)    Gives 1000 metal and 1000 energy to the issuing players team&lt;br /&gt;
/Cheat                           (synced)    Enables/Disables cheating, which is required for a lot of other commands to be usable&lt;br /&gt;
/Destroy                         (synced)    Destroys one or multiple units by unit-ID, instantly&lt;br /&gt;
/DevLua                          (synced)    Enables/Disables Lua dev-mode (can cause desyncs if enabled)&lt;br /&gt;
/EditDefs                        (synced)    Allows/Disallows editing of unit-, feature- and weapon-defs through Lua&lt;br /&gt;
/Give                            (synced)    Places one or multiple units of a single or multiple types on the map, instantly; by default to your own team&lt;br /&gt;
/GlobalLOS                       (synced)    Enables/Disables global line-of-sight, which makes the whole map permanently visible to everyone or to a specific allyteam&lt;br /&gt;
/GodMode                         (synced)    Enables/Disables god-mode, which allows all players (even spectators) to control all units (even during replays, which will DESYNC them)&lt;br /&gt;
/LuaGaia                         (synced)    Allows one to reload or disable Lua-Gaia, or alternatively to send a chat message to Lua-Gaia&lt;br /&gt;
/LuaRules                        (synced)    Allows one to reload or disable Lua-rules, or alternatively to send a chat message to Lua-rules&lt;br /&gt;
/NoCost                          (synced)    Enables/Disables everything-for-free, which allows everyone to build everything for zero resource costs&lt;br /&gt;
/NoHelp                          (synced)    Enables/Disables widgets (LuaUI control)&lt;br /&gt;
/NoSpecDraw                      (synced)    Allows/Disallows spectators to draw on the map&lt;br /&gt;
/NoSpectatorChat                 (synced)    Enables/Disables spectators to use the chat&lt;br /&gt;
/ReloadCEGs                      (synced)    Reloads CEG scripts&lt;br /&gt;
/ReloadCOB                       (synced)    Reloads COB scripts&lt;br /&gt;
/Skip                            (synced)    Fast-forwards to a given frame, or stops fast-forwarding&lt;br /&gt;
/Take                            (synced)    Transfers all units of allied teams without any active players to the team of the issuing player&lt;br /&gt;
/AdvMapShading                   (unsynced)  Set or toggle advanced map shading mode&lt;br /&gt;
/AdvModelShading                 (unsynced)  Set or toggle advanced model shading mode&lt;br /&gt;
/AIControl                       (unsynced)  Creates a new instance of a Skirmish AI, to let it controll a specific team&lt;br /&gt;
/AIKill                          (unsynced)  Kills the Skirmish AI controlling a specified team&lt;br /&gt;
/AIList                          (unsynced)  Prints a list of all currently active Skirmish AIs&lt;br /&gt;
/AIReload                        (unsynced)  Reloads the Skirmish AI controlling a specified team&lt;br /&gt;
/AirMesh                         (unsynced)  Show/Hide the smooth air-mesh map overlay&lt;br /&gt;
/AllMapMarks                     (unsynced)  Show/Hide all map marks drawn so far&lt;br /&gt;
/Ally                            (unsynced)  Starts/Ends alliance of the local players ally-team with another ally-team&lt;br /&gt;
/ATM                             (unsynced)  Redirects command /ATM to its synced processor&lt;br /&gt;
/BufferText                      (unsynced)  Write the argument string(s) directly to the console history, but not anywhere else. This is useful for fast manual issuing of the command, later on&lt;br /&gt;
/Chat                            (unsynced)  Starts waiting for intput to be sent to &lt;br /&gt;
/ChatAll                         (unsynced)  Starts waiting for intput to be sent to All&lt;br /&gt;
/ChatAlly                        (unsynced)  Starts waiting for intput to be sent to Ally&lt;br /&gt;
/ChatSpec                        (unsynced)  Starts waiting for intput to be sent to Spec&lt;br /&gt;
/ClearMapMarks                   (unsynced)  Remove all map marks drawn so far&lt;br /&gt;
/Clock                           (unsynced)  Shows a small digital clock indicating the local time&lt;br /&gt;
/CmdColors                       (unsynced)  Reloads cmdcolors.txt&lt;br /&gt;
/CommandHelp                     (unsynced)  Prints info about a specific chat command (so far only synced/unsynced and the description)&lt;br /&gt;
/CommandList                     (unsynced)  Prints all the available chat commands with description (if available) to the console&lt;br /&gt;
/Console                         (unsynced)  Enables/Disables the in-game console&lt;br /&gt;
/ControlUnit                     (unsynced)  Start to first-person-control a unit&lt;br /&gt;
/Crash                           (unsynced)  Invoke an artificial crash through a NULL-pointer dereference (SIGSEGV)&lt;br /&gt;
/CreateVideo                     (unsynced)  Start/Stop capturing a video of the game in progress&lt;br /&gt;
/Cross                           (unsynced)  Allows one to exchange and modify the appearance of the cross/mouse-pointer in first-person-control view&lt;br /&gt;
/CtrlPanel                       (unsynced)  Reloads ctrlpanel.txt&lt;br /&gt;
/Debug                           (unsynced)  Enable/Disable debug info rendering mode&lt;br /&gt;
/DebugColVol                     (unsynced)  Enable/Disable drawing of collision volumes&lt;br /&gt;
/DebugDrawAI                     (unsynced)  Enables/Disables debug drawing for AIs&lt;br /&gt;
/DebugInfo                       (unsynced)  Print debug info to the chat/log-file about either: sound, profiling&lt;br /&gt;
/DebugPath                       (unsynced)  Enable/Disable drawing of pathfinder debug-data&lt;br /&gt;
/DebugTraceRay                   (unsynced)  Enable/Disable drawing of traceray debug-data&lt;br /&gt;
/DecGUIOpacity                   (unsynced)  Decreases the the opacity(see-through-ness) of GUI elements&lt;br /&gt;
/DecreaseViewRadius              (unsynced)  Decrease the view radius (higher performance, uglier view)&lt;br /&gt;
/Deselect                        (unsynced)  Deselects all currently selected units&lt;br /&gt;
/Destroy                         (unsynced)  Destroys one or multiple units by unit-ID, instantly&lt;br /&gt;
/DistDraw                        (unsynced)  Set the distance between units and camera, at which they turn into far-textures (flat/texture-only representation) (Graphic setting)&lt;br /&gt;
/DistIcon                        (unsynced)  Set the distance between units and camera, at which they turn into icons (Graphic setting)&lt;br /&gt;
/DivByZero                       (unsynced)  Invoke an artificial crash by performing a division-by-Zero&lt;br /&gt;
/DrawInMap                       (unsynced)  Enables drawing on the map&lt;br /&gt;
/DrawLabel                       (unsynced)  Draws a label on the map at the current mouse-pointer position&lt;br /&gt;
/DrawTrees                       (unsynced)  Enable/Disable rendering of engine trees&lt;br /&gt;
/DumpState                       (unsynced)  dump game-state to file&lt;br /&gt;
/DynamicSky                      (unsynced)  Enable/Disable dynamic-sky rendering&lt;br /&gt;
/DynamicSun                      (unsynced)  Enable/Disable dynamic-sun rendering&lt;br /&gt;
/Echo                            (unsynced)  Write a string to the log file&lt;br /&gt;
/EndGraph                        (unsynced)  Enables/Disables the statistics graphs shown at the end of the game&lt;br /&gt;
/Exception                       (unsynced)  Invoke an artificial crash by throwing an std::runtime_error&lt;br /&gt;
/Font                            (unsynced)  Reloads the fonts&lt;br /&gt;
/FPS                             (unsynced)  Shows/Hides the frames-per-second indicator&lt;br /&gt;
/FPSHud                          (unsynced)  Enables/Disables HUD (GUI interface) shown in first-person-control mode&lt;br /&gt;
/Fullscreen                      (unsynced)  Switches fullscreen mode&lt;br /&gt;
/GameInfo                        (unsynced)  Enables/Disables game-info panel rendering&lt;br /&gt;
/GatherMode                      (unsynced)  Enter/Leave gather-wait command mode&lt;br /&gt;
/Give                            (unsynced)  Places one or multiple units of a single or multiple types on the map, instantly; by default to your own team&lt;br /&gt;
/GrabInput                       (unsynced)  Prevents/Enables the mouse from leaving the game window (windowed mode only)&lt;br /&gt;
/GroundDecals                    (unsynced)  Disable/Enable ground-decals rendering. Ground-decals are things like scars appearing on the map after an explosion.&lt;br /&gt;
/Group                           (unsynced)  Allows modifying the members of a group&lt;br /&gt;
/Group0                          (unsynced)  Allows modifying the members of group 0&lt;br /&gt;
/Group1                          (unsynced)  Allows modifying the members of group 1&lt;br /&gt;
/Group2                          (unsynced)  Allows modifying the members of group 2&lt;br /&gt;
/Group3                          (unsynced)  Allows modifying the members of group 3&lt;br /&gt;
/Group4                          (unsynced)  Allows modifying the members of group 4&lt;br /&gt;
/Group5                          (unsynced)  Allows modifying the members of group 5&lt;br /&gt;
/Group6                          (unsynced)  Allows modifying the members of group 6&lt;br /&gt;
/Group7                          (unsynced)  Allows modifying the members of group 7&lt;br /&gt;
/Group8                          (unsynced)  Allows modifying the members of group 8&lt;br /&gt;
/Group9                          (unsynced)  Allows modifying the members of group 9&lt;br /&gt;
/HardwareCursor                  (unsynced)  Enables/Disables hardware mouse-cursor support&lt;br /&gt;
/HideInterface                   (unsynced)  Hide/Show the GUI controlls&lt;br /&gt;
/IncGUIOpacity                   (unsynced)  Increases the the opacity(see-through-ness) of GUI elements&lt;br /&gt;
/IncreaseViewRadius              (unsynced)  Increase the view radius (lower performance, nicer view)&lt;br /&gt;
/Info                            (unsynced)  Shows/Hides the player roster&lt;br /&gt;
/InputTextGeo                    (unsynced)  Move and/or resize the input-text field (the &amp;quot;Say: &amp;quot; thing)&lt;br /&gt;
/LastMsgPos                      (unsynced)  Moves the camera to show the position of the last message&lt;br /&gt;
/LessClouds                      (unsynced)  Decreases the density of clouds (higher performance)&lt;br /&gt;
/LessTrees                       (unsynced)  Decreases the distance to the camera, in which trees are still shown (higher performance)&lt;br /&gt;
/LODScale                        (unsynced)  Set the scale for either of: LOD (level-of-detail), shadow-LOD, reflection-LOD, refraction-LOD&lt;br /&gt;
/LuaGaia                         (unsynced)  Redirects command /LuaGaia to its synced processor&lt;br /&gt;
/LuaModUICtrl                    (unsynced)  Allow/Disallow Lua to receive UI control events, like mouse-, keyboard- and joystick-events&lt;br /&gt;
/LuaRules                        (unsynced)  Redirects command /LuaRules to its synced processor&lt;br /&gt;
/LuaUI                           (unsynced)  Allows one to reload or disable LuaUI, or alternatively to send a chat message to LuaUI&lt;br /&gt;
/MapBorder                       (unsynced)  Set or toggle map border rendering&lt;br /&gt;
/MapMarks                        (unsynced)  Enables/Disables map marks rendering&lt;br /&gt;
/MaxNanoParticles                (unsynced)  Set the maximum number of nano-particles (Graphic setting)&lt;br /&gt;
/MaxParticles                    (unsynced)  Set the maximum number of particles (Graphics setting)&lt;br /&gt;
/MiniMap                         (unsynced)  FIXME document subcommands&lt;br /&gt;
/MoreClouds                      (unsynced)  Increases the density of clouds (lower performance)&lt;br /&gt;
/MoreTrees                       (unsynced)  Increases the distance to the camera, in which trees are still shown (lower performance)&lt;br /&gt;
/Mouse1                          (unsynced)  Simulates a mouse button press of button 1&lt;br /&gt;
/Mouse2                          (unsynced)  Simulates a mouse button press of button 2&lt;br /&gt;
/Mouse3                          (unsynced)  Simulates a mouse button press of button 3&lt;br /&gt;
/Mouse4                          (unsynced)  Simulates a mouse button press of button 4&lt;br /&gt;
/Mouse5                          (unsynced)  Simulates a mouse button press of button 5&lt;br /&gt;
/MoveBack                        (unsynced)  Moves the camera Back a bit&lt;br /&gt;
/MoveDown                        (unsynced)  Moves the camera Down a bit&lt;br /&gt;
/MoveFast                        (unsynced)  Moves the camera Fast a bit&lt;br /&gt;
/MoveForward                     (unsynced)  Moves the camera Forward a bit&lt;br /&gt;
/MoveLeft                        (unsynced)  Moves the camera Left a bit&lt;br /&gt;
/MoveRight                       (unsynced)  Moves the camera Right a bit&lt;br /&gt;
/MoveSlow                        (unsynced)  Moves the camera Slow a bit&lt;br /&gt;
/MoveUp                          (unsynced)  Moves the camera Up a bit&lt;br /&gt;
/MuteSound                       (unsynced)  Mute/Unmute the current sound system&lt;br /&gt;
/NoLuaDraw                       (unsynced)  Allow/Disallow Lua to draw on the map&lt;br /&gt;
/PasteText                       (unsynced)  Paste either the argument string(s) or if none given, the content of the clip-board to chat input&lt;br /&gt;
/Pause                           (unsynced)  Pause/Unpause the game&lt;br /&gt;
/Quit                            (unsynced)  Exits the game immediately&lt;br /&gt;
/QuitForce                       (unsynced)  Alias for command &amp;quot;QuitForce&amp;quot;&lt;br /&gt;
/QuitMenu                        (unsynced)  Opens the quit-menu, if it is not already open&lt;br /&gt;
/QuitMessage                     (unsynced)  Deprecated, see /Quit instead (was used to quite the game immediately)&lt;br /&gt;
/ReloadGame                      (unsynced)  Restarts the game with the initially provided start-script&lt;br /&gt;
/ReloadShaders                   (unsynced)  Reloads all engine shaders&lt;br /&gt;
/ResBar                          (unsynced)  Shows/Hides team resource storage indicator bar&lt;br /&gt;
/Resync                          (unsynced)  Redirects command /Resync to its synced processor&lt;br /&gt;
/roam                            (unsynced)  Disables/Enables ROAM mesh rendering: 0=off, 1=on&lt;br /&gt;
/SafeGL                          (unsynced)  Enables/Disables OpenGL safe-mode&lt;br /&gt;
/Save                            (unsynced)  Save the game state to a specific file (BROKEN)&lt;br /&gt;
/SaveGame                        (unsynced)  Save the game state to QuickSave.ssf (BROKEN)&lt;br /&gt;
/Say                             (unsynced)  Say something in (public) chat&lt;br /&gt;
/ScreenShot                      (unsynced)  Take a screen-shot of the current view&lt;br /&gt;
/Select                          (unsynced)  &amp;lt;chat command description: Select&amp;gt;&lt;br /&gt;
/SelectCycle                     (unsynced)  &amp;lt;chat command description: SelectUnits&amp;gt;&lt;br /&gt;
/SelectUnits                     (unsynced)  &amp;lt;chat command description: SelectUnits&amp;gt;&lt;br /&gt;
/Send                            (unsynced)  Send a string as raw network message to the game host (for debugging only)&lt;br /&gt;
/Set                             (unsynced)  Set a config key=value pair&lt;br /&gt;
/Shadows                         (unsynced)  Disables/Enables shadows rendering: -1=disabled, 0=off, 1=full shadows, 2=skip terrain shadows&lt;br /&gt;
/ShareDialog                     (unsynced)  Opens the share dialog, which allows you to send units and resources to other players&lt;br /&gt;
/ShowElevation                   (unsynced)  Enable rendering of the auxiliary height-map overlay&lt;br /&gt;
/ShowMetalMap                    (unsynced)  Enable rendering of the auxiliary metal-map overlay&lt;br /&gt;
/ShowPathCost                    (unsynced)  Enable rendering of the path cost-map overlay&lt;br /&gt;
/ShowPathFlow                    (unsynced)  Enable/Disable rendering of the path flow-map overlay&lt;br /&gt;
/ShowPathHeat                    (unsynced)  Enable/Disable rendering of the path heat-map overlay&lt;br /&gt;
/ShowPathTraversability          (unsynced)  Enable rendering of the path traversability-map overlay&lt;br /&gt;
/ShowStandard                    (unsynced)  Disable rendering of all auxiliary map overlays&lt;br /&gt;
/SlowDown                        (unsynced)  Decreases the simulation speed. The engine will try to simulate less frames per second&lt;br /&gt;
/SoundChannelEnable              (unsynced)  Enable/Disable specific sound channels: UnitReply, General, Battle, UserInterface, Music&lt;br /&gt;
/SoundDevice                     (unsynced)  Switch the sound output system (currently only OpenAL / NullAudio)&lt;br /&gt;
/SpecFullView                    (unsynced)  Sets or toggles between full LOS or ally-team LOS, if the local user is a spectator&lt;br /&gt;
/Spectator                       (unsynced)  Lets the local user give up controll over a team, and start spectating&lt;br /&gt;
/SpecTeam                        (unsynced)  Lets the local user specify the team to follow, if he is a spectator&lt;br /&gt;
/Speed                           (unsynced)  Shows/Hides the simulation speed indicator&lt;br /&gt;
/SpeedControl                    (unsynced)  Sets how server adjusts speed according to player&#039;s load (CPU), 1: use average, 2: use highest,&lt;br /&gt;
/SpeedUp                         (unsynced)  Increases the simulation speed. The engine will try to simulate more frames per second&lt;br /&gt;
/Take                            (unsynced)  Redirects command /Take to its synced processor&lt;br /&gt;
/Team                            (unsynced)  Lets the local user change to another team&lt;br /&gt;
/TeamHighlight                   (unsynced)  Enables/Disables uncontrolled team blinking&lt;br /&gt;
/ToggleLOS                       (unsynced)  Enable rendering of the auxiliary LOS-map overlay&lt;br /&gt;
/ToggleRadarAndJammer            (unsynced)  Enable/Disable rendering of the auxiliary radar- &amp;amp; jammer-map overlay&lt;br /&gt;
/ToolTip                         (unsynced)  Enables/Disables the general tool-tips, displayed when hovering over units. features or the map&lt;br /&gt;
/Track                           (unsynced)  Start following the selected unit(s) with the camera&lt;br /&gt;
/TrackMode                       (unsynced)  Shift through different ways of following selected unit(s)&lt;br /&gt;
/TrackOff                        (unsynced)  Stop following the selected unit(s) with the camera&lt;br /&gt;
/TSet                            (unsynced)  Set a config key=value pair in the overlay, meaning it will not be persisted for future games&lt;br /&gt;
/ViewSelection                   (unsynced)  Moves the camera to the center of the currently selected units&lt;br /&gt;
/VSync                           (unsynced)  Enables/Disables vertical-sync (Graphics setting)&lt;br /&gt;
/W                               (unsynced)  Say something in private to a specific player, by player-name&lt;br /&gt;
/Water                           (unsynced)  Set water rendering mode: 0=basic, 1=reflective, 2=dynamic, 3=reflective&amp;amp;refractive?, 4=bump-mapped&lt;br /&gt;
/WByNum                          (unsynced)  Say something in private to a specific player, by player-ID&lt;br /&gt;
/WireMap                         (unsynced)  Enable/Disable drawing of the map as wire-frame (no textures) (Graphic setting)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Scripting=&lt;br /&gt;
In Lua scripts, these commands can be used like this:&amp;lt;br&amp;gt;&lt;br /&gt;
Spring.SendCommands(&amp;quot;resbar 0&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
notice the missing / when used like this.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Help]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:grass&amp;diff=13806</id>
		<title>Mapdev:grass</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:grass&amp;diff=13806"/>
		<updated>2015-04-06T07:23:08Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Distribution Image */ fixed image channels&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Grass =&lt;br /&gt;
Grass is entirely optional, but can be customized via map parameters and adds a nice touch to your map.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| [[File:Mapdev-grass.png]] || [[File:Mapdev-grass-example.png|451px]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Grass Disribution&lt;br /&gt;
! In Game Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   resources = {&lt;br /&gt;
      ...&lt;br /&gt;
      grassBladeTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      grassShadingTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
   grass = {&lt;br /&gt;
      bladeWaveScale = 1.0,&lt;br /&gt;
      bladeWidth = 0.32,&lt;br /&gt;
      bladeHeight = 4.0,&lt;br /&gt;
      bladeAngle = 1.57,&lt;br /&gt;
      bladeColor = {0.59, 0.81, 0.57},&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
=== Blade Wave Scale ===&lt;br /&gt;
Defaults to 1. It specifies how much the blades will wave in the wind. Higher makes them wave more.&lt;br /&gt;
&lt;br /&gt;
=== Blade Height ===&lt;br /&gt;
Default is 4. Defines the length of the blade of grass in elmos.&lt;br /&gt;
&lt;br /&gt;
=== Blade Angle ===&lt;br /&gt;
Default is pi/4. It defines how much each blade of grass curves.&lt;br /&gt;
&lt;br /&gt;
=== Blade Color ===&lt;br /&gt;
does nothing when blade texture is set.&lt;br /&gt;
&lt;br /&gt;
== Distribution Image ==&lt;br /&gt;
Formerly [[Mapdev:features|Feature]] Map. Grass distribution is defined by blue pixels, the more blue the pixel is (the closer to blue 255 it is), the thicker grass will be at that location. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| The distribution map is an intermediary file compiled into the SMF/SMT files using [[MapConv]] or [[MapConvNG]].&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that Mapconv programs support&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| Greyscale&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| &amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!Spring Map Size&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
!pixels = Spring Map Size * 16&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 96&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| 512&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left;font-style:italic&amp;quot; colspan=2 | &amp;amp;#42; must be multiples of 2&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shading Image ==&lt;br /&gt;
* If a shading image is not present, the minimap will be used in its place.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| ./maps/&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| PNG, TGA&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| Any, recommended powers of two, will be stretched over the terrain.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| [[File:Grassmap_Map_example.jpegâ€Ž]] || [[File:Grassmap_Map_ingame.jpg|512px|â€Ž]]&lt;br /&gt;
|-&lt;br /&gt;
! Example !! Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Blade Texture ==&lt;br /&gt;
{{FIXME}} need more info.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| ./maps/&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| PNG, TGA&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| {{FIXME}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| {{FIXME}} || {{FIXME}}&lt;br /&gt;
|-&lt;br /&gt;
! Example !! Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Forum Discussions =&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=27585 Try to keep perspective]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:terraintype&amp;diff=14044</id>
		<title>Mapdev:terraintype</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:terraintype&amp;diff=14044"/>
		<updated>2015-04-06T07:21:52Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Image File */ fixed image channels&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Terrain Types =&lt;br /&gt;
Type Maps or terrain Types allow altering the speed of units, and the mount of deformation.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| ({{FIXME}} Example typemap)&lt;br /&gt;
|-&lt;br /&gt;
! Example Typemap&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
{{Caution|The use of type maps for unit speed adjustment is discouraged; due to the way units are automatically assigned to categories and the invisible nature of the type map it makes game play unpredictable.}}&lt;br /&gt;
&lt;br /&gt;
Spring already provides speed alteration, with pathing optimisation based on terrain incline. Units will always take the &amp;quot;road&amp;quot; if its completely flat and have to travel a fair distance along otherwise uneven terrain.&lt;br /&gt;
&lt;br /&gt;
Type maps use in deformation can show distinction between terrains like sand, rock, etc. This will suffer from edges between hardness levels having different heights after deformation, however it can be somewhat mitigated by making transitional typemaps with multiple hardness levels.&lt;br /&gt;
&lt;br /&gt;
Use sparingly, with obvious visual indicators in the texture image.&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
The relevant sections of the mapinfo.lua file are in the [[Map_Making:mapinfo.lua#terrainTypes|terrainTypes subtable]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   terrainTypes = {&lt;br /&gt;
      [0] = {&lt;br /&gt;
         name = &amp;quot;Default&amp;quot;,&lt;br /&gt;
         hardness = 1.0,&lt;br /&gt;
         receiveTracks = true,&lt;br /&gt;
         moveSpeeds = {&lt;br /&gt;
            tank  = 1.0,&lt;br /&gt;
            kbot  = 1.0,&lt;br /&gt;
            hover = 1.0,&lt;br /&gt;
            ship  = 1.0,&lt;br /&gt;
         },&lt;br /&gt;
      },&lt;br /&gt;
      [1]  = { &lt;br /&gt;
         ...&lt;br /&gt;
      },&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image File ==&lt;br /&gt;
An 8bpp greyscale image has 256 values for grey. each value represents a different terrain type, so you can have 256 different terrains, starting at zero(black)(default) to 255(white)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| The metal map is an intermediary file compiled into the SMF file using [[MapConv]] or [[MapConvNG]].&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that the Mapconv programs support&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| Greyscale&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| &amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!Spring Map Size&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
!pixels = Spring Map Size * 32&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 128&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 192&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| 1024&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left;font-style:italic&amp;quot; colspan=2 | &amp;amp;#42; must be multiples of 2&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Forum Discussions =&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21669 Typemap rant thread.]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:terraintype&amp;diff=14043</id>
		<title>Mapdev:terraintype</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:terraintype&amp;diff=14043"/>
		<updated>2015-04-06T07:20:53Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Image File */ fixed image dimensions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Terrain Types =&lt;br /&gt;
Type Maps or terrain Types allow altering the speed of units, and the mount of deformation.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| ({{FIXME}} Example typemap)&lt;br /&gt;
|-&lt;br /&gt;
! Example Typemap&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
{{Caution|The use of type maps for unit speed adjustment is discouraged; due to the way units are automatically assigned to categories and the invisible nature of the type map it makes game play unpredictable.}}&lt;br /&gt;
&lt;br /&gt;
Spring already provides speed alteration, with pathing optimisation based on terrain incline. Units will always take the &amp;quot;road&amp;quot; if its completely flat and have to travel a fair distance along otherwise uneven terrain.&lt;br /&gt;
&lt;br /&gt;
Type maps use in deformation can show distinction between terrains like sand, rock, etc. This will suffer from edges between hardness levels having different heights after deformation, however it can be somewhat mitigated by making transitional typemaps with multiple hardness levels.&lt;br /&gt;
&lt;br /&gt;
Use sparingly, with obvious visual indicators in the texture image.&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
The relevant sections of the mapinfo.lua file are in the [[Map_Making:mapinfo.lua#terrainTypes|terrainTypes subtable]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   terrainTypes = {&lt;br /&gt;
      [0] = {&lt;br /&gt;
         name = &amp;quot;Default&amp;quot;,&lt;br /&gt;
         hardness = 1.0,&lt;br /&gt;
         receiveTracks = true,&lt;br /&gt;
         moveSpeeds = {&lt;br /&gt;
            tank  = 1.0,&lt;br /&gt;
            kbot  = 1.0,&lt;br /&gt;
            hover = 1.0,&lt;br /&gt;
            ship  = 1.0,&lt;br /&gt;
         },&lt;br /&gt;
      },&lt;br /&gt;
      [1]  = { &lt;br /&gt;
         ...&lt;br /&gt;
      },&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image File ==&lt;br /&gt;
An 8bpp greyscale image has 256 values for grey. each value represents a different terrain type, so you can have 256 different terrains, starting at zero(black)(default) to 255(white)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| The metal map is an intermediary file compiled into the SMF file using [[MapConv]] or [[MapConvNG]].&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that the Mapconv programs support&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| &amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!Spring Map Size&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
!pixels = Spring Map Size * 32&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 128&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 192&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| 1024&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left;font-style:italic&amp;quot; colspan=2 | &amp;amp;#42; must be multiples of 2&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Forum Discussions =&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21669 Typemap rant thread.]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Tutorial_Simple&amp;diff=13752</id>
		<title>Mapdev:Tutorial Simple</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Tutorial_Simple&amp;diff=13752"/>
		<updated>2015-04-06T07:18:11Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Create Grass Map */ fixed image dimensions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Beginners Tutorial Stage 1 =&lt;br /&gt;
This beginners tutorial is aimed at getting you from nothing, to something simple which you can build upon.&lt;br /&gt;
&lt;br /&gt;
* We&#039;ll start with the height map, defining the structure of the terrain&lt;br /&gt;
* Then the metalmap, a resource scheme built into the spring engine&lt;br /&gt;
* The diffuse texture, defining the colour of the terrain&lt;br /&gt;
* The minimap, for when selecting the map in the game lobby&lt;br /&gt;
* The grass map, for that extra flourish of detail&lt;br /&gt;
* Finally set up the start positions&lt;br /&gt;
&lt;br /&gt;
= What you will need =&lt;br /&gt;
* An image editor, such as [http://www.gimp.org/ GIMP] or [http://www.adobe.com/products/photoshop.html Adobe Photoshop], [http://en.wikipedia.org/wiki/List_of_raster_graphics_editors#List etc]&lt;br /&gt;
* [http://www.7-zip.org/ 7zip]&lt;br /&gt;
* Windows - [[MapConv]], Linux - [[MapConvNG]]&lt;br /&gt;
* a copy of the map blueprint [https://github.com/jk3064/Map-Blueprint/archive/master.zip archive]&lt;br /&gt;
&lt;br /&gt;
There are a multitude of other tools you can use to make maps, however for the purposes of this beginners tutorial, these are the only ones you will need. Check the [[Mapdev:Main#Tools|tools]] section for more information.&lt;br /&gt;
&lt;br /&gt;
= Download =&lt;br /&gt;
* [http://springfiles.com/spring/other/mapdev-stage1-working-files Download] the working  files&lt;br /&gt;
* [http://springfiles.com/spring/spring-maps/mapdev-stage1 Download] the completed map archive&lt;br /&gt;
&lt;br /&gt;
= Preparation =&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Extract the mapcontainer.sdd folder from the blueprint archive into your working directory.&amp;lt;/li&amp;gt;&lt;br /&gt;
Your directory structure should look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;working directory&lt;br /&gt;
  |-mapcontainer.sdd/&lt;br /&gt;
    |-LuaGaia/&lt;br /&gt;
    |-mapconfig/&lt;br /&gt;
    |-maphelper/&lt;br /&gt;
    |-maps/&lt;br /&gt;
    |-mapinfo.lua&lt;br /&gt;
    |-mapoptions.lua&lt;br /&gt;
&amp;lt;/pre&amp;gt;    &lt;br /&gt;
&amp;lt;li&amp;gt;Rename the mapcontainer.sdd folder to the name of your map, eg. mymap.sdd&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the following variables in the mapinfo.lua file, ignore the rest for now.&lt;br /&gt;
* name&lt;br /&gt;
* shortname&lt;br /&gt;
* description&lt;br /&gt;
* author&lt;br /&gt;
* version (just put like v1 or something in here)&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Create Height map =&lt;br /&gt;
For this tutorial we will be creating a 4x4 size map, which is relatively small. Typically maps will be 8x8 (for a 1v1) or larger, but entirely depends on the game you are targeting.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check the [[Mapdev:height|height]] page to get our image dimensions. In our case a 4x4 map yields a image resolution of 257x257 pixels&lt;br /&gt;
&amp;lt;li&amp;gt;Create a 257x257 greyscale image using your image editor&lt;br /&gt;
&amp;lt;li&amp;gt;Draw the terrain&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save the image to your working directory, call it heightmap.png&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
{{Tip|Black represents the lowest elevation on the map, white represents the highest, in between lies all the shades of grey. Hard edges in the image will be cliffs, and smooth gradients will be ramps.}}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-height.png|256px]] || [[File:Mapdev-height-example.png]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Height Map !! Ingame Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
== Edit mapinfo.lua ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open the mapinfo.lua file in a text editor&lt;br /&gt;
&amp;lt;li&amp;gt;Change the &amp;lt;code&amp;gt;minHeight&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;maxHeight&amp;lt;/code&amp;gt; variables to &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;256&amp;lt;/code&amp;gt; respectively&amp;lt;br&amp;gt;&lt;br /&gt;
These values control the overall height of the terrain, and will be unique to your map. After loading up the map in game you may want to revisit and tweak these values to get the best result.&amp;lt;br&amp;gt;&lt;br /&gt;
The resulting portion of code should appear like this:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   smf = {&lt;br /&gt;
      minHeight = 10,&lt;br /&gt;
      maxHeight = 256,&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Create Metal Map =&lt;br /&gt;
{{Caution|There are several games for Spring which use their own resourcing system. If you are creating a map for one of those games, a metal map may not be necessary, however it is always nice if you can make your maps as compatible with other games as possible, but this is a choice left entirely up to you.}}&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check the [[Mapdev:metal|metal]] page to get our image dimensions. In our case a 4x4 map yields an image resolution of 128x128 pixels&lt;br /&gt;
&amp;lt;li&amp;gt;Create a 128x128 RGB image using your image editor&lt;br /&gt;
&amp;lt;li&amp;gt;Paint the whole image black&lt;br /&gt;
&amp;lt;li&amp;gt;Paint full red spots 6 or so pixels in diameter on the places where you want metal to appear in game.&lt;br /&gt;
&amp;lt;li&amp;gt;Save the image to your working directory, call it metalmap.png&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-metal.png|256px]] || [[File:Mapdev-metal-example.png]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Metal Map !! Ingame Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
== Edit mapinfo.lua ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open the mapinfo.lua file in a text editor&lt;br /&gt;
&amp;lt;li&amp;gt;Change the &amp;lt;code&amp;gt;maxMetal &amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;extractorRadius&amp;lt;/code&amp;gt; variables to &amp;lt;code&amp;gt;6.0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;32.0&amp;lt;/code&amp;gt; respectively&amp;lt;br&amp;gt;&lt;br /&gt;
These variables control the maximum amount of metal that a metal extractor can extract at full capacity, and  the radius that a metal extractor will be able to draw from.&amp;lt;br&amp;gt;&lt;br /&gt;
The resulting portion of code will appear thus:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   maxMetal = 6.0,&lt;br /&gt;
   extractorRadius = 32.0,&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Create Diffuse Texture =&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check the [[Mapdev:diffuse|diffuse]] page to get our image dimensions. In our case a 4x4 map yields an image resolution of 2048x2048 pixels&lt;br /&gt;
&amp;lt;li&amp;gt;Create a 2048x2048 RGB image using your image editor&lt;br /&gt;
&amp;lt;li&amp;gt;Paint your ground colour in such a way that it compliments the height of the terrain, and metal spots.&lt;br /&gt;
&amp;lt;li&amp;gt;Save the image to your working directory, call it diffuse.png&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
{{Tip|It may be useful to use the heightmap.png and metalmap.png images as a starting points, scaling them up to size, and then painting over the top.}}&lt;br /&gt;
{{Caution|The larger the map the greater the file size this texture will be, a 4x4 map at 2048x2048 the diffuse texture image is already at 5.4mb, imagine a 32x32 size map, it would be in the hundreds of megabytes. Working with large textures is difficult, and requires good hardware. }}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-diffuse.jpg]] || [[File:Mapdev-diffuse-example.png]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Diffuse Map !! Ingame Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Create Mini Map =&lt;br /&gt;
The [[Mapdev:minimap|mini-map]] is a thumbnail image of the the whole map displayed in lobbies when selecting maps.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load up your diffuse.png image&lt;br /&gt;
&amp;lt;li&amp;gt;Scale the image to exactly 1024x1024 pixels&lt;br /&gt;
&amp;lt;li&amp;gt;Save the image to your working directory, call it mini.png&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Create Grass Map =&lt;br /&gt;
Grass adds additional depth to your map, giving it a little bit extra.&lt;br /&gt;
# Check the [[Mapdev:grass|grass]] page to get our image dimensions. In our case a 4x4 map yields a image resolution of 64x64 pixels&lt;br /&gt;
# Create a 64x64 RGB image using your image editor&lt;br /&gt;
# Paint the image fully black to begin with&lt;br /&gt;
# Paint varying strengths of blue for where you want the grass to show up.&lt;br /&gt;
# Save the image to your working directory, call it grassmap.png&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-grass.png]] || [[File:Mapdev-grass-example.png|455px]]&lt;br /&gt;
|-&lt;br /&gt;
! Grass map !! In Game Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Define Start Positions =&lt;br /&gt;
considering the small size of the map we will only define two teams&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open the mapinfo.lua file in a text editor&lt;br /&gt;
&amp;lt;li&amp;gt;Locate the teams subtable and delete the lines for teams 2 and 3&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; coordinate for each team to define their start location&amp;lt;br&amp;gt;&lt;br /&gt;
The coordinates for spring relate 1:1 with the pixels in the diffuse map. Starting at the top left of the image at (0,0). &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; increases horizontally to the right, &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; increases vertically downwards.&amp;lt;br&amp;gt;&lt;br /&gt;
The code should look similar to this:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
  ...&lt;br /&gt;
  teams = {&lt;br /&gt;
    [0] = {startPos = {x = 256, z = 1024}},&lt;br /&gt;
    [1] = {startPos = {x = 1792, z = 1024}},&lt;br /&gt;
  },&lt;br /&gt;
  ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| [[File:Mapdev-coords.png]]&lt;br /&gt;
|-&lt;br /&gt;
! Coordinates&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
= Review =&lt;br /&gt;
From the tutorial we have learned how to make the:&lt;br /&gt;
* Height map&lt;br /&gt;
* Diffuse texture&lt;br /&gt;
* Metal map&lt;br /&gt;
* Mini map&lt;br /&gt;
* Grass map&lt;br /&gt;
* Start locations&lt;br /&gt;
&lt;br /&gt;
Your directory structure should look similar to this:&lt;br /&gt;
&amp;lt;pre&amp;gt;working directory&lt;br /&gt;
  |-mymapname.sdd/&lt;br /&gt;
  | |-LuaGaia/&lt;br /&gt;
  | |-mapconfig/&lt;br /&gt;
  | |-maphelper/&lt;br /&gt;
  | |-maps/&lt;br /&gt;
  | |-mapinfo.lua&lt;br /&gt;
  | |-mapoptions.lua&lt;br /&gt;
  |-grassmap.png&lt;br /&gt;
  |-heightmap.png&lt;br /&gt;
  |-metalmap.png&lt;br /&gt;
  |-diffuse.png&lt;br /&gt;
  |-minimap.png&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to get the map loaded into the game&lt;br /&gt;
&lt;br /&gt;
= Finalizing =&lt;br /&gt;
Continue to [[Mapdev:Tutorial_Finalizing|this page]] to compile, test and archive your map for distribution.&lt;br /&gt;
&lt;br /&gt;
= I want more =&lt;br /&gt;
Continue to [[Mapdev:Tutorial_Intermediate|stage two]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:grass&amp;diff=13805</id>
		<title>Mapdev:grass</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:grass&amp;diff=13805"/>
		<updated>2015-04-06T07:15:02Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Distribution Image */  fixed image dimensions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Grass =&lt;br /&gt;
Grass is entirely optional, but can be customized via map parameters and adds a nice touch to your map.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| [[File:Mapdev-grass.png]] || [[File:Mapdev-grass-example.png|451px]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Grass Disribution&lt;br /&gt;
! In Game Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   resources = {&lt;br /&gt;
      ...&lt;br /&gt;
      grassBladeTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      grassShadingTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
   grass = {&lt;br /&gt;
      bladeWaveScale = 1.0,&lt;br /&gt;
      bladeWidth = 0.32,&lt;br /&gt;
      bladeHeight = 4.0,&lt;br /&gt;
      bladeAngle = 1.57,&lt;br /&gt;
      bladeColor = {0.59, 0.81, 0.57},&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
=== Blade Wave Scale ===&lt;br /&gt;
Defaults to 1. It specifies how much the blades will wave in the wind. Higher makes them wave more.&lt;br /&gt;
&lt;br /&gt;
=== Blade Height ===&lt;br /&gt;
Default is 4. Defines the length of the blade of grass in elmos.&lt;br /&gt;
&lt;br /&gt;
=== Blade Angle ===&lt;br /&gt;
Default is pi/4. It defines how much each blade of grass curves.&lt;br /&gt;
&lt;br /&gt;
=== Blade Color ===&lt;br /&gt;
does nothing when blade texture is set.&lt;br /&gt;
&lt;br /&gt;
== Distribution Image ==&lt;br /&gt;
Formerly [[Mapdev:features|Feature]] Map. Grass distribution is defined by blue pixels, the more blue the pixel is (the closer to blue 255 it is), the thicker grass will be at that location. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| The distribution map is an intermediary file compiled into the SMF/SMT files using [[MapConv]] or [[MapConvNG]].&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that Mapconv programs support&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| &amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!Spring Map Size&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
!pixels = Spring Map Size * 16&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 32&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 96&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| 512&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left;font-style:italic&amp;quot; colspan=2 | &amp;amp;#42; must be multiples of 2&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shading Image ==&lt;br /&gt;
* If a shading image is not present, the minimap will be used in its place.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| ./maps/&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| PNG, TGA&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| Any, recommended powers of two, will be stretched over the terrain.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| [[File:Grassmap_Map_example.jpegâ€Ž]] || [[File:Grassmap_Map_ingame.jpg|512px|â€Ž]]&lt;br /&gt;
|-&lt;br /&gt;
! Example !! Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Blade Texture ==&lt;br /&gt;
{{FIXME}} need more info.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| ./maps/&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| PNG, TGA&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| {{FIXME}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| {{FIXME}} || {{FIXME}}&lt;br /&gt;
|-&lt;br /&gt;
! Example !! Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Forum Discussions =&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=27585 Try to keep perspective]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Tutorial_Simple&amp;diff=13751</id>
		<title>Mapdev:Tutorial Simple</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Tutorial_Simple&amp;diff=13751"/>
		<updated>2015-04-06T07:08:57Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Create Metal Map */ fixed image dimension values&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Beginners Tutorial Stage 1 =&lt;br /&gt;
This beginners tutorial is aimed at getting you from nothing, to something simple which you can build upon.&lt;br /&gt;
&lt;br /&gt;
* We&#039;ll start with the height map, defining the structure of the terrain&lt;br /&gt;
* Then the metalmap, a resource scheme built into the spring engine&lt;br /&gt;
* The diffuse texture, defining the colour of the terrain&lt;br /&gt;
* The minimap, for when selecting the map in the game lobby&lt;br /&gt;
* The grass map, for that extra flourish of detail&lt;br /&gt;
* Finally set up the start positions&lt;br /&gt;
&lt;br /&gt;
= What you will need =&lt;br /&gt;
* An image editor, such as [http://www.gimp.org/ GIMP] or [http://www.adobe.com/products/photoshop.html Adobe Photoshop], [http://en.wikipedia.org/wiki/List_of_raster_graphics_editors#List etc]&lt;br /&gt;
* [http://www.7-zip.org/ 7zip]&lt;br /&gt;
* Windows - [[MapConv]], Linux - [[MapConvNG]]&lt;br /&gt;
* a copy of the map blueprint [https://github.com/jk3064/Map-Blueprint/archive/master.zip archive]&lt;br /&gt;
&lt;br /&gt;
There are a multitude of other tools you can use to make maps, however for the purposes of this beginners tutorial, these are the only ones you will need. Check the [[Mapdev:Main#Tools|tools]] section for more information.&lt;br /&gt;
&lt;br /&gt;
= Download =&lt;br /&gt;
* [http://springfiles.com/spring/other/mapdev-stage1-working-files Download] the working  files&lt;br /&gt;
* [http://springfiles.com/spring/spring-maps/mapdev-stage1 Download] the completed map archive&lt;br /&gt;
&lt;br /&gt;
= Preparation =&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Extract the mapcontainer.sdd folder from the blueprint archive into your working directory.&amp;lt;/li&amp;gt;&lt;br /&gt;
Your directory structure should look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;working directory&lt;br /&gt;
  |-mapcontainer.sdd/&lt;br /&gt;
    |-LuaGaia/&lt;br /&gt;
    |-mapconfig/&lt;br /&gt;
    |-maphelper/&lt;br /&gt;
    |-maps/&lt;br /&gt;
    |-mapinfo.lua&lt;br /&gt;
    |-mapoptions.lua&lt;br /&gt;
&amp;lt;/pre&amp;gt;    &lt;br /&gt;
&amp;lt;li&amp;gt;Rename the mapcontainer.sdd folder to the name of your map, eg. mymap.sdd&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the following variables in the mapinfo.lua file, ignore the rest for now.&lt;br /&gt;
* name&lt;br /&gt;
* shortname&lt;br /&gt;
* description&lt;br /&gt;
* author&lt;br /&gt;
* version (just put like v1 or something in here)&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Create Height map =&lt;br /&gt;
For this tutorial we will be creating a 4x4 size map, which is relatively small. Typically maps will be 8x8 (for a 1v1) or larger, but entirely depends on the game you are targeting.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check the [[Mapdev:height|height]] page to get our image dimensions. In our case a 4x4 map yields a image resolution of 257x257 pixels&lt;br /&gt;
&amp;lt;li&amp;gt;Create a 257x257 greyscale image using your image editor&lt;br /&gt;
&amp;lt;li&amp;gt;Draw the terrain&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save the image to your working directory, call it heightmap.png&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
{{Tip|Black represents the lowest elevation on the map, white represents the highest, in between lies all the shades of grey. Hard edges in the image will be cliffs, and smooth gradients will be ramps.}}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-height.png|256px]] || [[File:Mapdev-height-example.png]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Height Map !! Ingame Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
== Edit mapinfo.lua ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open the mapinfo.lua file in a text editor&lt;br /&gt;
&amp;lt;li&amp;gt;Change the &amp;lt;code&amp;gt;minHeight&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;maxHeight&amp;lt;/code&amp;gt; variables to &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;256&amp;lt;/code&amp;gt; respectively&amp;lt;br&amp;gt;&lt;br /&gt;
These values control the overall height of the terrain, and will be unique to your map. After loading up the map in game you may want to revisit and tweak these values to get the best result.&amp;lt;br&amp;gt;&lt;br /&gt;
The resulting portion of code should appear like this:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   smf = {&lt;br /&gt;
      minHeight = 10,&lt;br /&gt;
      maxHeight = 256,&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Create Metal Map =&lt;br /&gt;
{{Caution|There are several games for Spring which use their own resourcing system. If you are creating a map for one of those games, a metal map may not be necessary, however it is always nice if you can make your maps as compatible with other games as possible, but this is a choice left entirely up to you.}}&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check the [[Mapdev:metal|metal]] page to get our image dimensions. In our case a 4x4 map yields an image resolution of 128x128 pixels&lt;br /&gt;
&amp;lt;li&amp;gt;Create a 128x128 RGB image using your image editor&lt;br /&gt;
&amp;lt;li&amp;gt;Paint the whole image black&lt;br /&gt;
&amp;lt;li&amp;gt;Paint full red spots 6 or so pixels in diameter on the places where you want metal to appear in game.&lt;br /&gt;
&amp;lt;li&amp;gt;Save the image to your working directory, call it metalmap.png&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-metal.png|256px]] || [[File:Mapdev-metal-example.png]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Metal Map !! Ingame Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
== Edit mapinfo.lua ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open the mapinfo.lua file in a text editor&lt;br /&gt;
&amp;lt;li&amp;gt;Change the &amp;lt;code&amp;gt;maxMetal &amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;extractorRadius&amp;lt;/code&amp;gt; variables to &amp;lt;code&amp;gt;6.0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;32.0&amp;lt;/code&amp;gt; respectively&amp;lt;br&amp;gt;&lt;br /&gt;
These variables control the maximum amount of metal that a metal extractor can extract at full capacity, and  the radius that a metal extractor will be able to draw from.&amp;lt;br&amp;gt;&lt;br /&gt;
The resulting portion of code will appear thus:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   maxMetal = 6.0,&lt;br /&gt;
   extractorRadius = 32.0,&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Create Diffuse Texture =&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check the [[Mapdev:diffuse|diffuse]] page to get our image dimensions. In our case a 4x4 map yields an image resolution of 2048x2048 pixels&lt;br /&gt;
&amp;lt;li&amp;gt;Create a 2048x2048 RGB image using your image editor&lt;br /&gt;
&amp;lt;li&amp;gt;Paint your ground colour in such a way that it compliments the height of the terrain, and metal spots.&lt;br /&gt;
&amp;lt;li&amp;gt;Save the image to your working directory, call it diffuse.png&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
{{Tip|It may be useful to use the heightmap.png and metalmap.png images as a starting points, scaling them up to size, and then painting over the top.}}&lt;br /&gt;
{{Caution|The larger the map the greater the file size this texture will be, a 4x4 map at 2048x2048 the diffuse texture image is already at 5.4mb, imagine a 32x32 size map, it would be in the hundreds of megabytes. Working with large textures is difficult, and requires good hardware. }}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-diffuse.jpg]] || [[File:Mapdev-diffuse-example.png]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Diffuse Map !! Ingame Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Create Mini Map =&lt;br /&gt;
The [[Mapdev:minimap|mini-map]] is a thumbnail image of the the whole map displayed in lobbies when selecting maps.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load up your diffuse.png image&lt;br /&gt;
&amp;lt;li&amp;gt;Scale the image to exactly 1024x1024 pixels&lt;br /&gt;
&amp;lt;li&amp;gt;Save the image to your working directory, call it mini.png&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Create Grass Map =&lt;br /&gt;
Grass adds additional depth to your map, giving it a little bit extra.&lt;br /&gt;
# Check the [[Mapdev:grass|grass]] page to get our image dimensions. In our case a 4x4 map yields a image resolution of 256x256 pixels&lt;br /&gt;
# Create a 256x256 RGB image using your image editor&lt;br /&gt;
# Paint the image fully black to begin with&lt;br /&gt;
# Paint varying strengths of blue for where you want the grass to show up.&lt;br /&gt;
# Save the image to your working directory, call it grassmap.png&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-grass.png]] || [[File:Mapdev-grass-example.png|455px]]&lt;br /&gt;
|-&lt;br /&gt;
! Grass map !! In Game Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Define Start Positions =&lt;br /&gt;
considering the small size of the map we will only define two teams&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open the mapinfo.lua file in a text editor&lt;br /&gt;
&amp;lt;li&amp;gt;Locate the teams subtable and delete the lines for teams 2 and 3&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; coordinate for each team to define their start location&amp;lt;br&amp;gt;&lt;br /&gt;
The coordinates for spring relate 1:1 with the pixels in the diffuse map. Starting at the top left of the image at (0,0). &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; increases horizontally to the right, &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; increases vertically downwards.&amp;lt;br&amp;gt;&lt;br /&gt;
The code should look similar to this:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
  ...&lt;br /&gt;
  teams = {&lt;br /&gt;
    [0] = {startPos = {x = 256, z = 1024}},&lt;br /&gt;
    [1] = {startPos = {x = 1792, z = 1024}},&lt;br /&gt;
  },&lt;br /&gt;
  ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| [[File:Mapdev-coords.png]]&lt;br /&gt;
|-&lt;br /&gt;
! Coordinates&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
= Review =&lt;br /&gt;
From the tutorial we have learned how to make the:&lt;br /&gt;
* Height map&lt;br /&gt;
* Diffuse texture&lt;br /&gt;
* Metal map&lt;br /&gt;
* Mini map&lt;br /&gt;
* Grass map&lt;br /&gt;
* Start locations&lt;br /&gt;
&lt;br /&gt;
Your directory structure should look similar to this:&lt;br /&gt;
&amp;lt;pre&amp;gt;working directory&lt;br /&gt;
  |-mymapname.sdd/&lt;br /&gt;
  | |-LuaGaia/&lt;br /&gt;
  | |-mapconfig/&lt;br /&gt;
  | |-maphelper/&lt;br /&gt;
  | |-maps/&lt;br /&gt;
  | |-mapinfo.lua&lt;br /&gt;
  | |-mapoptions.lua&lt;br /&gt;
  |-grassmap.png&lt;br /&gt;
  |-heightmap.png&lt;br /&gt;
  |-metalmap.png&lt;br /&gt;
  |-diffuse.png&lt;br /&gt;
  |-minimap.png&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to get the map loaded into the game&lt;br /&gt;
&lt;br /&gt;
= Finalizing =&lt;br /&gt;
Continue to [[Mapdev:Tutorial_Finalizing|this page]] to compile, test and archive your map for distribution.&lt;br /&gt;
&lt;br /&gt;
= I want more =&lt;br /&gt;
Continue to [[Mapdev:Tutorial_Intermediate|stage two]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:metal&amp;diff=13930</id>
		<title>Mapdev:metal</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:metal&amp;diff=13930"/>
		<updated>2015-04-06T06:13:54Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Image File */  how this has been wrong for so long bothers me.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Metal =&lt;br /&gt;
Metal maps are used for the built in resourcing scheme (Metal/Energy), they define metal areas on a battlefield based upon the values in the red channel of the metal map.&lt;br /&gt;
&lt;br /&gt;
{{Caution|There are several games for Spring which use their own resourcing system. If you are creating a map for one of those games a metal map may not be necessary, however it is always nice if you can make your maps as compatible with other games as possible, but this is a choice left entirely up to you.}}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-metal.png|256px]] || [[File:Mapdev-metal-example.png]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Metal Map !! Ingame Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
* [[Mapdev:mapinfo.lua|mapinfo.lua]]&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;mapinfo ={&lt;br /&gt;
   ...&lt;br /&gt;
   maxMetal        = 0.02,&lt;br /&gt;
   extractorRadius = 500.0,&lt;br /&gt;
   autoShowMetal   = true,&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image File ==&lt;br /&gt;
* The red value of pixel corresponds to the metal value.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| The metal map is an intermediary file compiled into the SMF file using [[MapConv]] or [[MapConvNG]].&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that the Mapconv programs support&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| Greyscale&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| &amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!Spring Map Size&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
!pixels = Spring Map Size * 32&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 64&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 128&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 256&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| 1024&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left;font-style:italic&amp;quot; colspan=2 | &amp;amp;#42; must be multiples of 2&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Additional Information =&lt;br /&gt;
== Patch Technique ==&lt;br /&gt;
If you do want perfect metal patches, use a 6x6 pixel pencil in your image editor with a red value of 255. This combined with setting the &amp;quot;MaxMetal&amp;quot; tag in the definitions to 1, will result in a perfect 2.0 metal generation per patch (using Balanaced Annihilation values). The game use isn&#039;t the point however. The fact is that if you can predict how much each spot will output (typically), using the &amp;quot;MaxMetal&amp;quot; parameter, you can easily scale the values up and down. As an example of another extreme, Evolution RTS dictates that all metal patches will output 0.5 metal regardless of the map settings. So whether you need to put a lot of thought into your metal map values depends entirely upon the game for which you are creating the map.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:minimap&amp;diff=13939</id>
		<title>Mapdev:minimap</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:minimap&amp;diff=13939"/>
		<updated>2015-03-31T14:24:56Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Image File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mini-Map =&lt;br /&gt;
It is traditionally a simplified top down view of the battlefield, it can also be an arbitrary image. It is used in the lobby when viewing and selecting maps.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-diffuse.jpg]] || [[File:Minimap_example.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Minimap !! Example of use&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== Image File ==&lt;br /&gt;
* The mini map will update when the terrain is terraformed to reflect the changes.&lt;br /&gt;
* The mini map is used as the grass shading map if a grass shading map hasn&#039;t been specified.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| This image is an intermediary file compiled into the SMF file using [[MapConv]] or [[MapConvNG]], it can also be specified in the mapinfo.lua&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that Mapconv programs can use&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| 1024x1024&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:mapinfo.lua&amp;diff=13905</id>
		<title>Mapdev:mapinfo.lua</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:mapinfo.lua&amp;diff=13905"/>
		<updated>2015-03-31T13:30:13Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* smf */ added minimap tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= mapinfo.lua Reference =&lt;br /&gt;
This file is the primary configuration file for maps, list many things including resources, attributes, ad properties.&lt;br /&gt;
&lt;br /&gt;
==Source==&lt;br /&gt;
The engine source code which reads this file from the map is viewable here:&lt;br /&gt;
* {{sourcelink|file=rts/Map/MapInfo.cpp}}&lt;br /&gt;
* {{sourcelink|file=rts/Map/MapParser.cpp}}&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Can be found in the [https://github.com/jk3064/Map-Blueprint/archive/master.zip map blueprint]&lt;br /&gt;
&lt;br /&gt;
= File Location =&lt;br /&gt;
relative to the root directory of the map&lt;br /&gt;
: ./mapinfo.lua&lt;br /&gt;
&lt;br /&gt;
= Formatting =&lt;br /&gt;
check [http://www.lua.org/docs.html Lua Documentation] for syntax etc.&lt;br /&gt;
&lt;br /&gt;
In this wiki page, variables are organised as such:&lt;br /&gt;
{{tag|name=VariableName|type=type|range=[valid range]|special=Required|default=value&lt;br /&gt;
|description=Description}}&lt;br /&gt;
&lt;br /&gt;
== Data Types ==&lt;br /&gt;
{{DataTypes}}&lt;br /&gt;
&lt;br /&gt;
= Sections =&lt;br /&gt;
== mapinfo ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   name        = &amp;quot;MyMap&amp;quot;,&lt;br /&gt;
   shortname   = &amp;quot;&amp;quot;,&lt;br /&gt;
   description = &amp;quot;&amp;quot;,&lt;br /&gt;
   author      = &amp;quot;&amp;quot;,&lt;br /&gt;
   version     = &amp;quot;&amp;quot;,&lt;br /&gt;
   --mutator   = &amp;quot;deployment&amp;quot;;&lt;br /&gt;
   --mapfile   = &amp;quot;&amp;quot;, --// location of smf/sm3 file, should be set&lt;br /&gt;
   modtype     = 3, --// 1=primary, 0=hidden, 3=map&lt;br /&gt;
   depend      = {&amp;quot;Map Helper v1&amp;quot;},&lt;br /&gt;
   replace     = {},&lt;br /&gt;
&lt;br /&gt;
   --startpic   = &amp;quot;&amp;quot;, --// deprecated&lt;br /&gt;
   --StartMusic = &amp;quot;&amp;quot;, --// deprecated&lt;br /&gt;
&lt;br /&gt;
   maphardness     = 100,&lt;br /&gt;
   notDeformable   = false,&lt;br /&gt;
   gravity         = 130,&lt;br /&gt;
   tidalStrength   = 0,&lt;br /&gt;
   maxMetal        = 0.02,&lt;br /&gt;
   extractorRadius = 500.0,&lt;br /&gt;
   voidWater       = false,&lt;br /&gt;
   voidGround      = false,&lt;br /&gt;
   autoShowMetal   = true,&lt;br /&gt;
&lt;br /&gt;
   smf = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   sound = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   resources = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   splats = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   atmosphere = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   grass = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   lighting = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   water = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   teams = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   terrainTypes = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
&lt;br /&gt;
   custom = {&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tag|name=name|type=string|special=Required|default=none&lt;br /&gt;
|description=Name of the map}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=shortname|type=string|special=Required&lt;br /&gt;
|description=maps will not show in the map list without a valid shortname(not sure on its requirements)}} &lt;br /&gt;
&lt;br /&gt;
{{tag|name=description|type=string|default=&amp;lt;span style=&amp;quot;color:#cccccc;text-shadow: #111 2px 2px 2px;&amp;quot;&amp;gt;name&amp;lt;/span&amp;gt;&lt;br /&gt;
|description=The description of the map that shows in the multiplayer battleroom}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=author|type=string|default=&amp;quot;&amp;quot;&lt;br /&gt;
|description=Author of the map}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=version|type=string&lt;br /&gt;
|description=version, appended to name}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=mutator|type=string}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=mapfile|type=string&lt;br /&gt;
|description=location of smf/sm3 file}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=modtype|type=int|range=[013]|special=Required&lt;br /&gt;
|description=1=primary, 0=hidden, 3=map}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=depend|special=Required}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=replace}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=maphardness|type=float|default=100.0&lt;br /&gt;
|description=Defines how much a map will deform from impacts. Higher values mean less deformation, negative values will result in negative deformation (really funny looking)}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=notDeformable|type=bool|default=false&lt;br /&gt;
|description=Setting it to 1 means that no explosions can deform the map.}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=gravity|type=float|range=[0.001-max]|default=130.0&lt;br /&gt;
|description=As you would expect, affects ballistics and how far units fly after an explosion. The force of gravity in units/sec^2}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=tidalStrength|type=float|range=[0.0-max]|default=0.0&lt;br /&gt;
|description=The amount of energy which will be given by tidal generators.}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=maxMetal|type=float|range=[0.0-max]|default=0.02&lt;br /&gt;
|description=How much metal a map square with the maximum metal value gives.}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=extractorRadius|type=float|range=[0.0-max]|default=500&lt;br /&gt;
|description=The radius of effect that a single extractor will extract from. If two radii intersect, both extractors will suffer from reduced output.}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=voidWater|type=bool|default=false&lt;br /&gt;
|description=Voidwater means there will be no water plane, and all parts of the map under water will be completely transparent, to show the skybox through the map. For example, check [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=20684&amp;amp;hilit=apophis Apophis_v2]}}. Additionally for this to work, the &amp;lt;code&amp;gt;mapinfo.water.planeColor&amp;lt;/code&amp;gt; variable must not be specified in the mapinfo.lua file, delete or comment it out if it exists.&lt;br /&gt;
&lt;br /&gt;
{{tag|name=voidGround|type=bool|default=false&lt;br /&gt;
|special=&amp;lt;span class=&amp;quot;warning&amp;quot;&amp;gt;New in 92.0&amp;lt;/span&amp;gt;&lt;br /&gt;
|description=Allows portions of the ground to be invisible if the map was compiled with a diffuse image that has an alpha channel. The terrain still exists, its just transparent.}}. &lt;br /&gt;
&lt;br /&gt;
{{tag|name=autoShowMetal|type=bool|default=true&lt;br /&gt;
|description=Defines whether the metal map (F4 mode) is shown automatically when a mex is queued for placement.}}&lt;br /&gt;
&lt;br /&gt;
== smf ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   smf = {&lt;br /&gt;
      minHeight = 1000,&lt;br /&gt;
      maxHeight = -300,&lt;br /&gt;
      minimapTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      smtFileName0 = &amp;quot;&amp;quot;,&lt;br /&gt;
      smtFileName1 = &amp;quot;&amp;quot;,&lt;br /&gt;
      smtFileName.. = &amp;quot;&amp;quot;,&lt;br /&gt;
      smtFileNameN = &amp;quot;&amp;quot;,&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{tag|name=minHeight|type=float|default=0.0&lt;br /&gt;
|description=Overrides the minimum map height specified while compiling. Compile time height used if undefined}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=maxHeight|type=float|default=0.0&lt;br /&gt;
|description=Overrides the maximum map height specified while compiling. Compile time height used if undefined}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=minimapTex|type=string&lt;br /&gt;
| description=Overrides the minimap with an image of your choice, omitting minimap from smf used if undefined}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=smtFileName[N]|type=string}}&lt;br /&gt;
&lt;br /&gt;
== sound ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   sound = {&lt;br /&gt;
      preset = &amp;quot;default&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
      passfilter = {&lt;br /&gt;
         ...&lt;br /&gt;
      },&lt;br /&gt;
&lt;br /&gt;
      reverb = {&lt;br /&gt;
         ...&lt;br /&gt;
      },&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tag|name=preset|type=string|default=&amp;quot;default&amp;quot;&lt;br /&gt;
|description=Sets the _reverb_ preset (= echo parameters), passfilter (the direct sound) is unchanged. To get a list of all possible presets check: [https://github.com/spring/spring/blob/master/rts/System/Sound/EFXPresets.cpp EFXPresets.cpp]}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|You can change the preset at runtime via:&lt;br /&gt;
* /tset UseEFX [1&amp;amp;#124;0]&lt;br /&gt;
* /tset snd_eaxpreset preset_name   (may change to a real cmd in the future)&lt;br /&gt;
* /tset snd_filter %gainlf %gainhf  (may    &amp;quot;   &amp;quot;  &amp;quot;  &amp;quot;    &amp;quot;  &amp;quot;   &amp;quot;    &amp;quot;   )}}&lt;br /&gt;
&lt;br /&gt;
=== passfilter ===&lt;br /&gt;
Note, you likely want to set these tags due to the fact that they are _not_ set by `preset`!  So if you want to create a muffled sound you need to use them.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   sound = {&lt;br /&gt;
      ...&lt;br /&gt;
      passfilter = {&lt;br /&gt;
         gainlf = 1.0,&lt;br /&gt;
         gainhf = 1.0,&lt;br /&gt;
      },&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tag|name=gainlf|type=float}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=gainhf|type=float}}&lt;br /&gt;
&lt;br /&gt;
=== reverb ===&lt;br /&gt;
Normally you just want use the `preset` tag but you can use handtweak a preset if wanted with the following tags. To know their function &amp;amp; ranges check the official OpenAL1.1 SDK document.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   sound = {&lt;br /&gt;
      ...&lt;br /&gt;
      reverb = {         &lt;br /&gt;
         --density&lt;br /&gt;
         --diffusion&lt;br /&gt;
         --gain&lt;br /&gt;
         --gainhf&lt;br /&gt;
         --gainlf&lt;br /&gt;
         --decaytime&lt;br /&gt;
         --decayhflimit&lt;br /&gt;
         --decayhfratio&lt;br /&gt;
         --decaylfratio&lt;br /&gt;
         --reflectionsgain&lt;br /&gt;
         --reflectionsdelay&lt;br /&gt;
         --reflectionspan&lt;br /&gt;
         --latereverbgain&lt;br /&gt;
         --latereverbdelay&lt;br /&gt;
         --latereverbpan&lt;br /&gt;
         --echotime&lt;br /&gt;
         --echodepth&lt;br /&gt;
         --modtime&lt;br /&gt;
         --moddepth&lt;br /&gt;
         --airabsorptiongainhf&lt;br /&gt;
         --hfreference&lt;br /&gt;
         --lfreference&lt;br /&gt;
         --roomrollofffactor&lt;br /&gt;
      },&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== resources ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   resources = {&lt;br /&gt;
      grassBladeTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      grassShadingTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      detailTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      specularTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      splatDetailTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      splatDistrTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      skyReflectModTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      detailNormalTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      lightEmissionTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      parallaxHeightTex = &amp;quot;&amp;quot;,&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tag|name=grassBladeTex|type=string&lt;br /&gt;
|description=Specifies the texture to be used on the grass blades themselves. Green-yellow gradients make for some interesting effects. Defaults to the internally generated blade texture. More Information: [[Mapdev:grass]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=grassShadingTex|type=string&lt;br /&gt;
|description=Specifies the color variation of the grass across the map. This defaults to the minimap, so the grass color can match the map color. More Information: [[Mapdev:grass]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=detailTex|type=string&lt;br /&gt;
|description=Specifies the detail texture for the map. More Information: [[Mapdev:detail]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=specularTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:specular]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=splatDetailTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:splatdetail]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=splatDistrTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:splatdetail]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=skyReflectModTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:skyreflectmod]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=detailNormalTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:normal]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=lightEmissionTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:lightemission]]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=parallaxHeightTex|type=string&lt;br /&gt;
|description=More Information: [[Mapdev:parallax]]}}&lt;br /&gt;
&lt;br /&gt;
== splats ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   splats = {&lt;br /&gt;
      texScales = {0.02, 0.02, 0.02, 0.02},&lt;br /&gt;
      texMults  = {1.0, 1.0, 1.0, 1.0},&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{tag|name=texScales|type=float[4]&lt;br /&gt;
|default={0.2, 0.2, 0.2, 0.2}|description=Scale value for the splat texture in the RGBA channels respectively.}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=texMults|type=float[4]&lt;br /&gt;
|default={1.0, 1.0, 1.0, 1.0}|description=Value for the splat texture in the RGBA channels respectively.}}&lt;br /&gt;
&lt;br /&gt;
== atmosphere ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   atmosphere = {&lt;br /&gt;
      minWind      = 5.0,&lt;br /&gt;
      maxWind      = 25.0,&lt;br /&gt;
&lt;br /&gt;
      fogStart     = 0.1,&lt;br /&gt;
      fogEnd       = 1.0,&lt;br /&gt;
      fogColor     = {0.7, 0.7, 0.8},&lt;br /&gt;
&lt;br /&gt;
      sunColor     = {1.0, 1.0, 1.0},&lt;br /&gt;
      skyColor     = {0.1, 0.15, 0.7},&lt;br /&gt;
      skyDir       = {0.0, 0.0, -1.0},&lt;br /&gt;
      skyBox       = &amp;quot;&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
      cloudDensity = 0.5,&lt;br /&gt;
      cloudColor   = {1.0, 1.0, 1.0},&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tag|name=minWind|type=float|range=[0.0-max]|default=5.0|&lt;br /&gt;
description=The minimum amount of energy the wind on the map will give. is clamped to maxwind}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=maxWind|type=float|range=[0.0-max]|default=25.0&lt;br /&gt;
|description=The maximum amount of energy the wind on the map will give}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=fogStart|type=float|default=0.1&lt;br /&gt;
|description=The distance from the camera at which the fog will start. &amp;lt;code&amp;gt;viewRange * fogStart&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=fogEnd|type=float|default=1.0&lt;br /&gt;
|description=The distance from the camera that fog is opaque. &amp;lt;code&amp;gt;viewRange * fogEnd&amp;lt;/code&amp;gt; }}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=fogColor|type=rgb|default={0.7, 0.7, 0.8}&lt;br /&gt;
|description=The color of the fog and the infinite plane below the world. The values are in the order Red, Green, Blue. However, giving values higher than 1.0 will give brighter fog and less than 0.0 will give darker}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=sunColor|type=rgb|default={1.0, 1.0, 1.0}&lt;br /&gt;
|description=The color of the sun in the sky. The values are in the order Red, Green, Blue. This will also effect the size of the star. As the values increase (including over 1.0), the disc will get bigger; the inverse is also true}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=skyColor|type=rgb|default={0.1, 0.15, 0.7}&lt;br /&gt;
|description=The color of the sky itself. The values are in the order Red, Green, Blue}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=skyDir|type=float[3]|default={0.0, 0.0, -1.0}&lt;br /&gt;
|description=Is normalised vector}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=skyBox|type=string&lt;br /&gt;
|description=Specify a .dds skybox (also called skycube) for examples and resources see this [http://springrts.com/phpbb/viewtopic.php?f=56&amp;amp;t=11009 thread]}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=cloudDensity|type=float|range=[0.0-max]|default=0.5&lt;br /&gt;
|description=The amount of clouds in the sky}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=cloudColor|type=rgb&lt;br /&gt;
|default={1.0, 1.0, 1.0}|description=The color of the clouds}}&lt;br /&gt;
&lt;br /&gt;
== grass ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   grass = {&lt;br /&gt;
      bladeWaveScale = 1.0,&lt;br /&gt;
      bladeWidth  = 0.32,&lt;br /&gt;
      bladeHeight = 4.0,&lt;br /&gt;
      bladeAngle  = 1.57,&lt;br /&gt;
      bladeColor  = {0.59, 0.81, 0.57},&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{tag|name=bladeWaveScale|type=float|default=1.0&lt;br /&gt;
|description=Specifies how much the wind should effect grass blade movement, as well as the amplitude of the grass motion. Setting it to 0 will stop grass animation}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=bladeWidth|type=float|default=0.32&lt;br /&gt;
|description=Specifies the width of each blade of grass}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=bladeHeight|type=float|default=4.0&lt;br /&gt;
|description=Specifies the length of each blade of grass}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=bladeAngle|type=float|default=1.57&lt;br /&gt;
|description=Specifies the curvature of each blade of grass. Unit is radians. 0 means completely straight blades of grass}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=bladeColor|type=rgb|default={0.59, 0.81, 0.57}&lt;br /&gt;
|description=does nothing when `grassBladeTex` is set}}&lt;br /&gt;
&lt;br /&gt;
== Lighting ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   lighting = {&lt;br /&gt;
      --// dynsun&lt;br /&gt;
      sunStartAngle = 0.0,&lt;br /&gt;
      sunOrbitTime  = 1440.0,&lt;br /&gt;
      sunDir        = {0.0, 1.0, 2.0, 1e9},&lt;br /&gt;
&lt;br /&gt;
      --// unit &amp;amp; ground lighting&lt;br /&gt;
      groundAmbientColor  = {0.5, 0.5, 0.5},&lt;br /&gt;
      groundDiffuseColor  = {0.5, 0.5, 0.5},&lt;br /&gt;
      groundSpecularColor = {0.1, 0.1, 0.1},&lt;br /&gt;
      groundShadowDensity = 0.8,&lt;br /&gt;
      unitAmbientColor    = {0.4, 0.4, 0.4},&lt;br /&gt;
      unitDiffuseColor    = {0.7, 0.7, 0.7},&lt;br /&gt;
      unitSpecularColor   = {0.7, 0.7, 0.7},&lt;br /&gt;
      unitShadowDensity   = 0.8,&lt;br /&gt;
      &lt;br /&gt;
      specularExponent    = 100.0,&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{tag|name=sunStartAngle|type=float|default=0.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=sunOrbitTime|type=float|default=1440.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=sunDir|type=float[3]|default={0.0, 1.0, 2.0}&lt;br /&gt;
|description=The direction of the sun, which is normalized by Spring. The Y-axis is up}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=groundAmbientColor|type=rgb|default={0.5, 0.5, 0.5}&lt;br /&gt;
|description=The ambient (non-sun-lit) color of ground, grass, trees and other features. The values are in the order Red, Green, Blue}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=groundDiffuseColor|type=rgb|default={0.5, 05, 0.5}&lt;br /&gt;
|description=The color of ground where it is fully sun lit (added to GroundAmbientColor). The values are in the order Red, Green, Blue}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=groundSpecularColor|type=rgb|default={0.1, 0.1, 0.1}&lt;br /&gt;
|description=and its effect when a specular map is present?}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=groundShadowDensity|type=float|default=0.8&lt;br /&gt;
|description=How far from the non shadowed to the ambient color stuff in shadow will go.}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=unitAmbientColor|type=float|default={0.4, 0.4, 0.4}&lt;br /&gt;
|description=The ambient (non-sun-lit) color of units and corpses}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=unitDiffuseColor|type=rgb|default={0.7, 0.7, 0.7}&lt;br /&gt;
|description=The color of units where they is fully sun lit (added to UnitAmbientColor). The color of units where they is fully sun lit (added to UnitAmbientColor)}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=unitSpecularColor|type=rgb|default=unitDiffuseColor}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=unitShadowDensity|type=float|default=0.8&lt;br /&gt;
|description=How far from the non shadowed to the ambient color stuff in shadow will go}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=specularExponent|type=float|default=100}}&lt;br /&gt;
&lt;br /&gt;
== water ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   water = {&lt;br /&gt;
      damage =  0.0,&lt;br /&gt;
&lt;br /&gt;
      repeatX = 0.0,&lt;br /&gt;
      repeatY = 0.0,&lt;br /&gt;
&lt;br /&gt;
      absorb    = {0.0, 0.0, 0.0},&lt;br /&gt;
      baseColor = {0.0, 0.0, 0.0},&lt;br /&gt;
      minColor  = {0.0, 0.0, 0.0},&lt;br /&gt;
&lt;br /&gt;
      ambientFactor  = 1.0,&lt;br /&gt;
      diffuseFactor  = 1.0,&lt;br /&gt;
      specularFactor = 1.0,&lt;br /&gt;
      specularPower  = 20.0,&lt;br /&gt;
&lt;br /&gt;
      planeColor = {0.0, 0.4, 0.0},&lt;br /&gt;
&lt;br /&gt;
      surfaceColor  = {0.75, 0.8, 0.85},&lt;br /&gt;
      surfaceAlpha  = 0.55,&lt;br /&gt;
      diffuseColor  = {1.0, 1.0, 1.0},&lt;br /&gt;
      specularColor = {0.5, 0.5, 0.5},&lt;br /&gt;
&lt;br /&gt;
      fresnelMin   = 0.2,&lt;br /&gt;
      fresnelMax   = 0.8,&lt;br /&gt;
      fresnelPower = 4.0,&lt;br /&gt;
&lt;br /&gt;
      reflectionDistortion = 1.0,&lt;br /&gt;
&lt;br /&gt;
      blurBase      = 2.0,&lt;br /&gt;
      blurExponent = 1.5,&lt;br /&gt;
&lt;br /&gt;
      perlinStartFreq  =  8.0,&lt;br /&gt;
      perlinLacunarity = 3.0,&lt;br /&gt;
      perlinAmplitude  =  0.9,&lt;br /&gt;
      windSpeed = 1.0, --// does nothing yet&lt;br /&gt;
&lt;br /&gt;
      shoreWaves = true,&lt;br /&gt;
      forceRendering = false,&lt;br /&gt;
&lt;br /&gt;
      --// undefined == load them from resources.lua!&lt;br /&gt;
      --texture =       &amp;quot;&amp;quot;,&lt;br /&gt;
      --foamTexture =   &amp;quot;&amp;quot;,&lt;br /&gt;
      --normalTexture = &amp;quot;&amp;quot;,&lt;br /&gt;
      --caustics = {&lt;br /&gt;
      --   &amp;quot;&amp;quot;,&lt;br /&gt;
      --   &amp;quot;&amp;quot;,&lt;br /&gt;
      --},&lt;br /&gt;
&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{tag|name=damage|type=float|default=0.0&lt;br /&gt;
|description=Number of hit points per game frame (30 frames per second) a unit will be damaged if it is in the water. As of 95.0 by default damage is also applied to hovercraft units. i wonder if this can be made to give life...?}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=repeatX|type=float|default=0.0&lt;br /&gt;
|description=effects the filing frequency of the watertexture}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=repeatY|type=float|default=0.0&lt;br /&gt;
|description=effects the filing frequency of the watertexture}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=absorb|type=rgb|default={0.0, 0.0, 0.0}&lt;br /&gt;
|description=How fast different colors (RGB in order) are absorbed by the water. Can be used to make the water look murky at deeper sections and so on. How this works: the waterabsorb value for the color channel gets multiplied by the depth of the water at a point, and this product gets subtracted from WaterBaseColor, until WaterMinColor is reached. Example: WaterAbsorb is 0.01, for the red channel, and we want to know how much red will be left in the water at a Spring elevation of -100, since 0.01*100= 1 , at this depth, there will be no more red component in the water, unless WaterMinColor is higher than 0 on the red channel}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=baseColor|type=rgb|default={0.0, 0.0, 0.0}&lt;br /&gt;
|description=The color of the water just beneath the surface plane. This is the starting color from which deeper waters will absorb more color. The values are in the order Red, Green, Blue}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=minColor|type=rgb|default={0.0, 0.0, 0.0}&lt;br /&gt;
|description=The smallest values the water will go down to due to WaterAbsorb}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=ambientFactor|type=float|default=1.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=diffuseFactor|type=float|default=1.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=specularFactor|type=float|default=1.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=specularPower|type=float|default=20.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=planeColor|type=rgb|default={0.0, 0.4, 0.0}&lt;br /&gt;
|description=This sets the color of the groundplane under the water outside the map boundaries}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=surfaceColor|type=rgb|default={0.75, 0.8, 0.85}&lt;br /&gt;
|description=The color of the water surface. Mostly affects the colors of the reflections off the top of the water. Has no effect on bump mapped water!}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=surfaceAlpha|type=float|default=0.55&lt;br /&gt;
|description= Transparency of the water surface. 0 meaning almost fully transparent water plane(low amount of reflections visible), and 1 being nearly opaque (massive amount of reflections)}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=diffuseColor|type=rgb|default=value&lt;br /&gt;
|description=This specifies the diffuse color of the water body. WARNING: use of this tag disables the effect of WaterAbsorb , in fact, this tag does nothing but disable WaterAbsorb. Avoid}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=specularColor|type=rgb|default=lighting.groundDiffuseColor}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=fresnelMin|type=float|default=0.2}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=fresnelMax|type=float|default=0.8}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=fresnelPower|type=float|default=4.0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=reflectionDistortion|type=float|default=1.0&lt;br /&gt;
|description=How much the surface should distort reflections that are cause by waves not being level: ergo it adds more choppyness to your reflections sensible from 0 to 20}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=blurBase|type=float|default=2.0&lt;br /&gt;
|description=Something to do with blur, but it just seems to cause banding with values under 2 and corruption with values above 10}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=blurExponent|type=float|default=1.5&lt;br /&gt;
|description=How much reflections on water surface should be blurred together with the water surface, lower values meaning clearer reflections, (0.2-5) Warning: above 5 seems to cause water corruption}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=perlinStartFreq|type=float|default=8.0&lt;br /&gt;
|description=Wave sizes, smaller = big waves, sensible: [1,20] (influence the wave sizes)}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=perlinLacunarity|type=float|default=3.0&lt;br /&gt;
|description=Defines the size of the perlin waves, small values being big waves ([0.2,5] is sensible)}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=perlinAmplitude|type=float|default=0.9&lt;br /&gt;
|description=Base stillness of water surface, 0 is dead still, 1 is &#039;windy&#039; .This doesnt affect the bump texture depth, besides the fact that this disables the bump texture when set to 0}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=windSpeed|type=float|default=1.0&lt;br /&gt;
|description=does nothing yet}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=shoreWaves|type=bool|default=true}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=forceRendering|type=bool|default=true}}&lt;br /&gt;
&lt;br /&gt;
will have to ask about those undefined tags&lt;br /&gt;
&lt;br /&gt;
== teams ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   teams = {&lt;br /&gt;
      [0] = {startPos = {x = 2033, z = 852}},&lt;br /&gt;
      [1] = {startPos = {x = 10134, z = 852}},&lt;br /&gt;
      [2] = {startPos = {x = 0, z = 0}},&lt;br /&gt;
      [3] = {startPos = {x = 0, z = 0}},&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Holds an array of start positions&lt;br /&gt;
&lt;br /&gt;
== terrainTypes ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   terrainTypes = {&lt;br /&gt;
      [0] = {&lt;br /&gt;
         name = &amp;quot;Default&amp;quot;,&lt;br /&gt;
         hardness = 1.0,&lt;br /&gt;
         receiveTracks = true,&lt;br /&gt;
         moveSpeeds = {&lt;br /&gt;
            tank  = 1.0,&lt;br /&gt;
            kbot  = 1.0,&lt;br /&gt;
            hover = 1.0,&lt;br /&gt;
            ship  = 1.0,&lt;br /&gt;
         },&lt;br /&gt;
      },&lt;br /&gt;
      [1]  = { &lt;br /&gt;
         ...&lt;br /&gt;
      },&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Holds an array of start types where each element contains:&lt;br /&gt;
&lt;br /&gt;
{{tag|name=name|type=string&lt;br /&gt;
|description=A label for the terrain type}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=hardness|type=float|range=[0.001-max]|default=1.0&lt;br /&gt;
|description=Used as a multiplier against the mapinfo.mapHardness value. Can be used to make a particular terrain type softer or harder. A value of &#039;1&#039; will make it as hard as MapHardness, and 0.5 will make it half as hard}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=receiveTracks|type=bool|default=true&lt;br /&gt;
|description= Effects whether track decals will be placed on the ground from moving vehicles}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=moveSpeeds.tank|type=float|range=[0.0-max]|default=1.0&lt;br /&gt;
|description= Speed multiplier for tanks when travelling on the parent terrain type. A value of &#039;1.0&#039; is normal speed, 0.5 will make them travel at half speed on the parent terrain type}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=moveSpeeds.kbot|type=float|range=[0.0-max]|default=1.0&lt;br /&gt;
|description= Speed multiplier for kbots when travelling on the parent terrain type. A value of &#039;1.0&#039; is normal speed, 0.5 will make them travel at half speed on the parent terrain type}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=moveSpeeds.hover|type=float|range=[0.0-max]|default=1.0&lt;br /&gt;
|description= Speed multiplier for hovercraft when travelling on the parent terrain type. A value of &#039;1.0&#039; is normal speed, 0.5 will make them travel at half speed on the parent terrain type}}&lt;br /&gt;
&lt;br /&gt;
{{tag|name=moveSpeeds.ship|type=float|range=[0.0-max]|default=1&lt;br /&gt;
|description= Speed multiplier for ships when travelling on the parent terrain type. A value of &#039;1.0&#039; is normal speed, 0.5 will make them travel at half speed on the parent terrain type}}&lt;br /&gt;
&lt;br /&gt;
== custom ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   custom = {&lt;br /&gt;
      fog = {&lt;br /&gt;
         color    = {0.26, 0.30, 0.41},&lt;br /&gt;
         height   = &amp;quot;80%&amp;quot;, --// allows either absolue sizes or in percent of map&#039;s MaxHeight&lt;br /&gt;
         fogatten = 0.003,&lt;br /&gt;
      },&lt;br /&gt;
      precipitation = {&lt;br /&gt;
         density   = 30000,&lt;br /&gt;
         size      = 1.5,&lt;br /&gt;
         speed     = 50,&lt;br /&gt;
         windscale = 1.2,&lt;br /&gt;
         texture   = &#039;LuaGaia/effects/snowflake.png&#039;,&lt;br /&gt;
      },&lt;br /&gt;
&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Tutorial_Finalizing&amp;diff=13643</id>
		<title>Mapdev:Tutorial Finalizing</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Tutorial_Finalizing&amp;diff=13643"/>
		<updated>2015-03-24T04:08:59Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Compiling the smf and smt files */  small rename&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finalizing =&lt;br /&gt;
This page describes how to compile some of the texture files into the smf smt files, test your map, archive the map using 7zip and upload to springfiles.com&lt;br /&gt;
&lt;br /&gt;
= Review = &lt;br /&gt;
Following stage one of the beginners tutorial you will have some intermediary files ready to convert into the SMF and SMT map format:&lt;br /&gt;
* heightmap.png&lt;br /&gt;
* metalmap.png&lt;br /&gt;
* diffuse.png&lt;br /&gt;
* mini.bmp&lt;br /&gt;
* grassmap.png&lt;br /&gt;
&lt;br /&gt;
There is also the [[Mapdev:terraintype|terrain type]] map but thats not covered in these tutorials&lt;br /&gt;
&lt;br /&gt;
= Compiling the smf and smt files =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! springMapConvNG (Windows/Linux)&lt;br /&gt;
| &amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open up the terminal and navigate to your working directory&lt;br /&gt;
&amp;lt;li&amp;gt;Generate the mymapname.smf and mymapname.smt files by runing mapconv with these options:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;springMapConvNG -t diffuse.png -h heightmap.png -m metalmap.png&lt;br /&gt;
-v grassmap.png -minimap mini.bmp -ct 1 -o mymapname&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the smf and smt files to the ./mymapname.sdd/maps/ directory (Do not rename!)&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! smf_tools (Windows/Linux)&lt;br /&gt;
| &amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open up the terminal and navigate to your working directory&lt;br /&gt;
&amp;lt;li&amp;gt;Generate the mymapname.smt and mymapname.smt.csv (tilemap) with this command:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;smt_convert -vf --smt -o mymapname.smt --tilesize 32x32 diffuse.png&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Generate the mymapname.smf file with this command:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;smf_cc -vf --height height.png --metal metal.png --map mymapname.smt.csv --grassmap grassmap.png --minimap minimap.png mymapname.smt&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the smf and smt files to the ./mymapname.sdd/maps/ directory (Do not rename!)&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! MapConv (Windows)&lt;br /&gt;
| &amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In mapconv directory: right click, new file, mymapname.bat&lt;br /&gt;
&amp;lt;li&amp;gt;Edit in text editor, put in these options:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;MapConv -i -c 0 -x 256 -n 10 -o mymapname.smf -t diffuse.png -a &lt;br /&gt;
heightmap.png -m metalmap.png -v grassmap.png&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the desired quality add:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Fastest compile, lowest quality:&lt;br /&gt;
&lt;br /&gt;
 -z &amp;quot;nvdxt.exe -dxt1a -nmips 4 -quick -file&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Medium speed, good quality: (CUDA version, requires nvidia 8 or higher series gfx card)&lt;br /&gt;
&lt;br /&gt;
 -q&lt;br /&gt;
&lt;br /&gt;
Slow, great quality: (Nothing)&lt;br /&gt;
&lt;br /&gt;
Slower, best possible quality:&lt;br /&gt;
&lt;br /&gt;
-z &amp;quot;nvdxt.exe -dxt1a -nmips 4 -Sinc -quality_highest -file&amp;quot;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure mini.bmp is in the same directory as the mymapname.bat&lt;br /&gt;
&amp;lt;li&amp;gt;Generate the mymapname.smf and mymapname.smt files by executing mymapname.bat file&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the smf and smt files to the ./mymapname.sdd/maps/ directory (Do not rename!)&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Mac &lt;br /&gt;
|{{FIXME}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Testing the map =&lt;br /&gt;
Copying the sdd directory to your spring maps folder will allow spring to recognise it as a map, this way you can tweak parameters and test things before archiving it for distribution.&lt;br /&gt;
&lt;br /&gt;
= Archiving =&lt;br /&gt;
Archiving the map creates a single file with smaller overall size for easy distribution.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new 7zip archive containing the contents of the sdd folder.(see below for platform specific instructions)&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the archive to maps folder to test&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
{{Caution|Make sure that you have not created the archive with the &amp;quot;solid archive&amp;quot; option, or spring will not recognise it.}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! Linux&lt;br /&gt;
|&lt;br /&gt;
# Open a terminal and navigate to your sdd directory&lt;br /&gt;
# Run the following command:&lt;br /&gt;
: &amp;lt;code&amp;gt;7z a -ms=off mymapname.sd7 *&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!Windows &lt;br /&gt;
|[[File:Examplearchivewith7zip.jpg|512px]]&lt;br /&gt;
|-&lt;br /&gt;
!Mac &lt;br /&gt;
|{{FIXME}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Uploading to springfiles.com =&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Head on over to [http://www.springfiles.com springfiles.com] and create an account&lt;br /&gt;
&amp;lt;li&amp;gt;Select upload from the main horizontal menu&lt;br /&gt;
&amp;lt;li&amp;gt;Fill out as much as you can&lt;br /&gt;
&amp;lt;li&amp;gt;Post to [http://springrts.com/phpbb/viewforum.php?f=13 map creation] subforum with something like &amp;quot;[new map]&amp;quot; in the subject line so as to increase visibiity.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
= Congratulations =&lt;br /&gt;
Your map is set free into the wilds of the internet. We sincerely hope its well loved.&lt;br /&gt;
&lt;br /&gt;
Please browse the [[Mapdev:Main|Map Development]] wiki pages for more ways to make awesome maps. Please help us make this wiki as comprehensive as possible, if you see something missing don&#039;t hesitate to jump in and add it.&lt;br /&gt;
&lt;br /&gt;
Additionally, now you have gotten into maps, perhaps other areas of spring development may interest you. Check out the [[Game_and_Unit_development|Game development]] pages.&lt;br /&gt;
&lt;br /&gt;
For help and discussions please visit the [http://springrts.com/phpbb/viewforum.php?f=13 forums]&lt;br /&gt;
&lt;br /&gt;
Good Luck.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Tutorial_Finalizing&amp;diff=13642</id>
		<title>Mapdev:Tutorial Finalizing</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Tutorial_Finalizing&amp;diff=13642"/>
		<updated>2015-03-24T04:08:19Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Compiling the smf and smt files */ added smf tools to instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finalizing =&lt;br /&gt;
This page describes how to compile some of the texture files into the smf smt files, test your map, archive the map using 7zip and upload to springfiles.com&lt;br /&gt;
&lt;br /&gt;
= Review = &lt;br /&gt;
Following stage one of the beginners tutorial you will have some intermediary files ready to convert into the SMF and SMT map format:&lt;br /&gt;
* heightmap.png&lt;br /&gt;
* metalmap.png&lt;br /&gt;
* diffuse.png&lt;br /&gt;
* mini.bmp&lt;br /&gt;
* grassmap.png&lt;br /&gt;
&lt;br /&gt;
There is also the [[Mapdev:terraintype|terrain type]] map but thats not covered in these tutorials&lt;br /&gt;
&lt;br /&gt;
= Compiling the smf and smt files =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! springMapConvNG (Windows/Linux)&lt;br /&gt;
| &amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open up the terminal and navigate to your working directory&lt;br /&gt;
&amp;lt;li&amp;gt;Generate the mymapname.smf and mymapname.smt files by runing mapconv with these options:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;springMapConvNG -t diffuse.png -h heightmap.png -m metalmap.png&lt;br /&gt;
-v grassmap.png -minimap mini.bmp -ct 1 -o mymapname&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the smf and smt files to the ./mymapname.sdd/maps/ directory (Do not rename!)&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! smf_tools (Windows/Linux)&lt;br /&gt;
| &amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open up the terminal and navigate to your working directory&lt;br /&gt;
&amp;lt;li&amp;gt;Generate the mymapname.smt and mymapname.smt.csv (tilemap) with this command:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;smt_convert -vf --smt -o mymapname.smt --tilesize 32x32 diffuse.png&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Generate the mymapname.smf file with this command:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;smf_cc -vf --height height.png --metal metal.png --map mymapname.smt.csv --grassmap grassmap.png --minimap minimap.png mymapname.smt&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the smf and smt files to the ./mymapname.sdd/maps/ directory (Do not rename!)&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Windows&lt;br /&gt;
| &amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In mapconv directory: right click, new file, mymapname.bat&lt;br /&gt;
&amp;lt;li&amp;gt;Edit in text editor, put in these options:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;MapConv -i -c 0 -x 256 -n 10 -o mymapname.smf -t diffuse.png -a &lt;br /&gt;
heightmap.png -m metalmap.png -v grassmap.png&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Depending on the desired quality add:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Fastest compile, lowest quality:&lt;br /&gt;
&lt;br /&gt;
 -z &amp;quot;nvdxt.exe -dxt1a -nmips 4 -quick -file&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Medium speed, good quality: (CUDA version, requires nvidia 8 or higher series gfx card)&lt;br /&gt;
&lt;br /&gt;
 -q&lt;br /&gt;
&lt;br /&gt;
Slow, great quality: (Nothing)&lt;br /&gt;
&lt;br /&gt;
Slower, best possible quality:&lt;br /&gt;
&lt;br /&gt;
-z &amp;quot;nvdxt.exe -dxt1a -nmips 4 -Sinc -quality_highest -file&amp;quot;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure mini.bmp is in the same directory as the mymapname.bat&lt;br /&gt;
&amp;lt;li&amp;gt;Generate the mymapname.smf and mymapname.smt files by executing mymapname.bat file&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the smf and smt files to the ./mymapname.sdd/maps/ directory (Do not rename!)&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Mac &lt;br /&gt;
|{{FIXME}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Testing the map =&lt;br /&gt;
Copying the sdd directory to your spring maps folder will allow spring to recognise it as a map, this way you can tweak parameters and test things before archiving it for distribution.&lt;br /&gt;
&lt;br /&gt;
= Archiving =&lt;br /&gt;
Archiving the map creates a single file with smaller overall size for easy distribution.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a new 7zip archive containing the contents of the sdd folder.(see below for platform specific instructions)&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the archive to maps folder to test&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
{{Caution|Make sure that you have not created the archive with the &amp;quot;solid archive&amp;quot; option, or spring will not recognise it.}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! Linux&lt;br /&gt;
|&lt;br /&gt;
# Open a terminal and navigate to your sdd directory&lt;br /&gt;
# Run the following command:&lt;br /&gt;
: &amp;lt;code&amp;gt;7z a -ms=off mymapname.sd7 *&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!Windows &lt;br /&gt;
|[[File:Examplearchivewith7zip.jpg|512px]]&lt;br /&gt;
|-&lt;br /&gt;
!Mac &lt;br /&gt;
|{{FIXME}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Uploading to springfiles.com =&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Head on over to [http://www.springfiles.com springfiles.com] and create an account&lt;br /&gt;
&amp;lt;li&amp;gt;Select upload from the main horizontal menu&lt;br /&gt;
&amp;lt;li&amp;gt;Fill out as much as you can&lt;br /&gt;
&amp;lt;li&amp;gt;Post to [http://springrts.com/phpbb/viewforum.php?f=13 map creation] subforum with something like &amp;quot;[new map]&amp;quot; in the subject line so as to increase visibiity.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
= Congratulations =&lt;br /&gt;
Your map is set free into the wilds of the internet. We sincerely hope its well loved.&lt;br /&gt;
&lt;br /&gt;
Please browse the [[Mapdev:Main|Map Development]] wiki pages for more ways to make awesome maps. Please help us make this wiki as comprehensive as possible, if you see something missing don&#039;t hesitate to jump in and add it.&lt;br /&gt;
&lt;br /&gt;
Additionally, now you have gotten into maps, perhaps other areas of spring development may interest you. Check out the [[Game_and_Unit_development|Game development]] pages.&lt;br /&gt;
&lt;br /&gt;
For help and discussions please visit the [http://springrts.com/phpbb/viewforum.php?f=13 forums]&lt;br /&gt;
&lt;br /&gt;
Good Luck.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:SMF-SMT_Update&amp;diff=20634</id>
		<title>User:Enetheru:SMF-SMT Update</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:SMF-SMT_Update&amp;diff=20634"/>
		<updated>2015-02-19T01:18:01Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: change etc1 to astc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Updating smf/smt to be easier to use, and more robust.&lt;br /&gt;
&lt;br /&gt;
implement: &lt;br /&gt;
* SMT tiles larger than 32x32 pixels&lt;br /&gt;
* Rotation of SMT tiles&lt;br /&gt;
* Generation of ssmf textures from smt&#039;s&lt;br /&gt;
* Deprecate smf as a format in favour of smd/mapinfo.lua scripts&lt;br /&gt;
* Push tilemap based format to allow mixed tilesizes&lt;br /&gt;
* Add different compression modes for tiles as different uses have different needs. for instance normals dont work well in BC1(DXT1), ASTC appears the best of all worlds but is not highly supported by hardware at the moment.&lt;br /&gt;
* re-use of BigTex&lt;br /&gt;
* rotation of BigTex&lt;br /&gt;
&lt;br /&gt;
= SMT tiles larger than 32x32 pixels =&lt;br /&gt;
== Description ==&lt;br /&gt;
Inside the smt file there are loads of dxt1 compressed 32x32 pixel tiles. this proposal is to allow tiles of logical sizes upto the engine native 1024x1024 resolution(64,128,256,512). the file structure of smt and smf can allow this, but engine code needs to be developed to make it possible.&lt;br /&gt;
== Justification ==&lt;br /&gt;
For tile based workflows, tile sizes larger than 32x32 pixels are easier to work with for artists.&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* Backwards compatible&lt;br /&gt;
* Not forwards compatible&lt;br /&gt;
* (minor)Possibility of smaller smf file size due to tilemap being smaller&lt;br /&gt;
* No change to load times&lt;br /&gt;
* No change to framerate&lt;br /&gt;
== Known code changes ==&lt;br /&gt;
* removal of SMALL_TILE_SIZE constant in favour of calculated constant.&lt;br /&gt;
* changes to the way tiles are loaded from the smt in groundtextures&lt;br /&gt;
&lt;br /&gt;
= Rotation of smt tiles=&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
== Justification ==&lt;br /&gt;
For tile based workflows rotating tiles allows you to use less source material to create a larger final result.&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* Backwards compatible&lt;br /&gt;
* Not forwards compatible&lt;br /&gt;
* possibility of smaller smt file sizes due to more duplication of tile data.&lt;br /&gt;
* possible increased load time on tiles with rotated source tiles.&lt;br /&gt;
* no change to framerate&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
* possible Version bump of smf to allow using the top three bits of tilemap references as rotation information.&lt;br /&gt;
* rotation code in the groundtexture loading phase&lt;br /&gt;
&lt;br /&gt;
= Generation of ssmf textures from smt&#039;s =&lt;br /&gt;
== Description ==&lt;br /&gt;
== Justification ==&lt;br /&gt;
to complete the tile based workflow all terrain shading needs to have the capability to be defined as tiles&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* backwards compatible&lt;br /&gt;
* not forwards compatible&lt;br /&gt;
* slower map load times(to construct the image from tiles)&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
&lt;br /&gt;
= Deprecate smf as a format in favour of smd/mapinfo.lua scripts =&lt;br /&gt;
== Description ==&lt;br /&gt;
SMF is just a concatenation of image files and some raw values, these can easily be represented as their individual parts and scripts. Indeed lots of the parts of smf are already scriptable in lua, this task would be to implement the remaining items and deprecate the smf format.&lt;br /&gt;
== Justification ==&lt;br /&gt;
Using smd/lua is easier to work with, faster to update.&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* none&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
&lt;br /&gt;
= Push tilemap based format to allow mixed tilesizes =&lt;br /&gt;
== Description ==&lt;br /&gt;
== Justification ==&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
&lt;br /&gt;
= Add ASTC compression as an option for smt tiles =&lt;br /&gt;
== Description ==&lt;br /&gt;
== Justification ==&lt;br /&gt;
its basically &#039;&#039;&#039;the&#039;&#039;&#039; texture compression format for use in modern interactive graphics applications.&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
== Known Code Changes ==&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:specular&amp;diff=13993</id>
		<title>Mapdev:specular</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:specular&amp;diff=13993"/>
		<updated>2015-02-16T22:41:10Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Image File */  added warning about no alpha or full opaque, still needs exampleimage.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Specular =&lt;br /&gt;
Gives you per-pixel control over the color and intensity of specular highlights anywhere on the map. You could eg. make all highlights red, or have them depend on the type of material that a pixel represents, or something more exotic&lt;br /&gt;
Alpha defines how &amp;quot;polished&amp;quot; the surface looks, and and the RGB color is the amount of light that gets reflected for each color channel&lt;br /&gt;
{{Caution|requires clients to have GLSL-spec hardware}}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| [[File:Mapdev-specular.jpg|256px]] || [[File:Mapdev-spec_with.jpg|451px]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Specular Texture&lt;br /&gt;
! Ingame Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
The relevant sections of the [[Mapdev:mapinfo.lua|mapinfo.lua]]&lt;br /&gt;
* If specularTex points to a file that does not exist, you will get full unmoderated specularity based on whatever your map&#039;s lighting settings are&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
local mapinfo = {&lt;br /&gt;
   resources = {&lt;br /&gt;
      ...&lt;br /&gt;
      specularTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
   lighting = {&lt;br /&gt;
      ...&lt;br /&gt;
      groundSpecularColor = {0.1, 0.1, 0.1},&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Image File ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| ./maps/&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| PNG, TGA&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGBA&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| Any, recommended powers of two, will be stretched over the terrain.&lt;br /&gt;
|}&lt;br /&gt;
* The RGB channels will control the red, green, and blue contribution per highlight&lt;br /&gt;
* The Alpha channel (multiplied by 16) becomes the specular exponent. Or on other words controls the sharpness of the specular highlights, the higher the value the sharper the highlights.&lt;br /&gt;
* You have to set the RGB values to zero if you want no specular contribution&lt;br /&gt;
* If you omit the alpha channel, or have a fully opaque image, the specular exponent is at its max and the results are a very sharp specular highlights.&lt;br /&gt;
{{Caution|If you set the alpha value of the specular texture to zero, or you will get the below result. Use almost zero instead.}}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| [[File:Mapdev-spec_alpha_issue.jpg]]&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Forum Discussion =&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21951 Make Your Maps Shiny(er) With SSMF]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:SMF-SMT_Update&amp;diff=20633</id>
		<title>User:Enetheru:SMF-SMT Update</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:SMF-SMT_Update&amp;diff=20633"/>
		<updated>2015-02-13T00:55:11Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: added a couple more ideas.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Updating smf/smt to be easier to use, and more robust.&lt;br /&gt;
&lt;br /&gt;
implement: &lt;br /&gt;
* SMT tiles larger than 32x32 pixels&lt;br /&gt;
* Rotation of SMT tiles&lt;br /&gt;
* Generation of ssmf textures from smt&#039;s&lt;br /&gt;
* Deprecate smf as a format in favour of smd/mapinfo.lua scripts&lt;br /&gt;
* Push tilemap based format to allow mixed tilesizes&lt;br /&gt;
* Add ETC1 compression as an option for smt tiles&lt;br /&gt;
* re-use of BigTex&lt;br /&gt;
* rotation of BigTex&lt;br /&gt;
&lt;br /&gt;
= SMT tiles larger than 32x32 pixels =&lt;br /&gt;
== Description ==&lt;br /&gt;
Inside the smt file there are loads of dxt1 compressed 32x32 pixel tiles. this proposal is to allow tiles of logical sizes upto the engine native 1024x1024 resolution(64,128,256,512). the file structure of smt and smf can allow this, but engine code needs to be developed to make it possible.&lt;br /&gt;
== Justification ==&lt;br /&gt;
For tile based workflows, tile sizes larger than 32x32 pixels are easier to work with for artists.&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* Backwards compatible&lt;br /&gt;
* Not forwards compatible&lt;br /&gt;
* (minor)Possibility of smaller smf file size due to tilemap being smaller&lt;br /&gt;
* No change to load times&lt;br /&gt;
* No change to framerate&lt;br /&gt;
== Known code changes ==&lt;br /&gt;
* removal of SMALL_TILE_SIZE constant in favour of calculated constant.&lt;br /&gt;
* changes to the way tiles are loaded from the smt in groundtextures&lt;br /&gt;
&lt;br /&gt;
= Rotation of smt tiles=&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
== Justification ==&lt;br /&gt;
For tile based workflows rotating tiles allows you to use less source material to create a larger final result.&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* Backwards compatible&lt;br /&gt;
* Not forwards compatible&lt;br /&gt;
* possibility of smaller smt file sizes due to more duplication of tile data.&lt;br /&gt;
* possible increased load time on tiles with rotated source tiles.&lt;br /&gt;
* no change to framerate&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
* possible Version bump of smf to allow using the top three bits of tilemap references as rotation information.&lt;br /&gt;
* rotation code in the groundtexture loading phase&lt;br /&gt;
&lt;br /&gt;
= Generation of ssmf textures from smt&#039;s =&lt;br /&gt;
== Description ==&lt;br /&gt;
== Justification ==&lt;br /&gt;
to complete the tile based workflow all terrain shading needs to have the capability to be defined as tiles&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* backwards compatible&lt;br /&gt;
* not forwards compatible&lt;br /&gt;
* slower map load times(to construct the image from tiles)&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
&lt;br /&gt;
= Deprecate smf as a format in favour of smd/mapinfo.lua scripts =&lt;br /&gt;
== Description ==&lt;br /&gt;
SMF is just a concatenation of image files and some raw values, these can easily be represented as their individual parts and scripts. Indeed lots of the parts of smf are already scriptable in lua, this task would be to implement the remaining items and deprecate the smf format.&lt;br /&gt;
== Justification ==&lt;br /&gt;
Using smd/lua is easier to work with, faster to update.&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* none&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
&lt;br /&gt;
= Push tilemap based format to allow mixed tilesizes =&lt;br /&gt;
== Description ==&lt;br /&gt;
== Justification ==&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
&lt;br /&gt;
= Add ETC1 compression as an option for smt tiles =&lt;br /&gt;
== Description ==&lt;br /&gt;
== Justification ==&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
== Known Code Changes ==&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:SMF-SMT_Update&amp;diff=20632</id>
		<title>User:Enetheru:SMF-SMT Update</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:SMF-SMT_Update&amp;diff=20632"/>
		<updated>2015-02-13T00:13:28Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Deprecate smf as a format in favour of smd/mapinfo.lua scripts */  filled out stuff&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Updating smf/smt to be easier to use, and more robust.&lt;br /&gt;
&lt;br /&gt;
implement: &lt;br /&gt;
* SMT tiles larger than 32x32 pixels&lt;br /&gt;
* Rotation of SMT tiles&lt;br /&gt;
* Generation of ssmf textures from smt&#039;s&lt;br /&gt;
* Deprecate smf as a format in favour of smd/mapinfo.lua scripts&lt;br /&gt;
* Push tilemap based format to allow mixed tilesizes&lt;br /&gt;
* Add ETC1 compression as an option for smt tiles&lt;br /&gt;
&lt;br /&gt;
= SMT tiles larger than 32x32 pixels =&lt;br /&gt;
== Description ==&lt;br /&gt;
Inside the smt file there are loads of dxt1 compressed 32x32 pixel tiles. this proposal is to allow tiles of logical sizes upto the engine native 1024x1024 resolution(64,128,256,512). the file structure of smt and smf can allow this, but engine code needs to be developed to make it possible.&lt;br /&gt;
== Justification ==&lt;br /&gt;
For tile based workflows, tile sizes larger than 32x32 pixels are easier to work with for artists.&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* Backwards compatible&lt;br /&gt;
* Not forwards compatible&lt;br /&gt;
* (minor)Possibility of smaller smf file size due to tilemap being smaller&lt;br /&gt;
* No change to load times&lt;br /&gt;
* No change to framerate&lt;br /&gt;
== Known code changes ==&lt;br /&gt;
* removal of SMALL_TILE_SIZE constant in favour of calculated constant.&lt;br /&gt;
* changes to the way tiles are loaded from the smt in groundtextures&lt;br /&gt;
&lt;br /&gt;
= Rotation of smt tiles=&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
== Justification ==&lt;br /&gt;
For tile based workflows rotating tiles allows you to use less source material to create a larger final result.&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* Backwards compatible&lt;br /&gt;
* Not forwards compatible&lt;br /&gt;
* possibility of smaller smt file sizes due to more duplication of tile data.&lt;br /&gt;
* possible increased load time on tiles with rotated source tiles.&lt;br /&gt;
* no change to framerate&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
* possible Version bump of smf to allow using the top three bits of tilemap references as rotation information.&lt;br /&gt;
* rotation code in the groundtexture loading phase&lt;br /&gt;
&lt;br /&gt;
= Generation of ssmf textures from smt&#039;s =&lt;br /&gt;
== Description ==&lt;br /&gt;
== Justification ==&lt;br /&gt;
to complete the tile based workflow all terrain shading needs to have the capability to be defined as tiles&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* backwards compatible&lt;br /&gt;
* not forwards compatible&lt;br /&gt;
* slower map load times(to construct the image from tiles)&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
&lt;br /&gt;
= Deprecate smf as a format in favour of smd/mapinfo.lua scripts =&lt;br /&gt;
== Description ==&lt;br /&gt;
SMF is just a concatenation of image files and some raw values, these can easily be represented as their individual parts and scripts. Indeed lots of the parts of smf are already scriptable in lua, this task would be to implement the remaining items and deprecate the smf format.&lt;br /&gt;
== Justification ==&lt;br /&gt;
Using smd/lua is easier to work with, faster to update.&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* none&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
&lt;br /&gt;
= Push tilemap based format to allow mixed tilesizes =&lt;br /&gt;
== Description ==&lt;br /&gt;
== Justification ==&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
&lt;br /&gt;
= Add ETC1 compression as an option for smt tiles =&lt;br /&gt;
== Description ==&lt;br /&gt;
== Justification ==&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
== Known Code Changes ==&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:SMF-SMT_Update&amp;diff=20631</id>
		<title>User:Enetheru:SMF-SMT Update</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru:SMF-SMT_Update&amp;diff=20631"/>
		<updated>2015-02-13T00:06:09Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: preliminary description etc, needs more work.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Updating smf/smt to be easier to use, and more robust.&lt;br /&gt;
&lt;br /&gt;
implement: &lt;br /&gt;
* SMT tiles larger than 32x32 pixels&lt;br /&gt;
* Rotation of SMT tiles&lt;br /&gt;
* Generation of ssmf textures from smt&#039;s&lt;br /&gt;
* Deprecate smf as a format in favour of smd/mapinfo.lua scripts&lt;br /&gt;
* Push tilemap based format to allow mixed tilesizes&lt;br /&gt;
* Add ETC1 compression as an option for smt tiles&lt;br /&gt;
&lt;br /&gt;
= SMT tiles larger than 32x32 pixels =&lt;br /&gt;
== Description ==&lt;br /&gt;
Inside the smt file there are loads of dxt1 compressed 32x32 pixel tiles. this proposal is to allow tiles of logical sizes upto the engine native 1024x1024 resolution(64,128,256,512). the file structure of smt and smf can allow this, but engine code needs to be developed to make it possible.&lt;br /&gt;
== Justification ==&lt;br /&gt;
For tile based workflows, tile sizes larger than 32x32 pixels are easier to work with for artists.&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* Backwards compatible&lt;br /&gt;
* Not forwards compatible&lt;br /&gt;
* (minor)Possibility of smaller smf file size due to tilemap being smaller&lt;br /&gt;
* No change to load times&lt;br /&gt;
* No change to framerate&lt;br /&gt;
== Known code changes ==&lt;br /&gt;
* removal of SMALL_TILE_SIZE constant in favour of calculated constant.&lt;br /&gt;
* changes to the way tiles are loaded from the smt in groundtextures&lt;br /&gt;
&lt;br /&gt;
= Rotation of smt tiles=&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
== Justification ==&lt;br /&gt;
For tile based workflows rotating tiles allows you to use less source material to create a larger final result.&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* Backwards compatible&lt;br /&gt;
* Not forwards compatible&lt;br /&gt;
* possibility of smaller smt file sizes due to more duplication of tile data.&lt;br /&gt;
* possible increased load time on tiles with rotated source tiles.&lt;br /&gt;
* no change to framerate&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
* possible Version bump of smf to allow using the top three bits of tilemap references as rotation information.&lt;br /&gt;
* rotation code in the groundtexture loading phase&lt;br /&gt;
&lt;br /&gt;
= Generation of ssmf textures from smt&#039;s =&lt;br /&gt;
== Description ==&lt;br /&gt;
== Justification ==&lt;br /&gt;
to complete the tile based workflow all terrain shading needs to have the capability to be defined as tiles&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
* backwards compatible&lt;br /&gt;
* not forwards compatible&lt;br /&gt;
* slower map load times(to construct the image from tiles)&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
&lt;br /&gt;
= Deprecate smf as a format in favour of smd/mapinfo.lua scripts =&lt;br /&gt;
== Description ==&lt;br /&gt;
== Justification ==&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
&lt;br /&gt;
= Push tilemap based format to allow mixed tilesizes =&lt;br /&gt;
== Description ==&lt;br /&gt;
== Justification ==&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
== Known Code Changes ==&lt;br /&gt;
&lt;br /&gt;
= Add ETC1 compression as an option for smt tiles =&lt;br /&gt;
== Description ==&lt;br /&gt;
== Justification ==&lt;br /&gt;
== Expected Impact ==&lt;br /&gt;
== Known Code Changes ==&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru&amp;diff=20517</id>
		<title>User:Enetheru</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:Enetheru&amp;diff=20517"/>
		<updated>2015-02-12T23:32:35Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Current Wiki Projects */  added link to my brainstorm direction.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Current Wiki Projects =&lt;br /&gt;
* [[Enetheru:mapping2|Mapping Proposal]]&lt;br /&gt;
* [[Enetheru:BlenderVision|My Vision for Blender Use]]&lt;br /&gt;
* [[Enetheru:Map_Features|Map Features]]&lt;br /&gt;
* [[Enetheru:Meshes|Object Meshes]]&lt;br /&gt;
* [[Enetheru:mapWishList|Places]] I want to see battles waged in.&lt;br /&gt;
* [[Enetheru:Dump]]&lt;br /&gt;
* [[Enetheru:SMF-SMT Update]]&lt;br /&gt;
* [[User:Enetheru/MapCreation/Blender/Sculpting Terrain]]&lt;br /&gt;
* [[User:Enetheru/MapCreation/Blender/Diffuse Map]]&lt;br /&gt;
&lt;br /&gt;
== Random Thought ==&lt;br /&gt;
Features need specification pages, they also need quick tutorials, demonstration files.&lt;br /&gt;
SpringRTS needs to start releasing versions with similar documentation to blender and mypaint, with pretty documents and development examples to really show off the latest and greatest.. anyway.&lt;br /&gt;
&lt;br /&gt;
Thats pretty interesting, i could go through the changelogs to see if there is anything i can use for the mapping feature pages.&lt;br /&gt;
&lt;br /&gt;
= Migrated to Main Wiki =&lt;br /&gt;
* [[Maps:SMD|smd Reference]]&lt;br /&gt;
* [[MapConv|Mapconv]]&lt;br /&gt;
* [[Mapdev:Main|main mapdev page]]&lt;br /&gt;
&lt;br /&gt;
= Sift List =&lt;br /&gt;
* Space [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=22861 1],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=22314 2]&lt;br /&gt;
* Optimisation(for size) [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=23440 1],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=23440 2]&lt;br /&gt;
* Dynamic Features[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=23177 1]&lt;br /&gt;
* Wet/Dry/Day/Night [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=22005&amp;amp;start=40 1],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=18892 2]&lt;br /&gt;
* Dependencies [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21808 1]&lt;br /&gt;
* Rain/Snow/Dust [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21899 1],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21902 2],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=20092 3]&lt;br /&gt;
* Different water height and waterfalls [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=19405 1]&lt;br /&gt;
[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=22425 1],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=22329 2],[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=22191 3],&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=28156 thread for obj2s3o]&lt;br /&gt;
* [http://pastebin.com/DCsJjT6T ssmf undocumented features]&lt;br /&gt;
* [http://www.gamasutra.com/view/feature/130877/making_quality_game_textures.php?print=1 dds texture info]&lt;br /&gt;
* [http://youtu.be/grP28n3S73k blender asset sketcher]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Main&amp;diff=13537</id>
		<title>Mapdev:Main</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Main&amp;diff=13537"/>
		<updated>2015-01-19T05:55:35Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Specific to Map Development */ updated enetheru&amp;#039;s map tools&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Map Development =&lt;br /&gt;
Maps are the fields on which the battles are fought, made with the implicit contract that they shall not alter game mechanics. They are made up of images and text files which describe the environment and its features, such as height, colour, background, details features, atmosphere and lighting etc. These images and text files are then compressed into a 7zip archive for distribution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-Game Screenshot&lt;br /&gt;
|[[File:Screen00364.jpg|640px]]&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Beginners Tutorial =&lt;br /&gt;
This beginners tutorial is split into three parts, the basic stuff, the more advanced basic stuff, and how to compile and create a map archive for distribution. It is intended to get you started, when you are comfortable with the concepts, please look over the technical documentation to further your knowledge.&lt;br /&gt;
* [[Mapdev:Tutorial_Simple|Stage 1]]&lt;br /&gt;
* [[Mapdev:Tutorial_Intermediate|Stage 2]]&lt;br /&gt;
* [[Mapdev:Tutorial_Finalizing|Finalizing]]&lt;br /&gt;
&lt;br /&gt;
= Blueprint =&lt;br /&gt;
Due to the amount of boiler plate files needed to create a fairly feature complete map, [[User:Jk|Jk]] has created a blueprint map to get things started&lt;br /&gt;
* [https://github.com/jk3064/Map-Blueprint/archive/master.zip Link to blueprint zip]&lt;br /&gt;
&lt;br /&gt;
= Technical Documentation =&lt;br /&gt;
; &#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:mapinfo.lua|mapinfo.lua]]&lt;br /&gt;
* [[Mapdev:set.lua|set.lua]] - feature set&lt;br /&gt;
* [[Mapdev:SMT format|SMT format]]&lt;br /&gt;
* [[Mapdev:SMF format|SMF format]]&lt;br /&gt;
* [[Gamedev:Archives]]&lt;br /&gt;
* [[Mapdev:sounds]]&lt;br /&gt;
* [[Mapdev:performance]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Terrain Shading&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:diffuse]]&lt;br /&gt;
* [[Mapdev:detail]]&lt;br /&gt;
* [[Mapdev:splatdetail]]&lt;br /&gt;
* [[Mapdev:specular]]&lt;br /&gt;
* [[Mapdev:normal]]&lt;br /&gt;
* [[Mapdev:parallax]]&lt;br /&gt;
* [[Mapdev:skyreflectmod]]&lt;br /&gt;
* [[Mapdev:lightemission]]&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Terrain Features&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:height]]&lt;br /&gt;
* [[Mapdev:metal]]&lt;br /&gt;
* [[Mapdev:terraintype]]&lt;br /&gt;
* [[Mapdev:grass]]&lt;br /&gt;
* [[Mapdev:features]]&lt;br /&gt;
* [[Mapdev:water]]&lt;br /&gt;
* [[Mapdev:borders]]&lt;br /&gt;
* [[Mapdev:minimap]]&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Environment&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:skybox]]&lt;br /&gt;
* [[Mapdev:lighting]]&lt;br /&gt;
* [[Mapdev:atmosphere]]&lt;br /&gt;
&lt;br /&gt;
= Scripting =&lt;br /&gt;
* [[Mapdev:MapOptions]]&lt;br /&gt;
* [[Mapdev:LuaShaders]]&lt;br /&gt;
* [[Mapdev:Mutators]] [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21808 forum discussion]&lt;br /&gt;
&lt;br /&gt;
= Howto&#039;s =&lt;br /&gt;
* [[Mapdev:Howto_voidwater/space]]&lt;br /&gt;
* [[Mapdev:Howto_spring_features_v1]]&lt;br /&gt;
* [[Mapdev:Howto_skybox]]&lt;br /&gt;
* [[Mapdev:howto_height_blender|Making a height map with Blender]]&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
A big list of tools used in developing spring games and assets:&lt;br /&gt;
* [[Map,_Game,_And_Unit_Development_Programs]]&lt;br /&gt;
&lt;br /&gt;
== Specific to Map Development ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|+ Tools vs Platform&lt;br /&gt;
! Tool !! Windows !! Linux !! MacOS&lt;br /&gt;
|-&lt;br /&gt;
| [[MapConv]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[MapConvNG]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[Mapdeconv]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| Start Position Editor&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  [http://springfiles.com/spring/tools/mapping-tools Yes]&lt;br /&gt;
|-&lt;br /&gt;
| Das Bruce&#039;s Mapconv Frontend&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  [http://springfiles.com/spring/tools/mapping-tools Yes]&lt;br /&gt;
|-&lt;br /&gt;
| FrostRegen&#039;s [[Maps:SpringMapEdit|SpringMapEdit]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/enetheru/smf_tools Enetheru&#039;s smf_tools]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot; | Yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;background:yellow;text-align:center&amp;quot; | ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spring Add-Ons ==&lt;br /&gt;
* [[Map_Making:_Feature_Placer|FeaturePlacer]]&lt;br /&gt;
* [[ToolBox]]&lt;br /&gt;
* [http://springfiles.com/spring/tools/spring-features Spring Features V1.0]&lt;br /&gt;
&lt;br /&gt;
= Common Problems =&lt;br /&gt;
== Pink Map ==&lt;br /&gt;
Renaming the SMT file and not defining the new name in mapinfo.lua will result in a map with a pink texture. Also don&#039;t put any spaces in the name.&lt;br /&gt;
&lt;br /&gt;
== Map doesn&#039;t show in spring after compressing with 7zip==&lt;br /&gt;
The most likely cause is that it was compressed using the solid archive option.&lt;br /&gt;
&lt;br /&gt;
{{FIXME}}Add windows and MacOS solutions.&lt;br /&gt;
&lt;br /&gt;
For linux the option &amp;lt;code&amp;gt;-ms=off&amp;lt;/code&amp;gt; needs to be given on the command line. eg.&lt;br /&gt;
: &amp;lt;code&amp;gt; 7z a -ms=off myarchivename.sd7 dem files I want to archive&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flipped Images ==&lt;br /&gt;
Heightmap images compiled into map files are inverted. It is necessary to use the -i parameter of Mapconv to vertically flip the image so that it matches the texture.&lt;br /&gt;
&lt;br /&gt;
== smt name defined in smf ==&lt;br /&gt;
The SMT file name is hardcoded in the SMF, and renaming the SMT used to cause pink map issues, but the SMT can now be manually defined in mapinfo.lua thereby bypassing the entire issue altogether.&lt;br /&gt;
&lt;br /&gt;
= Map Development Wiki =&lt;br /&gt;
* [[Mapdev:WikiGuide|Mapdev Wiki Guide]]&lt;br /&gt;
&lt;br /&gt;
= Deprecated but not Deleted =&lt;br /&gt;
We plan on integrating any and all useful knowledge from these pages into the rest of the wiki, they are kept here so that they are not hidden away.&lt;br /&gt;
== Full Guides For Map Making (Outdated) ==&lt;br /&gt;
The guides listed below are outdated and scheduled for archival.&lt;br /&gt;
*[[Create maps|aGorm&#039;s map creating Guide]]&lt;br /&gt;
*[[Map Making Guide|aGorms Ultimate Map Making Guide(unfinished)]]&lt;br /&gt;
*[[IceXuick Map Design Help|IceXuicks Map creating Guide]]&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?t=3941 Forboding Angel&#039;s map creating Tutorial]&lt;br /&gt;
*[[Maps:Tutorial|Another tutorial from a designing point of view]]&lt;br /&gt;
*[[A Complete Map Making Tutorial|A Complete Map Making Tutorial (under construction)]]&lt;br /&gt;
*[[Runecrafter|Runecrafter&#039;s Map Tutorial]]&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=15390 Beherith&#039;s map creating tutorial using the World in Conflict map editor]&lt;br /&gt;
&lt;br /&gt;
== Specific Guides (Extremely Outdated!) ==&lt;br /&gt;
The linked pages below are scheduled for archival.&lt;br /&gt;
*[[Maps:SMD|Spring Map Definition(smd) reference]]&lt;br /&gt;
*[[Maps:Compiling|Everything about Compiling your map]]&lt;br /&gt;
*[[MapsBalance|Some things about map balance]]&lt;br /&gt;
*[[MapSizes|Map sizes in pixels]] and memory information about map sizes&lt;br /&gt;
*[[Height Map Tutorial|RogerN&#039;s height map tutorial]]&lt;br /&gt;
*[[Create map texture with povray|Basic howto: create map texture with Povray]]&lt;br /&gt;
&lt;br /&gt;
[[Spring_Features]] is an Archive which contains Stones, rocks, trees, and can be used for your map.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Main&amp;diff=13536</id>
		<title>Mapdev:Main</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Main&amp;diff=13536"/>
		<updated>2015-01-05T12:38:36Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Specific to Map Development */ updated link and description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Map Development =&lt;br /&gt;
Maps are the fields on which the battles are fought, made with the implicit contract that they shall not alter game mechanics. They are made up of images and text files which describe the environment and its features, such as height, colour, background, details features, atmosphere and lighting etc. These images and text files are then compressed into a 7zip archive for distribution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-Game Screenshot&lt;br /&gt;
|[[File:Screen00364.jpg|640px]]&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Beginners Tutorial =&lt;br /&gt;
This beginners tutorial is split into three parts, the basic stuff, the more advanced basic stuff, and how to compile and create a map archive for distribution. It is intended to get you started, when you are comfortable with the concepts, please look over the technical documentation to further your knowledge.&lt;br /&gt;
* [[Mapdev:Tutorial_Simple|Stage 1]]&lt;br /&gt;
* [[Mapdev:Tutorial_Intermediate|Stage 2]]&lt;br /&gt;
* [[Mapdev:Tutorial_Finalizing|Finalizing]]&lt;br /&gt;
&lt;br /&gt;
= Blueprint =&lt;br /&gt;
Due to the amount of boiler plate files needed to create a fairly feature complete map, [[User:Jk|Jk]] has created a blueprint map to get things started&lt;br /&gt;
* [https://github.com/jk3064/Map-Blueprint/archive/master.zip Link to blueprint zip]&lt;br /&gt;
&lt;br /&gt;
= Technical Documentation =&lt;br /&gt;
; &#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:mapinfo.lua|mapinfo.lua]]&lt;br /&gt;
* [[Mapdev:set.lua|set.lua]] - feature set&lt;br /&gt;
* [[Mapdev:SMT format|SMT format]]&lt;br /&gt;
* [[Mapdev:SMF format|SMF format]]&lt;br /&gt;
* [[Gamedev:Archives]]&lt;br /&gt;
* [[Mapdev:sounds]]&lt;br /&gt;
* [[Mapdev:performance]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Terrain Shading&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:diffuse]]&lt;br /&gt;
* [[Mapdev:detail]]&lt;br /&gt;
* [[Mapdev:splatdetail]]&lt;br /&gt;
* [[Mapdev:specular]]&lt;br /&gt;
* [[Mapdev:normal]]&lt;br /&gt;
* [[Mapdev:parallax]]&lt;br /&gt;
* [[Mapdev:skyreflectmod]]&lt;br /&gt;
* [[Mapdev:lightemission]]&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Terrain Features&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:height]]&lt;br /&gt;
* [[Mapdev:metal]]&lt;br /&gt;
* [[Mapdev:terraintype]]&lt;br /&gt;
* [[Mapdev:grass]]&lt;br /&gt;
* [[Mapdev:features]]&lt;br /&gt;
* [[Mapdev:water]]&lt;br /&gt;
* [[Mapdev:borders]]&lt;br /&gt;
* [[Mapdev:minimap]]&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Environment&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:skybox]]&lt;br /&gt;
* [[Mapdev:lighting]]&lt;br /&gt;
* [[Mapdev:atmosphere]]&lt;br /&gt;
&lt;br /&gt;
= Scripting =&lt;br /&gt;
* [[Mapdev:MapOptions]]&lt;br /&gt;
* [[Mapdev:LuaShaders]]&lt;br /&gt;
* [[Mapdev:Mutators]] [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21808 forum discussion]&lt;br /&gt;
&lt;br /&gt;
= Howto&#039;s =&lt;br /&gt;
* [[Mapdev:Howto_voidwater/space]]&lt;br /&gt;
* [[Mapdev:Howto_spring_features_v1]]&lt;br /&gt;
* [[Mapdev:Howto_skybox]]&lt;br /&gt;
* [[Mapdev:howto_height_blender|Making a height map with Blender]]&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
A big list of tools used in developing spring games and assets:&lt;br /&gt;
* [[Map,_Game,_And_Unit_Development_Programs]]&lt;br /&gt;
&lt;br /&gt;
== Specific to Map Development ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|+ Tools vs Platform&lt;br /&gt;
! Tool !! Windows !! Linux !! MacOS&lt;br /&gt;
|-&lt;br /&gt;
| [[MapConv]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[MapConvNG]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[Mapdeconv]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| Start Position Editor&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  [http://springfiles.com/spring/tools/mapping-tools Yes]&lt;br /&gt;
|-&lt;br /&gt;
| Das Bruce&#039;s Mapconv Frontend&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  [http://springfiles.com/spring/tools/mapping-tools Yes]&lt;br /&gt;
|-&lt;br /&gt;
| FrostRegen&#039;s [[Maps:SpringMapEdit|SpringMapEdit]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/enetheru/smf_tools Enetheru&#039;s smf_tools](very broken)&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot; | Yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;background:yellow;text-align:center&amp;quot; | ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spring Add-Ons ==&lt;br /&gt;
* [[Map_Making:_Feature_Placer|FeaturePlacer]]&lt;br /&gt;
* [[ToolBox]]&lt;br /&gt;
* [http://springfiles.com/spring/tools/spring-features Spring Features V1.0]&lt;br /&gt;
&lt;br /&gt;
= Common Problems =&lt;br /&gt;
== Pink Map ==&lt;br /&gt;
Renaming the SMT file and not defining the new name in mapinfo.lua will result in a map with a pink texture. Also don&#039;t put any spaces in the name.&lt;br /&gt;
&lt;br /&gt;
== Map doesn&#039;t show in spring after compressing with 7zip==&lt;br /&gt;
The most likely cause is that it was compressed using the solid archive option.&lt;br /&gt;
&lt;br /&gt;
{{FIXME}}Add windows and MacOS solutions.&lt;br /&gt;
&lt;br /&gt;
For linux the option &amp;lt;code&amp;gt;-ms=off&amp;lt;/code&amp;gt; needs to be given on the command line. eg.&lt;br /&gt;
: &amp;lt;code&amp;gt; 7z a -ms=off myarchivename.sd7 dem files I want to archive&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flipped Images ==&lt;br /&gt;
Heightmap images compiled into map files are inverted. It is necessary to use the -i parameter of Mapconv to vertically flip the image so that it matches the texture.&lt;br /&gt;
&lt;br /&gt;
== smt name defined in smf ==&lt;br /&gt;
The SMT file name is hardcoded in the SMF, and renaming the SMT used to cause pink map issues, but the SMT can now be manually defined in mapinfo.lua thereby bypassing the entire issue altogether.&lt;br /&gt;
&lt;br /&gt;
= Map Development Wiki =&lt;br /&gt;
* [[Mapdev:WikiGuide|Mapdev Wiki Guide]]&lt;br /&gt;
&lt;br /&gt;
= Deprecated but not Deleted =&lt;br /&gt;
We plan on integrating any and all useful knowledge from these pages into the rest of the wiki, they are kept here so that they are not hidden away.&lt;br /&gt;
== Full Guides For Map Making (Outdated) ==&lt;br /&gt;
The guides listed below are outdated and scheduled for archival.&lt;br /&gt;
*[[Create maps|aGorm&#039;s map creating Guide]]&lt;br /&gt;
*[[Map Making Guide|aGorms Ultimate Map Making Guide(unfinished)]]&lt;br /&gt;
*[[IceXuick Map Design Help|IceXuicks Map creating Guide]]&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?t=3941 Forboding Angel&#039;s map creating Tutorial]&lt;br /&gt;
*[[Maps:Tutorial|Another tutorial from a designing point of view]]&lt;br /&gt;
*[[A Complete Map Making Tutorial|A Complete Map Making Tutorial (under construction)]]&lt;br /&gt;
*[[Runecrafter|Runecrafter&#039;s Map Tutorial]]&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=15390 Beherith&#039;s map creating tutorial using the World in Conflict map editor]&lt;br /&gt;
&lt;br /&gt;
== Specific Guides (Extremely Outdated!) ==&lt;br /&gt;
The linked pages below are scheduled for archival.&lt;br /&gt;
*[[Maps:SMD|Spring Map Definition(smd) reference]]&lt;br /&gt;
*[[Maps:Compiling|Everything about Compiling your map]]&lt;br /&gt;
*[[MapsBalance|Some things about map balance]]&lt;br /&gt;
*[[MapSizes|Map sizes in pixels]] and memory information about map sizes&lt;br /&gt;
*[[Height Map Tutorial|RogerN&#039;s height map tutorial]]&lt;br /&gt;
*[[Create map texture with povray|Basic howto: create map texture with Povray]]&lt;br /&gt;
&lt;br /&gt;
[[Spring_Features]] is an Archive which contains Stones, rocks, trees, and can be used for your map.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapcomponents:_feature_map&amp;diff=13428</id>
		<title>Mapcomponents: feature map</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapcomponents:_feature_map&amp;diff=13428"/>
		<updated>2014-10-27T23:00:47Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: delete due to duplicate info.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{delete}}&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;span class=&amp;quot;warning&amp;quot;&amp;gt;Thankfully, features can now be placed via LUA, ingame and in realtime using [[Map_Making:_Feature_Placer|FeaturePlacer]].&amp;lt;/span&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Feature Map =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&#039;&#039;&#039;Feature Map dimensions are Texture Map size / 8. In other words, if your texture map is 8192x8192 (16x16), 8192 / 8 = 1024x1024&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Feature maps used to be quite complicated, but all that changed with the advent of Smoth&#039;s FeaturePlacer (short featuremap history below).&lt;br /&gt;
&lt;br /&gt;
Now featuremaps are use simply for the purpose of placing grass. Grass coverage is defined by blue pixels on the feature map. The more blue the pixel is (the closer to blue 255 it is), the thicker grass will be at that location. Grass is entirely optional, but can be customized via map parameters and adds a nice touch to your map.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example Feature Map:&lt;br /&gt;
&lt;br /&gt;
[[File:examplefeature.jpg]]&lt;br /&gt;
&lt;br /&gt;
== A brief history of featuremaps ==&lt;br /&gt;
&lt;br /&gt;
Feature maps were (and still are) a single RGB image where features such as grass, geothermal vents and trees, as well as structures, etc were &amp;quot;placed&amp;quot; using pixels on the image. This method was extremely imprecise and involved recompiling the map many times in order to simply move a tree from one location to another.&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapcomponents:_heightmap&amp;diff=13434</id>
		<title>Mapcomponents: heightmap</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapcomponents:_heightmap&amp;diff=13434"/>
		<updated>2014-10-27T23:00:12Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: delete due to duplicate info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{delete}}&lt;br /&gt;
= Heightmap =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&#039;&#039;&#039;Height Maps are Texture Map size / 8 + 1 pixel. In other words, if your texture map is 8192x8192 (16x16), 8192 / 8 + 1 = 1025x1025&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will need a good image editing program to make heightmaps. Many of the aforementioned terrain generation programs will also generate heightmaps as well, but you can draw them by hand. They can be either 8bit or 16bit greyscale PNG. If you have photoshop or the gimp, you can use these programs to help you create your heightmap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is an example of a 16bit heightmap:&lt;br /&gt;
&lt;br /&gt;
[[File:Heightmapexample.png]]&lt;br /&gt;
&lt;br /&gt;
Heightmaps work upon the idea of height according to color values. Black is the lowest, white is the heighest. In spring mapping, the waterline is defined by a negative height value. In other words, you define the heights of the map, &amp;amp;nbsp;anything below 0 is under water. So on this heightmap, you might use -50 for the lowest value and 300 for the highest height value. The aforementioned tool &amp;quot;Mapconv Gui (a.k.a Das Bruce&#039;s MapConv Gui) has a waterline calculator that will help you calculate the correct waterline for your map.&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapcomponents:_metal_map&amp;diff=13439</id>
		<title>Mapcomponents: metal map</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapcomponents:_metal_map&amp;diff=13439"/>
		<updated>2014-10-27T22:59:30Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: delete due to duplicate info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{delete}}&lt;br /&gt;
= Metal Map =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&#039;&#039;&#039;Metal Map dimensions are Texture Map size / 8 + 1 pixel. In other words, if your texture map is 8192x8192 (16x16), 8192 / 8 + 1 = 1025x1025&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Spring, metal maps are used for the built in resourcing scheme (Metal/Energy). You do not have to use this scheme. In fact, there are several games for Spring who use their own resourcing systems added on using Lua. If you are creating this map for one of those games, a metal map is not strictly necessary (in other words you can just us a black image), however, it is always nice if you can make your maps as compatible with other games as possible, but this is a choice left entirely up to you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Metalmaps show metal areas on a map based upon the amount of red on the image (make sure red is the only color used!). On this map you can see that the &amp;quot;Patch Technique&amp;quot; is used, which is pretty common among spring maps, but you are not limited to using this scheme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you do want perfect metal patches, use a 6x6 pixel pencil in your image editor with a red value of 255. This combined with setting the &amp;quot;MaxMetal&amp;quot; tag in the definitions to 1, will result in a perfect 2.0 metal generation per patch (using Balanaced Annihilation values). The game use isn&#039;t the point however. The fact is that if you can predict how much each spot will output (typically), using the &amp;quot;MaxMetal&amp;quot; parameter, you can easily scale the values up and down. As an example of another extreme, Evolution RTS dictates that all metal patches will output 0.5 metal regardless of the map settings. So whether you need to put a lot of thought into your metal map values depends entirely upon the game for which you are creating the map.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example Metal Map:&lt;br /&gt;
&lt;br /&gt;
[[File:Examplemetal.jpg]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapcomponents:_texture&amp;diff=13446</id>
		<title>Mapcomponents: texture</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapcomponents:_texture&amp;diff=13446"/>
		<updated>2014-10-27T22:58:53Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: delete due to duplicate info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{delete}}&lt;br /&gt;
= Texture Map =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&#039;&#039;&#039;Texture map size is related in pixels and in spring map size. 2x2 MapSquares in spring are equal to 1024x1024 Pixels. Texture maps mus be in multiples of 2. I.E. 2x2, 6x10, 12x16, 16x16, etc. No odd sizes are allowed (Example: 15x10).&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This guide assumes that you understand how to make a texture map and it also assumes that you know how to use terrain generation software.&lt;br /&gt;
&lt;br /&gt;
Commonly used terrain generation programs are:&lt;br /&gt;
&lt;br /&gt;
Spring Map Edit (Does not work on 64bit machines)&lt;br /&gt;
&lt;br /&gt;
L3DT&lt;br /&gt;
&lt;br /&gt;
WorldMachine&lt;br /&gt;
&lt;br /&gt;
Bryce3D&lt;br /&gt;
&lt;br /&gt;
Carrara&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example Texture Map (generated by Carrara):&lt;br /&gt;
&lt;br /&gt;
[[File:exampletexturemap.jpg]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SSMF:_Specular_Map&amp;diff=16301</id>
		<title>SSMF: Specular Map</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SSMF:_Specular_Map&amp;diff=16301"/>
		<updated>2014-10-22T00:37:12Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: not enough useful information compared to http://springrts.com/wiki/Mapdev:specular&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{delete}}&lt;br /&gt;
= Specular Map =&lt;br /&gt;
&lt;br /&gt;
A specular map controls brightness and &amp;quot;shinyness&amp;quot; of your map. The more light you add to a particular portion of your specular map, the brighter and more reflective that portion of the map will be. Specular maps should be 1024x1024 and saved as specularmap.bmp. Of course placed in the maps folder with the other ssmf maps.&lt;br /&gt;
&lt;br /&gt;
http://www.evolutionrts.info/random/examplespecularmap.jpg&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SSMF:_Normal_Map&amp;diff=16297</id>
		<title>SSMF: Normal Map</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SSMF:_Normal_Map&amp;diff=16297"/>
		<updated>2014-10-21T08:43:24Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: duplicate information http://springrts.com/wiki/Mapdev:normal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{delete}}&lt;br /&gt;
= Normal Map =&lt;br /&gt;
&lt;br /&gt;
Normal maps (in this case) are used to add &amp;quot;fake&amp;quot; 3d detail to a flat 2d image. It is a technique of manipulating lighting to give the appearance of looking at a 3d object, when actually it is just 2D.&lt;br /&gt;
&lt;br /&gt;
This is what a normal map looks like:&lt;br /&gt;
[[File:examplenormalmap.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map making]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SSMF:_Detail_Textures&amp;diff=16280</id>
		<title>SSMF: Detail Textures</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SSMF:_Detail_Textures&amp;diff=16280"/>
		<updated>2014-10-21T08:41:40Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: duplicate information  http://springrts.com/wiki/Mapdev:splatdetail&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{delete}}&lt;br /&gt;
= Detail Textures =&lt;br /&gt;
&lt;br /&gt;
Detail textures are made by adding a texture to each channel of an image.&lt;br /&gt;
&lt;br /&gt;
http://www.evolutionrts.info/random/examplesplattex.jpg&lt;br /&gt;
&lt;br /&gt;
There are a total of 4 texture slots available. One for R, G, B, and one for the Alpha Channel. When you have your detail textures ready, save the file as splattex.tga (Targa - 1024x1024) and place it in the maps folder alongside splatdistribution.tga&lt;br /&gt;
&lt;br /&gt;
[[Category:Map making|Map_making]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SSMF:_Grass_Shading_Map&amp;diff=16290</id>
		<title>SSMF: Grass Shading Map</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SSMF:_Grass_Shading_Map&amp;diff=16290"/>
		<updated>2014-10-21T08:40:26Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{delete}}&lt;br /&gt;
= Grass Shading Map =&lt;br /&gt;
By default spring&#039;s grass pulls the minimap to use for coloration of the grass patches. You can override this with &#039;&#039;grassShadingTex&#039;&#039;. Below is an example&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;Grass map&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Grass map in game&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[File:Grassmap_Map_example.jpegâ€Ž|120px|alt=grassmap example |grassmap]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;This is a section of grassmap image. This image applied to the entire map which determines the color of grass.&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[File:Grassmap_Map_ingame.jpgâ€Ž|300px|alt=grassmapp applied in game|in game]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;Click image for larger picture&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Click image for larger picture&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Map making|Map_making]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SSMF:_Grass_Shading_Map&amp;diff=16289</id>
		<title>SSMF: Grass Shading Map</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SSMF:_Grass_Shading_Map&amp;diff=16289"/>
		<updated>2014-10-21T08:40:13Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: duplicate information http://springrts.com/wiki/Mapdev:grass&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{delete}&lt;br /&gt;
= Grass Shading Map =&lt;br /&gt;
By default spring&#039;s grass pulls the minimap to use for coloration of the grass patches. You can override this with &#039;&#039;grassShadingTex&#039;&#039;. Below is an example&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;Grass map&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Grass map in game&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[File:Grassmap_Map_example.jpegâ€Ž|120px|alt=grassmap example |grassmap]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;This is a section of grassmap image. This image applied to the entire map which determines the color of grass.&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[File:Grassmap_Map_ingame.jpgâ€Ž|300px|alt=grassmapp applied in game|in game]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;Click image for larger picture&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Click image for larger picture&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Map making|Map_making]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:grass&amp;diff=13804</id>
		<title>Mapdev:grass</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:grass&amp;diff=13804"/>
		<updated>2014-10-21T08:39:58Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: added crappy example images.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Grass =&lt;br /&gt;
Grass is entirely optional, but can be customized via map parameters and adds a nice touch to your map.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| [[File:Mapdev-grass.png]] || [[File:Mapdev-grass-example.png|451px]]&lt;br /&gt;
|-&lt;br /&gt;
! Example Grass Disribution&lt;br /&gt;
! In Game Result&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   resources = {&lt;br /&gt;
      ...&lt;br /&gt;
      grassBladeTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      grassShadingTex = &amp;quot;&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
   grass = {&lt;br /&gt;
      bladeWaveScale = 1.0,&lt;br /&gt;
      bladeWidth = 0.32,&lt;br /&gt;
      bladeHeight = 4.0,&lt;br /&gt;
      bladeAngle = 1.57,&lt;br /&gt;
      bladeColor = {0.59, 0.81, 0.57},&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
=== Blade Wave Scale ===&lt;br /&gt;
Defaults to 1. It specifies how much the blades will wave in the wind. Higher makes them wave more.&lt;br /&gt;
&lt;br /&gt;
=== Blade Height ===&lt;br /&gt;
Default is 4. Defines the length of the blade of grass in elmos.&lt;br /&gt;
&lt;br /&gt;
=== Blade Angle ===&lt;br /&gt;
Default is pi/4. It defines how much each blade of grass curves.&lt;br /&gt;
&lt;br /&gt;
=== Blade Color ===&lt;br /&gt;
does nothing when blade texture is set.&lt;br /&gt;
&lt;br /&gt;
== Distribution Image ==&lt;br /&gt;
Formerly [[Mapdev:features|Feature]] Map. Grass distribution is defined by blue pixels, the more blue the pixel is (the closer to blue 255 it is), the thicker grass will be at that location. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| The distribution map is an intermediary file compiled into the SMF/SMT files using [[MapConv]] or [[MapConvNG]].&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| Any that Mapconv programs support&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| &amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
!Spring Map Size&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
!pixels = Spring Map Size * 64&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 128&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 256&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 284&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| 2048&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left;font-style:italic&amp;quot; colspan=2 | &amp;amp;#42; must be multiples of 2&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Shading Image ==&lt;br /&gt;
* If a shading image is not present, the minimap will be used in its place.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| ./maps/&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| PNG, TGA&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| Any, recommended powers of two, will be stretched over the terrain.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| [[File:Grassmap_Map_example.jpegâ€Ž]] || [[File:Grassmap_Map_ingame.jpg|512px|â€Ž]]&lt;br /&gt;
|-&lt;br /&gt;
! Example !! Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Blade Texture ==&lt;br /&gt;
{{FIXME}} need more info.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| ./maps/&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| PNG, TGA&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| {{FIXME}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
| {{FIXME}} || {{FIXME}}&lt;br /&gt;
|-&lt;br /&gt;
! Example !! Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Forum Discussions =&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=27585 Try to keep perspective]&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SSMF:_Distribution_Map&amp;diff=16284</id>
		<title>SSMF: Distribution Map</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SSMF:_Distribution_Map&amp;diff=16284"/>
		<updated>2014-10-21T08:32:08Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: Duplicates information http://springrts.com/wiki/Mapdev:splatdetail&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{delete}}&lt;br /&gt;
= Distribution Map =&lt;br /&gt;
&lt;br /&gt;
The Distribution map is essentially an atlas telling spring where to spread your detail textures. Lets have a look at an example distribution map:&lt;br /&gt;
&lt;br /&gt;
http://www.evolutionrts.info/random/examplesplatdistribution.jpg&lt;br /&gt;
&lt;br /&gt;
Each channel corresponds to a different texture referenced in the detail texture map. These areas are set using the channels of the image and are generally saved using the Targa format ( .tga ), sized at 1024x1024.&lt;br /&gt;
&lt;br /&gt;
http://www.evolutionrts.info/random/examplechannels.jpg&lt;br /&gt;
&lt;br /&gt;
Save your distribution map as splatdistribution.tga, and place it in the maps folder alongside the smf and smt files.&lt;br /&gt;
&lt;br /&gt;
Once you have your distribution map, you need to set up your detail textures&lt;br /&gt;
&lt;br /&gt;
[[Category:Map making|Map_making]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Main&amp;diff=13535</id>
		<title>Mapdev:Main</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Main&amp;diff=13535"/>
		<updated>2014-09-23T12:13:41Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Specific to Map Development */ updated my tool status&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Map Development =&lt;br /&gt;
Maps are the fields on which the battles are fought, made with the implicit contract that they shall not alter game mechanics. They are made up of images and text files which describe the environment and its features, such as height, colour, background, details features, atmosphere and lighting etc. These images and text files are then compressed into a 7zip archive for distribution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-Game Screenshot&lt;br /&gt;
|[[File:Screen00364.jpg|640px]]&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Beginners Tutorial =&lt;br /&gt;
This beginners tutorial is split into three parts, the basic stuff, the more advanced basic stuff, and how to compile and create a map archive for distribution. It is intended to get you started, when you are comfortable with the concepts, please look over the technical documentation to further your knowledge.&lt;br /&gt;
* [[Mapdev:Tutorial_Simple|Stage 1]]&lt;br /&gt;
* [[Mapdev:Tutorial_Intermediate|Stage 2]]&lt;br /&gt;
* [[Mapdev:Tutorial_Finalizing|Finalizing]]&lt;br /&gt;
&lt;br /&gt;
= Blueprint =&lt;br /&gt;
Due to the amount of boiler plate files needed to create a fairly feature complete map, [[User:Jk|Jk]] has created a blueprint map to get things started&lt;br /&gt;
* [https://github.com/jk3064/Map-Blueprint/archive/master.zip Link to blueprint zip]&lt;br /&gt;
&lt;br /&gt;
= Technical Documentation =&lt;br /&gt;
; &#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:mapinfo.lua|mapinfo.lua]]&lt;br /&gt;
* [[Mapdev:set.lua|set.lua]] - feature set&lt;br /&gt;
* [[Mapdev:SMT format|SMT format]]&lt;br /&gt;
* [[Mapdev:SMF format|SMF format]]&lt;br /&gt;
* [[Gamedev:Archives]]&lt;br /&gt;
* [[Mapdev:sounds]]&lt;br /&gt;
* [[Mapdev:performance]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Terrain Shading&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:diffuse]]&lt;br /&gt;
* [[Mapdev:detail]]&lt;br /&gt;
* [[Mapdev:splatdetail]]&lt;br /&gt;
* [[Mapdev:specular]]&lt;br /&gt;
* [[Mapdev:normal]]&lt;br /&gt;
* [[Mapdev:parallax]]&lt;br /&gt;
* [[Mapdev:skyreflectmod]]&lt;br /&gt;
* [[Mapdev:lightemission]]&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Terrain Features&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:height]]&lt;br /&gt;
* [[Mapdev:metal]]&lt;br /&gt;
* [[Mapdev:terraintype]]&lt;br /&gt;
* [[Mapdev:grass]]&lt;br /&gt;
* [[Mapdev:features]]&lt;br /&gt;
* [[Mapdev:water]]&lt;br /&gt;
* [[Mapdev:borders]]&lt;br /&gt;
* [[Mapdev:minimap]]&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Environment&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:skybox]]&lt;br /&gt;
* [[Mapdev:lighting]]&lt;br /&gt;
* [[Mapdev:atmosphere]]&lt;br /&gt;
&lt;br /&gt;
= Scripting =&lt;br /&gt;
* [[Mapdev:MapOptions]]&lt;br /&gt;
* [[Mapdev:LuaShaders]]&lt;br /&gt;
* [[Mapdev:Mutators]] [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21808 forum discussion]&lt;br /&gt;
&lt;br /&gt;
= Howto&#039;s =&lt;br /&gt;
* [[Mapdev:Howto_voidwater/space]]&lt;br /&gt;
* [[Mapdev:Howto_spring_features_v1]]&lt;br /&gt;
* [[Mapdev:Howto_skybox]]&lt;br /&gt;
* [[Mapdev:howto_height_blender|Making a height map with Blender]]&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
A big list of tools used in developing spring games and assets:&lt;br /&gt;
* [[Map,_Game,_And_Unit_Development_Programs]]&lt;br /&gt;
&lt;br /&gt;
== Specific to Map Development ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|+ Tools vs Platform&lt;br /&gt;
! Tool !! Windows !! Linux !! MacOS&lt;br /&gt;
|-&lt;br /&gt;
| [[MapConv]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[MapConvNG]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[Mapdeconv]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| Start Position Editor&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  [http://springfiles.com/spring/tools/mapping-tools Yes]&lt;br /&gt;
|-&lt;br /&gt;
| Das Bruce&#039;s Mapconv Frontend&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  [http://springfiles.com/spring/tools/mapping-tools Yes]&lt;br /&gt;
|-&lt;br /&gt;
| FrostRegen&#039;s [[Maps:SpringMapEdit|SpringMapEdit]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/enetheru/MapConv Enetheru&#039;s MapConv](a little broken)&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot; | Yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;background:yellow;text-align:center&amp;quot; | ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spring Add-Ons ==&lt;br /&gt;
* [[Map_Making:_Feature_Placer|FeaturePlacer]]&lt;br /&gt;
* [[ToolBox]]&lt;br /&gt;
* [http://springfiles.com/spring/tools/spring-features Spring Features V1.0]&lt;br /&gt;
&lt;br /&gt;
= Common Problems =&lt;br /&gt;
== Pink Map ==&lt;br /&gt;
Renaming the SMT file and not defining the new name in mapinfo.lua will result in a map with a pink texture. Also don&#039;t put any spaces in the name.&lt;br /&gt;
&lt;br /&gt;
== Map doesn&#039;t show in spring after compressing with 7zip==&lt;br /&gt;
The most likely cause is that it was compressed using the solid archive option.&lt;br /&gt;
&lt;br /&gt;
{{FIXME}}Add windows and MacOS solutions.&lt;br /&gt;
&lt;br /&gt;
For linux the option &amp;lt;code&amp;gt;-ms=off&amp;lt;/code&amp;gt; needs to be given on the command line. eg.&lt;br /&gt;
: &amp;lt;code&amp;gt; 7z a -ms=off myarchivename.sd7 dem files I want to archive&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flipped Images ==&lt;br /&gt;
Heightmap images compiled into map files are inverted. It is necessary to use the -i parameter of Mapconv to vertically flip the image so that it matches the texture.&lt;br /&gt;
&lt;br /&gt;
== smt name defined in smf ==&lt;br /&gt;
The SMT file name is hardcoded in the SMF, and renaming the SMT used to cause pink map issues, but the SMT can now be manually defined in mapinfo.lua thereby bypassing the entire issue altogether.&lt;br /&gt;
&lt;br /&gt;
= Map Development Wiki =&lt;br /&gt;
* [[Mapdev:WikiGuide|Mapdev Wiki Guide]]&lt;br /&gt;
&lt;br /&gt;
= Deprecated but not Deleted =&lt;br /&gt;
We plan on integrating any and all useful knowledge from these pages into the rest of the wiki, they are kept here so that they are not hidden away.&lt;br /&gt;
== Full Guides For Map Making (Outdated) ==&lt;br /&gt;
The guides listed below are outdated and scheduled for archival.&lt;br /&gt;
*[[Create maps|aGorm&#039;s map creating Guide]]&lt;br /&gt;
*[[Map Making Guide|aGorms Ultimate Map Making Guide(unfinished)]]&lt;br /&gt;
*[[IceXuick Map Design Help|IceXuicks Map creating Guide]]&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?t=3941 Forboding Angel&#039;s map creating Tutorial]&lt;br /&gt;
*[[Maps:Tutorial|Another tutorial from a designing point of view]]&lt;br /&gt;
*[[A Complete Map Making Tutorial|A Complete Map Making Tutorial (under construction)]]&lt;br /&gt;
*[[Runecrafter|Runecrafter&#039;s Map Tutorial]]&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=15390 Beherith&#039;s map creating tutorial using the World in Conflict map editor]&lt;br /&gt;
&lt;br /&gt;
== Specific Guides (Extremely Outdated!) ==&lt;br /&gt;
The linked pages below are scheduled for archival.&lt;br /&gt;
*[[Maps:SMD|Spring Map Definition(smd) reference]]&lt;br /&gt;
*[[Maps:Compiling|Everything about Compiling your map]]&lt;br /&gt;
*[[MapsBalance|Some things about map balance]]&lt;br /&gt;
*[[MapSizes|Map sizes in pixels]] and memory information about map sizes&lt;br /&gt;
*[[Height Map Tutorial|RogerN&#039;s height map tutorial]]&lt;br /&gt;
*[[Create map texture with povray|Basic howto: create map texture with Povray]]&lt;br /&gt;
&lt;br /&gt;
[[Spring_Features]] is an Archive which contains Stones, rocks, trees, and can be used for your map.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Main&amp;diff=13534</id>
		<title>Mapdev:Main</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Mapdev:Main&amp;diff=13534"/>
		<updated>2014-07-11T21:07:48Z</updated>

		<summary type="html">&lt;p&gt;Enetheru: /* Specific to Map Development */  Added my tool to the list.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Map Development =&lt;br /&gt;
Maps are the fields on which the battles are fought, made with the implicit contract that they shall not alter game mechanics. They are made up of images and text files which describe the environment and its features, such as height, colour, background, details features, atmosphere and lighting etc. These images and text files are then compressed into a 7zip archive for distribution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+In-Game Screenshot&lt;br /&gt;
|[[File:Screen00364.jpg|640px]]&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Beginners Tutorial =&lt;br /&gt;
This beginners tutorial is split into three parts, the basic stuff, the more advanced basic stuff, and how to compile and create a map archive for distribution. It is intended to get you started, when you are comfortable with the concepts, please look over the technical documentation to further your knowledge.&lt;br /&gt;
* [[Mapdev:Tutorial_Simple|Stage 1]]&lt;br /&gt;
* [[Mapdev:Tutorial_Intermediate|Stage 2]]&lt;br /&gt;
* [[Mapdev:Tutorial_Finalizing|Finalizing]]&lt;br /&gt;
&lt;br /&gt;
= Blueprint =&lt;br /&gt;
Due to the amount of boiler plate files needed to create a fairly feature complete map, [[User:Jk|Jk]] has created a blueprint map to get things started&lt;br /&gt;
* [https://github.com/jk3064/Map-Blueprint/archive/master.zip Link to blueprint zip]&lt;br /&gt;
&lt;br /&gt;
= Technical Documentation =&lt;br /&gt;
; &#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:mapinfo.lua|mapinfo.lua]]&lt;br /&gt;
* [[Mapdev:set.lua|set.lua]] - feature set&lt;br /&gt;
* [[Mapdev:SMT format|SMT format]]&lt;br /&gt;
* [[Mapdev:SMF format|SMF format]]&lt;br /&gt;
* [[Gamedev:Archives]]&lt;br /&gt;
* [[Mapdev:sounds]]&lt;br /&gt;
* [[Mapdev:performance]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Terrain Shading&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:diffuse]]&lt;br /&gt;
* [[Mapdev:detail]]&lt;br /&gt;
* [[Mapdev:splatdetail]]&lt;br /&gt;
* [[Mapdev:specular]]&lt;br /&gt;
* [[Mapdev:normal]]&lt;br /&gt;
* [[Mapdev:parallax]]&lt;br /&gt;
* [[Mapdev:skyreflectmod]]&lt;br /&gt;
* [[Mapdev:lightemission]]&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Terrain Features&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:height]]&lt;br /&gt;
* [[Mapdev:metal]]&lt;br /&gt;
* [[Mapdev:terraintype]]&lt;br /&gt;
* [[Mapdev:grass]]&lt;br /&gt;
* [[Mapdev:features]]&lt;br /&gt;
* [[Mapdev:water]]&lt;br /&gt;
* [[Mapdev:borders]]&lt;br /&gt;
* [[Mapdev:minimap]]&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Environment&#039;&#039;&#039;&lt;br /&gt;
* [[Mapdev:skybox]]&lt;br /&gt;
* [[Mapdev:lighting]]&lt;br /&gt;
* [[Mapdev:atmosphere]]&lt;br /&gt;
&lt;br /&gt;
= Scripting =&lt;br /&gt;
* [[Mapdev:MapOptions]]&lt;br /&gt;
* [[Mapdev:LuaShaders]]&lt;br /&gt;
* [[Mapdev:Mutators]] [http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=21808 forum discussion]&lt;br /&gt;
&lt;br /&gt;
= Howto&#039;s =&lt;br /&gt;
* [[Mapdev:Howto_voidwater/space]]&lt;br /&gt;
* [[Mapdev:Howto_spring_features_v1]]&lt;br /&gt;
* [[Mapdev:Howto_skybox]]&lt;br /&gt;
* [[Mapdev:howto_height_blender|Making a height map with Blender]]&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
A big list of tools used in developing spring games and assets:&lt;br /&gt;
* [[Map,_Game,_And_Unit_Development_Programs]]&lt;br /&gt;
&lt;br /&gt;
== Specific to Map Development ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|+ Tools vs Platform&lt;br /&gt;
! Tool !! Windows !! Linux !! MacOS&lt;br /&gt;
|-&lt;br /&gt;
| [[MapConv]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[MapConvNG]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| [[Mapdeconv]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  Yes&lt;br /&gt;
|-&lt;br /&gt;
| Start Position Editor&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  [http://springfiles.com/spring/tools/mapping-tools Yes]&lt;br /&gt;
|-&lt;br /&gt;
| Das Bruce&#039;s Mapconv Frontend&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  [http://springfiles.com/spring/tools/mapping-tools Yes]&lt;br /&gt;
|-&lt;br /&gt;
| FrostRegen&#039;s [[Maps:SpringMapEdit|SpringMapEdit]]&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot;|  yes&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/enetheru/MapConv Enetheru&#039;s MapConv]&lt;br /&gt;
| style=&amp;quot;background:red;text-align:center&amp;quot; | no&lt;br /&gt;
| style=&amp;quot;background:green;text-align:center&amp;quot; | yes&lt;br /&gt;
| style=&amp;quot;background:red;text-align:center&amp;quot; | no&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Spring Add-Ons ==&lt;br /&gt;
* [[Map_Making:_Feature_Placer|FeaturePlacer]]&lt;br /&gt;
* [[ToolBox]]&lt;br /&gt;
* [http://springfiles.com/spring/tools/spring-features Spring Features V1.0]&lt;br /&gt;
&lt;br /&gt;
= Common Problems =&lt;br /&gt;
== Pink Map ==&lt;br /&gt;
Renaming the SMT file and not defining the new name in mapinfo.lua will result in a map with a pink texture. Also don&#039;t put any spaces in the name.&lt;br /&gt;
&lt;br /&gt;
== Map doesn&#039;t show in spring after compressing with 7zip==&lt;br /&gt;
The most likely cause is that it was compressed using the solid archive option.&lt;br /&gt;
&lt;br /&gt;
{{FIXME}}Add windows and MacOS solutions.&lt;br /&gt;
&lt;br /&gt;
For linux the option &amp;lt;code&amp;gt;-ms=off&amp;lt;/code&amp;gt; needs to be given on the command line. eg.&lt;br /&gt;
: &amp;lt;code&amp;gt; 7z a -ms=off myarchivename.sd7 dem files I want to archive&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flipped Images ==&lt;br /&gt;
Heightmap images compiled into map files are inverted. It is necessary to use the -i parameter of Mapconv to vertically flip the image so that it matches the texture.&lt;br /&gt;
&lt;br /&gt;
== smt name defined in smf ==&lt;br /&gt;
The SMT file name is hardcoded in the SMF, and renaming the SMT used to cause pink map issues, but the SMT can now be manually defined in mapinfo.lua thereby bypassing the entire issue altogether.&lt;br /&gt;
&lt;br /&gt;
= Map Development Wiki =&lt;br /&gt;
* [[Mapdev:WikiGuide|Mapdev Wiki Guide]]&lt;br /&gt;
&lt;br /&gt;
= Deprecated but not Deleted =&lt;br /&gt;
We plan on integrating any and all useful knowledge from these pages into the rest of the wiki, they are kept here so that they are not hidden away.&lt;br /&gt;
== Full Guides For Map Making (Outdated) ==&lt;br /&gt;
The guides listed below are outdated and scheduled for archival.&lt;br /&gt;
*[[Create maps|aGorm&#039;s map creating Guide]]&lt;br /&gt;
*[[Map Making Guide|aGorms Ultimate Map Making Guide(unfinished)]]&lt;br /&gt;
*[[IceXuick Map Design Help|IceXuicks Map creating Guide]]&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?t=3941 Forboding Angel&#039;s map creating Tutorial]&lt;br /&gt;
*[[Maps:Tutorial|Another tutorial from a designing point of view]]&lt;br /&gt;
*[[A Complete Map Making Tutorial|A Complete Map Making Tutorial (under construction)]]&lt;br /&gt;
*[[Runecrafter|Runecrafter&#039;s Map Tutorial]]&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?f=13&amp;amp;t=15390 Beherith&#039;s map creating tutorial using the World in Conflict map editor]&lt;br /&gt;
&lt;br /&gt;
== Specific Guides (Extremely Outdated!) ==&lt;br /&gt;
The linked pages below are scheduled for archival.&lt;br /&gt;
*[[Maps:SMD|Spring Map Definition(smd) reference]]&lt;br /&gt;
*[[Maps:Compiling|Everything about Compiling your map]]&lt;br /&gt;
*[[MapsBalance|Some things about map balance]]&lt;br /&gt;
*[[MapSizes|Map sizes in pixels]] and memory information about map sizes&lt;br /&gt;
*[[Height Map Tutorial|RogerN&#039;s height map tutorial]]&lt;br /&gt;
*[[Create map texture with povray|Basic howto: create map texture with Povray]]&lt;br /&gt;
&lt;br /&gt;
[[Spring_Features]] is an Archive which contains Stones, rocks, trees, and can be used for your map.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>Enetheru</name></author>
	</entry>
</feed>