<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Special Effects Tool</title>
<style>
<!--
 /* Style Definitions */

p,div
	{mso-style-name:Text;
	margin-top:0pt;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
li
	{mso-style-name:Text;
	margin-top:2pt;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
p.Link, div.link
	{mso-style-name:Link;
	margin-top:0pt;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:#3366FF;}
li.Link
	{mso-style-name:Link;
	margin-top:0pt;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:#3366FF;}
h1
	{mso-style-next:Normal;
	margin-top:12.0pt;
	margin-right:0pt;
	margin-bottom:12.0pt;
	margin-left:0pt;
	text-align:left;
	line-height:150%;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:2;
	font-size:20.0pt;
	font-family:Arial;
	color:black;
	mso-bidi-font-style:italic;}
h2
	{mso-style-next:Normal;
	margin-top:12.0pt;
	margin-right:0pt;
	margin-bottom:12.0pt;
	margin-left:0pt;
	text-align:left;
	line-height:150%;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:2;
	font-size:18.0pt;
	font-family:Arial;
	color:#000033;
	mso-bidi-font-style:italic;}
h3
	{mso-style-next:Normal;
	margin-top:12.0pt;
	margin-right:0pt;
	margin-bottom:9.0pt;
	margin-left:0pt;
	text-align:left;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:3;
	font-size:16.0pt;
	mso-bidi-font-size:13.0pt;
	font-family:Arial;
	color:#0000cc;}
h4
	{mso-style-next:Normal;
	margin-top:12.0pt;
	margin-right:0pt;
	margin-bottom:5.0pt;
	margin-left:0pt;
	text-align:left;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:3;
	font-size:13.0pt;
	mso-bidi-font-size:13.0pt;
	font-family:Arial;
	color:#00aa00;}
h5
	{mso-style-next:Normal;
	margin-top:3.0pt;
	margin-right:0pt;
	margin-bottom:3.0pt;
	margin-left:0pt;
	text-align:left;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:3;
	font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:Arial;
	color:#000000;}
h6
	{mso-style-next:Normal;
	margin-top:3.0pt;
	margin-right:0pt;
	margin-bottom:3.0pt;
	margin-left:0pt;
	text-align:left;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:3;
	font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:Arial;
	color:#aa0000;}
CODE
	{mso-style-name:Code;
	margin:0pt;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Courier New";
	color:#000000;}
A:Hover
	{color:#00aa00;}
BODY
	{margin-left:30pt;
	background:#f5f5f5;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}

table
	{class:T1;
	style:border:medium none;
	border-collapse:collapse;
	border:5;
	background-color:#FFFF99;
	border-color:#CC0000;
	border-style:inset;
	width:800;
	text-align:left;}

tr	{vertical-align:top;}

-->
</style>
</head>
<body>
<h1><img src="Images/fsx-banner747.jpg" width="800" height="200" /></h1>
<h1>Creating Special Effects</h1>
<h3>Overview</h3>
<p>Special effects are used by <i>Flight Simulator</i> to represent graphical effects such as fire, smoke, rain, steam, exhaust, and similar short term and highly animated effects.The Special Effects tool is a dialog based utility that runs along with <i>Flight Simulator</i>. Select it from the Tools menu. It is used to help create and refine the emitter and particle based effects. </p>
<p>&nbsp;</p>
<p>This document describes the Special Effects tool (FX Tool), the special effects file format, the controller file format, and how to add special effects to <i>Flight Simulator</i>.</p>
<p>&nbsp; </p>
<h3>Table of Contents</h3>
<ul>
  <li><a href="#Setup">Setup</a></li>
  <li><a href="#TheFXToolDialog">The FX Tool Dialog</a></li>
  <li><a href="#EffectsFileFormat">The Effects File Format</a></li>
  <li><a href="#ASimplefxFile">A Simple .fx File</a></li>
  <li><a href="#MoreComplexfxFiles">More Complex .fx Files </a></li>
  <li><a href="#TheControllerFileFormat">The Controller File Format</a></li>
  <li><a href="#HowtoPlaceEffectsinFlightSimulator">How to add special effects to Flight Simulator</a></li>
  <li><a href="#TestingEffects">Testing Effects </a></li>
  <li><a href="#Step1CreateanXMLFile">Step 1: Create an XML file for the Effect </a></li>
  <li><a href="#Step2CreateaBGLFile">Step 2:  Create a BGL file for the Effect</a></li>
  <li><a href="#Step3MovetheBGLFile">Step 3: Move the BGL file into Flight Simulator </a></li>
</ul>
<h3>Setup<a name="Setup" id="Setup"></a></h3>
<p>The tool itself is coded in visualfxtool.dll, and can be found in
  the <i>Microsoft Flight Simulator X\SDK\Environment Kit\Special Effects SDK </i> folder.<br />
  <br />
To install the dll, the dll.xml file  in the <i>&lt;Drive&gt;:\Documents and   Settings\&lt;alias&gt;\Application   Data\Microsoft\FSX</i> folder should contain the following bold lines (if the dll.xml file already exists in this folder), or the dll.xml file should contain all the following (if the dll.xml file does not already exist at the right location).<br />
</p>
<table width="500" border="1" cellspacing="2" cellpadding="4">
  <tr>
    <td><p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;Windows-1252&quot;?&gt;</p>
        <p>&lt;SimBase.Document Type=&quot;Launch&quot; version=&quot;1,0&quot;&gt;<br />
          &lt;Descr&gt;Launch&lt;/Descr&gt;<br />
          &lt;Filename&gt;dll.xml&lt;/Filename&gt;<br />
          &lt;Disabled&gt;False&lt;/Disabled&gt;<br />
          &lt;ManualLoad&gt;False&lt;/ManualLoad&gt;</p>
      <p><br />
            <b>&lt;Launch.Addon&gt;<br />
              &lt;Name&gt;Special Effects  Tool &lt;/Name&gt;<br />
              &lt;Disabled&gt;False&lt;/Disabled&gt;<br />
              &lt;Path&gt;..\Microsoft&nbsp;Flight&nbsp;Simulator&nbsp;X&nbsp;SDK\SDK\Environment Kit\Special Effects SDK\visualfxtool.dll&lt;/Path&gt;<br />
              &lt;/Launch.Addon&gt;</b></p>
      <p>&nbsp;</p>
      <p>&lt;/SimBase.Document&gt; </p></td>
  </tr>
</table>
<p><br />
  Note that the Disabled entries must be False, and that the Path is either absolute or relative to the installation <i>Microsoft Flight Simulator X</i> folder. 
  
  
  
  
  The path given above will change if the SDK or <i>Flight Simulator</i> were not installed to their default folders. If there are other addons that need to be loaded, such as the 
  Object Placement tool, then they will also need
  &lt;Launch.Addon&gt; entries.<br />
This is all the setup that is necessary. The tool  can be run simply be selecting FX Tool from the Tools menu. </p>
<p>&nbsp;</p>
<p>Special effect files all reside in the <i>effects</i> folder, a sub-folder of the main <i>Microsoft Flight Simulator X</i> folder. Special effects are stored in a specific xml file format. The files can be edited directly, but the advantage of using the tool over editing the file is that using the tool will allow you to view changes to the effects without having to exit and restart <i>Flight Simulator</i> each time. </p>
<p>&nbsp;</p>
<p>The tool contains a bewildering collection of fields, that is documented in the next section.</p>
<p>&nbsp;</p>
<h5>Notes</h5>
<ul>
  <li>Special effects created for  Flight Simulator  2004 will be compatible with  Flight Simulator  X, although the behavior of some effects may change with the new version.</li>
  <li>No programming knowledge is needed;  however, it may take some practice using the parameters to understand how all the fields control  the effects.</li>
  <li>    To attach  special effects to aircraft refer to  documentation on <a href="../../SimObject Creation Kit/SimObject Container SDK/Aircraft Configuration Files.htm">aircraft configuration files</a>, and the AttachTool described in <a href="../Modeling SDK/Modeling Tools.html">Modeling Tools</a>. </li>
  <li>Many of the effects file parameters require two values separated by a comma.  The first value is the minimum number that the simulation engine will use; the  second value is the maximum number. Every second, the simulation engine  randomly chooses a number somewhere between these two values, thus randomizing  effects. For example, if you have a lifetime of 5.00, 7.00, some particles will  live for 5 seconds while others may live for 6, 7, or 5.2 seconds. The first  number must be less than the second number, or the effect will not work.</li>
  <li>A forest fire sample  effect is supplied with this SDK, but all the effects files in the <i>Microsoft Flight Simulator X/effects</i> folder are readable and can be examined as examples of  effects.</li>
</ul>
<h3>The FX Tool Dialog<a name="TheFXToolDialog" id="TheFXToolDialog"></a></h3>
<ul>
  <li><a href="#EffectMenu">File Menu</a></li>
  <li><a href="#ActionsMenu">Edit  Menu</a></li>
  <li><a href="#ViewMenu">View Menu</a></li>
  <li><a href="#InsertMenu">Insert Menu</a></li>
  <li><a href="#MainDialog">Main Dialog </a></li>
  <li><a href="#ParticleTab">Particle Tab</a></li>
  <li><a href="#EmitterTab">Emitter Tab</a></li>
  <li><a href="#MainDialog">Main Dialog </a></li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table class"T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><h5>Main Item </h5></td>
    <td><h5>Item</h5></td>
    <td><h5>Description</h5></td>
    <td><h5>Effect File Parameter </h5></td>
  </tr>
  <tr>
    <td><h6>File Menu <a name="EffectMenu" id="EffectMenu"></a></h6></td>
    <td>New</td>
    <td>Clear the dialog back to the defaults. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><p>Open...</p>    </td>
    <td>Load an existing effect.</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><p>Save,</p>
    <p>Save As</p></td>
    <td>Save or Save as options. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  
  <tr>
    <td><h6>Edit Menu<a name="ActionsMenu" id="ActionsMenu"></a></h6></td>
    <td>Copy Current Tab </td>
    <td>Makes an identical copy of both the current particle and current emitter, and adds them to the effect. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Delecte Current Tab </td>
    <td>Removes the current particle and current emitter. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Tab Name </td>
    <td>A small dialog will appear allowing you to enter a descriptive name, that will be used both for the particle and the emitter. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Stop Animations </td>
    <td>Freezes any running animation. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><h6>View Menu <a name="ViewMenu" id="ViewMenu"></a></h6></td>
    <td>Always on Top </td>
    <td>Check this to keep the tool dialog in focus. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><h6>&nbsp;</h6></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><h6>Insert Menu <a name="InsertMenu" id="InsertMenu"></a></h6></td>
    <td>Sprite</td>
    <td>Particles use 2D square sprites as the basic element. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Debris</td>
    <td>Debris allows an effect to emit a library object. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><h6>Main Dialog <a name="MainDialog" id="MainDialog"></a></h6></td>
    <td>Friendly Name </td>
    <td>A name can be entered here to help identify the effect. </td>
    <td>Display Name=<i>friendly name</i> </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Show Location </td>
    <td>If this is checked a cross-hair will appear at the point of the emitter. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><p>Offset</p>
    <p>x,y,z</p></td>
    <td>This allows the special effect to be moved from its actual position to a better position simply for viewing while being edited. The range of each of the options is -50m to +50m.</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Radius</td>
    <td>The  maximal size of the effect. You must give an effect a radius for it to show up  as scenery. Measured in meters.</td>
    <td>Radius=0</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Priority</td>
    <td>The  number of particles drawn in any one scene can be limited by the various  performance settings. Setting Priority to 0 maximizes the chances of the effect  being drawn. Setting it to another number will lower the chances of the full  effect being drawn if there are performance issues.</td>
    <td>Priority=0</td>
  </tr>
  <tr>
    <td><h6>&nbsp;</h6></td>
    <td>Has Sound </td>
    <td>Set this check box if there is an audio file that should be played each time a particle is emitted. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Looping</td>
    <td>Set this check box to loop the audio file. The file will be played for the lifetime of the particle. </td>
    <td>Looping=TRUE</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Min Attenuation Distance </td>
    <td>The distance from the source of the sound, that the sound will no longer be heard, in meters. </td>
    <td>MinAttenuationDistance=300.0</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>.WAV file </td>
    <td>The filename of the sound. The file should be placed in the <i>Microsoft Flight Simulator X/sound</i> folder. </td>
    <td>FileName=<i>filename</i></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Do Effect </td>
    <td>Runs the effect. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><h6>Particle <i>N</i> tab <a name="ParticleTab" id="ParticleTab"></a></h6></td>
    <td>Lifetime</td>
    <td>The lifetime of the particle in seconds. The actual value selected by the effects engine will be chosen at random within the minimum and maximum range entered. If zeros are entered here the particles will have an infinite life. </td>
    <td>Lifetime=0.00, 0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>X scale </td>
    <td>The width of the particle in meters. </td>
    <td>X Scale=0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Y scale </td>
    <td>The height of the particle in meters. </td>
    <td><p>Y Scale=0.00</p>
    <p>&nbsp;</p>
    <p>Note: Z Scale=0.00 is ignored in the effects file, as particles are all two dimensional.  </p></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Rate</td>
    <td>The  rate at which a particle grows from zero to its scale goal size. The  larger the number, the faster the scaling.</td>
    <td><p>X Scale Rate=0.00</p>
      <p>Y Scale Rate=0.00</p>
      <p>Z Scale Rate=0.00 </p>
      <p>&nbsp;</p>
    <p>Note: Z Scale Rate is ignored. Edit the effects file directly if different Y and X rates are required, as the tool will not allow you to do this. </p></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Scale Goal </td>
    <td>The final size of the particle, in meters. </td>
    <td><p>X Scale Goal=0.00</p>
    <p>Y Scale Goal=0.00</p>
    <p>Z Scale Goal=0.00   </p>
    <p>&nbsp;</p>
    <p>Note: Z Scale Goal is ignored. Edit the effects file directly if different Y and X goals are required, as the tool will not allow you to do this. </p></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><p>Offset</p>
        <p>x, y, z </p></td>
    <td>The  distance that the emitted particles are offset from the emitter in the X, Y,  and Z directions. These parameters can be combined with the Emitter Rotation  parameters to create swirling particle effects. They can also be used to spread  particles out over an area.</td>
    <td><p>X Offset=0.00, 0.00</p>
        <p>Y Offset=0.00, 0.00</p>
      <p>Z Offset=0.00, 0.00</p></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><p>Color Start</p>
        <p>Red, Green, Blue, Alpha</p></td>
    <td><p>The  initial color of a particle. Use the color dialog, or input the values directly. </p>
        <p>The  alpha value here applies throughout. The alpha value in the xml file for Color End is ignored. </p></td>
    <td>Color Start= 0, 0, 0, 0 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><p>Color Goal</p>
        <p>Red, Green, Blue </p></td>
    <td>The  final color of a particle. Use the color dialog, or input the values directly. </td>
    <td><p>Color End=0, 0, 0, 0 </p>
        <p>&nbsp;</p></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Rate </td>
    <td>The first value gives the percentage of the lifetime of the particle that the particle will be colored with Color Start, between the first and second values the colors will cross-fade, and the second value gives the percentage of the lifetime after which the particle is colored Color Goal. </td>
    <td>Color Rate=0.00, 0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Extrude</td>
    <td>Extrusions  are generally effects of great length, such as wakes and contrails. Extrusions  work, but they can be very processor intensive.  For the best  results, start with very long extrusion lengths and short times, and then tweak  as necessary.</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Extrude Length</td>
    <td>The  length of each portion of an extruded effect.. </td>
    <td>Extrude Length=0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Extrude Pitch</td>
    <td>The  pitch angle at which point the extrusion creates a new section. The smaller the  number, the smoother the curves of your extrusions. </td>
    <td>Extrude Pitch Max=0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Extrude Heading</td>
    <td>The  heading angle at which point the extrusion creates a new section.</td>
    <td>Extrude Heading Max=0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><p>Facing</p>
        <p>Pitch, Bank, Heading </p></td>
    <td><p>The direction that the particles face. Pitch, bank, and  heading are the constraints for the particles&rsquo; facing movement. These are  on/off switches because the particles either move in the corresponding  direction, or they do not. </p>
      To have the particles face the user, set these to <strong>1</strong>,<strong>1</strong>,<strong>1</strong>.  If one of the values is <strong>0</strong>, then the particles will be constrained in the  corresponding axis. To have the particles remain perpendicular to the ground  but still turn and face the user, set them to <strong>0</strong>,<strong>0</strong>,<strong>1</strong>.</td>
    <td><p>Ground Normal=0</p>
        <p>Face=1,1,1</p>
      <p>&nbsp;</p></td>
  </tr>
  
  <tr>
    <td>&nbsp;</td>
    <td>Align to ground </td>
    <td>If this is checked the particle will be rendered parallel to the ground surface. This is for such effects as wake, rotor wash, burn marks, and similar ground effects. If this box is  checked the Facing options become inactive (Ptich, Bank and Heading). </td>
    <td>Ground Normal=1 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Bounce</td>
    <td>The  reaction of a particle when it collides with the ground. The larger the number,  the greater the bounce. If the Bounce parameter is set to 0, no reaction occurs. If  it is set to 1.0 then it will come off the ground at the same velocity that it  hit it. Use a value less than 1.0 to simulate the loss of energy due to the  impact.</td>
    <td>Bounce=0.00</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Drag</td>
    <td>Drag  defines the effect of wind and gravity on the particles. Negative numbers  impart more drag. For positive numbers, don&rsquo;t use a value greater than 1.00.  For a reasonable effect of wind on dust particles use a value around -0.5</td>
    <td>Drag=0.00, 0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Rotation</td>
    <td>The  rotation of a particle. It is best to use a negative number first and then a  positive number to get the most variation in the amount of rotation.</td>
    <td>Rotation=0.00, 0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Jitter Dist </td>
    <td>The  distance that the particles jitter. If you don't want the particles to jitter,  set the parameter to 0.</td>
    <td>Jitter Distance=0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Jitter Time </td>
    <td>The  length of the delay before particles start to jitter. Measured in seconds.</td>
    <td>Jitter Time=0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Temp</td>
    <td>The  temperature of the particles, which defines how fast they rise or sink. To  approximate room temperature, where particles neither rise nor sink, set Temp  to 107 degrees. To make the particles rise, specify a temperature greater than  107; to make the particles sink, specify a temperature less than 107.</td>
    <td>TempK=0.00</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Temp Rate</td>
    <td>The  rate at which the particles cool or heat up. A negative value represents  temperatures that are cooling. The faster particles cool, the sooner they fall  back to the ground. A positive value represents temperatures that are rising.  The faster particles heat up, the sooner they accelerate into the sky.</td>
    <td>TempRate=0.00</td>
  </tr>
  
  <tr>
    <td>&nbsp;</td>
    <td>Emits Light </td>
    <td>Check this if the particle emits light, such as fire, lights or fireworks. </td>
    <td>Light=1</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Shaded at night </td>
    <td>Check this if  the particle is darkened at night. It is  used for night shading.</td>
    <td>Shade=1</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Turn off in distance </td>
    <td>Check this if the particle is small and should be turned off at a distance (to help improve performance). </td>
    <td>LOD=1</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Static</td>
    <td><p>If this is  checked, makes the particle attach itself to the  emitter and shuts off the emitter after the first particle. This parameter was  used extensively in creating the lights for the planes. Use this parameter when  you need one particle that must stay in a fixed location relative to the emitter  (for example, signs and lights).</p>
    <p>Particle  offsets do not work on static particles,  use emitter offsets instead. </p></td>
    <td>Static=1</td>
  </tr>
  
  <tr>
    <td>&nbsp;</td>
    <td>Emit Effect </td>
    <td>Check this if the particle initiates another special effect. This second effect will be initiated and have the same parameters (velocity etc.) as if it were a particle being emitted. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Effect Name </td>
    <td>The name of the effect file to run. </td>
    <td>EmittedEffectName=<i>filename.fx</i></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Texture</td>
    <td>The texture file to use with the particle. This file should reside in the Microsoft Flight Simulator X\effects\texture folder. </td>
    <td>Texture=<i>filename.bmp</i></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Animate</td>
    <td>Check this if the effect is to cycle through a series of images in a texture file. If this is checked, then UV co-ordinates are not entered. </td>
    <td><p>&nbsp;</p>
    <p>&nbsp;</p></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><p>uv1</p>
        <p>u, v </p></td>
    <td><p>The  location of the lower-left corner of the texture on the texture page (X, Y)  expressed as a value between 0.0 and 1.0.</p>
        <p><img src="Images/UVCoordinates.jpg" /></p></td>
    <td>uv1=0.00, 0.50</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><p>uv2</p>
        <p>u, v </p></td>
    <td><p>The location of the upper-right corner of the texture  lies on the texture page (X, Y) expressed as a value between 0.0 and 1.0. See diagram above. </p></td>
    <td>uv2=0.50, 1.00 </td>
  </tr>
  
  <tr>
    <td>&nbsp;</td>
    <td>fps</td>
    <td>The  frames per second at which the animation changes textures. For example, a value  of 8 means that every eight of a second the animation will advance from one  texture cell to the next.</td>
    <td>FPS=0.00</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>cycle</td>
    <td><p>Two integers. The first is the location of the first frame of animation on your texture. The code parses your  texture from lower left to upper right (horizontally) stepping by the size of the cell. The  value of <strong>0</strong> defines the absolute lower left cell of the texture.</p>
    <p>The second value is the location of the last frame of animation on your  texture. For example, if you specify a texture size of 256 and a cell size of 64, the  texture is broken into 16 cells. In this case, a value of <strong>7</strong> defines the cell that is halfway up the texture and all the way to the right. A   value of <strong>15</strong> defines the cell that is in the upper right.<br />
For a four-frame animation set  texture size to 256 and cell size to 128. </p>
    <p><strong>Note</strong>&nbsp; In <i>Flight Simulator 2004</i> only the bottom  half of a texture could be used for an animation. This no longer applies, the  whole texture can be divided into cells.</p>
    <p>Typically a 16 cell animation would be used, using the following layout:</p>
    <p><img src="Images/TextureAnimations.jpg" /></p></td>
    <td><p>CellStart=0</p>
    <p>CellEnd=15</p></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>tex size </td>
    <td>The  size of the texture (in pixels) that is used for animation. Textures must be  square and their size must be a power of two, for example, 256, 512, or 1024.  Larger sizes should be avoided because of the lack of support in graphics  cards.</td>
    <td>TextureSize=256</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>cell size </td>
    <td>The  size of each frame of animation (for example 64 would mean each cell of the texuture is 64 by 64 pixels).</td>
    <td>CellSize=64</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Alpha blending </td>
    <td><p>Specifies which blending mode to use to display the  texture, one of: No Alpha, Alpha, Additive or Multiply.</p>
        <p>&nbsp;</p>
        <p>No Alpha is the default.</p>
        <p>&nbsp; </p>
      <p>Alpha textures are full color and include a transparency mask (alpha  channel).<br />
        Additive textures, on the other hand, have no alpha channel. The  transparency of an additive texture is based off of color values within the  texture. Color values in the texture are added to the background color. If an  additive texture is triggered against pure white, nothing happens because the  values are already maximized at 255, 255, 255, which represents the RGB value  for white. Any part of the texture that you want to be invisible must be pure  black (or else you&rsquo;ll just get expanding squares). Additive textures are best  used when the effect is simulating something bright&mdash;like fire or a light. </p></td>
    <td><p>Blend Mode=0</p>
        <p>(valid entries are 0,1,2,3) </p></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Fade In </td>
    <td>The  moment during its lifetime that a particle fades in. Expressed as a percentage  of total lifetime.</td>
    <td>Fade In=0.00, 0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Fade Out </td>
    <td>The  moment during its lifetime that a particle fades out. Expressed as a percentage  of total lifetime.</td>
    <td>Fade Out=0.00, 0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><h6>Emitter <i>N</i> tab <a name="EmitterTab" id="EmitterTab"></a></h6></td>
    <td>Active</td>
    <td>Set this check box to see the effects from this emitter. Uncheck it to turn off the emitter. This is to assist with the testing of effects. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Lifetime</td>
    <td>The  length of time that an emitter emits particles. Measured in seconds. If zeros are entered here the particles will have an infinite life. </td>
    <td>Lifetime= 0.00, 0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Delay</td>
    <td>The  length of delay before the emitter begins emitting particles. Measured in  seconds</td>
    <td>Delay= 0.00, 1.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Rate</td>
    <td>The  rate at which particles are emitted. Measured in particles per second.</td>
    <td>Rate=1.00, 2.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Don't Interpolate </td>
    <td>If  this is checked, interpolation code is not used. Interpolation code attempts  to avoid the graphics anomaly of a continuous stream appearing as a sequence of  puffs, because the emitter of the stream is moving much faster than the frame  rate. Sometimes this interpolation makes the effect appear detached from the emitter,  so checking Don't Interpolate  is one way of &ldquo;attaching&rdquo; an effect to an object  securely. The default is to interpolate. </td>
    <td>No Interpolate=1 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><p>Emitter Velocity</p>
    <p>x, y, z  </p></td>
    <td>The movement of the emitter in meters per second, in the x, y and z directions. </td>
    <td><p>X Emitter Velocity=0.00, 0.00</p>
    <p>Y Emitter Velocity=0.00, 0.00</p>
    <p>Z Emitter Velocity=0.00, 0.00  </p></td>
  </tr>
  
  <tr>
    <td>&nbsp;</td>
    <td><p>Particle Velocity</p>
    <p>x, y, z </p></td>
    <td>The initial velocity of the particles (in meters per second) produced by the emitter, in the x, y, and z directions. </td>
    <td><p>X Particle Velocity=0.00, 0.00</p>
      <p>Y Particle Velocity=0.00, 0.00</p>
      <p>Z Particle Velocity=0.00, 0.00 </p></td>
  </tr>
  
  <tr>
    <td>&nbsp;</td>
    <td><p>Offset</p>
    <p>x, y, z </p></td>
    <td>The distance that the emitter is offset from its point of origin, in meters.. </td>
    <td><p>X Offset=0.00, 0.00</p>
      <p>Y Offset=0.00, 0.00</p>
      <p>Z Offset=0.00, 0.00</p></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><p>Rotation</p>
    <p>x, y, z </p></td>
    <td>The rotation of the emitter in degrees per second. To  create particles that rotate around a center, combine these Rotation parameters  with the  Offset parameters. The greater the offset and the greater the  rotation, the more dramatic the effect. For example, some of the spectacular  fireworks effects in <i>Flight Simulator</i>  were created making use of these two  parameters. </td>
    <td><p>X Rotation=0.00, 0.00</p>
      <p>Y Rotation=0.00, 0.00</p>
      <p>Z Rotation=0.00, 0.00</p></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><p>Orientation</p>
        <p>p, b, h </p></td>
    <td>The initial orientation of the emitter, given as degrees, from the axes of pitch, bank and heading. </td>
    <td><p>Pitch=0.00, 0.00</p>
        <p>Bank=0.00, 0.00</p>
      <p>Heading=0.00, 0.00 </p></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Drag</td>
    <td>Drag  defines the affect of wind and gravity on the emitter. Negative numbers impart  more drag</td>
    <td>Drag=0.00, 0.00 </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Bounce</td>
    <td>If this is set to zero the emitter will remain at ground level if it comes into contact with the ground. If this is set to a higher value that zero, the emitter will bounce if it impacts the ground. </td>
    <td>Bounce=0.00</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Use min/max temperatures </td>
    <td><p>Set the check box if outside temperature is a factor. If so, the particles will only be emitted if the outside temperature is within the min/max range. This can be used to prevent, for example, steam appearing when the outside temperature is too warm for it to be visible. </p>      </td>
    <td><p>TemperatureRangeC=0.00, 0.00 </p>    </td>
  </tr>
  
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
<p>&nbsp;</p>
<h5>Notes</h5>
<ul>
  <li>If a edit box in the tool appears in red, it means that this value must be changed from the value shown for the effect to work. </li>
</ul>
<p>&nbsp;</p>
<h3>Effects File Format<a name="EffectsFileFormat" id="EffectsFileFormat"></a></h3>
<p> Effects files can be opened and edited in Microsoft Notepad or another  editor that reads and saves plain text files. You will usually create a  separate .fx file for each special effect that you want to create, though one  special effect can contain any number of emitters.</p>
<h4><br />
  A Simple .fx File<a name="ASimplefxFile" id="ASimplefxFile"></a></h4>
<p>  The structure of a simple .fx file is as follows:</p>
<ul>
  <li>    [<a href="#LibraryEffect">Library Effect</a>] This section contains general information about the effect.</li>
  <li>[<a href="#sound">sound</a>] This sections contains a reference to a single sound file. </li>
  <li>    [<a href="#Properties">Properties</a>] 
    This section just contains properties concerning which views (cockpit,  spot-plane etc.) the effect should be visible from.</li>
  <li>    [<a href="#Emitter">Emitter</a>.0] This section contains properties (position, velocity, rate of particle  emission etc.) of the emitter.</li>
  <li>    [<a href="#Particle">Particle</a>.0] This section contains properties (lifetime, scaling, rotation etc.) of the  particles.</li>
  <li>    [<a href="#ParticleAttributes">ParticleAttribues</a>.0] 
    This section contains more properties (texture, coloring, animation etc.) of  the particles.</li>
</ul>
<h5><br />
  Comments</h5>
<p>  To add comments to a special effects file use the notation &ldquo;//&rdquo;  to start a comment line. For example:</p>
<p>// comment text</p>
<h4><br />
  More Complex fx Files<a name="MoreComplexfxFiles" id="MoreComplexfxFiles"></a></h4>
<p>With multiple emitters the structure of the .fx file is as  follows:</p>
<p><br />
  [<a href="#LibraryEffect">Library Effect</a>]</p>
<p>[<a href="#sound">sound</a>]<br />
  [<a href="#Properties">Properties</a>]<br />
  [<a href="#Emitter">Emitter</a>.0]<br />
  [<a href="#Particle">Particle</a>.0]<br />
  [<a href="#ParticleAttributes">ParticleAttribues</a>.0]<br />
  [Emitter.1]<br />
  [Particle.1]<br />
  [ParticleAttribues.1]<br />
  [Emitter.2]<br />
  [Particle.2]<br />
  [ParticleAttribues.2]</p>
<p><br />
  There is no limit to the number of emitters that can be  added to an effect.</p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><h5>Effects file section or property</h5></td>
    <td><h5>Description</h5></td>
    <td><h5>Examples</h5></td>
  </tr>
  <tr>
    <td><h6>[Library Effect]<a name="LibraryEffect" id="LibraryEffect"></a></h6></td>
    <td>The [Library Effect] section defines several general parameters.</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Lifetime=5</td>
    <td>A value that is part of an internal (reserved) process. Do not edit this parameter. Lifetime=5 is the only value recognized by Flight Simulator.</td>
    <td> Cntrl_Barn.fx( <b>Lifetime=5</b> ) </td>
  </tr>
  <tr>
    <td>Version=2.00</td>
    <td>The version number of the internal effects tool used for Flight Simulator. Do not edit this parameter. The version number can be 1.00, 2.00 or 3.00.</td>
    <td> Cntrl_Barn.fx( <b>Version=1.00</b> )<br />
      fx_animaldust.fx( <b>Version=2.00</b> ) </td>
  </tr>
  
  <tr>
    <td>Display Name=
        <string></td>
    <td>An internal naming process that does not affect anything displayed in Flight Simulator but may help you keep track of effects files as you work on them.</td>
    <td>fx_Aurora1.fx( <b>Display Name=Aurora Outside - small</b> )<br />
fx_Aurora2.fx( <b>Display Name=Aurora Outside - Medium</b> )<br />
fx_Aurora3.fx( <b>Display Name=Aurora_large</b> )<br />
fx_beacong.fx( <b>Display Name=Obstruction Light 2</b> )<br />
fx_BelgFount1.fx( <b>Display Name=Vegas_Belagio Foutain</b> )<br />
fx_BelgFount2.fx( <b>Display Name=foutain placement</b> )<br />
fx_BldStm_lrg.fx( <b>Display Name=Building steam medium</b> )<br />
fx_explosionFire.fx( <b>Display Name=Explosion Fire</b> )<br />
fx_firework1.fx( <b>Display Name=fw_orange/purple cross</b> )<br />
fx_firework10.fx( <b>Display Name=fw_teal sphere</b> ) </td>
  </tr>
  
  <tr>
    <td>Radius=200</td>
    <td>The maximal size of the effect. You must give an effect a radius for it to show up as scenery. Measured in meters.</td>
    <td> Cntrl_Barn.fx( <b>Radius=200</b> )<br />
      Cntrl_bldstm.fx( <b>Radius=10000</b> )<br />
      fx_Aurora1.fx( <b>Radius=500</b> )<br />
      fx_Barnstorm.fx( <b>Radius=-1</b> )<br />
      fx_BldStm_lrg.fx( <b>Radius=100</b> )<br />
      fx_CampFire.fx( <b>Radius=0</b> )<br />
      fx_cloudlightning01.fx( <b>Radius=100000</b> )<br />
      fx_DDfire.fx( <b>Radius=1000</b> )<br />
      fx_firework1.fx( <b>Radius=25</b> )<br />
      fx_firework11.fx( <b>Radius=130</b> ) </td>
  </tr>
  
  <tr>
    <td>Priority=N</td>
    <td>The number of particles drawn in any one scene can be limited by the various performance settings. Setting Priority to 0 maximizes the chances of the effect being drawn. Setting it to another number will lower the chances of the full effect being drawn if there are performance issues.</td>
    <td> Cntrl_Barn.fx( <b>Priority=0</b> )<br />
      fx_Ngafalls_lrg.fx( <b>Priority=5</b> )<br />
      fx_rtr_cmnt.fx( <b>Priority=9</b> )<br />
      fx_steam1.fx( <b>Priority=4</b> ) </td>
  </tr>
  <tr>
    <td><p>Sound=5</p>
    <p>Sound param=0</p></td>
    <td>These values are legacy and should not be used. See the [<a href="#sound">sound</a>] section below. </td>
    <td>&nbsp;</td>
  </tr>
  
  
  <tr>
    <td>Damage, HitPoints, Magnitude, Time, Range</td>
    <td>These are values you may see in some legacy effects, and where used in Combat Flight Simulator. They are ignored and have no effect in  Flight Simulator X.</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><h6>[Properties] <a name="Properties" id="Properties"></a></h6></td>
    <td>The [Property] section defines the view modes in which the effect will be displayed.</td>
    <td>&nbsp;</td>
  </tr>
  
  <tr>
    <td><p>Cockpit=0/1</p>
    <p>VirtualCockpit=0/1</p>
    <p>Spot=0/1</p>
    <p>Tower=0/1</p>
    <p>Map=0/1</p></td>
    <td><p>The view modes in which the effect appears.  If you dont want the effect to show up in a view change its value to 0.</p>
      <p>Note that the FX tool sets all these values to 1.</p></td>
    <td><p>fx_animaldust.fx( <b>Cockpit=1</b> ) </p>
      <p> fx_animaldust.fx( <b>VirtualCockpit=1</b> ) </p>
      <p>fx_animaldust.fx( <b>Spot=1</b> )</p>
      <p> fx_animaldust.fx( <b>Tower=1</b> )</p>
    <p> fx_animaldust.fx( <b>Map=1</b> ) </p></td>
  </tr>
  <tr>
    <td>stoptemp</td>
    <td>Legacy do not use this. </td>
    <td> fx_SmokeStack.fx( <b>StopTemp=10.00</b> ) </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><h6>[Emitter.0]<a name="Emitter" id="Emitter"></a></h6></td>
    <td>The [Emitter.0] section defines the start of the emitter portion of an effect. An emitter creates a flow of particles, like water from a spigot, that is displayed in the effect.</td>
    <td>&nbsp;</td>
  </tr>
  
  <tr>
    <td>Lifetime=0.00, 0.00</td>
    <td>The length of time that an emitter emits particles. Measured in seconds.</td>
    <td> fx_animaldust.fx( <b>Lifetime=0.00, 0.00</b> )<br />
      fx_Aurora1.fx( <b>Lifetime=10.00, 10.00</b> )<br />
      fx_Aurora2.fx( <b>Lifetime=15.10, 15.10</b> )<br />
      fx_Barnstorm.fx( <b>Lifetime=0.50, 1.00</b> )<br />
      fx_beacong.fx( <b>Lifetime=1.00, 1.00</b> )<br />
      fx_BelgFount1.fx( <b>Lifetime=5.00, 7.00</b> )<br />
      fx_BelgFount2.fx( <b>Lifetime=3.00, 4.00</b> )<br />
      fx_blowHole.fx( <b>Lifetime=0.50, 0.70</b> )<br />
      fx_cloudlightning01.fx( <b>Lifetime=0.30, 0.40</b> )<br />
      fx_cloudlightning02.fx( <b>Lifetime=0.20, 0.30</b> ) </td>
  </tr>
  <tr>
    <td>Delay=0.00, 0.00</td>
    <td>The length of delay before the emitter begins emitting particles. Measured in seconds.</td>
    <td> fx_animaldust.fx( <b>Delay=0.00, 0.00</b> )<br />
      fx_Aurora1.fx( <b>Delay=5.00, 5.00</b> )<br />
      fx_beaconb.fx( <b>Delay=0.50, 0.50</b> )<br />
      fx_BelgFount1.fx( <b>Delay=8.00, 8.00</b> )<br />
      fx_CampFire.fx( <b>Delay=0.02, 0.02</b> )<br />
      fx_cloudlightning01.fx( <b>Delay=0.10, 0.10</b> )<br />
      fx_contrail_l.fx( <b>Delay=0.30, 0.32</b> )<br />
      fx_dirtspray_l.fx( <b>Delay=0.10, 0.11</b> )<br />
      fx_EmergencyLights.fx( <b>Delay=0.20, 0.20</b> )<br />
      fx_engFire.fx( <b>Delay=0.30, 0.30</b> ) </td>
  </tr>
  <tr>
    <td>Bounce=0.00</td>
    <td>The reaction of an emitter when it collides with the ground. The higher the number, the larger the bounce. If the parameter is set to 0, no reaction occurs.</td>
    <td> fx_animaldust.fx( <b>Bounce=0.00</b> )<br />
      fx_Ngafalls_lrg.fx( <b>Bounce=1.00</b> ) </td>
  </tr>
  <tr>
    <td>LOD = 0/1</td>
    <td>Set the level of detail (LOD) to be 1 if you want the effect to disappear at a distance. Use this to improve performance, and apply it to small localized effects. The default is 0.</td>
    <td> fx_engFire.fx( <b>LOD=1</b> ) </td>
  </tr>
  <tr>
    <td>Light = 0/1</td>
    <td>If this is set to 1, the effect is treated as a light source. For example beacons and fireworks have this value set to 1. The default is 0.</td>
    <td> fx_beacon.fx( <b>Light=1</b> ) </td>
  </tr>
  <tr>
    <td>No Interpolate = 0/1</td>
    <td>If this is set to 1, interpolation code is not used. Interpolation code attempts to avoid the graphics anomaly of a continuous stream appearing as a sequence of puffs, because the emitter of the stream is moving much faster than the frame rate. Sometimes this interpolation makes the effect appear detached from the emitter, so setting No Interpolate to 1 is one way of attaching an effect to an object securely. The default is 0.</td>
    <td> fx_beacon.fx( <b>No Interpolate=1</b> ) </td>
  </tr>
  <tr>
    <td>Rate=0.00, 0.00</td>
    <td>The rate at which particles are emitted. Measured in particles per second.</td>
    <td> fx_animaldust.fx( <b>Rate=20.00, 30.00</b> )<br />
      fx_Aurora1.fx( <b>Rate=3.00, 3.00</b> )<br />
      fx_Aurora2.fx( <b>Rate=2.00, 2.00</b> )<br />
      fx_Barnstorm.fx( <b>Rate=200.00, 250.00</b> )<br />
      fx_beacong.fx( <b>Rate=0.50, 0.50</b> )<br />
      fx_BelgFount1.fx( <b>Rate=32.00, 32.00</b> )<br />
      fx_BelgFount2.fx( <b>Rate=10.00, 10.00</b> )<br />
      fx_BilgePump.fx( <b>Rate=5.00, 10.00</b> )<br />
      fx_BldStm_lrg.fx( <b>Rate=10.00, 15.00</b> )<br />
      fx_blowHole.fx( <b>Rate=40.00, 80.00</b> ) </td>
  </tr>
  <tr>
    <td>X Emitter Velocity=0.00, 0.00</td>
    <td>The X Emitter Velocity, Y Emitter Velocity, and Z Emitter Velocity parameters define the velocity of the launched emitter in the X, Y, and Z directions, respectively. (The Y direction corresponds to vertical.) The larger the number, the greater the velocity of the emitter.</td>
    <td> fx_animaldust.fx( <b>X Emitter Velocity=0.00, 0.00</b> )<br />
      fx_explosion.fx( <b>X Emitter Velocity=-2.10, 2.10</b> )<br />
      fx_flare.fx( <b>X Emitter Velocity=-10.00, 10.00</b> )<br />
      fx_launch.fx( <b>X Emitter Velocity=-2.00, 2.00</b> )<br />
      fx_launch2.fx( <b>X Emitter Velocity=0.00, 2.00</b> )<br />
      fx_watercrash.fx( <b>X Emitter Velocity=-1.00, 1.00</b> ) </td>
  </tr>
  <tr>
    <td>Y Emitter Velocity=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Y Emitter Velocity=0.00, 0.00</b> )<br />
      fx_dustcloud_l.fx( <b>Y Emitter Velocity=2.00, 2.00</b> )<br />
      fx_explosion.fx( <b>Y Emitter Velocity=3.00, 4.00</b> )<br />
      fx_firework15.fx( <b>Y Emitter Velocity=8.00, 8.00</b> )<br />
      fx_flare.fx( <b>Y Emitter Velocity=80.00, 80.00</b> )<br />
      fx_launch.fx( <b>Y Emitter Velocity=10.00, 10.00</b> )<br />
      fx_launch2.fx( <b>Y Emitter Velocity=32.00, 32.00</b> )<br />
      fx_launch3.fx( <b>Y Emitter Velocity=42.00, 42.00</b> )<br />
      fx_lightningFire.fx( <b>Y Emitter Velocity=3.00, 5.00</b> )<br />
      fx_watercrash.fx( <b>Y Emitter Velocity=4.50, 4.50</b> ) </td>
  </tr>
  <tr>
    <td>Z Emitter Velocity=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Z Emitter Velocity=0.00, 0.00</b> )<br />
      fx_explosion.fx( <b>Z Emitter Velocity=-2.10, 2.10</b> )<br />
      fx_flare.fx( <b>Z Emitter Velocity=-10.00, 10.00</b> )<br />
      fx_launch.fx( <b>Z Emitter Velocity=-2.00, 2.00</b> )<br />
      fx_launch2.fx( <b>Z Emitter Velocity=0.00, 2.00</b> )<br />
      fx_watercrash.fx( <b>Z Emitter Velocity=-1.00, 1.00</b> ) </td>
  </tr>
  
  <tr>
    <td>Drag=0.00, 0.00</td>
    <td>Drag defines the affect of wind and gravity on the emitter. Negative numbers impart more drag.</td>
    <td> fx_animaldust.fx( <b>Drag=0.00, 0.00</b> )<br />
      fx_contrail_l.fx( <b>Drag=0.00, 0.01</b> )<br />
      fx_dirtspray_l.fx( <b>Drag=-1.00, -0.98</b> )<br />
      fx_firework15.fx( <b>Drag=-1.00, -1.00</b> )<br />
      fx_flare.fx( <b>Drag=-3.00, -3.00</b> )<br />
      fx_launch2.fx( <b>Drag=-1.00, -0.50</b> ) </td>
  </tr>
  <tr>
    <td>X Particle Velocity=-0.00, 0.00</td>
    <td>The velocity at which particles travel in the X, Y, and Z directions, respectively.</td>
    <td> fx_animaldust.fx( <b>X Particle Velocity=-0.30, 0.30</b> )<br />
      fx_Aurora1.fx( <b>X Particle Velocity=0.00, 0.00</b> )<br />
      fx_Barnstorm.fx( <b>X Particle Velocity=-10.00, 10.00</b> )<br />
      fx_BelgFount1.fx( <b>X Particle Velocity=-1.00, 1.00</b> )<br />
      fx_BilgePump.fx( <b>X Particle Velocity=-0.20, 0.20</b> )<br />
      fx_BldStm_lrg.fx( <b>X Particle Velocity=-2.00, 2.00</b> )<br />
      fx_deicing.fx( <b>X Particle Velocity=-15.00, -10.00</b> )<br />
      fx_dirtcrash.fx( <b>X Particle Velocity=-5.00, 5.00</b> )<br />
      fx_dirtspray_l.fx( <b>X Particle Velocity=-3.00, 3.00</b> )<br />
      fx_dustcloud_l.fx( <b>X Particle Velocity=2.50, 3.00</b> ) </td>
  </tr>
  <tr>
    <td>Y Particle Velocity=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Y Particle Velocity=0.00, 0.00</b> )<br />
      fx_Barnstorm.fx( <b>Y Particle Velocity=4.00, 10.00</b> )<br />
      fx_BelgFount1.fx( <b>Y Particle Velocity=80.00, 90.00</b> )<br />
      fx_BelgFount2.fx( <b>Y Particle Velocity=100.00, 120.00</b> )<br />
      fx_BilgePump.fx( <b>Y Particle Velocity=1.00, 1.50</b> )<br />
      fx_BldStm_lrg.fx( <b>Y Particle Velocity=5.00, 15.00</b> )<br />
      fx_blowHole.fx( <b>Y Particle Velocity=2.00, 6.00</b> )<br />
      fx_CampFire.fx( <b>Y Particle Velocity=0.80, 1.00</b> )<br />
      fx_DDfire.fx( <b>Y Particle Velocity=-1.00, 1.00</b> )<br />
      fx_deicing.fx( <b>Y Particle Velocity=-8.00, -5.00</b> ) </td>
  </tr>
  <tr>
    <td>Z Particle Velocity=-0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Z Particle Velocity=-0.30, 0.30</b> )<br />
      fx_Aurora1.fx( <b>Z Particle Velocity=0.00, 0.00</b> )<br />
      fx_Barnstorm.fx( <b>Z Particle Velocity=20.00, 25.00</b> )<br />
      fx_BelgFount1.fx( <b>Z Particle Velocity=-1.00, 1.00</b> )<br />
      fx_BilgePump.fx( <b>Z Particle Velocity=1.00, 2.00</b> )<br />
      fx_BldStm_lrg.fx( <b>Z Particle Velocity=-2.00, 2.00</b> )<br />
      fx_dirtcrash.fx( <b>Z Particle Velocity=-10.00, 10.00</b> )<br />
      fx_dirtspray_l.fx( <b>Z Particle Velocity=-3.00, 3.00</b> )<br />
      fx_dustcloud_l.fx( <b>Z Particle Velocity=-5.00, 5.00</b> )<br />
      fx_engFire.fx( <b>Z Particle Velocity=0.00, 0.50</b> ) </td>
  </tr>
  <tr>
    <td>X Rotation=0.00, 0.00</td>
    <td>The rate at which an effect rotates in the X, Y, or Z plane. To create particles that rotate around a center, combine these Rotation parameters with the Particle Offset parameters. The greater the offset and the greater the rotation, the more dramatic the effect. For example, some of the spectacular fireworks effects in <i>Flight Simulator</i>  were done using these two parameters.</td>
    <td> fx_animaldust.fx( <b>X Rotation=0.00, 0.00</b> )<br />
      fx_firework13.fx( <b>X Rotation=250.00, 250.00</b> )<br />
      fx_firework15.fx( <b>X Rotation=-100.00, 100.00</b> ) </td>
  </tr>
  <tr>
    <td>Y Rotation=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Y Rotation=0.00, 0.00</b> )<br />
      fx_Aurora1.fx( <b>Y Rotation=0.00, 1110.00</b> )<br />
      fx_BelgFount1.fx( <b>Y Rotation=120.00, 120.00</b> )<br />
      fx_firework13.fx( <b>Y Rotation=250.00, 250.00</b> )<br />
      fx_firework15.fx( <b>Y Rotation=-100.00, 100.00</b> )<br />
      fx_rtr_cmnt.fx( <b>Y Rotation=2000.00, 2000.00</b> ) </td>
  </tr>
  <tr>
    <td>Z Rotation=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Z Rotation=0.00, 0.00</b> )<br />
      fx_firework10.fx( <b>Z Rotation=10.00, 10.00</b> )<br />
      fx_firework13.fx( <b>Z Rotation=250.00, 250.00</b> )<br />
      fx_firework15.fx( <b>Z Rotation=-250.00, 250.00</b> )<br />
      fx_tchdwn.fx( <b>Z Rotation=0.00, 2360.00</b> ) </td>
  </tr>
  <tr>
    <td>X Offset=0.00, 0.00</td>
    <td>The distance that the emitter is offset from its point of origin in the X, Y, and Z directions.</td>
    <td> fx_animaldust.fx( <b>X Offset=0.00, 0.00</b> )<br />
      fx_Aurora1.fx( <b>X Offset=-300.00, 300.00</b> )<br />
      fx_Aurora2.fx( <b>X Offset=-400.00, 400.00</b> )<br />
      fx_Aurora3.fx( <b>X Offset=-500.00, 500.00</b> )<br />
      fx_Barnstorm.fx( <b>X Offset=4.00, 4.00</b> )<br />
      fx_EmergencyLights.fx( <b>X Offset=-0.50, -0.50</b> )<br />
      fx_firework6.fx( <b>X Offset=-50.00, 50.00</b> )<br />
      fx_ForestBurntHuge.fx( <b>X Offset=-40.00, 40.00</b> )<br />
      fx_kilauea1.fx( <b>X Offset=-20.00, 20.00</b> )<br />
      fx_navgre.fx( <b>X Offset=0.68, 0.68</b> ) </td>
  </tr>
  <tr>
    <td>Y Offset=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Y Offset=0.00, 0.00</b> )<br />
      fx_Aurora1.fx( <b>Y Offset=100.00, 100.00</b> )<br />
      fx_beacon.fx( <b>Y Offset=0.05, 0.05</b> )<br />
      fx_beaconb.fx( <b>Y Offset=-0.05, -0.05</b> )<br />
      fx_CampFire.fx( <b>Y Offset=0.20, 0.20</b> )<br />
      fx_engFire.fx( <b>Y Offset=1.00, 1.00</b> )<br />
      fx_engstrt_cub.fx( <b>Y Offset=-0.50, -0.50</b> )<br />
      fx_firework6.fx( <b>Y Offset=-50.00, 50.00</b> )<br />
      fx_ForestFireHuge.fx( <b>Y Offset=0.00, 100.00</b> )<br />
      fx_luxbeam1.fx( <b>Y Offset=3150.00, 3150.00</b> ) </td>
  </tr>
  <tr>
    <td>Z Offset=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Z Offset=0.00, 0.00</b> )<br />
      fx_beacon.fx( <b>Z Offset=0.05, 0.05</b> )<br />
      fx_engFire.fx( <b>Z Offset=1.00, 1.00</b> )<br />
      fx_engstrt_jenny.fx( <b>Z Offset=-1.00, -1.00</b> )<br />
      fx_firework6.fx( <b>Z Offset=-50.00, 50.00</b> )<br />
      fx_ForestBurntHuge.fx( <b>Z Offset=-40.00, 40.00</b> )<br />
      fx_kilauea1.fx( <b>Z Offset=-20.00, 20.00</b> )<br />
      fx_navgre.fx( <b>Z Offset=-0.18, -0.18</b> )<br />
      fx_Ngafalls_lrg.fx( <b>Z Offset=10.00, 10.00</b> )<br />
      fx_Ngafalls_sml.fx( <b>Z Offset=-10.00, 0.00</b> ) </td>
  </tr>
  <tr>
    <td>Pitch=0.00, 0.00</td>
    <td>The angle at which the emitter is tilted. A tilted emitter emits particles at an angle, a feature that is especially helpful when working with static particles.    Measured in degrees.</td>
    <td> fx_animaldust.fx( <b>Pitch=0.00, 0.00</b> )<br />
      fx_cloudlightning01.fx( <b>Pitch=80.00, 100.00</b> )<br />
      fx_Ngastatic_lrg.fx( <b>Pitch=46.00, 46.00</b> ) </td>
  </tr>
  <tr>
    <td>Bank=0.00, 0.00</td>
    <td>The bank angle of the emitter. </td>
    <td> fx_animaldust.fx( <b>Bank=0.00, 0.00</b> ) </td>
  </tr>
  <tr>
    <td>Heading=0.00, 0.00</td>
    <td>The heading angle of the emitter. </td>
    <td> fx_animaldust.fx( <b>Heading=-10.00, 10.00</b> )<br />
      fx_Aurora1.fx( <b>Heading=0.00, 0.00</b> )<br />
      fx_cloudlightning01.fx( <b>Heading=0.00, 360.00</b> ) </td>
  </tr>
  <tr>
    <td>temperaturerangec</td>
    <td>Set the check box if outside temperature is a factor. If so, the particles will only be emitted if the outside temperature is within the min/max range. This can be used to prevent, for example, steam appearing when the outside temperature is too warm for it to be visible. </td>
    <td> fx_BldStm_lrg.fx( <b>TemperatureRangeC=-9999.0, 0.0</b> )<br />
      fx_BldStm_med.fx( <b>TemperatureRangeC=0.0, 5.0</b> )<br />
      fx_BldStm_sml.fx( <b>TemperatureRangeC=5.0, 10.0</b> ) </td>
  </tr>
  <tr>
    <td>rendertype</td>
    <td>This value is specific for wake effects. Set it to 1 for wake. </td>
    <td> fx_wake_l.fx( <b>RenderType=1</b> ) </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><h6>[Particle.0]<a name="Particle" id="Particle"></a></h6></td>
    <td>The [Particle.0] section defines the start of the first particle and the particles behavior after it has been emitted. You can include sections for more than one particle (for example, [Particle.0], [Particle.1], and [Particle.2]).</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Name=
        <string></td>
    <td>It is often helpful to give the particle a name, such as smoke puff, fireball, or whatever.</td>
    <td>fx_dirtspray_l.fx( <b>Name=Dust Cloud</b> )<br />
      fx_dirtspray_m.fx( <b>Name=Dirt</b> )<br />
      fx_dirtspray_s.fx( <b>Name=Plume</b> )<br />
    fx_engstrt.fx( <b>Name=Smoke Puff 1</b> ) </td>
  </tr>
  <tr>
    <td>Lifetime=0.00, 0.00</td>
    <td>The length of time that the particle exists, in seconds.</td>
    <td> fx_animaldust.fx( <b>Lifetime=4.00, 6.00</b> )<br />
      fx_Aurora1.fx( <b>Lifetime=3.00, 4.00</b> )<br />
      fx_Aurora2.fx( <b>Lifetime=3.00, 6.00</b> )<br />
      fx_Barnstorm.fx( <b>Lifetime=1.75, 2.00</b> )<br />
      fx_beacon.fx( <b>Lifetime=0.10, 0.10</b> )<br />
      fx_beaconb.fx( <b>Lifetime=0.01, 0.01</b> )<br />
      fx_beacong.fx( <b>Lifetime=0.00, 0.00</b> )<br />
      fx_BelgFount1.fx( <b>Lifetime=0.75, 1.60</b> )<br />
      fx_BelgFount2.fx( <b>Lifetime=1.75, 3.00</b> )<br />
      fx_BilgePump.fx( <b>Lifetime=1.00, 3.00</b> ) </td>
  </tr>
  <tr>
    <td>Type=19</td>
    <td><p>For normal particles the type should be set to 19. Some specific effects require a different number:</p>
      <p>#  Effect</p>
      <p>3 Lightning</p>
      <p>21 Extrusions (such as wake)</p>
      <p>22 Debris (the emission of library objects)</p>
      <p>25 Light sources</p>
      <p>26 Effects emitting effects    </p></td>
    <td> fx_animaldust.fx( <b>Type=19</b> )<br />
      fx_beacong.fx( <b>Type=25</b> )<br />
      fx_cloudlightning01.fx( <b>Type=3</b> )<br />
      fx_contrail_l.fx( <b>Type=21</b> )<br />
      fx_flare.fx( <b>Type=26</b> )<br />
      fx_object_test.fx( <b>Type=22</b> ) </td>
  </tr>
  
  <tr>
    <td>X Scale=0.00, 0.00</td>
    <td>The starting size of the particle in the X, Y, and Z directions. Measured in meters.</td>
    <td> fx_animaldust.fx( <b>X Scale=0.10, 0.30</b> )<br />
      fx_Aurora1.fx( <b>X Scale=3000.00, 3500.00</b> )<br />
      fx_Aurora2.fx( <b>X Scale=2500.00, 3000.00</b> )<br />
      fx_Aurora3.fx( <b>X Scale=2500.00, 3500.00</b> )<br />
      fx_Barnstorm.fx( <b>X Scale=1.00, 1.50</b> )<br />
      fx_beacon.fx( <b>X Scale=3.00, 3.00</b> )<br />
      fx_beaconb.fx( <b>X Scale=5.00, 5.00</b> )<br />
      fx_beacong.fx( <b>X Scale=3.20, 3.20</b> )<br />
      fx_beaconh.fx( <b>X Scale=1.75, 1.75</b> )<br />
      fx_beaconwhi.fx( <b>X Scale=1.50, 1.50</b> ) </td>
  </tr>
  <tr>
    <td>Y Scale=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Y Scale=0.10, 0.30</b> )<br />
      fx_Aurora1.fx( <b>Y Scale=3000.00, 3500.00</b> )<br />
      fx_Aurora2.fx( <b>Y Scale=2500.00, 3000.00</b> )<br />
      fx_Aurora3.fx( <b>Y Scale=2500.00, 3500.00</b> )<br />
      fx_Barnstorm.fx( <b>Y Scale=1.00, 1.50</b> )<br />
      fx_beacon.fx( <b>Y Scale=3.00, 3.00</b> )<br />
      fx_beaconb.fx( <b>Y Scale=5.00, 5.00</b> )<br />
      fx_beacong.fx( <b>Y Scale=3.20, 3.20</b> )<br />
      fx_beaconh.fx( <b>Y Scale=1.75, 1.75</b> )<br />
      fx_beaconwhi.fx( <b>Y Scale=1.50, 1.50</b> ) </td>
  </tr>
  <tr>
    <td>Z Scale=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Z Scale=0.00, 0.00</b> )<br />
      fx_object_test.fx( <b>Z Scale=1.00, 5.00</b> ) </td>
  </tr>
  <tr>
    <td>X Scale Rate=0.00, 0.00</td>
    <td>The rate at which a particle grows from zero to its scale goal (see the [<a href="#ParticleAttributes">ParticleAttributes</a>] section) in the X, Y, and Z directions. The larger the number, the faster the scaling.</td>
    <td> fx_animaldust.fx( <b>X Scale Rate=0.25, 0.30</b> )<br />
      fx_Aurora1.fx( <b>X Scale Rate=0.00, 0.10</b> )<br />
      fx_Barnstorm.fx( <b>X Scale Rate=0.00, 0.00</b> )<br />
      fx_BelgFount1.fx( <b>X Scale Rate=0.40, 0.40</b> )<br />
      fx_BelgFount2.fx( <b>X Scale Rate=0.50, 0.50</b> )<br />
      fx_BilgePump.fx( <b>X Scale Rate=0.10, 0.20</b> )<br />
      fx_BldStm_lrg.fx( <b>X Scale Rate=0.20, 0.20</b> )<br />
      fx_blowHole.fx( <b>X Scale Rate=0.58, 1.00</b> )<br />
      fx_CampFire.fx( <b>X Scale Rate=0.01, 0.01</b> )<br />
      fx_cloudlightning01.fx( <b>X Scale Rate=1.00, 20.00</b> ) </td>
  </tr>
  <tr>
    <td>Y Scale Rate=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Y Scale Rate=0.25, 0.30</b> )<br />
      fx_Aurora1.fx( <b>Y Scale Rate=0.00, 0.10</b> )<br />
      fx_Barnstorm.fx( <b>Y Scale Rate=0.00, 0.00</b> )<br />
      fx_BelgFount1.fx( <b>Y Scale Rate=0.40, 0.40</b> )<br />
      fx_BelgFount2.fx( <b>Y Scale Rate=0.50, 0.50</b> )<br />
      fx_BilgePump.fx( <b>Y Scale Rate=0.10, 0.20</b> )<br />
      fx_BldStm_lrg.fx( <b>Y Scale Rate=0.20, 0.20</b> )<br />
      fx_blowHole.fx( <b>Y Scale Rate=0.58, 1.00</b> )<br />
      fx_CampFire.fx( <b>Y Scale Rate=0.01, 0.01</b> )<br />
      fx_cloudlightning01.fx( <b>Y Scale Rate=1.00, 20.00</b> ) </td>
  </tr>
  <tr>
    <td>Z Scale Rate=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Z Scale Rate=0.00, 0.00</b> )<br />
      fx_object_test.fx( <b>Z Scale Rate=-1.00, 1.00</b> ) </td>
  </tr>
  <tr>
    <td>Drag=0.00, 0.00</td>
    <td>Drag defines the effect of wind and gravity on the particles. Negative numbers impart more drag. For positive numbers, dont use a value greater than 1.00. For a reasonable effect of wind on dust particles use a value around -0.5.</td>
    <td> fx_animaldust.fx( <b>Drag=-0.50, -0.50</b> )<br />
      fx_Aurora1.fx( <b>Drag=0.00, 0.00</b> )<br />
      fx_BelgFount1.fx( <b>Drag=-1.00, -0.98</b> )<br />
      fx_BelgFount2.fx( <b>Drag=-2.00, -1.98</b> )<br />
      fx_BldStm_lrg.fx( <b>Drag=-1.50, -1.50</b> )<br />
      fx_blowHole.fx( <b>Drag=-0.20, -0.20</b> )<br />
      fx_contrail_l.fx( <b>Drag=-999.00, -999.00</b> )<br />
      fx_dirtspray_l.fx( <b>Drag=-1.50, -1.49</b> )<br />
      fx_dirtspray_m.fx( <b>Drag=-2.00, -1.95</b> )<br />
      fx_firework1.fx( <b>Drag=-1.00, -1.00</b> ) </td>
  </tr>
  
  <tr>
    <td>Color Rate=0.00, 0.00</td>
    <td>The first value gives the percentage of the lifetime of the particle that the particle will be colored with Color Start, between the first and second values the colors will cross-fade, and the second value gives the percentage of the lifetime after which the particle is colored Color End. The percentages are expressed as fractions, for example: 0.50 is 50 percent. </td>
    <td> fx_animaldust.fx( <b>Color Rate=0.50, 0.80</b> )<br />
      fx_Aurora1.fx( <b>Color Rate=0.30, 0.60</b> )<br />
      fx_Barnstorm.fx( <b>Color Rate=0.00, 0.00</b> )<br />
      fx_BelgFount1.fx( <b>Color Rate=0.50, 0.50</b> )<br />
      fx_BelgFount2.fx( <b>Color Rate=0.10, 0.50</b> )<br />
      fx_BilgePump.fx( <b>Color Rate=0.20, 0.50</b> )<br />
      fx_blowHole.fx( <b>Color Rate=0.00, 1.00</b> )<br />
      fx_CampFire.fx( <b>Color Rate=0.90, 0.95</b> )<br />
      fx_contrail_l.fx( <b>Color Rate=0.33, 0.45</b> )<br />
      fx_contrail_s.fx( <b>Color Rate=0.10, 0.20</b> ) </td>
  </tr>
  
  <tr>
    <td>X Offset=0.00, 0.00</td>
    <td>The distance that the emitted particles are offset from the emitter in the X, Y, and Z directions. These parameters can be combined with the Emitter Rotation parameters to create swirling particle effects. They can also be used to spread particles out over an area.</td>
    <td> fx_animaldust.fx( <b>X Offset=0.00, 0.00</b> )<br />
      fx_Barnstorm.fx( <b>X Offset=-7.00, 7.00</b> )<br />
      fx_BelgFount1.fx( <b>X Offset=-10.00, 10.00</b> )<br />
      fx_BelgFount2.fx( <b>X Offset=-70.00, -70.00</b> )<br />
      fx_BilgePump.fx( <b>X Offset=-0.20, 0.20</b> )<br />
      fx_deicing.fx( <b>X Offset=-4.24, -4.24</b> )<br />
      fx_engFire.fx( <b>X Offset=-0.30, 0.30</b> )<br />
      fx_explosion.fx( <b>X Offset=-2.00, 2.00</b> )<br />
      fx_firework13.fx( <b>X Offset=44.00, 45.00</b> )<br />
      fx_FlamingDebris.fx( <b>X Offset=-1.00, 1.00</b> ) </td>
  </tr>
  <tr>
    <td>Y Offset=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Y Offset=0.00, 0.00</b> )<br />
      fx_BilgePump.fx( <b>Y Offset=0.90, 0.90</b> )<br />
      fx_blowHole.fx( <b>Y Offset=0.00, 1.00</b> )<br />
      fx_deicing.fx( <b>Y Offset=13.21, 13.21</b> )<br />
      fx_DolphinSpray.fx( <b>Y Offset=-5.00, -5.00</b> )<br />
      fx_engFire.fx( <b>Y Offset=-0.30, 0.30</b> )<br />
      fx_engstrt_vega.fx( <b>Y Offset=-1.20, -1.20</b> )<br />
      fx_explosionOiltank.fx( <b>Y Offset=5.00, 5.00</b> )<br />
      fx_firework13.fx( <b>Y Offset=54.00, 55.00</b> )<br />
      fx_firework15.fx( <b>Y Offset=45.00, 45.00</b> ) </td>
  </tr>
  <tr>
    <td>Z Offset=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Z Offset=0.00, 0.00</b> )<br />
      fx_Barnstorm.fx( <b>Z Offset=0.00, 3.00</b> )<br />
      fx_BelgFount1.fx( <b>Z Offset=10.00, 10.00</b> )<br />
      fx_BelgFount2.fx( <b>Z Offset=-35.00, -35.00</b> )<br />
      fx_BilgePump.fx( <b>Z Offset=1.00, 1.00</b> )<br />
      fx_deicing.fx( <b>Z Offset=-0.04, -0.04</b> )<br />
      fx_engsmoke2.fx( <b>Z Offset=5.00, 5.00</b> )<br />
      fx_engstrt_vega.fx( <b>Z Offset=-2.00, -2.00</b> )<br />
      fx_explosion.fx( <b>Z Offset=-2.00, 2.00</b> )<br />
      fx_explosionOiltank.fx( <b>Z Offset=-10.00, 10.00</b> ) </td>
  </tr>
  <tr>
    <td>Fade In=0.00, 0.00</td>
    <td>The moment during its lifetime that a particle fades in. Expressed as a percentage of total lifetime.</td>
    <td> fx_animaldust.fx( <b>Fade In=0.10, 0.20</b> )<br />
      fx_Aurora1.fx( <b>Fade In=0.30, 0.30</b> )<br />
      fx_Barnstorm.fx( <b>Fade In=0.00, 0.00</b> )<br />
      fx_BelgFount1.fx( <b>Fade In=0.10, 0.10</b> )<br />
      fx_BilgePump.fx( <b>Fade In=0.20, 0.20</b> )<br />
      fx_blowHole.fx( <b>Fade In=0.00, 0.05</b> )<br />
      fx_CampFire.fx( <b>Fade In=0.05, 0.10</b> )<br />
      fx_contrail_l.fx( <b>Fade In=0.22, 0.25</b> )<br />
      fx_contrail_s.fx( <b>Fade In=0.15, 0.15</b> )<br />
      fx_DDfire.fx( <b>Fade In=0.50, 0.60</b> ) </td>
  </tr>
  <tr>
    <td>Fade Out=0.00, 0.00</td>
    <td>The moment during its lifetime that a particle fades out. Expressed as a percentage of total lifetime.</td>
    <td> fx_animaldust.fx( <b>Fade Out=0.60, 0.80</b> )<br />
      fx_Aurora1.fx( <b>Fade Out=0.71, 0.71</b> )<br />
      fx_Barnstorm.fx( <b>Fade Out=0.70, 0.80</b> )<br />
      fx_beacon.fx( <b>Fade Out=0.00, 0.00</b> )<br />
      fx_BelgFount1.fx( <b>Fade Out=0.40, 0.51</b> )<br />
      fx_BilgePump.fx( <b>Fade Out=0.50, 0.51</b> )<br />
      fx_BldStm_lrg.fx( <b>Fade Out=0.50, 0.50</b> )<br />
      fx_blowHole.fx( <b>Fade Out=0.10, 0.20</b> )<br />
      fx_CampFire.fx( <b>Fade Out=0.20, 0.40</b> )<br />
      fx_contrail_l.fx( <b>Fade Out=0.75, 0.75</b> ) </td>
  </tr>
  <tr>
    <td>Rotation=-0.00, 0.00</td>
    <td>The rotation of a particle. It is best to use a negative number first and then a positive number to get the most variation in the amount of rotation.</td>
    <td> fx_animaldust.fx( <b>Rotation=-100.00, 100.00</b> )<br />
      fx_Aurora1.fx( <b>Rotation=-2.00, -2.00</b> )<br />
      fx_Aurora2.fx( <b>Rotation=3.00, 3.00</b> )<br />
      fx_Barnstorm.fx( <b>Rotation=-1000.00, 1000.00</b> )<br />
      fx_beacon.fx( <b>Rotation=0.00, 0.00</b> )<br />
      fx_BelgFount1.fx( <b>Rotation=-20.00, 20.00</b> )<br />
      fx_CampFire.fx( <b>Rotation=-15.00, 15.00</b> )<br />
      fx_contrail_l.fx( <b>Rotation=-60.00, 60.00</b> )<br />
      fx_DDfire.fx( <b>Rotation=-200.00, 200.00</b> )<br />
      fx_deicing.fx( <b>Rotation=-50.00, 50.00</b> ) </td>
  </tr>
  <tr>
    <td>Shade=0/1</td>
    <td>An on/off toggle that determines whether the particle is darkened at night. It is used for night shading.</td>
    <td> fx_animaldust.fx( <b>Shade=1</b> ) </td>
  </tr>
  
  <tr>
    <td>Static=0/1</td>
    <td><p>An on/off toggle that, when turned on, makes the particle attach itself to the emitter and shuts off the emitter after the first particle. This parameter was used extensively in creating the lights for the planes. Use this parameter when you need one particle that must stay in a fixed location relative to the emitter (for example, signs or anything that needs to stick to the plane).</p>
    <p>Particle  offsets do not work on static particles,  use emitter offsets instead. </p></td>
    <td>fx_beacon.fx( <b>Static=1</b> ) </td>
  </tr>
  
  <tr>
    <td>Face=0/1, 0/1, 0/1</td>
    <td>The direction that the particles face. Pitch, bank, and heading are the constraints for the particles facing movement. These are on/off switches because the particles either move in the corresponding direction, or they do not. To have the particles face you, use 1,1,1. If one of the values is 0, then the particles will be constrained in the corresponding axis. To have the particles remain perpendicular to the ground but still turn and face you, use 0,0,1.</td>
    <td>fx_animaldust.fx( <b>Face=1, 1, 1</b> )<br />
      fx_Aurora1.fx( <b>Face=0, 0, 0</b> )<br />
      fx_Aurora2.fx( <b>Face=0, 1, 1</b> )<br />
      fx_cloudlightning01.fx( <b>Face=0, 1, 0</b> )<br />
      fx_dirtspray_l.fx( <b>Face=0, 0, 1</b> )<br />
    fx_DolphinSpray.fx( <b>Face=1, 0, 1</b> ) </td>
  </tr>
  <tr>
    <td>ground normal</td>
    <td>If this is set to 1 the particle will be rendered parallel to the ground surface. This is for such effects as wake, rotor wash, burn marks, and similar ground effects. If this  is  set then the Facing options above (Ptich, Bank and Heading) are ignored. </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>emittedeffectname</td>
    <td>The name of the effect initiated by this effect. </td>
    <td> fx_flare.fx( <b>EmittedEffectName=fx_flareEffect.fx</b> ) </td>
  </tr>
  <tr>
    <td>rotation pitch</td>
    <td><p>The pitch to apply to the library object emitted by the effect. This applies only to the Debris tab.</p>
    </td>
    <td> fx_object_test.fx( <b>Rotation Pitch=30.00, 30.00</b> ) </td>
  </tr>
  <tr>
    <td>rotation bank</td>
    <td>The bank to apply to the library object emitted by the effect. </td>
    <td> fx_object_test.fx( <b>Rotation Bank=0.00, 0.00</b> ) </td>
  </tr>
  <tr>
    <td>rotation heading</td>
    <td>The heading to apply to the library object emitted by the effect. </td>
    <td> fx_object_test.fx( <b>Rotation Heading=0.00, 0.00</b> ) </td>
  </tr>
  
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><h6>[ParticleAttributes.0]<a name="ParticleAttributes" id="ParticleAttributes"></a></h6></td>
    <td>The [ParticleAttributes] section defines the special attributes of a particle, such as color and texture.</td>
    <td>&nbsp;</td>
  </tr>
  
  <tr>
    <td>Blend Mode=1/2/3</td>
    <td><p>Blend mode specifies which blending mode is used to display the texture, which should be one of:</p>
      <p>0: No Alpha</p>
      <p>1: Alpha blending</p>
      <p>2: Additive blending</p>
      <p>3: M ultiply blending</p>
      <p>&nbsp;</p>
      <p>Alpha textures are full color and include a transparency mask (alpha  channel).</p>
      <p><br />
    Additive textures, on the other hand, have no alpha channel. The  transparency of an additive texture is based off of color values within the  texture. Color values in the texture are added to the background color. If an  additive texture is triggered against pure white, nothing happens because the  values are already maximized at 255, 255, 255, which represents the RGB value  for white. Any part of the texture that you want to be invisible must be pure  black (or else you&rsquo;ll just get expanding squares). Additive textures are best  used when the effect is simulating something bright&mdash;like fire or a light.</p></td>
    <td> fx_animaldust.fx( <b>Blend Mode=1</b> )<br />
      fx_beacon.fx( <b>Blend Mode=0</b> )<br />
      fx_beaconb.fx( <b>Blend Mode=2</b> )<br />
      fx_dirtcrash.fx( <b>Blend Mode=3</b> ) </td>
  </tr>
  <tr>
    <td>Texture=texturename.bmp </td>
    <td>The name of the texture to reference in your textures folder.</td>
    <td> fx_animaldust.fx( <b>Texture=fx_1.bmp</b> )<br />
      fx_Aurora1.fx( <b>Texture=fx_aurora.bmp</b> )<br />
      fx_Barnstorm.fx( <b>Texture=fx_barnstorm.bmp</b> )<br />
      fx_beacon.fx( <b>Texture=fx_2.bmp</b> )<br />
      fx_BelgFount1.fx( <b>Texture=fx_5.bmp</b> )<br />
      fx_CampFire.fx( <b>Texture=fx_Firesheet01.bmp</b> )<br />
      fx_cloudlightning01.fx( <b>Texture=fx_flash.bmp</b> )<br />
      fx_cloudlightning02.fx( <b>Texture=fx_lightning1.bmp</b> )<br />
      fx_contrail_l.fx( <b>Texture=fx_smoke.bmp</b> )<br />
      fx_DDfire.fx( <b>Texture=fx_fireAdd.bmp</b> ) </td>
  </tr>
  <tr>
    <td>Bounce=0.00</td>
    <td>The reaction of a particle when it collides with the ground. The larger the number, the greater the bounce. If the  parameter is set to 0, no reaction occurs. If it is set to 1.0 then it will come off the ground at the same velocity that it hit it. Use a value less than 1.0 to simulate the loss of energy due to the impact.</td>
    <td> fx_animaldust.fx( <b>Bounce=0.00</b> )<br />
      fx_BilgePump.fx( <b>Bounce=0.20</b> )<br />
      fx_CampFire.fx( <b>Bounce=1.00</b> )<br />
      fx_WaterFall.fx( <b>Bounce=0.50</b> ) </td>
  </tr>
  <tr>
    <td>Color Start=000, 000, 000, 000</td>
    <td>The initial color of a particle. The first three numbers define the red, green, and blue (RGB) values and the fourth number specifies the amount of alpha transparency (R, G, B, [00-255]).</td>
    <td> fx_animaldust.fx( <b>Color Start=166, 148, 130, 100</b> )<br />
      fx_Aurora1.fx( <b>Color Start=154, 176, 79, 55</b> )<br />
      fx_Aurora2.fx( <b>Color Start=154, 176, 79, 65</b> )<br />
      fx_Aurora3.fx( <b>Color Start=154, 176, 79, 155</b> )<br />
      fx_Barnstorm.fx( <b>Color Start=255, 255, 255, 255</b> )<br />
      fx_beacon.fx( <b>Color Start=30, 8, 0, 0</b> )<br />
      fx_beaconb.fx( <b>Color Start=120, 20, 0, 180</b> )<br />
      fx_beacong.fx( <b>Color Start=0, 200, 50, 180</b> )<br />
      fx_beaconh.fx( <b>Color Start=150, 70, 0, 255</b> )<br />
      fx_beaconwhi.fx( <b>Color Start=200, 200, 255, 180</b> ) </td>
  </tr>
  
  <tr>
    <td>Color End=000, 000, 000, 000</td>
    <td>The final color of a particle. The first three numbers specify the red, green, and blue (RGB) values, and the fourth number specifies the amount of alpha transparency (R, G, B, [00-255]).</td>
    <td> fx_animaldust.fx( <b>Color End=153, 140, 125, 255</b> )<br />
      fx_Aurora1.fx( <b>Color End=82, 194, 150, 255</b> )<br />
      fx_Aurora2.fx( <b>Color End=202, 181, 62, 255</b> )<br />
      fx_Aurora3.fx( <b>Color End=196, 132, 68, 255</b> )<br />
      fx_Barnstorm.fx( <b>Color End=255, 255, 255, 0</b> )<br />
      fx_beacon.fx( <b>Color End=60, 8, 0, 0</b> )<br />
      fx_beaconb.fx( <b>Color End=120, 20, 0, 0</b> )<br />
      fx_beacong.fx( <b>Color End=0, 200, 50, 0</b> )<br />
      fx_beaconh.fx( <b>Color End=150, 70, 0, 0</b> )<br />
      fx_beaconwhi.fx( <b>Color End=200, 200, 255, 0</b> ) </td>
  </tr>
  
  <tr>
    <td>Jitter Distance=0.00</td>
    <td>The distance that the particles jitter. If you don't want the particles to jitter, set the parameter to 0.</td>
    <td> fx_animaldust.fx( <b>Jitter Distance=0.02</b> )<br />
      fx_Aurora1.fx( <b>Jitter Distance=0.00</b> )<br />
      fx_Barnstorm.fx( <b>Jitter Distance=0.05</b> )<br />
      fx_BelgFount1.fx( <b>Jitter Distance=0.03</b> )<br />
      fx_contrail_l.fx( <b>Jitter Distance=0.20</b> )<br />
      fx_contrail_s.fx( <b>Jitter Distance=1.00</b> )<br />
      fx_DDfire.fx( <b>Jitter Distance=0.10</b> )<br />
      fx_dustcloud_m.fx( <b>Jitter Distance=0.01</b> )<br />
      fx_firework13.fx( <b>Jitter Distance=0.50</b> ) </td>
  </tr>
  <tr>
    <td>Jitter Time=0.00</td>
    <td>The length of the delay before particles start to jitter. Measured in seconds.</td>
    <td> fx_animaldust.fx( <b>Jitter Time=1.00</b> )<br />
      fx_Aurora1.fx( <b>Jitter Time=0.00</b> )<br />
      fx_Barnstorm.fx( <b>Jitter Time=0.25</b> )<br />
      fx_BelgFount1.fx( <b>Jitter Time=3.00</b> )<br />
      fx_BldStm_lrg.fx( <b>Jitter Time=0.30</b> )<br />
      fx_contrail_s.fx( <b>Jitter Time=5.00</b> )<br />
      fx_dustcloud_l.fx( <b>Jitter Time=2.00</b> )<br />
      fx_engFire.fx( <b>Jitter Time=11.00</b> )<br />
      fx_firework13.fx( <b>Jitter Time=0.50</b> )<br />
      fx_wtrspray_l.fx( <b>Jitter Time=0.20</b> ) </td>
  </tr>
  <tr>
    <td>FPS=0.00</td>
    <td>The frames per second at which the animation changes textures. For example, a value of 8 means that every eight of a second the animation will advance from one texture cell to the next.</td>
    <td> fx_Barnstorm.fx( <b>FPS=30.00</b> )<br />
      fx_CampFire.fx( <b>FPS=16.00</b> )<br />
      fx_DDfire.fx( <b>FPS=8.00</b> )<br />
      fx_ForestFireHuge.fx( <b>FPS=12.00</b> )<br />
      fx_lakewaves.fx( <b>FPS=6.00</b> ) </td>
  </tr>
  <tr>
    <td>TextureSize=256/512/1024</td>
    <td>The size of the texture (in pixels) that is used for animation. Textures must be square and their size must be a power of two, for example, 256, 512, or 1024. Larger sizes should be avoided because of the lack of support in graphics cards.</td>
    <td> fx_Barnstorm.fx( <b>TextureSize=256</b> )<br />
      fx_ForestFireHuge.fx( <b>TextureSize=512</b> ) </td>
  </tr>
  
  <tr>
    <td>CellSize=64</td>
    <td>The size of each frame of animation (in this case, 64 pixels by 64 pixels).</td>
    <td> fx_Barnstorm.fx( <b>CellSize=64</b> )<br />
      fx_ForestFireHuge.fx( <b>CellSize=128</b> ) </td>
  </tr>
  <tr>
    <td>CellStart=0</td>
    <td>The location of the first frame of animation on your texture. The code parses your texture from lower left to upper right (horizontally) stepping by CellSize. The value of 0 defines the absolute lower left cell of the texture.</td>
    <td> fx_Barnstorm.fx( <b>CellStart=0</b> )<br />
      fx_Ngastatic_sml.fx( <b>CellStart=1</b> ) </td>
  </tr>
  <tr>
    <td>CellEnd=7</td>
    <td>The location of the last frame of animation on your texture. For example, if you specify TextureSize=256 and CellSize=64, the texture is broken into 16 cells. In this case, a CellEnd value of 7 defines the cell that is halfway up the texture and all the way to the right. A CellEnd value of 15 defines the cell that is in the upper right.You could make a four-frame animation by setting TextureSize=256 and CellSize=128. In  <i>Flight Simulator</i> 2004  only the bottom half of a texture could be used for an animation. This no longer applies, the whole texture can be divided into cells.</td>
    <td> fx_Barnstorm.fx( <b>CellEnd=7</b> )<br />
      fx_CampFire.fx( <b>CellEnd=15</b> )<br />
      fx_GenevaFountain.fx( <b>CellEnd=4</b> )<br />
      fx_lakewaves.fx( <b>CellEnd=3</b> )<br />
      fx_TropLights.fx( <b>CellEnd=2</b> ) </td>
  </tr>
  <tr>
    <td>TempK=000.00</td>
    <td>The temperature of the particles, which defines how fast they rise or sink. To approximate room temperature, where particles neither rise nor sink, set TempK to 107 degrees. To make the particles rise, specify a temperature greater than 107; to make the particles sink, specify a temperature less than 107.</td>
    <td> fx_Barnstorm.fx( <b>TempK=100.00</b> )<br />
      fx_BilgePump.fx( <b>TempK=106.00</b> )<br />
      fx_BldStm_lrg.fx( <b>TempK=109.50</b> )<br />
      fx_blowHole.fx( <b>TempK=105.00</b> )<br />
      fx_CampFire.fx( <b>TempK=107.00</b> )<br />
      fx_DDfire.fx( <b>TempK=110.00</b> )<br />
      fx_dirtcrash.fx( <b>TempK=90.00</b> )<br />
      fx_dustcloud_l.fx( <b>TempK=108.00</b> )<br />
      fx_explosion.fx( <b>TempK=70.00</b> )<br />
      fx_explosionFire.fx( <b>TempK=120.00</b> ) </td>
  </tr>
  
  <tr>
    <td>TempRate=-0.00 </td>
    <td>The rate at which the particles cool or heat up. A negative value represents temperatures that are cooling. The faster particles cool, the sooner they fall back to the ground. A positive value represents temperatures that are rising. The faster particles heat up, the sooner they accelerate into the sky.</td>
    <td> fx_Barnstorm.fx( <b>TempRate=0.01</b> )<br />
      fx_BelgFount1.fx( <b>TempRate=-0.21</b> )<br />
      fx_BilgePump.fx( <b>TempRate=-1.00</b> )<br />
      fx_BldStm_lrg.fx( <b>TempRate=0.11</b> )<br />
      fx_blowHole.fx( <b>TempRate=0.00</b> )<br />
      fx_CampFire.fx( <b>TempRate=-0.02</b> )<br />
      fx_dirtcrash.fx( <b>TempRate=-0.10</b> )<br />
      fx_dustcloud_l.fx( <b>TempRate=-0.01</b> )<br />
      fx_engFire.fx( <b>TempRate=0.02</b> )<br />
      fx_explosionFire.fx( <b>TempRate=-0.20</b> ) </td>
  </tr>
  
  <tr>
    <td>uv1=0.00, 0.50</td>
    <td>The location of the lower-left corner of the texture on the texture page (X, Y) expressed as percentages. The lower-left corner of this texture starts at the left side of the page and 50 percent up its side.</td>
    <td> fx_animaldust.fx( <b>uv1=0.00, 0.50</b> )<br />
      fx_Aurora1.fx( <b>uv1=0.00, 0.00</b> )<br />
      fx_Barnstorm.fx( <b>uv1=0.50, 0.50</b> )<br />
      fx_BelgFount1.fx( <b>uv1=0.50, 0.75</b> )<br />
      fx_BelgFount2.fx( <b>uv1=0.50, 0.00</b> )<br />
      fx_cloudlightning01.fx( <b>uv1=0.75, 0.00</b> )<br />
      fx_cloudlightning02.fx( <b>uv1=0.25, 0.00</b> )<br />
      fx_dustcloud_l.fx( <b>uv1=0.25, 0.75</b> )<br />
      fx_firework1.fx( <b>uv1=0.75, 0.50</b> )<br />
      fx_FlourBombLand.fx( <b>uv1=0.25, 0.50</b> ) </td>
  </tr>
  
  <tr>
    <td>uv2=0.50, 1.00</td>
    <td>The location of the upper-right corner of the texture lies on the texture page (X, Y) expressed as percentages. The upper-right corner of this texture is 50 percent to the right and at the very top of the page. See the diagram below.</td>
    <td> fx_animaldust.fx( <b>uv2=0.50, 1.00</b> )<br />
      fx_Aurora1.fx( <b>uv2=1.00, 1.00</b> )<br />
      fx_beacon.fx( <b>uv2=0.00, 0.00</b> )<br />
      fx_beaconb.fx( <b>uv2=0.50, 0.50</b> )<br />
      fx_BelgFount1.fx( <b>uv2=0.75, 1.00</b> )<br />
      fx_BelgFount2.fx( <b>uv2=1.00, 0.50</b> )<br />
      fx_cloudlightning03.fx( <b>uv2=0.25, 1.00</b> )<br />
      fx_dirtspray_l.fx( <b>uv2=0.75, 0.75</b> )<br />
      fx_dustcloud_l.fx( <b>uv2=0.38, 0.88</b> )<br />
      fx_explosionFire.fx( <b>uv2=1.00, 0.25</b> ) </td>
  </tr>
  
  <tr>
    <td>X Scale Goal=0.00</td>
    <td>The maximum size in the X, Y, and Z directions that a particle scales to based on its scale rates in the X, Y, and Z directions, respectively.</td>
    <td> fx_animaldust.fx( <b>X Scale Goal=2.00</b> )<br />
      fx_Aurora1.fx( <b>X Scale Goal=0.00</b> )<br />
      fx_BelgFount1.fx( <b>X Scale Goal=65.50</b> )<br />
      fx_BilgePump.fx( <b>X Scale Goal=32.50</b> )<br />
      fx_BldStm_lrg.fx( <b>X Scale Goal=300.00</b> )<br />
      fx_blowHole.fx( <b>X Scale Goal=3.00</b> )<br />
      fx_CampFire.fx( <b>X Scale Goal=1.00</b> )<br />
      fx_cloudlightning01.fx( <b>X Scale Goal=200.00</b> )<br />
      fx_contrail_l.fx( <b>X Scale Goal=20.00</b> )<br />
      fx_DDfire.fx( <b>X Scale Goal=10.00</b> ) </td>
  </tr>
  <tr>
    <td>Y Scale Goal=0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Y Scale Goal=2.00</b> )<br />
      fx_Aurora1.fx( <b>Y Scale Goal=0.00</b> )<br />
      fx_BelgFount1.fx( <b>Y Scale Goal=65.50</b> )<br />
      fx_BilgePump.fx( <b>Y Scale Goal=32.50</b> )<br />
      fx_BldStm_lrg.fx( <b>Y Scale Goal=300.00</b> )<br />
      fx_blowHole.fx( <b>Y Scale Goal=3.00</b> )<br />
      fx_CampFire.fx( <b>Y Scale Goal=1.00</b> )<br />
      fx_cloudlightning01.fx( <b>Y Scale Goal=200.00</b> )<br />
      fx_contrail_l.fx( <b>Y Scale Goal=20.00</b> )<br />
      fx_DDfire.fx( <b>Y Scale Goal=10.00</b> ) </td>
  </tr>
  <tr>
    <td>Z Scale Goal=0.00</td>
    <td>&nbsp;</td>
    <td> fx_animaldust.fx( <b>Z Scale Goal=0.00</b> ) </td>
  </tr>
  <tr>
    <td>Extrude Length=0.00</td>
    <td>The length of each portion of an extruded effect.</td>
    <td> fx_animaldust.fx( <b>Extrude Length=0.00</b> )<br />
      fx_contrail_l.fx( <b>Extrude Length=500.00</b> )<br />
      fx_contrail_s.fx( <b>Extrude Length=50.00</b> )<br />
      fx_DolphinSpray.fx( <b>Extrude Length=2.00</b> )<br />
      fx_flareEffect.fx( <b>Extrude Length=20.00</b> )<br />
      fx_skidmark.fx( <b>Extrude Length=5.00</b> )<br />
      fx_trailingFlame.fx( <b>Extrude Length=10.00</b> )<br />
      fx_wake.fx( <b>Extrude Length=40.00</b> )<br />
      fx_wake_l.fx( <b>Extrude Length=60.00</b> )<br />
      fx_wake_m.fx( <b>Extrude Length=70.00</b> ) </td>
  </tr>
  <tr>
    <td>Extrude Pitch Max=0.00</td>
    <td>The pitch angle at which point the extrusion creates a new section. The smaller the number, the smoother the curves of your extrusions.</td>
    <td> fx_animaldust.fx( <b>Extrude Pitch Max=0.00</b> )<br />
      fx_contrail_l.fx( <b>Extrude Pitch Max=2.00</b> )<br />
      fx_DolphinSpray.fx( <b>Extrude Pitch Max=15.00</b> )<br />
      fx_skidmark.fx( <b>Extrude Pitch Max=10.00</b> )<br />
      fx_SnowSkiTrack.fx( <b>Extrude Pitch Max=5.00</b> )<br />
      fx_wake.fx( <b>Extrude Pitch Max=90.00</b> ) </td>
  </tr>
  <tr>
    <td>Extrude Heading Max=0.00</td>
    <td>The  heading angle at which point the extrusion creates a new section.</td>
    <td> fx_animaldust.fx( <b>Extrude Heading Max=0.00</b> )<br />
      fx_contrail_l.fx( <b>Extrude Heading Max=2.00</b> )<br />
      fx_DolphinSpray.fx( <b>Extrude Heading Max=15.00</b> )<br />
      fx_skidmark.fx( <b>Extrude Heading Max=10.00</b> )<br />
      fx_SnowSkiTrack.fx( <b>Extrude Heading Max=5.00</b> ) </td>
  </tr>
  <tr>
    <td>guid</td>
    <td>GUID of the library object to be emitted by the effect. Applies only to the Debris tab. Note that the GUID must be enclosed by curly brackets. </td>
    <td> fx_object_test.fx( <b>GUID={<i>guid</i>}</b> ) </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><h6>[sound]<a name="sound" id="sound"></a></h6></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>looping</td>
    <td>Set to TRUE to loop the audio file. The file will be played for the lifetime of the particle. </td>
    <td> fx_Barnstorm.fx( <b>Looping=FALSE</b> )<br />
      fx_BilgePump.fx( <b>Looping=TRUE</b> ) </td>
  </tr>
  <tr>
    <td>minattenuationdistance</td>
    <td>The distance from the source of the sound, that the sound will no longer be heard, in meters. </td>
    <td> fx_Barnstorm.fx( <b>MinAttenuationDistance=300</b> )<br />
      fx_BilgePump.fx( <b>MinAttenuationDistance=10.00</b> )<br />
      fx_explosion.fx( <b>MinAttenuationDistance=500.00</b> )<br />
      fx_explosionOiltank.fx( <b>MinAttenuationDistance=700.00</b> )<br />
      fx_explosionOiltankSmall.fx( <b>MinAttenuationDistance=600.00</b> )<br />
      fx_FireExhaust_JetTruck.fx( <b>MinAttenuationDistance=180.00</b> )<br />
      fx_FireJets_JetTruck.fx( <b>MinAttenuationDistance=300.00</b> )<br />
      fx_fire_OilRig.fx( <b>MinAttenuationDistance=200.00</b> )<br />
      fx_FlourBombLand.fx( <b>MinAttenuationDistance=50.00</b> )<br />
      fx_OilFireMedium.fx( <b>MinAttenuationDistance=100.00</b> ) </td>
  </tr>
  <tr>
    <td>filename</td>
    <td> The file should be placed in the <i>Microsoft Flight Simulator X/sound</i> folder. </td>
    <td> fx_Barnstorm.fx( <b>FileName=barn_fx</b> )<br />
      fx_BilgePump.fx( <b>FileName=BoatWaterLOOP.wav</b> )<br />
      fx_explosion.fx( <b>FileName=Exp_Gen02.wav</b> )<br />
      fx_explosionFire.fx( <b>FileName=Exp_Gen01.wav</b> )<br />
      fx_explosionOiltank.fx( <b>FileName=Exp_OilRig02.wav</b> )<br />
      fx_explosionOiltankHorizontal.fx( <b>FileName=Exp_OilRig03.wav</b> )<br />
      fx_explosionOiltankSmall.fx( <b>FileName=Exp_OilRig01.wav</b> )<br />
      fx_FireExhaust_JetTruck.fx( <b>FileName=JetTruckIdleMIX.wav</b> )<br />
      fx_FireJets_JetTruck.fx( <b>FileName=Rocket02.wav</b> )<br />
      fx_firework1.fx( <b>FileName=firework</b> ) </td>
  </tr>
