<?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=ILMTitan</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=ILMTitan"/>
	<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/wiki/Special:Contributions/ILMTitan"/>
	<updated>2026-11-08T22:07:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Development:Main&amp;diff=5630</id>
		<title>Development:Main</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Development:Main&amp;diff=5630"/>
		<updated>2007-12-23T14:22:33Z</updated>

		<summary type="html">&lt;p&gt;ILMTitan: /* Development links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Outlined below is information on assisting with the development of the Spring source itself.&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;small&amp;gt;NOTE: For information about developing a mod (units, maps, etc.) see the [[Mod Development]] page.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below you can find information on how to work with the Spring source in the current mainline (Windows platform) if you like to work on another platform (Linux &amp;amp; Mac) please look at the bottem of this page under &amp;quot;Multiplatform development&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Starting Development==&lt;br /&gt;
To start development, you will need&lt;br /&gt;
#The latest version of the source &lt;br /&gt;
#A good code manipulation program&lt;br /&gt;
#Compiling your modified source&lt;br /&gt;
&lt;br /&gt;
== Keep track what others do ==&lt;br /&gt;
If you develop with others, you need to know what they do. We have [http://spring.clan-sy.com/fisheye/ fisheye], a very handy SVN helper, and [http://spring.clan-sy.com/websvn/ WebSVN] running on the server.&lt;br /&gt;
&lt;br /&gt;
===Source Code Documentation===&lt;br /&gt;
A good place to start is [http://buildbot.no-ip.org/~buildbot/spring/doxygen the source code documentation].&lt;br /&gt;
&lt;br /&gt;
An explanation on how the code is executed in game can be found in the [[Spring Engine Code]]&lt;br /&gt;
page.&lt;br /&gt;
&lt;br /&gt;
==Obtaining the Source==&lt;br /&gt;
The latest SVN is at: [https://spring.clan-sy.com/svn/spring https://spring.clan-sy.com/svn/spring]&lt;br /&gt;
&lt;br /&gt;
Another option is to manually [http://spring.clan-sy.com/download.php download] it along with the latest released version of the game. However, for serious developers, a better way would be to download the source straight from the subversion (SVN) repository. This will also allow you to make a patch out of the changes you make to the code, and send it to one of the developers with SVN access.&lt;br /&gt;
&lt;br /&gt;
Windows SVN clients : [http://subversion.tigris.org Subversion] (Win32-Console), &lt;br /&gt;
[http://www.syntevo.com/smartsvn/index.jsp SmartSVN] (Java) and [http://tortoisesvn.tigris.org TortoiseSVN] (MSI).&lt;br /&gt;
&lt;br /&gt;
Assuming that you are using the Subversion svn client you can download the latest SVN source with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;svn.exe checkout https://spring.clan-sy.com/svn/spring/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will create a trunk subdirectory in the directory from where you ran it, which will contain the source code root directory which will be later referred to as /spring&lt;br /&gt;
&lt;br /&gt;
==Learning C++==&lt;br /&gt;
You will need to know C++ to modify or understand Spring&#039;s source code. If you are interested in learning C++, see [[Learning_CPP]]&lt;br /&gt;
&lt;br /&gt;
However please note that badly designed code (code created by a C++ novice for example), even if working will likely not be included in the spring code. Spring is a large project, and therefore it is necessary to stay away from hack jobs and create general solutions to problems.&lt;br /&gt;
&lt;br /&gt;
==Setting up your development environment==&lt;br /&gt;
You have either to use the SCons build system that is multi platform, or use Microsoft Visual Studio for building spring. See also [[Development_IDEs]] for some more background information about the IDE to choose.&lt;br /&gt;
&lt;br /&gt;
===Visual Studio 8 (2005)===&lt;br /&gt;
(possibly the free Express Edition) &lt;br /&gt;
&lt;br /&gt;
* Install the [http://xta.wolfgame.org/SimBase/vclibs.7z vclibs library package]. You need to install this in the /spring directory from the SVN checkout the zipped source. If done right, it will look like:&lt;br /&gt;
**/spring/&lt;br /&gt;
**/spring/installer&lt;br /&gt;
**/spring/rts&lt;br /&gt;
**/spring/... other dirs&lt;br /&gt;
**/spring/vclibs&lt;br /&gt;
* Install the [http://msdn.microsoft.com/directx/sdk/ DirectX SDK]&lt;br /&gt;
* Install the PlatformSDK. I got away with unchecking the parts of the PlatformSDK that were obviously not related (IIS, web stuff). Makes for a smaller download. Make &#039;&#039;&#039;sure&#039;&#039;&#039; the Platform SDK and DirectX SDK are in the VS search/include directories:&lt;br /&gt;
* After installing them, open Visual C++. Click Tools &amp;gt;&amp;gt; Options &amp;gt;&amp;gt; Projects and Solutions &amp;gt;&amp;gt; VC++ Directories. Add these entries to the corresponding sections (paths just a reference, yours may be different):&lt;br /&gt;
**Include files:&lt;br /&gt;
***$(ProgramFiles)\Microsoft DirectX SDK (August 2007)\Include&lt;br /&gt;
***$(ProgramFiles)\Microsoft Platform SDK\include&lt;br /&gt;
**Library files:&lt;br /&gt;
***$(ProgramFiles)\Microsoft DirectX SDK (August 2007)\Lib\x86 (Might need \x64 on a 64-bit platform, I don&#039;t know.)&lt;br /&gt;
***$(ProgramFiles)\Microsoft Platform SDK\lib&lt;br /&gt;
* Open the solution. /spring/rts/build/vstudio8/rts.sln&lt;br /&gt;
* Start building (usually you want to select the release/no debug build, debug is really too slow and is used only when you really know what you want to test)&lt;br /&gt;
* Select the working directory in the project properties, otherwise spring will not work correctly&lt;br /&gt;
&lt;br /&gt;
===SCONS/MinGW===&lt;br /&gt;
Code::Blocks and Dev C++ use MinGW too, so if you are using one of these IDEs, you&#039;ll want to follow these instructions too.&lt;br /&gt;
&lt;br /&gt;
Get [http://www.unknown-files.net/spring/3839/mingwlibsv10/ the MinGW library package]. Make sure you install it it the checkout directory, so the path is: /spring/mingwlibs. If done right, it will look like:&lt;br /&gt;
**/spring/&lt;br /&gt;
**/spring/installer&lt;br /&gt;
**/spring/rts&lt;br /&gt;
**/spring/... other dirs&lt;br /&gt;
**/spring/mingwlibs&lt;br /&gt;
&lt;br /&gt;
These programs are a must have if you want to compile Spring with MinGW, so install them now, if you don&#039;t have them already. (TODO: update links to point to Python 2.5)&lt;br /&gt;
&lt;br /&gt;
*[http://www.python.org/ftp/python/2.4.2/python-2.4.2.msi Python 2.4 installer]&lt;br /&gt;
*[http://prdownloads.sourceforge.net/pywin32/pywin32-208.win32-py2.4.exe?download Python win32 extensions installer] &lt;br /&gt;
*[http://prdownloads.sourceforge.net/scons/scons-0.96.1.win32.exe Scons installer]&lt;br /&gt;
&lt;br /&gt;
Oh, and quick instructions:&lt;br /&gt;
&lt;br /&gt;
* Grab and install the above programs.&lt;br /&gt;
* Make sure C:\Python24 and C:\Dev-Cpp\bin are in your PATH environment variable. Set environment variables by: Start -&amp;gt; Settings -&amp;gt; Control Panel -&amp;gt; System -&amp;gt; Advanced -&amp;gt; Environment variables (for Windows XP).&lt;br /&gt;
* Make sure a MINGDIR environment variable with value C:\Dev-Cpp exists. (change paths where appropriate.)&lt;br /&gt;
* Checkout the Spring SVN repository, following the instructions above in obtaining source. (TODO:link)&lt;br /&gt;
* Open a console (Start -&amp;gt; Run -&amp;gt; cmd.exe -&amp;gt; Run), cd \where you checked it out in the previous step, if you checked it out on a different drive make sure to change drives with DriveLetter:&amp;lt;enter&amp;gt; first.&lt;br /&gt;
* Type scons configure&amp;lt;enter&amp;gt;. Refer to scons --help for options which can be passed to scons configure. Gotchas:&lt;br /&gt;
** If you get an error message starting with &amp;quot;EOFError: : env = Environement...&amp;quot;, try deleting the file build/scons_signatures.dblite&lt;br /&gt;
** If you get an error message stating &amp;quot;ImportError: No module named win32file:&amp;quot;, you have probably not installed the python-win32-extensions.&lt;br /&gt;
** If all proceeds as intended you will see a message similar to: &amp;quot;Everything seems OK.  Run `scons&#039; now to build.&amp;quot;&lt;br /&gt;
* Type scons&amp;lt;enter&amp;gt; to start the compilation.&lt;br /&gt;
* Wait for the compilation to finish, this may take a while.&lt;br /&gt;
* Copy datafiles and stuff from official Spring installation to the /spring/game directory (where spring.exe is located, after the compilation finished.)&lt;br /&gt;
* Copy missing DLLs from mingwlibs/dll.&lt;br /&gt;
* Start developing.&lt;br /&gt;
&lt;br /&gt;
If you are using Linux, refer to the [[SetupGuide]] to build Spring and get it running.&lt;br /&gt;
&lt;br /&gt;
==Development Suggestions==&lt;br /&gt;
Before starting to make modifications to the source, take a look at the [[development guidelines]] which outlines some important things to think about. To find something interesting to work on, look at the list of [[example projects]]. You can also check the list of [[whois doing what]] to see what others are doing. If you do edit the code, please add [[Doxygen style comments]] to the code, which will then enhance the source code documentation.&lt;br /&gt;
&lt;br /&gt;
==How to get your code included==&lt;br /&gt;
If you create something that you think should be included in the official source tree, you can report a &amp;quot;bug&amp;quot; in [http://spring.clan-sy.com/mantis/ mantis, our BTS]. Add your patch as attachment, and put &amp;quot;[patch]&amp;quot; in front of the subject, so it is easy for us to separate patches from bugs.&lt;br /&gt;
&lt;br /&gt;
It&#039;s also considered standard practice to post one&#039;s modifications in the [http://spring.clan-sy.com/phpbb/viewforum.php?f=12 development forum] and get feedback.&lt;br /&gt;
&lt;br /&gt;
==Spring Engine TODO list==&lt;br /&gt;
There is a TODO list for developers who want to contribute to the engine itself:&lt;br /&gt;
[[SpringEngineTODO]]. There is also a [http://spring.clan-sy.com/phpbb/viewforum.php?f=21 feature request forum], which may give you some ideas. Don&#039;t be overwhelmed by the sheer number of (silly) requests though!&lt;br /&gt;
&lt;br /&gt;
==Development links==&lt;br /&gt;
* [http://buildbot.no-ip.org/~buildbot/spring/executable/ Automatic builds (crosscompiled, mingw)]&lt;br /&gt;
* [http://buildbot.no-ip.org/~buildbot/spring/installer/ Automatic installer builds (crosscompiled, mingw)]&lt;br /&gt;
* [http://developer.berlios.de/projects/taspring-linux BerliOS project page (OLD)]&lt;br /&gt;
* [http://spring.clan-sy.com/mantis Bug Tracking System]&lt;br /&gt;
* [http://buildbot.no-ip.org:8010/ Buildbot]&lt;br /&gt;
* [https://lists.berlios.de/mailman/listinfo/taspring-linux-commit Commit mailing list]&lt;br /&gt;
* [http://spring.clan-sy.com/dl/spring-vc8libs.exe Development libraries for Visual Studio 2005]&lt;br /&gt;
* [http://www.unknown-files.net/spring/3839/mingwlibsv10/ Development libraries for MinGW]&lt;br /&gt;
* [http://lolut.utbm.info/cgi-bin/mailman/listinfo/taspring-linux Developers mailing list (practically dead, use this forum instead) (DOWN)]&lt;br /&gt;
* [http://buildbot.no-ip.org/~buildbot/spring/doxygen Doxygen pages of the latest source (regenerated nightly)]&lt;br /&gt;
* [http://spring.clan-sy.com/fisheye Fisheye interface to SVN]&lt;br /&gt;
* [http://sourceforge.net/projects/springrts SourceForge project page (OLD)]&lt;br /&gt;
* [http://buildbot.no-ip.org/~buildbot/spring/stacktraceTranslator.php StackTrace Translator]&lt;br /&gt;
* [https://spring.clan-sy.com/svn/spring/trunk/ Subversion repository]&lt;br /&gt;
* [http://spring.clan-sy.com/websvn/listing.php?repname=spring&amp;amp;path=%2F&amp;amp;sc=0 WebSVN]&lt;br /&gt;
* [http://spring.clan-sy.com/websvn/log.php?repname=spring&amp;amp;path=%2F&amp;amp;rev=0&amp;amp;sc=0&amp;amp;isdir=1 WebSVN link to &amp;quot;development log&amp;quot;]&lt;br /&gt;
* [http://spring.clan-sy.com/websvn/filedetails.php?repname=spring&amp;amp;path=%2Ftrunk%2FDocumentation%2Fchangelog.txt&amp;amp;rev=0&amp;amp;sc=0 WebSVN link to the most recent changelog.txt]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]] [[Category:Source development]]&lt;/div&gt;</summary>
		<author><name>ILMTitan</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Weapon_Variables&amp;diff=19525</id>
		<title>Weapon Variables</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Weapon_Variables&amp;diff=19525"/>
		<updated>2007-09-24T05:33:24Z</updated>

		<summary type="html">&lt;p&gt;ILMTitan: /* Weapon Variable Descriptions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&lt;br /&gt;
=Weapon Variable Descriptions=&lt;br /&gt;
&amp;lt;table width=730 border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;th&amp;gt;Variable &amp;lt;/th&amp;gt;&amp;lt;th&amp;gt; Description &amp;lt;/th&amp;gt;&amp;lt;th&amp;gt; Examples&amp;lt;/Th&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Accuracy&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;How accurate a weapon is.  A larger number is less accurate.  If this tag is missing entirely, it has perfect accuracy unless its target moves unexpectedly.  Accuracy is relative to the distance to the target; for instance, if the target is very close, even a very high accuracy value will probably still hit.  If a target is very far away, even a very low accuracy value will likely cause the weapon to miss.  Can be any numeric value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;accuracy=400;&amp;lt;/TD&amp;gt;&lt;br /&gt;
		&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;AreaOfEffect&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;How large the weapon&#039;s impact explosion is.  This affects how powerful the weapon&#039;s default impulse strength will be.  Currently, BeamLasers with an AreaOfEffect of 16 or above will deform the ground at their point of impact regardless of whether it has been told not to.  Can be any numeric value, but should generally be at least 8, regardless of the type of weapon.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;areaofeffect=192;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Ballistic&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Set to 1 for the weapon to be subjected to gravity, travelling in an arc through the air, such as cannons. Ballistic is mutually exclusive to LineOfSight and Dropped.  Can be 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ballistic=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;BeamLaser&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Whether this weapon is a beam laser or not.  Beam lasers instantly hit their targets.  Rendertype must be 0.  Mutually exclusive to BeamWeapon.  Can be 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;beamlaser=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;BeamTime&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;How long to fire the laser before waiting for ReloadTime to start.  Can be any numeric value.  Defaults to 1.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;beamtime=0.5;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;BeamWeapon&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Whether this weapon is a regular laser or not.  BeamWeapons (lasers) do not instantly hit their targets, and are affected by the weaponvelocity tag.  Mutually exclusive to BeamLaser.  Can be 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;beamweapon=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;BounceRebound&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;The amount of vertical velocity a projectile keeps when it bounces. Generally .3-1, but 0 for a sticky bomb, or 2 for a flubber bomb. Defaults to 1&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;bouncerebound=.8;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;BounceSlip&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;The amount of horizontal velocity a projectile keeps when it bounces. Generally .3-1, but 0 for a sticky bomb, or 2 for a flubber bomb. Defaults to 1&amp;lt;/TD&amp;gt;&lt;br /&gt;
        &amp;lt;TD&amp;gt;bounceslip=.8;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;BurnBlow&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The weapon blows up at the end of its range, only works on plasma (rendertype=4) weapons last I checked.  Can be 1 or 0.  A common usage is on flak guns.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;burnblow=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Burst&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;How many shots are in a burst.  Must be accompanied by burstrate.  Can be any numeric value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;burst=3;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;BurstRate&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;How fast the Burst fires.  If set much below 0.1, it stops having any discernable effect.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;burstrate=0.1&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Color&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;An obsolete tag only recognized for compatibility purposes. While this still works for lasers, using rgbcolor=X X X; is a much, much better route. Plus, the RGBColor tag will override any color=x; tags in the tdf. &amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;color=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Color2&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;An obsolete tag only recognized for compatibility purposes.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;color=2;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;CommandFire&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;When ordered to attack ground this weapon will only fire once, rather than continuously. This does not work when ordered to attack units (It will continue to fire until the target is dead). If the unit has CanDgun=1 in its FBI, commandfire will identify that weapon with the dgun button. The weapon wont fire unless the dgun button is pressed. Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;commandfire=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Coverage&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The range for anti-weapon weapons, like antinukes.  This will be shown on the minimap as a guide.  Can be any numeric value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;coverage=1280;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Dropped&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Sets the weapon to be dropped, like from a bomber.  Must be RenderType=6 and needs the Model tag to be specified.  Mutually exclusive to Ballistic and LineOfSight.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;dropped=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Duration&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;For how many seconds a beam weapon will be fired before waiting for reload time.  Can be any numeric value.  Used for rendertype 0 and 7 weapons.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;duration=.5;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;EdgeEffectiveness&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Determines what percent of a weapon&#039;s maximum damage value will be applied to units as they are closer to the outer edge of the weapon&#039;s AreaOfEffect.  Must have a decimal value between 0 and 1.  Default in OTA was 0, probably the same in Spring.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;edgeeffectiveness=0.25;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;EnergyPerShot&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Energy used per shot.  If the specified amount of energy is not available, the weapon will not be able to shoot.  Can also be used to specify how much a Stockpile weapon wll cost to build.  Can be any numeric value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;energypershot=5;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;FireStarter&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;How likely the weapon will set trees on fire.  High values make trees likey to be set on fire, low values make trees likely to just explode or tip over.  Can be any numeric value between 0 and 100.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;FireStarter=75;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;GroundBounce&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Weather the weapon projectile will bounce on the ground (on land or the ocean floor). Can be 0 or 1, defaults to 0 (off)&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;groundbounce=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Guidance&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Specifies whether or not the weapon is capable of correcting its trajectory mid-flight. Will not track a moving target. Works only on missile and torpedo weapons.  Can be set to 1 or 0.  See TurnRate for information on specifying how well a weapon can track a target.  Requires rendertype=1, lineofsight=1, and selfprop=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;guidance=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ImpulseFactor&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The multiplier on the weapon&#039;s default impulsefactor, which is determined based on a weapon&#039;s default damage and AreaOfEffect.  The impulse of a weapon is how strong of a kinetic force will be applied to its target or anything near the point of impact.  Can be any numeric value, including negative ones.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;impulsefactor=2.5;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Intensity&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Alpha (brighness and washout effect) of the weapon.  Can be used on any rendertype 0, 3, or 4 weapon.  Can be any numeric value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;intensity=1.5;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;InterceptedByShieldType&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Bitfield representing the types of shields that can intercept this weapon. The best way to think about this is to think of it as the resulting binary. Every digit of binary that is set to one means that a shield with that digit set to one will intercept this weapon, for instance, the example will result in the weapons being blocked by shields with types 1 and/or 3. Maxium of 32 unique types. See [[Shield Interception Tag Use]].&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;InterceptedByShieldType=5;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Interceptor&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Can intercept missiles with the Cruise tag.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;interceptor=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;LineOfSight&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;LineOfSight weapons ignore gravity and must have a direct line from the firing point to the impact point in order to be fired.  Can be set to 1 or 0.  Mutually exclusive to Ballistic and Dropped.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;lineofsight=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;MetalPerShot&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Metal used per shot.  If the specified amount is not available, the weapon cannot be fired.  Can also be used to specify how much a Stockpile weapon wll cost to build.  Can be set to any numeric value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;metalpershot=500;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Model&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The 3DO or S3O model to be used as this weapon&#039;s physical representation.  3DO modesl do not need a .3do extension, but S3O weapon do.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;model=missile;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;MovingAccuracy&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;A weapon&#039;s accuracy while moving.  See Accuracy.  Can be any numeric value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;movingaccuracy=1000;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;NoExplode&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Whether or not the weapon will explode on impact or continue on its path.  An example is the d-gun.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;noexplode=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;NoSelfDamage&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;This weapon will not damage the unit that fired it.  For instance, a nuke silo could shoot itself and not take any damage if this was active.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;noselfdamage=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;NumBounce&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The maximum number of times a weapon will bounce. -1 for infinite. Defaults to -1&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;numbounce=5;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Paralyzer&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;If active, this weapon will not cause any damage to its target, but will instead paralyze (aka EMP).  The default damage value of a weapon with this active will be applied to the target&#039;s HP; once the HP is overwhelmed, it will be paralyzed.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;paralyzer=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ParalyzerTime&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;On Paralyzer weapons, determines the maximum length of time the target will be paralyzed (In seconds?). The timer is refreshed every time the target is hit by the weapon. Can be set to any numerical value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;paralyzetime=15;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Range&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The maximum range of the weapon.  If set to noexplode, the weapon will disappear after this range has been met.  If set to burnblow, the weapon will explode after this range has been met.  Can be set to any numerical value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;range=750;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ReloadTime&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The amount of time between shots.  If a unit is paralyzed, this stops counting down.  Can be set to any numerical value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;reloadtime=3.5;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Rendertype&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The way the weapon will be displayed.  Certain rendertypes are incompatibile with other tags, but it&#039;s generally for a logical reason.  The rendertypes are as follows: 0 - Laser, 1 - Model, 3 - Plasma, 4 - Unit explosion (usally), 5 - Flamethrower, 6 - Dropped, 7 - Lightning.  There&#039;s no documented use of rendertype=2 in OTA, and it probably doesn&#039;t do anything in Spring.  3 and 4 are usually interchangeable, both can be used to render a plasma/EMG/whatever shot; this is probably for compatibility.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;rendertype=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;RGBColor&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The color of the rendertype 0, 3, 4, 7 weapon, specified in RED_GREEN_BLUE format.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;rgbcolor=1 0.3 1; - this would make evul-purple&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;RGBColor2&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The color at the core of a rendertype 0 (laser) weapon.  Specified the same as above.  Defaults to white.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;RGBColor2=0 1 0; - this would make a weird green middle for the evul-purple laser&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Selfprop&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Required for Guidance tag.  This weapon can propel itself and can have things like acceleration, rather than always travelling at one speed.  See Guidance, StartVelocity, WeaponAcceleration, WeaponVelocity.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;selfprop=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;SmokeTrail&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Does the projectile leave a smoke trail or not.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;smoketrail=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;SoundHit&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The sound made whe the weapon hits.  Must reference a .wav file in the .\Sounds directory.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;soundhit=emghit;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;SoundStart&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The sound made when the weapon begins to fire.  Will fire only once if the weapon is shot in a burst.  Must reference a .wav file in the .\Sounds directory.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;soundstart=emgfire;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;SoundTrigger&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;If active, the weapon will sound every time a shot is fired in a burst sequence.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;soundtrigger=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;SprayAngle&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;How wide the the angle of a burst from a burst weapon can be.  Very similar to Accuracy, except that if a weapon has no sprayangle, all the shots will be fired at the same spot, even if the weapon&#039;s aim is off.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;sprayangle=1024;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;StartVelocity&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The starting speed of the weapon as it is first fired.  Only applicable to weapons that can accelerate.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;startvelocity=200;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Stockpile&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Can this weapon be stockpiled, for instance like a nuke launcher.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;stockpile=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Targetable&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;If active, the weapon will be automatically targeted by any Interceptor weapons.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;targetable=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;TargetMoveError&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The degree to which a weapon&#039;s aiming will fail to keep up with its target&#039;s movement.  If set very low or not set at all, a weapon will lead its target and almost always hit unless there&#039;s a lot of micromanagement on the part of the person controlling the target.  If set too high (about 0.3 or above), the weapon will have a lot of difficulty even tracking its target enough to get a shot off.  Can probably only be set between 0 and 1.  Beyond 1, the weapon would be virtually useless.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;targetmoveerror=0.15;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Thickness&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Thickness of a beamweapon or beamlaser, default is 2.  Can be set to any numerical value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;thickness=4;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ToAirWeapon&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;If active, the weapon will only be capable of targetting units which are flying, or are capable of flying.  Can be set to 0 or 1.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;toairweapon=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Tolerance&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The amount to which the weapon&#039;s &amp;quot;real&amp;quot; aim can be off while the weapon will still be able to fire accurately at the target.  This worked in OTA, but I&#039;m not 100% sure if it works in Spring.  Can be set to any numerical value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;tolerance=1500;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Tracks&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;If the missile tracks a moving target. Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;tracks=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;TrajectoryHeight&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The height of the arc of a missile weapon. It is useful for compensating for mountains or debris. Is relative to the weapons speed (Higher speed, higher arc) and the range the weapon is firing at (Lower range lower arc). Requires Guidance and Turnrate to hit its target when over 1. &amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;trajectoryheight=0.8;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Turnrate&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;How fast a guided weapon can turn.  Can be any numerical value between 0 and 64000.  If set to 0, the weapon can&#039;t turn at all, if set to 64000, the weapon can literally defy all known physics and turn 180 degrees in a fraction of a second.  This is relative to a weapon&#039;s velocity; a weapon with a very low velocity (~200) wouldn&#039;t need a very high turnrate to keep up with a fighter, although it would probably never catch it because of its slow speed.  A weapon with a very high velocity (~1000) would need a very high value in order to be able to hit targets that turn suddenly.&lt;br /&gt;
	&amp;lt;TD&amp;gt;turnrate=32000;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Turret&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Set to 1 if weapon is used by a turret that rotates. Set to 0 if weapon is forward firing, ie, has no rotating turret piece.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;turret=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;TwoPhase&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Weapon operates in two phases... eh... yeah, I honestly have no idea what the difference between this and VLaunch is.  Generally use it with VLaunch as well.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;twophase=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;VLaunch&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Set to 1 to launch the weapon vertically.  Can only be used with missile-type weapons with a TurnRate.  Cannot be used at the same time as Turret.  Set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;vlaunch=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;WaterBounce&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Weather the weapon projectile will bounce on the surface of the water. Can be 0 or 1, defaults to 0 (off)&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;waterbounce=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;WaterWeapon&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Water weapons behave somewhat like Dropped weapons out of water, and like missiles underwater. Is the only type of weapon that can fire under water.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;waterweapon=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;WeaponAcceleration&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Tells the weapon how fast it should accelerate from its StartVelocity to its actual WeaponVelocity.  Increases the weapon&#039;s velocity every second by the amount specified.  Can be any numerical value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;weaponacceleration=50;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;WeaponTimer&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;How long until the weapon will go into its second phase.  For use with missile weapons.  For VLaunch weapons, the weapon will turn to actually go towards its target after the specified number of seconds has expired.  For non-VLaunch missiles with a TurnRate, the weapon will go randomly off-course after this period of time.  Can be set to any numerical value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;weapontimer=5;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;WeaponVelocity&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The speed the weapon moves after being fired. If StartVelocity is lower than this number, the weapon will increase speed to its WeaponVelocity at the rate specified by its WeaponAcceleration.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;weaponvelocity=800;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Wobble&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The amount that a missile will wobble off-course. Requires TurnRate. Turnrate will wrestle with wobble to keep the weapon on course, so wobble must be high enough to compensate to have any effect. Can be set to any numerical value between 0 and 64000.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;wobble=15000;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: Variables that are defined by either a 1 or a 0 are BOOLEAN, where 1 means TRUE and 0 means FALSE.&lt;br /&gt;
&lt;br /&gt;
NOTE 2: &amp;quot;Any numerical value&amp;quot; for things that relate to angles really means any value between 0 and 64,000 since that&#039;s between 0 and 360 degrees in spring measurement. Setting it higher than 64,000 will bring it &#039;full circle&#039; so to speak.&lt;br /&gt;
&lt;br /&gt;
=Shield/Repulsor Variable Descriptions=&lt;br /&gt;
&amp;lt;table width=730 border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;th&amp;gt;Variable &amp;lt;/th&amp;gt;&amp;lt;th&amp;gt; Description &amp;lt;/th&amp;gt;&amp;lt;th&amp;gt; Examples&amp;lt;/Th&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ExteriorShield&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;If set to 1, the shield/repulsor will not have any effect on weapons fired from within its field.  Can be 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;exteriorshield=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;IsShield&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;If set to 1, this &amp;quot;weapon&amp;quot; is no longer a weapon, is now a repulsor or a shield, based on the other properties given to it.  Can be 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;isshield=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ShieldAlpha&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;How clearly visible the shield is, if you have VisibleShield turned on.  Value is between 0 and 1.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;shieldalpha=0.4;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ShieldEnergyUse&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The amount of energy used to repulse or destroy weapons.  Will be used constantly while the weapon is in its area of effect if it is a repulsor, will be used only once on impact if it is a shield.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;shieldenergyuse=1500;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ShieldForce&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The force applied to weapons, an arbitrary number.  Set to 1, it will not deflect very well.  Only for use on repulsor-type.  Can be set to any numerical value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;shieldforce=1.75;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ShieldBadColor&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The color the shield is when it is at 0% strength, if you have VisibleShield turned on.  Defined in R G B format.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;shieldbadcolor=0 1 0;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ShieldGoodColor&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The color the shield is when it is at 100% strength, if you have VisibleShield turned on.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;shieldgoodcolor=1 0 0;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ShieldInterceptType&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Bitfield representing the types of weapons that this shield can intercept. The best way to think about this is to think of it as the resulting binary. Every digit of binary that is set to one means that a weapon with that digit set to one will be intercepted by this shield, for instance, the example will result in the shield blocking weapons with types 2 and/or 3. Maxium of 32 unique types. See [[Shield Interception Tag Use]].&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ShieldInterceptType=6;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ShieldMaxSpeed&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;The maximum speed the repulsor will push weapons away at.  Only for use on repulsor-type.  Can be set to any numerical value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;shieldmaxspeed=400;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ShieldPower&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;How much &amp;quot;power&amp;quot; a shield can store.  &amp;quot;Power&amp;quot; is not the same as energy; think of it as the shield/repulsor&#039;s private battery source.  It can be drained completely by defending against weapons, even if you have lots of energy.  &#039;&#039;Power is drained by the affected weapons damage.&#039;&#039;  Can be set to any numerical value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;shieldpower=1000;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ShieldPowerRegen&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;How quickly the shield regenerates its &amp;quot;power&amp;quot;, even when under attack.  Regenerates the amount specified every second.  Can be set to any numerical value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;shieldpowerregen=25;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ShieldPowerRegenEnergy&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;How much energy is required to keep the shield regenerating its &amp;quot;power&amp;quot;.  For instance, you might have it set so that 100 units of energy are necessary for every 25 units of &amp;quot;power&amp;quot;.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;shieldpowerregenenergy=100;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ShieldRadius&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;Defines the size of the area the shield/repulsor protects.  Can be set to any numerical value.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;shieldradius=500;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;ShieldRepulsor&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;If set to 1, the &amp;quot;shield&amp;quot;-type weapon will repulse projectiles.  If set to 0, it will destroy them.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;shieldrepulsor=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;SmartShield&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;If set to 1, the shield/repulsor will not affect owned/allied weapons.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;smartshield=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;VisibleShield&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;If set to 1, the shield will be visible.  Only for use on shield-type.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;visibleshield=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;VisibleShieldRepulse&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;If set to 1, the repulsing effect will be visible.  Only for use on repulsor-type.  Can be set to 1 or 0.&amp;lt;/TD&amp;gt;&lt;br /&gt;
	&amp;lt;TD&amp;gt;visibleshieldrepulse=1;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Weapons]]&lt;br /&gt;
&lt;br /&gt;
[[category:Shields]]&lt;/div&gt;</summary>
		<author><name>ILMTitan</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=CEG-OldInfo&amp;diff=3832</id>
		<title>CEG-OldInfo</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=CEG-OldInfo&amp;diff=3832"/>
		<updated>2007-09-24T05:23:14Z</updated>

		<summary type="html">&lt;p&gt;ILMTitan: /* How to link a custom explosion to a weapon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Custom explosion generators ==&lt;br /&gt;
&lt;br /&gt;
=== What are they? ===&lt;br /&gt;
Custom explosions are small explosion scripts read from gamedata/explosions/*.tdf.&lt;br /&gt;
The explosion script specifies which particles/projectiles have to be created when the explosion happens, and their initial properties (position,speed,...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Explosion script definition ===&lt;br /&gt;
&lt;br /&gt;
The explosion script directly specifies which C++ projectile classes have to be created, and also which properties the projectiles should have. &lt;br /&gt;
&lt;br /&gt;
The explosion script is structured like this:&lt;br /&gt;
&lt;br /&gt;
 [ExplosionScriptName]&lt;br /&gt;
 {&lt;br /&gt;
 	[projectile scriptname] // this specifies the class of the projectile&lt;br /&gt;
 	{&lt;br /&gt;
 		[properties]&lt;br /&gt;
 		{&lt;br /&gt;
 			size = 40;&lt;br /&gt;
 			sizeGrowth = -2;&lt;br /&gt;
 			pos = -30 r60, r30, -30 r60; // These codes are explained below&lt;br /&gt;
 			speed=0.75 r-1.5, 1.7 r1.6, 0.75 r-1.5;&lt;br /&gt;
 		}&lt;br /&gt;
 		underwater=0; // should this projectile be created when underwater?&lt;br /&gt;
 		air=0;   // should this projectile be created when in air?&lt;br /&gt;
 		water=1; // should this projectile be created on water?&lt;br /&gt;
 		ground=1; // should this projectile be created when on ground?&lt;br /&gt;
 		count=10; // number of projectiles of this type&lt;br /&gt;
 	}&lt;br /&gt;
 .. other projectiles types can follow here ..&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Defaults for air/underwater/ground/water are zero.&lt;br /&gt;
Default of count is 1.&lt;br /&gt;
&lt;br /&gt;
=== Projectile properties ===&lt;br /&gt;
&lt;br /&gt;
To begin, you should run &lt;br /&gt;
 spring /p      (or &amp;quot;spring -p&amp;quot; on linux) &lt;br /&gt;
to let spring export &amp;quot;projectiles.txt&amp;quot;, which contains all the classes you can use in an explosion script. At the time of writing, this would contain [[projectiles.txt]]&lt;br /&gt;
&lt;br /&gt;
The items listed in &amp;quot;properties&amp;quot; are directly mapped to the class properties in projectiles.txt&lt;br /&gt;
The properties are specified with a bit of a cryptic syntax. You can use extra commands in them (r,d,i). For example this:&lt;br /&gt;
&lt;br /&gt;
 pos = -30 r60, r30, -30 r60; &lt;br /&gt;
&lt;br /&gt;
The x coordinate (specified with -30 r60) will be:  &lt;br /&gt;
 x = -30 + (Random value between 0 and 60);&lt;br /&gt;
&lt;br /&gt;
Commands:&lt;br /&gt;
 rX: add a number  between 0 and X&lt;br /&gt;
 iX: multiply the projectile index with X and add it. See the example for this below.&lt;br /&gt;
 dX: multiply the damage with X and add it.&lt;br /&gt;
&lt;br /&gt;
== Explosion script examples ==&lt;br /&gt;
&lt;br /&gt;
This is an example of a script that makes 10 smoke projectiles (yeah they should have been called particles, but they are handled by spring using the projectile system)&lt;br /&gt;
&lt;br /&gt;
  [ARM_HLT_Expl]&lt;br /&gt;
  {&lt;br /&gt;
  	[smoke]&lt;br /&gt;
  	{&lt;br /&gt;
  		[properties]&lt;br /&gt;
  		{&lt;br /&gt;
  			// age increase per frame, when age &amp;gt;= 1  the particle is destroyed&lt;br /&gt;
  			ageSpeed=0.04;&lt;br /&gt;
 &lt;br /&gt;
 			size = 40;&lt;br /&gt;
  			sizeGrowth = -2;&lt;br /&gt;
  			pos = -30 r60, r30, -30 r60;&lt;br /&gt;
  			speed=0.75 r-1.5, 1.7 r1.6, 0.75 r-1.5;&lt;br /&gt;
  		}&lt;br /&gt;
  		water=1;&lt;br /&gt;
  		ground=1;&lt;br /&gt;
  		count=10;&lt;br /&gt;
  	}&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
This particular script would be linked to with &amp;quot;explosiongenerator=custom:ARM_HLT_Expl;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here is an example that uses the index (i) command in the properties:&lt;br /&gt;
&lt;br /&gt;
 [heatcloud]&lt;br /&gt;
 {&lt;br /&gt;
 	[properties]&lt;br /&gt;
 	{&lt;br /&gt;
 		pos = 0, i20, 0;&lt;br /&gt;
 		heat = 10;&lt;br /&gt;
 		maxheat=10;&lt;br /&gt;
 		heatFalloff=1;&lt;br /&gt;
 		size = 30;&lt;br /&gt;
 	}&lt;br /&gt;
 	ground=1;&lt;br /&gt;
 	count=10;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This script creates a tower of heatcloud projectile. The first projectile gets y=0, the second y=20, y=40, y=60, .. and finally y=180&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to link a custom explosion to a weapon ===&lt;br /&gt;
&lt;br /&gt;
The weapon definitions needs to have this in it:&lt;br /&gt;
 explosiongenerator = custom:ExplosionScriptName;&lt;br /&gt;
&lt;br /&gt;
The explosion definition for ExplosionScriptName would be one of the TDF files in gamedata/explosions/&lt;br /&gt;
&lt;br /&gt;
You can also link the weapons for self-destruct and normal destruct to an explosion script.&lt;br /&gt;
&lt;br /&gt;
For an exlplosion generator when a projectile bounces, there is also:&lt;br /&gt;
 bounceexplosiongenerator = custom:ExplosionScriptName;&lt;br /&gt;
&lt;br /&gt;
=== Adding ground flashes ===&lt;br /&gt;
&lt;br /&gt;
The ground flash is currently not an actual projectile, so it&#039;s specified in a different way:&lt;br /&gt;
 [ARM_HLT_Expl]&lt;br /&gt;
 {&lt;br /&gt;
      .. projectiles definitions ..&lt;br /&gt;
&lt;br /&gt;
 	[groundflash]&lt;br /&gt;
 	{&lt;br /&gt;
 		flashSize = 100;   // flash size&lt;br /&gt;
 		flashAlpha = 1;    // initial alpha of the flash&lt;br /&gt;
 		circleGrowth = 60; // size increase/frame&lt;br /&gt;
 		circleAlpha = 1;   // initial alpha of the ring&lt;br /&gt;
 		ttl = 10;          // number of frames&lt;br /&gt;
 		color = 0,0,1;    // color RGB&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Projectile classes usable in explosion generators ==&lt;br /&gt;
[[dirt]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[heatcloud]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[smoke]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[smoke2]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[gfx]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[bitmapmuzzleflame]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[simpleparticlesystem]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Keywords ==&lt;br /&gt;
These are keywords that can be used in the explosiongenerator script to give a propertier a special value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;dir&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
This can only be used on a float3 vector. This will be the direction vector if the event that created this explosiongenerator can be described with a direction.&lt;br /&gt;
For weapon impacts, its the direction of the impact (the travel direction of the projectile when it explodes). For script emmited explosiongenerators it is the direction of the piece that emmits it.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>ILMTitan</name></author>
	</entry>
</feed>