</table>
<p>&nbsp;</p>
<h3>The Controller File Format <a name="TheControllerFileFormat" id="TheControllerFileFormat"></a></h3>
<p> <br />
  The Controller is a powerful  feature of <i>Flight Simulator</i> that lets  you create sequences of various effects that can be triggered from one place.  Essentially, a controller sets up a series of effects (or other controllers),  and then it either repeatedly cycles through the effects or randomly selects  and triggers some of them. Because controllers are effects themselves, you can  spawn controllers from within controllers (just like any other effect). You can  use this feature to create a great randomization effect or huge sequences of  events that last over long time periods.  The only limitation is how many particles you can render  onscreen before affecting the frame rate.</p>
<p>&nbsp;</p>
<p>There is no tool to create controller's, you will have to create them in a text editing tool, such as Microsoft Notepad or Microsoft Visual Studio. </p>
<p>&nbsp;</p>
<h4>Controller File Format</h4>
<p>The format of a controller file is:</p>
<p>[<a href="#LibraryEffect">Library Effect</a>]</p>
<p>[<a href="#Properties">Properties</a>]</p>
<p>[<a href="#controller">Controller</a>.0]</p>
<p>...</p>
<p>[Controller.n]  </p>
<p>&nbsp; </p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><h5>Effects file section or property </h5></td>
    <td><h5>Description</h5></td>
    <td><h5>Examples</h5></td>
  </tr>
  <tr>
    <td><h6>[Library Effect]</h6></td>
    <td>The parameters in the [<a href="#LibraryEffect">Library Effect</a>] section are the same as for a regular effects file.</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><h6>[Properties]</h6></td>
    <td>The parameters in the [<a href="#Properties">Properties</a>] section are the same as for a regular effects file.</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><h6>[controller<a name="controller" id="controller"></a>.0]</h6></td>
    <td>The controller number. You can spawn multiple controllers: [controller.1], [controller.2], and so on.</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Lifetime=0.00, 0.00</td>
    <td>The length of time that the controller exists and emits effects. A Lifetime parameter value of 0.00 creates a controller that has an infinite lifetime. If a controller has an infinite lifetime, the effects engine continues to step through the list of effects until the scenery engine shuts off the controller. A short lifetime can mean that the controller steps through the list of effects only once or twice.</td>
    <td> Cntrl_Barn.fx( <b>lifetime=0.0, 0.0</b> )<br />
      Cntrl_fireworks.fx( <b>lifetime=0.01, 0.01</b> )<br />
      Cntrl_ForestFireSingle.fx( <b>lifetime=1.00, 1.00</b> )<br />
      FW_show1.fx( <b>lifetime=0.00, 0.00</b> )<br />
      lakewavecontroller.fx( <b>lifetime=0,0</b> ) </td>
  </tr>
  <tr>
    <td>Type=0/1/2/3</td>
    <td><p>This parameter determines how the controller steps through the list of effects.There are four different types:</p>
      <p>&nbsp;</p>
      <p>Type=0 is the Standard controller. The controller steps through each effect in the list sequentially.</p>
      <p>&nbsp;</p>
      <p>Type=1 is the Random controller. This type works together with the Random count parameter described below. The controller takes the random count value that is generated and uses it to determine how many effects in the list to play. Each time through the list of effects, it selects a new random batch.</p>
      <p>&nbsp;</p>
      <p>Type=2 is the Line controller. This type was used to create the waves (using vector data as lines). The line controller uses the X, Y, and Z Offset described below.</p>
      <p>&nbsp;</p>
    <p>Type=3 is the Distance controller. This option works with the Distance parameter, which sets the distance at which this effect becomes visible or audible.</p></td>
    <td> Cntrl_Barn.fx( <b>type=3</b> )<br />
      Cntrl_bldstm.fx( <b>type=1</b> )<br />
      Cntrl_ForestFireSingle.fx( <b>type=0</b> )<br />
      lakewavecontroller.fx( <b>type=2</b> ) </td>
  </tr>
  <tr>
    <td>Delay=0.00, 0.00</td>
    <td>The time delay that occurs after the controller steps through all of the effects. (The effects are listed in the table below.) After the delay, the control steps through the effects again.</td>
    <td> Cntrl_Barn.fx( <b>delay=10.00, 10.00</b> )<br />
      Cntrl_bldstm.fx( <b>delay=1200.00, 1500.00</b> )<br />
      Cntrl_Deicing.fx( <b>delay=0.20, 0.20</b> )<br />
      Cntrl_fireworks.fx( <b>delay=0.00, 5.00</b> )<br />
      Cntrl_KilaueaEruption.fx( <b>delay=42.00, 43.00</b> )<br />
      Cntrl_KilaueaSteam.fx( <b>delay=45.00, 60.00</b> )<br />
      Cntrl_LV_fnt.fx( <b>delay=25.00, 25.00</b> )<br />
      Cntrl_LV_vol.fx( <b>delay=16.00, 17.00</b> )<br />
      Cntrl_OldFaithfull.fx( <b>delay=300.00, 400.00</b> )<br />
      FW_show1.fx( <b>delay=60.00, 60.00</b> ) </td>
  </tr>
  <tr>
    <td>X Offset=0.00, 0.00</td>
    <td>Used with the Line controller. The particles are generated this offset distance from the line in the X, Y, or Z direction.</td>
    <td> Cntrl_Barn.fx( <b>x offset=0.00, 0.00</b> )<br />
      lakewavecontroller.fx( <b>x offset=0,0</b> ) </td>
  </tr>
  <tr>
    <td>Y Offset=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> Cntrl_Barn.fx( <b>y offset=0.00, 0.00</b> )<br />
      lakewavecontroller.fx( <b>y offset=0,0</b> ) </td>
  </tr>
  <tr>
    <td>Z Offset=0.00, 0.00</td>
    <td>&nbsp;</td>
    <td> Cntrl_Barn.fx( <b>z offset=0.00, 0.00</b> )<br />
      lakewavecontroller.fx( <b>z offset=50,60</b> ) </td>
  </tr>
  <tr>
    <td>Frequency=0.00, 0.00</td>
    <td> Determines how many particles appear along each section of line. If your lines (vector data) are of fairly even length, you can very accurately fill in along the line.</td>
    <td> lakewavecontroller.fx( <b>Frequency=60,60</b> ) </td>
  </tr>
  <tr>
    <td>Random Count=0, 0</td>
    <td>Picks a random value between the min/max values (in whole numbers) and then randomly chooses that number of effects to run.  Use this parameter with the Random Controller (see Type above). </td>
    <td>Cntrl_bldstm.fx( <b>random count=1, 1</b> )<br />
Cntrl_ForestFireSingle.fx( <b>random count=0, 0</b> ) </td>
  </tr>
  <tr>
    <td>Distance=0</td>
    <td>Determines how close the user has to be before this effect is either visible or audible. You can use this parameter to create location specific sound effects. Use this parameter with the Distance Controller (see Type above).</td>
    <td>Cntrl_Barn.fx( <b>distance=15.00, 15.00</b> )<br />
    Cntrl_Deicing.fx( <b>distance=35.00, 35.00</b> ) </td>
  </tr>
  
  <tr>
    <td>effect.0=fx_launch, -10.00, 0.00, -10.00, 10.00, 0.00, 10.00, 0.00, 1.00</td>
    <td><p>The first effect in the list. The format is:</p>
    <p>effect.#=effect name, X min, Y min, Z min, X max, Y max, Z max, delay min, delay max</p></td>
    <td>Cntrl_Barn.fx( <b>effect.0=fx_Barnstorm, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00</b> )<br />
Cntrl_bldstm.fx( <b>effect.0=fx_dummy, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 300.00</b> )<br />
Cntrl_Deicing.fx( <b>effect.0=fx_deicing, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00</b> )<br />
Cntrl_fireworks.fx( <b>effect.0=fw_show1, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00</b> )<br />
Cntrl_ForestFireSingle.fx( <b>effect.0=fx_ForestFireHuge, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00</b> )<br />
Cntrl_KilaueaEruption.fx( <b>effect.0=fx_Kilauea1, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00</b> )<br />
Cntrl_KilaueaSteam.fx( <b>effect.0=fx_Kilsteam, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00</b> )<br />
Cntrl_LightningFire.fx( <b>effect.0=fx_lightningFire, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00</b> )<br />
Cntrl_LV_fnt.fx( <b>effect.0=fx_BelgFount2, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00</b> )<br />
Cntrl_LV_vol.fx( <b>effect.0=fx_MirVolc, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00</b> ) </td>
  </tr>
  
  <tr>
    <td>effect.#=effect name</td>
    <td>The effect number and what effect (located in the effects folder) is to be played. You can also trigger another controller from here.</td>
    <td>Cntrl_bldstm.fx( <b>effect.1=fx_dummy, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 300.00</b> )<br />
Cntrl_fireworks.fx( <b>effect.1=fw_show2, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 5.00</b> )<br />
Cntrl_ForestFireSingle.fx( <b>effect.1=fx_ForestFireSmoke, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00</b> )<br />
Cntrl_LightningFire.fx( <b>effect.1=fx_ForestFireMedium, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 1.00</b> )<br />
Cntrl_LV_fnt.fx( <b>effect.1=fx_BelgFount1, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00</b> )<br />
FW_show1.fx( <b>effect.1=fx_launch, -10.00, 0.00, -10.00, 10.00, 0.00, 10.00, 0.00, 1.00</b> )<br />
FW_show3.fx( <b>effect.1=fx_launch, -5.00, 0.00, -5.00, 5.00, 0.00, 5.00, 0.00, 1.00</b> ) </td>
  </tr>
  <tr>
    <td>X min</td>
    <td>The minimum offset value of the effect in the X direction. These are used to randomize (or specify exactly) the location of the effect when it is played.</td>
    <td>&nbsp;</td>
  </tr>
  
  <tr>
    <td>Y min</td>
    <td>The minimum offset value of the effect in the Y direction.</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Z min</td>
    <td>The minimum offset value of the effect in the Z direction.</td>
    <td>&nbsp;</td>
  </tr>
  
  <tr>
    <td>X max</td>
    <td>The maximum offset value of the effect in the X direction.</td>
    <td>&nbsp;</td>
  </tr>
  
  <tr>
    <td>Y max</td>
    <td>The maximum offset value of the effect in the Y direction.</td>
    <td>&nbsp;</td>
  </tr>
  
  <tr>
    <td>Z max</td>
    <td>The maximum offset value of the effect in the Z direction.</td>
    <td>&nbsp;</td>
  </tr>
  
  <tr>
    <td><p>Delay min</p>
    <p>Delay max</p></td>
    <td>The minimum and maximum delays, in seconds, between when the effect is called (when the controller steps through it) and when it actually gets played. The delays are helpful because the controller steps through the effects list quickly (almost instantaneously), so if you want the effects to proceed in a slower sequence, use delays to augment trigger times.</td>
    <td>&nbsp;</td>
  </tr>
</table>
<p>&nbsp;</p>
<h3>How to Place Effects in Flight Simulator<a name="HowtoPlaceEffectsinFlightSimulator" id="HowtoPlaceEffectsinFlightSimulator"></a></h3>
<p>  Like all scenery placement in the Flight Simulator world,  effects placement is now handled via an XML file and BGLComp.&nbsp; BGLComp is a tool that will parse an XML  stream and extract relevant data such as Latitude and Longitude and create a  placement file (BGL file) that will place an object or effect in the Flight  Simulator world.</p>
<p>&nbsp;</p>
<p>As an example, we will place a small forest fire near Seattle.&nbsp; Before you can place the effect, make sure it  is copied to the correct folder in Flight Simulator.&nbsp; Copy the included fx_ForestFire.fx file from  the <i>Special Effects\samples</i> folder to your local Flight Simulator effects  folder (&hellip;<i>\Microsoft Flight Simulator X\\effects</i>).</p>
<p>&nbsp;</p>
<p><strong>Note:</strong> In <i>Flight Simulator</i> some special effects such as smoke and haze will be rendered behind clouds regardless of their actual relative location. This is a known issue.</p>
  <p>&nbsp;</p>

  <h4>Testing Effects<br />
      <a name="TestingEffects" id="TestingEffects"></a></h4>
  <p>To test an effect  place it at a location that is viewable at the very start of a flight. For  example, if the flight you select starts at Seattle-Tacoma (Sea-Tac) airport,  then the Lat/Long of the starting position of the plane is usually Lat N 47  25.89 Long W 122 18.48. If you place the effect you want to test just a little  offset from this, then you can quickly view it and then make adjustments  accordingly.</p>
  <p>&nbsp;</p>
  <p>A good place to view an effect is just off the runway to the north of the default aircraft location:</p>
  <ul>
    <li>Latitude = 47.432</li>
    <li>Longitude = -122.308</li>
  </ul>
  <h4><a name="Step1CreateanXMLFile">Step 1: Create an XML file for the effect</a></h4>
<p><br />
  The <i>effects\samples</i> folder contains one XML file required  for this tutorial: ForestFire.XML.  Placing  an effect requires BGLComp.exe and BGLComp.xsd.&nbsp;  These are located in the BGLComp SDK.&nbsp;    Copy BGLComp.exe and BGLComp.xsd into the <i>samples</i> folder next  to the ForestFire.XML. The BGLComp.exe application allows you to place an  effect in the <i>Flight Simulator X </i>world. BGLComp requires an XML file in  order to place an effect.&nbsp; Double click on ForestFire.XML file, its contents should look like this:</p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
    <tr>
      <td><p>&lt;?xml   version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
        
          </p>
	  <p>&nbsp;</p>
	  <p>&lt;FSData version=&quot;<strong>9.0</strong>&quot;   xmlns:xsi=&quot;<strong>http://www.w3.org/2001/XMLSchema-instance</strong>&quot; xsi:noNamespaceSchemaLocation=&quot;<strong>bglcomp.xsd</strong>&quot;&gt;</p>
	  <p>&nbsp;</p>
	  <p>&lt;SceneryObject lat=&quot;<strong>47.432</strong>&quot;   lon=&quot;<strong>-122.308</strong>&quot; alt=&quot;<strong>0</strong>&quot; pitch=&quot;<strong>0</strong>&quot; bank=&quot;<strong>0</strong>&quot; heading=&quot;<strong>0</strong>&quot; altitudeIsAgl=&quot;<strong>TRUE</strong>&quot;   imageComplexity=&quot;<strong>NORMAL</strong>&quot;&gt; </p>
	  <p>&nbsp; </p>
	  <p>&lt;Effect effectName=&quot;<strong>fx_ForestFire</strong>&quot; /&gt;</p>
	  <p>&nbsp; </p>
	  <p>&lt;/SceneryObject&gt;&nbsp;</p>
	  <p>&nbsp;</p>
	  <p>&lt;/FSData&gt;	    </p></td>
    </tr>
</table>
  <p>&nbsp;</p>
<p>The XML file is case sensitive.&nbsp; If you are editing the file  be  sure to follow the structure of the XML in the sample exactly. The only XML parameters that we will be dealing with are  those located within the SceneryObject tag and those within the Effect  tag.&nbsp; Here is what each of the parameters  means:</p>
<p>&nbsp;</p>
<h5>The SceneryObject section:</h5>
<ul type="disc">
  <li><strong>lat</strong>=&nbsp; The latitude where you want to place the       effect.&nbsp; This can be in decimal       degrees (as it is above) or degrees minutes seconds (N47 25.92).</li>
  <li><strong>lon</strong>=&nbsp; The longitude where you want to place       the effect.&nbsp; This can be in decimal       degrees (as it is above) or degrees minutes seconds (W122 18.50).</li>
  <li><strong>alt</strong>=&nbsp; The altitude at which you want the       effect to spawn (in meters).</li>
  <li><strong>pitch</strong>= The pitch of the effect (in       degrees).</li>
  <li><strong>bank</strong>= The bank of the effect (in       degrees).</li>
  <li><strong>heading</strong>= The heading of the effect       (in degrees).</li>
</ul>
<p><strong>&nbsp;</strong></p>
<p><strong>Notes</strong><br />
  The value of the <strong>Pitch</strong> field is expressed  in degrees, from 0-360. Use this field with effects that have a directional  alignment along the x-axis.</p>
<p>&nbsp;</p>
<p><img src="Images/Pitch.jpg" /></p>
<p>&nbsp;</p>
<p>The value of the <strong>Bank</strong> field is expressed  in degrees, from 0-360. Use this field with effects that have a directional  alignment along the z-axis.</p>
<p>&nbsp;</p>
<p><img src="Images/Bank.jpg" /></p>
<p>&nbsp;</p>
<p>The value of the <strong>Heading</strong> field is  expressed in degrees, from 0-360, with 0 degrees being true north. Use this  field with effects that have a directional alignment along the y-axis.</p>
<p>&nbsp;</p>
<p><img src="Images/Heading.jpg" /></p>
<p>&nbsp;</p>
<p><strong>altitudeIsAgl</strong> =  Whether the altitude is represented in AGL (actual ground level) or MSL (median  sea level).&nbsp; &ldquo;true&rdquo; is AGL. &ldquo;false&rdquo; is  MSL.&nbsp; If you want the object to snap to  the ground, make &ldquo;Alt=0&rdquo; and &ldquo;Altitude is AGL=true&rdquo;. Almost all scenery effects  will use AGL.&nbsp; </p>
<p>&nbsp;</p>
<p><strong>imageComplexity=</strong> The minimum scenery complexity in the display settings for this object to show  up.&nbsp; They are: &ldquo;Very Sparse&rdquo;, &ldquo;Sparse&rdquo;,  &ldquo;Normal&rdquo;, &ldquo;Dense&rdquo;, &ldquo;Very Dense&rdquo; and &ldquo;Extremely Dense&rdquo;.</p>
<p>&nbsp;</p>
<h5>The Effect section:</h5>
<p>&nbsp;</p>
<p><strong>effectName</strong>=&nbsp; The name of the effect to be placed at this  location.&nbsp; (This is the full effect name  minus the .fx suffix).</p>
<p>&nbsp;</p>
<p><strong>effectParams</strong>=&nbsp; The parameters of the effect.&nbsp; For example, the following effect will appear at midnight on January 1st  every year and exist for 20 minutes:</p>
<p>&lt;Effect  effectName=&quot;fx_ForestFire&quot;  effectParams=&quot;MOY=01,01;DOM=01,01;HOD=00,00;MOH=00,20;&quot;/&gt;</p>
<p>&nbsp;</p>
<p>The following parameters can be specified in the Effect section of the XML file:</p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><h5>Parameter</h5></td>
    <td><h5>Description</h5></td>
  </tr>
  <tr>
    <td>RANDOM=random_range,random_threshold;</td>
    <td><p>Specifies that the effect occurs randomly. A random number is generated between 0 and random_range; if the number generated is less than random_threshold, the effect is not created.</p>
        <p>For example:</p>
      <p>RANDOM=10,9  (10% chance of seeing the effect)</p>
      <p>RANDOM=10,6  (40% chance of seeing the effect)</p></td>
  </tr>
  <tr>
    <td>YEAR=year_begin,year_end;</td>
    <td><p>Specifies that the effect occurs only if the simulation time is within the year range, inclusively. To have an effect play for the year 1989, the parameter would be written as:</p>
        <p>YEAR=1989,1989</p></td>
  </tr>
  <tr>
    <td>MOY=moy_begin,moy_end;</td>
    <td><p>Specifies the months of the year (MOY), days of the month (DOM), hours of the day (HOD), minutes of the hour (MOH), and seconds of the minute (SOM) for which the effect occurs. All ranges are inclusive. Any combination of these ranges may be used; the more that are used, the fewer valid date/times the effect occurs. All times are in the local time-zone.</p>
        <p>MOY range: 1,12;Where &quot;1&quot;= January, and &quot;12&quot;= December</p></td>
  </tr>
  <tr>
    <td>DOM=dom_begin,dom_end;</td>
    <td>DOM range: 1,31;Where &quot;1&quot;= first day of the month, and &quot;31&quot;= last possible day of the month</td>
  </tr>
  <tr>
    <td>HOD=hod_begin,hod_end;</td>
    <td>HOD range: 0,23;Where &quot;0&quot;= would be midnight, and &ldquo;23&rdquo; is 11pm.</td>
  </tr>
  <tr>
    <td>MOH=moh_begin,moh_end;</td>
    <td>MOH range: 0,59;Where &quot;0&quot;= would be the start of the duration of 60 minutes</td>
  </tr>
  <tr>
    <td>SOM=som_begin,som_end;</td>
    <td>SOM range: 0,59;Where &quot;0&quot;= would be the start of the duration of 60 seconds</td>
  </tr>
  <tr>
    <td><p>DAWN=1|0;</p>
        <p>DAY=1|0;</p>
      <p>DUSK=1|0;</p>
      <p>NIGHT=1|0;</p></td>
    <td>Specifies that the effect should only occur during certain periods of the day. If the value is 1, the effect will occur. If the value is 0, it will not. If none of these parameters are specified, the effect will occur the entire day.</td>
  </tr>
  <tr>
    <td>DURATION=seconds;</td>
    <td>Specifies, in seconds, the duration of the effect. This parameter may be a non-integer; i.e. 2.5.</td>
  </tr>
</table>
<p>&nbsp;</p>
<h5>Notes: Parameter Precedence</h5>
<ul>
  <li>&quot;RANDOM&quot; takes highest precedence, then periods of  the day (for example, &quot;DAWN&quot;)., and then times of the day (for  example, &quot;HOD&rdquo;).</li>
  <li>&quot;RANDOM&quot; is determined when the scenery is first  loaded. If the random check fails, the effect will not occur at all until the  scenery is completely reloaded (at which point it may fail the random check  again).</li>
  <li>It is possible to set up an effect's parameters such that  the effect never occurs. If any of the &quot;DAWN,&quot; &quot;DAY,&quot; etc.  parameters are specified, they take precedence over &quot;HOD,&quot;  &quot;MOH,&quot; and &quot;SOM.&quot; Therefore if you set &quot;NIGHT=0;&quot;  and &quot;HOD=22;&quot;, the effect will not show at 10:00PM because it should  not appear at night.</li>
</ul>
<h5>Mutliple Effects</h5>
<p>&nbsp; </p>
<p>You can add many different effects to one XML file.&nbsp; Just create multiple SceneryObject tags, for example (creating two forest fires): </p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><p>&lt;?xml  version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;</p>
      <p><br />
  &lt;FSData  version=&quot;9.0&quot; xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'  xsi:noNamespaceSchemaLocation=&quot;bglcomp.xsd&quot;&gt;</p>
      <p><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SceneryObject lat=&quot;47.432&quot;  lon=&quot;-122.308&quot; alt=&quot;0&quot; pitch=&quot;0&quot;  bank=&quot;0&quot; heading=&quot;0&quot; altitudeIsAgl=&quot;TRUE&quot;  imageComplexity=&quot;NORMAL&quot;&gt;</p>
      <p><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Effect  effectName=&quot;fx_ForestFire&quot; /&gt;</p>
      <p><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SceneryObject&gt;</p>
      <p><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SceneryObject lat=&quot;47.505&quot;  lon=&quot;-122.308&quot; alt=&quot;0&quot; pitch=&quot;0&quot;  bank=&quot;0&quot; heading=&quot;0&quot; altitudeIsAgl=&quot;TRUE&quot;  imageComplexity=&quot;NORMAL&quot;&gt;</p>
      <p><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Effect  effectName=&quot;fx_ForestFire&quot; /&gt;</p>
      <p><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SceneryObject&gt;</p>
      <p><br />
  &lt;/FSData&gt;</p></td>
  </tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h4>Step 2: Create a BGL File for the Effect<a name="Step2CreateaBGLFile" id="Step2CreateaBGLFile"></a></h4>
<p><br />
  After you have created the .XML file, you must compile the  file into a format that <i>Flight Simulator</i> can use. To do this, you will run  ForestFire.XML through the BGLComp.exe to create a new file, ForestFire.bgl.</p>
<strong><br clear="all" />
</strong>
<h5>To compile the BGL </h5>
<ol>
  <li>Navigate       to the Effects_placement folder on your C:\ drive.</li>
  <li>Select       the ForestFire.XML file and drag it onto the bglcomp.exe.</li>
  <li>bglcomp.exe       will compile the .XML file into a new .BGL file called ForestFire.BGL.</li>
</ol>
<p>If you are having troubles  getting your XML to successfully create a BGL file, you might want to do it in  the MS-DOS Command window in order to see the errors generated.&nbsp; Do this by opening a MS-DOS Command prompt window  and navigating to the folder in which you have placed the ForestFire.XML and  the BGLComp.exe.&nbsp; Then simply type:&nbsp; &ldquo;<strong>bglcomp  ForestFire.XML</strong>&rdquo; at the command prompt.&nbsp;  The command-line BGLComp application will warn you if any of the tags in  the XML file are invalid.</p>
<p>&nbsp;</p>
<h4><a name="Step3MovetheBGLFile">Step 3: Move the BGL File into Flight Simulator</a></h4>
<p><br />
  Before you can see the effect, you must  move the compiled ForestFire.BGL file<strong> </strong>to the proper folder.</p>
<p><br />
  To move the BGL File into Flight Simulator:</p>
<ol>
  <li>Navigate to the folder<i> ...\Special Effects Kit\Samples</i>.</li>
  <li>Copy ForestFire.BGL.</li>
  <li>Paste ForestFire.BGL into the scenery area add-on  folder named ...<i>Microsoft Flight Simulator X\Addon  Scenery\scenery</i>.&nbsp; </li>
  <li>Copy the  fx_ForestFire.fx file   to the <i>Microsoft Flight Simulator X\effects</i>  folder.&nbsp;</li>
  <li>Fly from Sea-Tac airport (KSEA) to view the effect.</li>
</ol>
    <p>&nbsp;</p>
<div align="center">
  <p>&nbsp;</p>
  <p>&copy; 2006 Microsoft Corporation. All rights reserved. </p>
  <p align="center">~~@~~ </p>
</div>
</body>
</html>
