<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>http://www.fsdeveloper.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jimkeir</id>
	<title>FSDeveloper Wiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="http://www.fsdeveloper.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jimkeir"/>
	<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php/Special:Contributions/Jimkeir"/>
	<updated>2026-05-08T05:15:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Mission_Editors_(3rd_party)&amp;diff=10592</id>
		<title>Mission Editors (3rd party)</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Mission_Editors_(3rd_party)&amp;diff=10592"/>
		<updated>2018-09-24T08:55:10Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: /* List of Editors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:Ambox-Content-WIP}} &lt;br /&gt;
&lt;br /&gt;
{{Infobox-Applicable-FSVersion&lt;br /&gt;
| FSXI = false&lt;br /&gt;
| FSXA = true&lt;br /&gt;
| FSX = true&lt;br /&gt;
| FS2004 = false&lt;br /&gt;
| FS2002 = false&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Mission Editors available from 3rd party sources.&lt;br /&gt;
&lt;br /&gt;
== The Basics ==&lt;br /&gt;
Re-title as appropriate.&lt;br /&gt;
&lt;br /&gt;
=== What ===&lt;br /&gt;
Do what text blurb.&lt;br /&gt;
&lt;br /&gt;
=== Why ===&lt;br /&gt;
Do Why text blurb.&lt;br /&gt;
&lt;br /&gt;
=== How ===&lt;br /&gt;
Do How text blurb.&lt;br /&gt;
&lt;br /&gt;
=== Where ===&lt;br /&gt;
Do Where text blurb.&lt;br /&gt;
&lt;br /&gt;
=== Do&#039;s/Don&#039;ts ===&lt;br /&gt;
Do&#039;s/Don&#039;ts text blurb.&lt;br /&gt;
&lt;br /&gt;
== Formats ==&lt;br /&gt;
List of acceptable file formats.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Filesize or dimensions&lt;br /&gt;
&lt;br /&gt;
== List of Editors ==&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;background:#f2f2f2&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|--&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Tool&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Rating&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Availability&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;URL&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| FSX Mission Editor 2&lt;br /&gt;
| Graphically based, highly flexible, with error checking.&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| Freeware &#039;&#039;&#039;¹&#039;&#039;&#039;&lt;br /&gt;
| [http://www.fsmissioneditor.com/product/fsx-mission-editor/ Try before you buy (8Mb)]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | FSX Mission Editor 2&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | As above, plus - Debugger, MSI creation.&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Payware &#039;&#039;&#039;²&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | [http://www.fsmissioneditor.com/product/fsx-mission-editor/ Try before you buy (8Mb)]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
|-&lt;br /&gt;
| Tool Name&lt;br /&gt;
| Descriptive blurb&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| Freeware&lt;br /&gt;
| [http://www.yoururl.com Download Page (SizeMb)]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Tool Name&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Descriptive blurb&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Payware&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | [http://www.yoururl.com Download Page (SizeMb)]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;¹&#039;&#039;&#039; Try before you buy - Restricted feature-set.&lt;br /&gt;
* &#039;&#039;&#039;²&#039;&#039;&#039; Try before you buy - Un-restricted feature-set.&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
&lt;br /&gt;
=== Internal ===&lt;br /&gt;
[[Link]] - Description&lt;br /&gt;
&lt;br /&gt;
[[Link]] - Description&lt;br /&gt;
&lt;br /&gt;
[[Link]] - Description&lt;br /&gt;
&lt;br /&gt;
=== External ===&lt;br /&gt;
{{:Transclusion-Missions-Links-External-Common}}&lt;br /&gt;
&lt;br /&gt;
* [http://www.yoururl.com Site page title] - Description&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&#039;Reference&#039; documents specifically related.&lt;br /&gt;
&lt;br /&gt;
[[Link]] - Description&lt;br /&gt;
&lt;br /&gt;
[[Link]] - Description&lt;br /&gt;
&lt;br /&gt;
[[Link]] - Description&lt;br /&gt;
&lt;br /&gt;
[[Category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Rewards&amp;diff=4592</id>
		<title>Rewards</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Rewards&amp;diff=4592"/>
		<updated>2008-02-25T15:27:37Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: /* GUID */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pilots earn Rewards for completing various missions, and reaching specific accomplishments throughout the game, (in &#039;Free Flight&#039;).&lt;br /&gt;
&lt;br /&gt;
Some of these rewards exist as hidden Easter Eggs to be discovered by pilots. Some missions have multiple and hidden rewards, receipt being dependent on performing additional actions. &lt;br /&gt;
&lt;br /&gt;
Achieved rewards are viewable in the user&#039;s pilot records.&lt;br /&gt;
== Available In ==&lt;br /&gt;
=== Free Flight ===&lt;br /&gt;
FSX comes with some rewards which you&#039;ve probably seen, for things like your first landing and first ten landings. These rewards are obviously not granted explicitly by a mission action, so how do they work?&lt;br /&gt;
&lt;br /&gt;
Each &#039;free flight&#039; reward needs to have an additional section added to it&#039;s definition, the &#039;Criteria&#039;. These are detailed in the SDK and cover things like the number of landings, types of aircraft flown and airports landed at. You can combine these in any way you like to come up with your specific criteria. When the sim detects that each of the requirements has been met, your reward is granted.&lt;br /&gt;
&lt;br /&gt;
=== Missions ===&lt;br /&gt;
In a mission, a reward can be granted explicitly using a [[Function_Reference#Grant_Reward_Action|GrantRewardAction]]. This gives you fine control over exactly what requirements the reward has. For mission-based rewards you shouldn&#039;t define Criteria because FSX will pick that up and possibly grant the reward outside the mission.&lt;br /&gt;
&lt;br /&gt;
== Creation ==&lt;br /&gt;
Like the other mission elements, Rewards are created as an XML file. Unlike the others, they must be [[Compiling|compiled]] before they can be used. &lt;br /&gt;
&lt;br /&gt;
=== Example XML ===&lt;br /&gt;
The XML file looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FSData version=&amp;quot;9.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Reward    rewardId = &amp;quot;{00000000-0000-0000-0000-000000000000}&amp;quot;&lt;br /&gt;
                 name = &amp;quot;Demo Reward&amp;quot;&lt;br /&gt;
          description = &amp;quot;Postcard for doing something right&amp;quot;&lt;br /&gt;
                 type = &amp;quot;POSTCARD&amp;quot;&lt;br /&gt;
               bitmap = &amp;quot;Images\small-1.jpg&amp;quot; &lt;br /&gt;
   rewardDetailBitmap = &amp;quot;Images\big-1.jpg&amp;quot;&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
   &amp;lt;Criteria landings=&amp;quot;3&amp;quot; differentAirports=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Reward&amp;gt;&lt;br /&gt;
&amp;lt;/FSData&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As with all other XML, it is very sensitive and removing any symbols, or changing the case of the keywords, will break it. You should be able to see which bits have to be changed though.&lt;br /&gt;
&lt;br /&gt;
=== GUID ===&lt;br /&gt;
The &amp;lt;code&amp;gt;rewardId&amp;lt;/code&amp;gt; is a GUID (unique identifier) which you will need to generate using GUIDGen.exe or at http://www.guidgen.com . &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are free text.&lt;br /&gt;
&lt;br /&gt;
=== Type ===&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; element must be one of this list:&lt;br /&gt;
* TROPHY&lt;br /&gt;
* BADGE&lt;br /&gt;
* CERTIFICATE&lt;br /&gt;
* MEDAL&lt;br /&gt;
* POSTCARD&lt;br /&gt;
* SPECIAL_ITEM&lt;br /&gt;
&lt;br /&gt;
=== Bitmaps ===&lt;br /&gt;
Finally, the two &amp;lt;code&amp;gt;bitmap&amp;lt;/code&amp;gt; elements must point to images, either JPG or BMP, which show small and detailed icons for your new reward. The &amp;lt;code&amp;gt;bitmap&amp;lt;/code&amp;gt; image is the small icon, at 100x80 pixels; the &amp;lt;code&amp;gt;rewardDetailBitmap&amp;lt;/code&amp;gt; image is larger at 300x370, and is shown as part of the more detailed information.&lt;br /&gt;
&lt;br /&gt;
=== Criteria ===&lt;br /&gt;
There are a few different criteria you can set. Filtering by the number of hours the player has flown in a particular aircraft type is done with a &amp;lt;code&amp;gt;RewardHours&amp;lt;/code&amp;gt; element and can be one of the following:&lt;br /&gt;
* ANY&lt;br /&gt;
* DAY&lt;br /&gt;
* NIGHT&lt;br /&gt;
* VFR&lt;br /&gt;
* IFR&lt;br /&gt;
* SAILPLANE&lt;br /&gt;
* LANDPLANE&lt;br /&gt;
* SEAPLANE&lt;br /&gt;
* ROTORCRAFT&lt;br /&gt;
* MULTI_ENGINE&lt;br /&gt;
&lt;br /&gt;
For example, to grant a reward after the player has flown five hours at night:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RewardHours hoursType=&amp;quot;NIGHT&amp;quot; hours=&amp;quot;5.0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filtering by the airports the player has been to is done using a &amp;lt;code&amp;gt;RewardAirport&amp;lt;/code&amp;gt; element. You need to specify the four-letter airport code rather than the name.&lt;br /&gt;
&lt;br /&gt;
This would allow FSX to grant the reward after the player has visited Heathrow:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RewardAirport ident=&amp;quot;EGLL&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, you can make a reward dependent on the player having already achieved another reward.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;DependantRewardId rewardId=&amp;quot;{a guid}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An entire Criteria section may look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;Criteria landings=&amp;quot;3&amp;quot; differentAirports=&amp;quot;2&amp;quot;&lt;br /&gt;
    &amp;lt;RewardHours hoursType=&amp;quot;NIGHT&amp;quot; hours=&amp;quot;5.0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;RewardAirport ident=&amp;quot;EGLL&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;DependantRewardId rewardId=&amp;quot;{a guid}&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... which would mean that FSX would automatically grant this reward after the player has been to Heathrow, has flown for five hours at night, has already been granted another reward with a specific GUID and has made at least three landings at two different airports.&lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to specify all the types of criteria, only the ones you want to use. If you&#039;re using the reward as part of a mission, don&#039;t leave the Criteria section there, even empty, or FSX will grant the rewards automatically because it will see it has having a criteria of &amp;quot;0 landings at 0 different airports&amp;quot; - which is achieved just by running the sim.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
Tools overview blurb.&lt;br /&gt;
&lt;br /&gt;
=== OS Tools ===&lt;br /&gt;
Available with the OS.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;background:#f2f2f2&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|--&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Tool&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Rating&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;OS&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Tool Name&lt;br /&gt;
| Descriptive blurb&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| XP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Tool Name&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Descriptive blurb&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Vista&lt;br /&gt;
|-&lt;br /&gt;
| Tool Name&lt;br /&gt;
| Descriptive blurb&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| XP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Tool Name&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Descriptive blurb&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Vista&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3rd Party Tools ===&lt;br /&gt;
From 3rd party sources.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;background:#f2f2f2&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|--&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Tool&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Rating&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Availability&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;URL&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Tool Name&lt;br /&gt;
| Descriptive blurb&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| Payware&lt;br /&gt;
| [http://www.yoururl.com Download Page (SizeMb)]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Tool Name&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Descriptive blurb&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Freeware&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | [http://www.yoururl.com Download Page (SizeMb)]&lt;br /&gt;
|-&lt;br /&gt;
| Tool Name&lt;br /&gt;
| Descriptive blurb&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| Payware&lt;br /&gt;
| [http://www.yoururl.com Download (SizeMb)]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Tool Name&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Descriptive blurb&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Freeware&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | [http://www.yoururl.com Download Page (SizeMb)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
&lt;br /&gt;
=== Internal ===&lt;br /&gt;
[[Compiling#Running_the_Reward_Compiler|Compiling Rewards]] - Compilation of a reward xml file.&lt;br /&gt;
&lt;br /&gt;
=== External ===&lt;br /&gt;
{{:Transclusion-Missions-Links-External-Common}}&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Rewards&amp;diff=4591</id>
		<title>Rewards</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Rewards&amp;diff=4591"/>
		<updated>2008-02-25T15:26:41Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: /* Example XML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pilots earn Rewards for completing various missions, and reaching specific accomplishments throughout the game, (in &#039;Free Flight&#039;).&lt;br /&gt;
&lt;br /&gt;
Some of these rewards exist as hidden Easter Eggs to be discovered by pilots. Some missions have multiple and hidden rewards, receipt being dependent on performing additional actions. &lt;br /&gt;
&lt;br /&gt;
Achieved rewards are viewable in the user&#039;s pilot records.&lt;br /&gt;
== Available In ==&lt;br /&gt;
=== Free Flight ===&lt;br /&gt;
FSX comes with some rewards which you&#039;ve probably seen, for things like your first landing and first ten landings. These rewards are obviously not granted explicitly by a mission action, so how do they work?&lt;br /&gt;
&lt;br /&gt;
Each &#039;free flight&#039; reward needs to have an additional section added to it&#039;s definition, the &#039;Criteria&#039;. These are detailed in the SDK and cover things like the number of landings, types of aircraft flown and airports landed at. You can combine these in any way you like to come up with your specific criteria. When the sim detects that each of the requirements has been met, your reward is granted.&lt;br /&gt;
&lt;br /&gt;
=== Missions ===&lt;br /&gt;
In a mission, a reward can be granted explicitly using a [[Function_Reference#Grant_Reward_Action|GrantRewardAction]]. This gives you fine control over exactly what requirements the reward has. For mission-based rewards you shouldn&#039;t define Criteria because FSX will pick that up and possibly grant the reward outside the mission.&lt;br /&gt;
&lt;br /&gt;
== Creation ==&lt;br /&gt;
Like the other mission elements, Rewards are created as an XML file. Unlike the others, they must be [[Compiling|compiled]] before they can be used. &lt;br /&gt;
&lt;br /&gt;
=== Example XML ===&lt;br /&gt;
The XML file looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FSData version=&amp;quot;9.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Reward    rewardId = &amp;quot;{00000000-0000-0000-0000-000000000000}&amp;quot;&lt;br /&gt;
                 name = &amp;quot;Demo Reward&amp;quot;&lt;br /&gt;
          description = &amp;quot;Postcard for doing something right&amp;quot;&lt;br /&gt;
                 type = &amp;quot;POSTCARD&amp;quot;&lt;br /&gt;
               bitmap = &amp;quot;Images\small-1.jpg&amp;quot; &lt;br /&gt;
   rewardDetailBitmap = &amp;quot;Images\big-1.jpg&amp;quot;&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
   &amp;lt;Criteria landings=&amp;quot;3&amp;quot; differentAirports=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Reward&amp;gt;&lt;br /&gt;
&amp;lt;/FSData&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As with all other XML, it is very sensitive and removing any symbols, or changing the case of the keywords, will break it. You should be able to see which bits have to be changed though.&lt;br /&gt;
&lt;br /&gt;
=== GUID ===&lt;br /&gt;
The rewardID is a GUID (unique identifier) which you will need to generate using GUIDGen.exe or at http://www.guidgen.com . &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are free text. &lt;br /&gt;
&lt;br /&gt;
=== Type ===&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; element must be one of this list:&lt;br /&gt;
* TROPHY&lt;br /&gt;
* BADGE&lt;br /&gt;
* CERTIFICATE&lt;br /&gt;
* MEDAL&lt;br /&gt;
* POSTCARD&lt;br /&gt;
* SPECIAL_ITEM&lt;br /&gt;
&lt;br /&gt;
=== Bitmaps ===&lt;br /&gt;
Finally, the two &amp;lt;code&amp;gt;bitmap&amp;lt;/code&amp;gt; elements must point to images, either JPG or BMP, which show small and detailed icons for your new reward. The &amp;lt;code&amp;gt;bitmap&amp;lt;/code&amp;gt; image is the small icon, at 100x80 pixels; the &amp;lt;code&amp;gt;rewardDetailBitmap&amp;lt;/code&amp;gt; image is larger at 300x370, and is shown as part of the more detailed information.&lt;br /&gt;
&lt;br /&gt;
=== Criteria ===&lt;br /&gt;
There are a few different criteria you can set. Filtering by the number of hours the player has flown in a particular aircraft type is done with a &amp;lt;code&amp;gt;RewardHours&amp;lt;/code&amp;gt; element and can be one of the following:&lt;br /&gt;
* ANY&lt;br /&gt;
* DAY&lt;br /&gt;
* NIGHT&lt;br /&gt;
* VFR&lt;br /&gt;
* IFR&lt;br /&gt;
* SAILPLANE&lt;br /&gt;
* LANDPLANE&lt;br /&gt;
* SEAPLANE&lt;br /&gt;
* ROTORCRAFT&lt;br /&gt;
* MULTI_ENGINE&lt;br /&gt;
&lt;br /&gt;
For example, to grant a reward after the player has flown five hours at night:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RewardHours hoursType=&amp;quot;NIGHT&amp;quot; hours=&amp;quot;5.0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filtering by the airports the player has been to is done using a &amp;lt;code&amp;gt;RewardAirport&amp;lt;/code&amp;gt; element. You need to specify the four-letter airport code rather than the name.&lt;br /&gt;
&lt;br /&gt;
This would allow FSX to grant the reward after the player has visited Heathrow:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RewardAirport ident=&amp;quot;EGLL&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, you can make a reward dependent on the player having already achieved another reward.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;DependantRewardId rewardId=&amp;quot;{a guid}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An entire Criteria section may look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;Criteria landings=&amp;quot;3&amp;quot; differentAirports=&amp;quot;2&amp;quot;&lt;br /&gt;
    &amp;lt;RewardHours hoursType=&amp;quot;NIGHT&amp;quot; hours=&amp;quot;5.0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;RewardAirport ident=&amp;quot;EGLL&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;DependantRewardId rewardId=&amp;quot;{a guid}&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... which would mean that FSX would automatically grant this reward after the player has been to Heathrow, has flown for five hours at night, has already been granted another reward with a specific GUID and has made at least three landings at two different airports.&lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to specify all the types of criteria, only the ones you want to use. If you&#039;re using the reward as part of a mission, don&#039;t leave the Criteria section there, even empty, or FSX will grant the rewards automatically because it will see it has having a criteria of &amp;quot;0 landings at 0 different airports&amp;quot; - which is achieved just by running the sim.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
Tools overview blurb.&lt;br /&gt;
&lt;br /&gt;
=== OS Tools ===&lt;br /&gt;
Available with the OS.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;background:#f2f2f2&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|--&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Tool&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Rating&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;OS&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Tool Name&lt;br /&gt;
| Descriptive blurb&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| XP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Tool Name&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Descriptive blurb&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Vista&lt;br /&gt;
|-&lt;br /&gt;
| Tool Name&lt;br /&gt;
| Descriptive blurb&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| XP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Tool Name&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Descriptive blurb&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Vista&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3rd Party Tools ===&lt;br /&gt;
From 3rd party sources.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;background:#f2f2f2&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|--&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Tool&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Rating&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Availability&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;URL&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Tool Name&lt;br /&gt;
| Descriptive blurb&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| Payware&lt;br /&gt;
| [http://www.yoururl.com Download Page (SizeMb)]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Tool Name&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Descriptive blurb&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Freeware&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | [http://www.yoururl.com Download Page (SizeMb)]&lt;br /&gt;
|-&lt;br /&gt;
| Tool Name&lt;br /&gt;
| Descriptive blurb&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| Payware&lt;br /&gt;
| [http://www.yoururl.com Download (SizeMb)]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Tool Name&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Descriptive blurb&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Freeware&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | [http://www.yoururl.com Download Page (SizeMb)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
&lt;br /&gt;
=== Internal ===&lt;br /&gt;
[[Compiling#Running_the_Reward_Compiler|Compiling Rewards]] - Compilation of a reward xml file.&lt;br /&gt;
&lt;br /&gt;
=== External ===&lt;br /&gt;
{{:Transclusion-Missions-Links-External-Common}}&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Function_Reference&amp;diff=3417</id>
		<title>Missions - Function Reference</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Function_Reference&amp;diff=3417"/>
		<updated>2008-01-11T16:08:34Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Mission Object Reference ]]&lt;br /&gt;
&lt;br /&gt;
All of the objects that are available to use in a mission are described in the [[SDK#FSX|SDK]] documentation. Some notes, exceptions and gotchas are listed here.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Actions ]] =&lt;br /&gt;
Actions are what makes things happen in a mission. There are lots of different actions you can use. An Action only gets used when it is called from a [[#Triggers|Trigger]].&lt;br /&gt;
&lt;br /&gt;
== [[Activate Waypoints Action ]] ==&lt;br /&gt;
Both AI objects and &#039;Living World&#039; mobile scenery can have WaypointLists attached to them. If they do, then the model will move from one waypoint to the next. You can use this action to change the waypoints during the mission, to make these types of object react to the player&#039;s actions&lt;br /&gt;
&lt;br /&gt;
== [[Adjust Payload Action ]] ==&lt;br /&gt;
This allows you to change the player&#039;s payload at a certain point in their aircraft. The payload station number can be found in the corresponding &amp;lt;code&amp;gt;aircraft.cfg&amp;lt;/code&amp;gt; file for the player&#039;s aircraft, in the &amp;lt;code&amp;gt;[WEIGHT_AND_BALANCE]&amp;lt;/code&amp;gt; section.&lt;br /&gt;
&lt;br /&gt;
For example, try using a combination of [[#Random Action]]s, [[#Timer Trigger]]s and AdjustPayloadActions to simulate the effect of the entire New Zealand rugby team starting a brawl in the back or your KingAir 350 just before landing.&lt;br /&gt;
&lt;br /&gt;
The OPT never saves the ObjectReference field of an AdjustPayloadAction. While it&#039;s theoretically possible to add or remove payloads from AI, this means it&#039;s not really possible unless you hand-edit the XML.&lt;br /&gt;
&lt;br /&gt;
== [[Attach Droppable Payload Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attach Effect Action ]] ==&lt;br /&gt;
This attaches a visual effect, one of the ones provided in the Effects folder of FSX, to an AI or scenery object. However, it has some significant limitations.&lt;br /&gt;
&lt;br /&gt;
Only models which have AttachPoints built in can be used with an effect. Very few do. Furthermore, if that attachpoint was created with a particular effect in mind, it can never be used with any other effect. Put simply, you can attach effects to the GEN_SceneryEffect model, which is invisible and so can be placed alongside any static visible model. It is highly unlikely that you can attach an effect to the any of the default AI models. In SP1 only (i.e. not RTM, SP2 or Acceleration) you can attach effects to the player.&lt;br /&gt;
&lt;br /&gt;
== [[Change Object Type Action ]] ==&lt;br /&gt;
In a more complex mission you might want to make the player fly more than one kind of aircraft. Using this action, you can specify the new container title - found in the aircraft.cfg file - for the type of aircraft you want to change to.&lt;br /&gt;
&lt;br /&gt;
== [[Count Action ]] ==&lt;br /&gt;
This adds a value to a [[#Counter Trigger]]. By setting a negative value for &#039;&#039;Count&#039;&#039;, you can subtract.&lt;br /&gt;
&lt;br /&gt;
== [[Custom Action ]] ==&lt;br /&gt;
These are only useful when working with mission command extensions written using [[SimConnect]]. They pass the &#039;&#039;PayloadString&#039;&#039; value to the extension, which may be either an EXE or a DLL, so that it can perform some kind of action that the normal mission system doesn&#039;t support.&lt;br /&gt;
&lt;br /&gt;
== [[Dialog Action ]] ==&lt;br /&gt;
The main way for you to interact with the mission player, this will display some text on screen and optionally play a sound file. This would typically be a recorded version of the text message.&lt;br /&gt;
&lt;br /&gt;
These messages can be switched off in the simulator settings, so you can&#039;t assume that the sound file is enough. Alternatively, the player have the messages enabled but sound disabled, so you also can&#039;t assume that the text is enough. If they have both messages &#039;&#039;and&#039;&#039; sound disabled, that&#039;s their problem.&lt;br /&gt;
&lt;br /&gt;
The sound file is relative to the &amp;quot;Sound&amp;quot; subfolder of the mission folder.&lt;br /&gt;
&lt;br /&gt;
Do try to make your visible text and recorded speech match; mismatched subtitles get on my nerves :)&lt;br /&gt;
&lt;br /&gt;
== [[Failure Action ]] ==&lt;br /&gt;
Some missions will simulate a system failure and expect the player to deal with it appropriately. Using this action you can make one of the player&#039;s aircraft&#039;s systems fail (by setting HealthPercent to 0), degrade (HealthPercent &amp;lt; 100) or restore full function (HealthPercent = 100).&lt;br /&gt;
&lt;br /&gt;
== [[Goal Resolution Action ]] ==&lt;br /&gt;
These set the state of a [[#Goal Object]] to be one of Pending, Complete or Failed. Only goals which are activated count towards the final result of the mission though, so you can change the list of goals during the mission. When no active goals are pending, the mission finishes.&lt;br /&gt;
&lt;br /&gt;
== [[Grant Reward Action ]] ==&lt;br /&gt;
In addition to having the mission finish successfully, you may want to issue a [[Rewards|Reward]] to the player for doing something well, or for finding hidden content. Using this action along with a Reward you can add a reward to the player&#039;s flight record.&lt;br /&gt;
&lt;br /&gt;
== [[Object Activation Action ]] ==&lt;br /&gt;
Some types of objects, typically Triggers and Scenery, can be activated and deactivated. This is important for the flow of your mission; you should only have the appropriate triggers activated to prevent the player from taking shortcuts. Using this action you can activate and deactivate other objects.&lt;br /&gt;
&lt;br /&gt;
== [[One Shot Sound Action ]] ==&lt;br /&gt;
Very simply, this plays a recorded sound when it is called.&lt;br /&gt;
&lt;br /&gt;
== [[Play Animation Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Play List Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Point Of Interest Activation Action ]] ==&lt;br /&gt;
The mission compass is an easy way of showing the player where they are supposed to be next. When you want to add a new [[#Point Of Interest Mission Object|Point of Interest]] to the compass and select it as the current one, use this action.&lt;br /&gt;
&lt;br /&gt;
== [[Random Action ]] ==&lt;br /&gt;
This is almost two actions in one. You can set the percentage of the time that you want this action to do anything at all (&#039;&#039;ProbabilityPercent&#039;&#039;). Additionally, only one of the items in the &#039;&#039;Actions&#039;&#039; list is fired, again at random.&lt;br /&gt;
&lt;br /&gt;
This can be very useful for creating &#039;chatter&#039; for making transit sections of your mission a little more interesting. You can have a non-&#039;&#039;OneShot&#039;&#039; [[#Timer Trigger]], set maybe to 45 seconds, calling a RandomAction with &#039;&#039;ProbabilityPercent&#039;&#039; of 33 and half a dozen [[#Dialog Action]]s attached.&lt;br /&gt;
&lt;br /&gt;
== [[ResetTimer Action ]] ==&lt;br /&gt;
Mainly useful with repeating timers. If you want to check that the player has done something within a certain time, the [[#Timer Trigger]] is fine. However, if you want to use the same TimerTrigger again, the &#039;&#039;StartTime&#039;&#039; needs to be reset to 0. You can&#039;t use the [[#Timer Adjust Action]] because it has no &#039;set&#039; option.&lt;br /&gt;
&lt;br /&gt;
== [[Rumble Action ]] ==&lt;br /&gt;
This provides force-feedback in a mission, but only works with XBox rumble-controllers, and not other force-feedback joysticks.&lt;br /&gt;
&lt;br /&gt;
== [[Spawn Action ]] ==&lt;br /&gt;
This activates a spawnlist, creating any objects it contains.&lt;br /&gt;
&lt;br /&gt;
== [[Timer Adjust Action ]] ==&lt;br /&gt;
Allows you to add or remove (by using negative numbers) the time remaining before a [[#Timer Trigger]] fires.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[AI Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[AircraftAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[TakeoffAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[LandingAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[TaxiAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[GroundVehicleAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Waypoint List Object  ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Waypoint Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Area Definition Object ]] =&lt;br /&gt;
On some systems, small AreaDefinitions can be missed by the mission system. Normally this only affects slower PCs and faster-moving aircraft. Try to make the smallest dimensions of an AreaDefinition at least 20 meters to avoid problems on slower PCs.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Group Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Mission Objects]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Camera Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attached World Position Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attached World Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Picture In Picture View Controller Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Point Of Interest Mission Object]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Realism Overrides Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Ridge Lift Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Scenario Metadata Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Thermal Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Scenery Objects ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Mobile Scenery Objects ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Spawn List ]] =&lt;br /&gt;
This creates new nodes during a mission. You can use it to create visual models in addition to mission actions and triggers. In FSX Acceleration, commands created by a spawnlist can refer to any other object in the mission but in all other versions, including SP2, commands created by a spawnlist &#039;&#039;must&#039;&#039; only refer to other objects in the same spawnlist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Triggers ]] =&lt;br /&gt;
Triggers are used to check for key events during the mission. You might check that the player is above a certain altitude, or has landed at a key airport, or that a certain amount of time has elapsed.&lt;br /&gt;
&lt;br /&gt;
== [[Generic Trigger Properties ]] ==&lt;br /&gt;
All triggers can be marked as Active or Inactive using the &#039;&#039;Activated&#039;&#039; field. An inactive trigger does nothing. The usual way to make your mission storyline is to use the [[#Object Activation Action]] to enable new triggers once the player has achieved a key task.&lt;br /&gt;
&lt;br /&gt;
Triggers can also be marked as &#039;&#039;OneShot&#039;&#039;, which defaults to true. This means that the trigger fires once, and once only. Normally this is what you want to happen, but there are some exceptions.&lt;br /&gt;
&lt;br /&gt;
ProximityTriggers have two Action lists; &#039;&#039;OnEnterActions&#039;&#039; and &#039;&#039;OnExitActions&#039;&#039;. If it is a &#039;&#039;OneShot&#039;&#039; trigger, only one set of actions will ever be used because after the first set has fired, the trigger will be deactivated. If you want both sets of actions to be used, you have to mark the triggers as not being &#039;&#039;OneShot&#039;&#039; (that is, untick the box).&lt;br /&gt;
&lt;br /&gt;
Another common use for a non-&#039;&#039;OneShot&#039;&#039; trigger is a recurring timer, where you want something to happen, say, every two minutes.&lt;br /&gt;
&lt;br /&gt;
If you want to re-use a trigger after it has been fired, but still want it to disable itself after every time, you can use the [[#Object Activation Action]] to re-enable it.&lt;br /&gt;
&lt;br /&gt;
== [[Airport Landing Trigger ]] ==&lt;br /&gt;
Checks that the player, or an AI, has landed or touched down at a specific airport. The associated RunwayFilter object doesn&#039;t seem to care which end of the named runway you touch down on; that is, runways 4 and 22 are seen to be the same.&lt;br /&gt;
&lt;br /&gt;
== [[Area Landing Trigger ]] ==&lt;br /&gt;
Checks to see that the player, or an AI, has landed or touched down &#039;&#039;anywhere&#039;&#039;. This seems to have a lower priority than the [[#Airport Landing Trigger]], so it&#039;s common to use this to detect off-airport landings by simply not attaching any AreaRectangle.&lt;br /&gt;
&lt;br /&gt;
== [[Counter Trigger ]] ==&lt;br /&gt;
Simply counts up from 0 to whatever level you tell it to. Use this for things like failing the mission if the player ignores five warnings that they must do something.&lt;br /&gt;
&lt;br /&gt;
== [[Menu Prompt Trigger ]] ==&lt;br /&gt;
This asks the player to make a choice. It&#039;s usually used to give multiple ways of completing a mission by using the different menu items to call [[#Object Activation Action]]s which activate different sets of triggers and goals.&lt;br /&gt;
&lt;br /&gt;
== [[Parking Trigger ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Property Trigger ]] ==&lt;br /&gt;
One of the more useful triggers, this can check a set of predefined properties of the player or an AI for being higher, lower or equal to a constant value or another property. Properties can also be combined using And/Or/Not, but you need to hand-edit the mission XML to use these groupings.&lt;br /&gt;
&lt;br /&gt;
== [[Proximity Trigger ]] ==&lt;br /&gt;
A simple but powerful test, this checks that the player or an AI has entered or left a defined area.&lt;br /&gt;
&lt;br /&gt;
== [[Timer Trigger ]] ==&lt;br /&gt;
It&#039;s main purpose is to simply wait for a set time and then call an action. However, it can be used for two other things. By setting &#039;&#039;OnScreenTimer&#039;&#039; to True, you get a visible timer in the sim. This can be count-up or count-down, depending on the values of &#039;&#039;StartTime&#039;&#039; and &#039;&#039;StopTime&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Since this gives visual feedback that the mission system is working, this means it is also a very useful test. If you think that an error is preventing your mission from being loaded at all, create an active, on-screen TimerTrigger. If you get a visible timer, the mission is being run.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Goal Object ]] =&lt;br /&gt;
Each mission must have at least one Goal. When all active Goals are complete or failed, the mission ends. You can change which goals have to be achieved during the mission by using the [[#Object Activation Action]] to switch them on or off.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Reward Object ]] =&lt;br /&gt;
Rewards are used in addition to Goals. The player doesn&#039;t need to get all the rewards to finish the mission; in fact, they may not even know that rewards are available. They&#039;re just a way of saying &amp;quot;Hey, well done!&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Rewards are [[Rewards|created]] in a separate file to the mission, and must be [[Compiling|compiled]] before they can be used.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Disabled Traffic Airport Object ]] =&lt;br /&gt;
This tells the simulator that it should not create any AI traffic at a specific list of airports. You don&#039;t want an unplanned 747 bearing down on you when you&#039;re in the last few minutes of a two hour long mission, nursing a crippled Cessna back to earth at Heathrow. It can also affect some triggers which may be set up to fire for any aircraft.&lt;br /&gt;
&lt;br /&gt;
= Related content =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
http://www.fsinsider.com/developers/Pages/MissionBuildingTips.aspx&lt;br /&gt;
&lt;br /&gt;
[[category:FSX]] [[category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3416</id>
		<title>Missions - Creation</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3416"/>
		<updated>2008-01-10T18:00:30Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: /* The Plot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to create missions, a supplement to the SDK.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Creating a mission is a complex task involving a diverse use of tools &amp;amp; skills. Getting your first mission going, even following the SDK documentation, is likely to cause you some headaches.&lt;br /&gt;
&lt;br /&gt;
Still here? Good. Once you &#039;&#039;do&#039;&#039; have that first one running, the sky&#039;s your limit. That basic set of rules and files that make up a mission are always the same so once you&#039;ve got those sorted, it&#039;s just a case of coming up with an idea and writing it.&lt;br /&gt;
&lt;br /&gt;
At it&#039;s simplest, a mission is just a scripted set of events that tell some kind of story. It may be dramatic - mountain rescue, failing aircraft, poor weather. It could just as easily be a simple flight from A to B with you pointing out areas of interest along the way, or a completely abstract challenge like finding out how many times you can touch-and-go in a 747 in five minutes.&lt;br /&gt;
&lt;br /&gt;
Technically speaking, there are two main classes of &#039;things&#039; in a mission; Actions and Triggers. An Action makes something happen, and a Trigger checks to see if something&#039;s happened and calls an Action if it has. By stringing together Actions and Triggers, you tell your story.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need to prepare some sound files for the mission speech, some images to appear in FSX and some HTML with the mission briefing. All of these apart from the speech can be &#039;borrowed&#039; from the standard missions and edited so even if you&#039;re not an HTML whiz, it&#039;s certainly possible to do. And if you get really stuck you could always try asking in the [http://www.fsdeveloper.com/forum/forumdisplay.php?f=59 forum].&lt;br /&gt;
&lt;br /&gt;
== The Basics ==&lt;br /&gt;
&lt;br /&gt;
There are some simple things you will need before you start, and while you&#039;re working towards your first mission.&lt;br /&gt;
&lt;br /&gt;
=== The Plot ===&lt;br /&gt;
First and foremost, you need an idea. If this is your first mission, it&#039;s probably better to have a &#039;&#039;simple&#039;&#039; idea; re-writing [http://www.imdb.com/title/tt0064505/ The Italian Job] with Microlights would be fun, but you&#039;ll go insane before it sees the light of day. Start with something with only one or two things to do:&lt;br /&gt;
&lt;br /&gt;
# Fly above 1000 feet for three minutes&lt;br /&gt;
# Land at a specific airport&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve got this going you&#039;ll have a much better idea of how a mission hangs together and relocating it to Turin with Red, White and Blue [http://www.aircreation.com/anglais AirCreation] Trikes will be one step closer.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
You can safely assume that the player will get things wrong. You might be able to fly your mission from beginning to end but other people don&#039;t know what you were thinking about when you wrote it.&lt;br /&gt;
&lt;br /&gt;
Messages which seem perfectly clear to you might not be as useful as you think. Some speech saying &amp;quot;Now let&#039;s land over there&amp;quot; is fine, surely? Well, maybe. But what if they&#039;ve got a little lost, or distracted, and &#039;over there&#039; is behind them as they circle, trying to spot a landmark?&lt;br /&gt;
&lt;br /&gt;
If there&#039;s something you want the player to do, you need to tell them. They may not know that in the case of, say, being hopelessly lost they&#039;re required by law to do X, Y and Z. That&#039;s particularly important if doing X, Y and Z are what causes the next Trigger to fire; they&#039;ll fly around for a while, get bored, post a rant on a forum and curse your descendants.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;How&#039;&#039; you tell them is up to you. If your mission is a tour of local landmarks, explicit instructions are probably best (&amp;quot;Turn to 170 and fly towards the only hill on that plain&amp;quot;). On other missions, being led around by the nose may not work well so maybe less explicit instructions would be better (&amp;quot;Hey, there they are! They&#039;re OK, so let&#039;s check the next bridge downstream&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In either case, there are some tricks you can use to help out. First is the Mission Compass. This is a big help, particularly to people who don&#039;t know the area, and it can always be switched off by more experienced pilots. You set points on this using [[Function_Reference#Point_Of_Interest_Mission_Object|PointOfInterest]] (POI) objects, and [[Function_Reference#Point Of Interest Activation Action|PointOfInterestActivationActions]] to set which POI is currently active. You get a big, green rotating spike to show where you&#039;re supposed to go next.&lt;br /&gt;
&lt;br /&gt;
That does take the fun out of navigation challenge missions though. Instead of having to follow instructions, ask local towers for advice and read the landscape you just play fly-towards-the-green-arrow for half an hour. On the other hand, people flying a navigation challenge are more likely to get lost. Tricky.&lt;br /&gt;
&lt;br /&gt;
This is where your design skills start to come in. You need the mission compass to help people that have gone wrong, but you don&#039;t want it there all the time. There&#039;s several ways round this, but a couple are popular.&lt;br /&gt;
&lt;br /&gt;
First, you could enclose the whole area inside a huge AreaRectangle attached to a [[Function_Reference#Proximity_Trigger|ProximityTrigger]]. When you leave the rectangle, the trigger calls a [[Function_Reference#Dialog Action|DialogAction]] (&amp;quot;Dude, where are we?&amp;quot;) and then activates an appropriate PointOfInterest, showing where the player should be. Simple, no? They get the &#039;&#039;chance&#039;&#039; to get it right but then a bit of a prod if they need it.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you could do a similar thing with a [[Function_Reference#Timer Trigger|TimerTrigger]]. Start it when they leave the previous point and if they&#039;re more than, say, two minutes late getting to the next one then use the same trick with the [[Function_Reference#Dialog Action|DialogAction]] and PointOfInterestActivationAction.&lt;br /&gt;
&lt;br /&gt;
Lots of handy tips are also available here:&lt;br /&gt;
[http://www.fsinsider.com/developers/Pages/MissionBuildingTips.aspx FS Insider - Mission Building Tips]&lt;br /&gt;
&lt;br /&gt;
=== Logical Structuring ===&lt;br /&gt;
&lt;br /&gt;
A simple mission probably won&#039;t need much structuring but once you&#039;ve got beyond that and started putting together more complex scenarios, it can help to have a written structure.&lt;br /&gt;
Think of it as a screenplay, and follow the same three-stage layout.&lt;br /&gt;
&lt;br /&gt;
The first section is your introduction. You need to get the player&#039;s interest, explain who they are and why they&#039;re there. You use the first bit to get everything set up so that when The Exciting Thing happens, they know why and what to do about it.&lt;br /&gt;
&lt;br /&gt;
In part two, The Exciting Thing happens. It doesn&#039;t matter what it is, but assuming you have some kind of event to which the player is supposed to react, this part details what happens. Once they&#039;ve managed to cope with the situation and get it under control, they move on to...&lt;br /&gt;
&lt;br /&gt;
Part three, the conclusion. Having successfully dealt with the engine fire/squalling brats in the back seats/condor-strike, the player gets to reflect on what they&#039;ve done and enjoy the feeling of success for a little while. You could always throw in a last-minute plot twist of course.&lt;br /&gt;
&lt;br /&gt;
Structuring like this gives you a tidy way of making your mission appear much more complex. You can easily provide different threads, or ways of achieving something, without too much extra effort. Let&#039;s say your Introduction sees the player getting from a bush strip to the head of a particular valley. You start with them following the river, simple enough. Later on, you could add the option to fly across the peaks and save time; as long as they reach the same head of the same valley, the rest of the mission isn&#039;t affected. If they&#039;ve tried the mission before and failed, chances are they&#039;ll decide to try shortcuts anyway. Wouldn&#039;t it feel better if, having decided to cross the ridge instead of fly round, the mission reacts to that by saying &amp;quot;Hey, you&#039;re going over the ridge! A bit risky in this weather but the views will be stunning&amp;quot;? You can issue different Rewards, or maybe even alter how the next section plays out, depending on the path they took.&lt;br /&gt;
&lt;br /&gt;
In short, you can see your mission sections as leading up to choke-points, such as the head of the valley. If you have three sections, each with three different ways of achieving it, that&#039;s nine different ways of flying a single mission.&lt;br /&gt;
&lt;br /&gt;
=== Coding ===&lt;br /&gt;
This, as you might expect, is probably the trickiest bit. You may find it easier to have a big sheet of paper and draw the mission out in pencil before you start coding. That lets you work out how it fits together logically without having to worry about whether or not you&#039;ve got the spelling right.&lt;br /&gt;
&lt;br /&gt;
For example, you know that after you take off you want to have some speech, and then there are three ways of getting from A to B, where the next section starts. OK, so that&#039;s three boxes to draw; &#039;Takeoff&#039;, &#039;Speech&#039; and &#039;At point B&#039;. The speech should happen 30 seconds after takeoff, so note that down next to the Speech box. Then you can draw three lines between &#039;Speech&#039; and &#039;At Point B&#039; to show the three paths, and the first thing to do on each path is disable the other two paths.&lt;br /&gt;
&lt;br /&gt;
Already you&#039;ve got a decent map of what happens in what order, and translating from these into actual mission-system code will be easier.&lt;br /&gt;
&lt;br /&gt;
Read the list of possible Actions and Triggers, to find out what kinds of things you can check for and do. Try and spot a likely match for each of the boxes on your sheet of paper.&lt;br /&gt;
&lt;br /&gt;
To keep the example going, you might have a [[Function_Reference#Property Trigger|PropertyTrigger]] checking &amp;quot;Altitude AGL &amp;gt; 10&amp;quot; to test for takeoff. That would start a 30-second [[Function_Reference#Timer Trigger|TimerTrigger]] using an [[Function_Reference#Object Activation Action|ObjectActivationAction]] which, in turn, would call a [[Function_Reference#Dialog Action|DialogAction]] for your &amp;quot;Speech&amp;quot; box. You would need one Trigger per potential path; they might be set to detect altitude, or heading, or more likely that the player has entered an area. Each of those would need another [[Function_Reference#Dialog Action|DialogAction]] (just to keep the player informed), an [[Function_Reference#Object Activation Action|ObjectActivationAction]] to enable the Trigger that checks &amp;quot;At Point B&amp;quot; and another [[Function_Reference#Object Activation Action|ObjectActivationAction]] to disable the other two paths.&lt;br /&gt;
&lt;br /&gt;
Everyone will have their own style of writing, of course. Feel free to experiment.&lt;br /&gt;
&lt;br /&gt;
=== Code Design ===&lt;br /&gt;
Your first missions will probably be some active [[Function_Reference#Timer Trigger|TimerTrigger]]s and [[Function_Reference#Proximity_Trigger|ProximityTrigger]]s, each with some [[Function_Reference#Dialog Action|DialogAction]]s attached, and a LandingTrigger to finish the mission. This is fine for beginners, but once your missions get larger this easy design style will cause you problems.&lt;br /&gt;
&lt;br /&gt;
It is far easier to test a mission if you know what you expect to happen at a given moment. Sounds obvious, right? Of course you know what&#039;s supposed to happen, you designed and wrote it.&lt;br /&gt;
&lt;br /&gt;
The problem is that when you have lots of active triggers, any of them can fire. That&#039;s what they&#039;re for. They don&#039;t know that they&#039;re not &#039;&#039;supposed&#039;&#039; to fire so that the player that takes a shortcut - or the designer that&#039;s testing the last three minutes of a 45-minute mission - will find that some very wierd things are happening because triggers that are part of a completely different part of the mission are firing.&lt;br /&gt;
&lt;br /&gt;
The design solution is very easy; you only activate the triggers that you need, and you deactivate any that you don&#039;t need. In other words, almost all of your triggers should be &#039;&#039;&#039;de&#039;&#039;&#039;activated by default. Only when you&#039;re ready for them should they be activated.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s consider a simple mission where you&#039;re flying east from A to B to pick up your wife. As you approach B you&#039;re told that the air ambulance has broken down and someone is urgently needed in town C, to the north, to ferry a transplant organ to town B&#039;s airfield. You, of course, arrive in a shining white Cessna to save the day. A nice, straightforward story with only about a dozen triggers to implement. What could possibly go wrong?&lt;br /&gt;
&lt;br /&gt;
I take off from A and notice a motorway (freeway) leading to B and decide to follow that at 100 feet. Two minutes in, and still a long way from B, a timer switches on the altitude check that is supposed to fire just before I land at B to tell me to go to C. &amp;quot;Abort the landing, Sir Pilot! You&#039;re needed!&amp;quot;. Huh? What landing? Okay, off I go to C as instructed. Land, collect heart, take off, fly towards B. Now I hit a set of [[Function_Reference#Proximity_Trigger|ProximityTrigger]]s around town B, intended to fill in some empty time and which should have gone off &#039;&#039;before&#039;&#039; the emergency call, wittering on about my wife&#039;s assault on the January shoe sales. With a human heart destined for a dying child on the passenger seat.&lt;br /&gt;
&lt;br /&gt;
A similar thing would happen if I&#039;d fluffed the landing on a previous attempt and decided to fly straight to C to avoid the uneventful flight to B.&lt;br /&gt;
&lt;br /&gt;
Or what about the person who gets distracted for a few seconds on finals to town B - maybe his wife&#039;s at the door asking for help upstairs with some new shoes - and misses the &#039;divert to town C&#039; message, lands anyway to get told he&#039;s just saved someone&#039;s life because the final landing trigger was on by default? Huh? Whose life? Just how many shoes did she buy? What a dull mission; I took off, got harangued about footwear, landed, and it finished.&lt;br /&gt;
&lt;br /&gt;
Once more with feeling, then. Treat Triggers like lightbulbs; if you&#039;re not using it, switch it off.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
At some point you&#039;ll want to give your mission out to others. They react by flying around like airborne sheep in a hand-grenade factory, and then tell you that your mission sucks. Dude. Some reward for the weeks of work you put in.&lt;br /&gt;
&lt;br /&gt;
You&#039;ve already checked that it all works when it&#039;s flown correctly, that gets done while you&#039;re writing it. Unfortunately, you&#039;re the only person that knows what &#039;correctly&#039; means. Checking that it still works when it&#039;s &#039;&#039;not&#039;&#039; flown correctly is more difficult. You need to make sure that the player gets told when they&#039;ve gone out of bounds, that they&#039;ve been told &#039;&#039;&#039;exactly&#039;&#039;&#039; where they&#039;re supposed to park and not just &#039;near the buildings&#039; (What buildings? Which wall?). What happens when they land on the right runway in the wrong direction, or the at the wrong airport? What happens when they take a shortcut because they&#039;ve flown the mission before, and skip out section 1 completely?&lt;br /&gt;
&lt;br /&gt;
=== Pulling it all together ===&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
=== Distributing ===&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
See these pages for HowTos &amp;amp; Tools used in creating -&lt;br /&gt;
=== Categories ===&lt;br /&gt;
[[Categories]] - Assigning and creating categories.&lt;br /&gt;
&lt;br /&gt;
=== Mission Coding ===&lt;br /&gt;
[[Mission Coding]] - Creating your mission, development process &amp;amp; tips.&lt;br /&gt;
&lt;br /&gt;
=== Rewards ===&lt;br /&gt;
[[Rewards]] - Creation tips.&lt;br /&gt;
&lt;br /&gt;
=== Sounds ===&lt;br /&gt;
[[Sounds]] - Creating dialogue, and sounds, for missions.&lt;br /&gt;
&lt;br /&gt;
=== Artwork ===&lt;br /&gt;
[[Artwork]] - Creating artwork for mission briefings, rewards, etc.&lt;br /&gt;
&lt;br /&gt;
=== Briefing ===&lt;br /&gt;
Along with your mission script, you must provide a [[Briefing]] in an HTML file.&lt;br /&gt;
&lt;br /&gt;
= To Sort =&lt;br /&gt;
These bits probably need modifying and/or relocating to appropriate subsections.&lt;br /&gt;
&lt;br /&gt;
== SDK ==&lt;br /&gt;
[[Object Placement Tool]] - Installing, configuring, &amp;amp; general useage tips.&lt;br /&gt;
&lt;br /&gt;
[[Tools]] placeholder text.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
If you use Rewards, or you want your mission to load a little faster, you must [[Compiling|compile]] them using the [[SDK]]&#039;s command-line tools.&lt;br /&gt;
&lt;br /&gt;
== Function Reference ==&lt;br /&gt;
[[Function Reference|This section]] gives some basic details on the different types of object available to mission writers when writing a mission script.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
Currently there are no available tools to allow debugging of your mission.&lt;br /&gt;
&lt;br /&gt;
However there is a basic form of error reporting built into FSX.&lt;br /&gt;
&lt;br /&gt;
Add the following to your fsx.CFG :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[Debug]&lt;br /&gt;
ReportLoadErrors=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately there are lots of errors that this won&#039;t report. Another way of testing it is [[Compiling]] it; you may get some useful error messages from the compiler.&lt;br /&gt;
&lt;br /&gt;
Sometimes FSX will stop loading your mission completely. There are various reasons for this, but it&#039;s usually because an object that should be attached to another isn&#039;t, or vice-versa. A very quick way of detecting this is to add an activated TimerTrigger, and set &amp;lt;tt&amp;gt;OnScreenTimer&amp;lt;/tt&amp;gt; to True. This makes a small timer appear at the top of the screen as soon as the mission is loaded. If the timer is there, the mission is running. If not, FSX hasn&#039;t loaded it because of some kind of structural problem.&lt;br /&gt;
&lt;br /&gt;
Another simple way of adding some debugging information is to add DialogActions to key triggers that don&#039;t have one already. This can save you lots of time; two temporary DialogActions saying &amp;quot;LandingTrigger A On&amp;quot; and &amp;quot;LandingTrigger B On&amp;quot; might save you several minutes&#039; flying time on every test. If you make sure your temporary DialogActions have sensible names (i.e. they all start with &#039;Debug&#039; or &#039;Temp&#039;) they&#039;re easy to remove once you no longer need them.&lt;br /&gt;
&lt;br /&gt;
[[category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Rewards&amp;diff=3408</id>
		<title>Rewards</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Rewards&amp;diff=3408"/>
		<updated>2008-01-08T10:02:11Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pilots earn Rewards for completing various missions, and reaching specific accomplishments throughout the game, (in &#039;Free Flight&#039;).&lt;br /&gt;
&lt;br /&gt;
Some of these rewards exist as hidden Easter Eggs to be discovered by pilots. Some missions have multiple and hidden rewards, receipt being dependent on performing additional actions. &lt;br /&gt;
&lt;br /&gt;
Achieved rewards are viewable in the user&#039;s pilot records.&lt;br /&gt;
&lt;br /&gt;
== Free Flight ==&lt;br /&gt;
FSX comes with some rewards which you&#039;ve probably seen, for things like your first landing and first ten landings. These rewards are obviously not granted explicitly by a mission action, so how do they work?&lt;br /&gt;
&lt;br /&gt;
Each &#039;free flight&#039; reward needs to have an additional section added to it&#039;s definition, the &#039;Criteria&#039;. These are detailed in the SDK and cover things like the number of landings, types of aircraft flown and airports landed at. You can combine these in any way you like to come up with your specific criteria. When the sim detects that each of the requirements has been met, your reward is granted.&lt;br /&gt;
&lt;br /&gt;
== In-Mission Rewards ==&lt;br /&gt;
In a mission, a reward can be granted explicitly using a [[Function_Reference#Grant_Reward_Action|GrantRewardAction]]. This gives you fine control over exactly what requirements the reward has. For mission-based rewards you shouldn&#039;t define Criteria because FSX will pick that up and possibly grant the reward outside the mission.&lt;br /&gt;
&lt;br /&gt;
== Creation ==&lt;br /&gt;
Like the other mission elements, Rewards are created as an XML file. Unlike the others, they must be [[Compiling|compiled]] before they can be used. The XML file looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;FSData version=&amp;quot;9.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Reward    rewardId = &amp;quot;{00000000-0000-0000-0000-000000000000}&amp;quot;&lt;br /&gt;
                 name = &amp;quot;Demo Reward&amp;quot;&lt;br /&gt;
          description = &amp;quot;Postcard for doing something right&amp;quot;&lt;br /&gt;
                 type = &amp;quot;POSTCARD&amp;quot;&lt;br /&gt;
               bitmap = &amp;quot;Images\small-1.jpg&amp;quot; &lt;br /&gt;
   rewardDetailBitmap = &amp;quot;Images\big-1.jpg&amp;quot;&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
   &amp;lt;Criteria landings=&amp;quot;3&amp;quot; differentAirports=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Reward&amp;gt;&lt;br /&gt;
&amp;lt;/FSData&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As with all other XML, it is very sensitive and removing and symbols, or changing the case of the keywords, will break it. You should be able to see which bits have to be changed though.&lt;br /&gt;
&lt;br /&gt;
The rewardID is a GUID (unique identifier) which you will need to generate using GUIDGen.exe or at http://www.guidgen.com . &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; are free text. The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; element must be one of this list:&lt;br /&gt;
* TROPHY&lt;br /&gt;
* BADGE&lt;br /&gt;
* CERTIFICATE&lt;br /&gt;
* MEDAL&lt;br /&gt;
* POSTCARD&lt;br /&gt;
* SPECIAL_ITEM&lt;br /&gt;
&lt;br /&gt;
Finally, the two &amp;lt;code&amp;gt;bitmap&amp;lt;/code&amp;gt; elements must point to images, either JPG or BMP, which show small and detailed icons for your new reward. The &amp;lt;code&amp;gt;bitmap&amp;lt;/code&amp;gt; image is the small icon, at 100x80 pixels; the &amp;lt;code&amp;gt;rewardDetailBitmap&amp;lt;/code&amp;gt; image is larger at 300x370, and is shown as part of the more detailed information.&lt;br /&gt;
&lt;br /&gt;
=== Criteria ===&lt;br /&gt;
There are a few different criteria you can set. Filtering by the number of hours the player has flown in a particular aircraft type is done with a &amp;lt;code&amp;gt;RewardHours&amp;lt;/code&amp;gt; element and can be one of the following:&lt;br /&gt;
* ANY&lt;br /&gt;
* DAY&lt;br /&gt;
* NIGHT&lt;br /&gt;
* VFR&lt;br /&gt;
* IFR&lt;br /&gt;
* SAILPLANE&lt;br /&gt;
* LANDPLANE&lt;br /&gt;
* SEAPLANE&lt;br /&gt;
* ROTORCRAFT&lt;br /&gt;
* MULTI_ENGINE&lt;br /&gt;
&lt;br /&gt;
For example, to grant a reward after the player has flown five hours at night:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RewardHours hoursType=&amp;quot;NIGHT&amp;quot; hours=&amp;quot;5.0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filtering by the airports the player has been to is done using a &amp;lt;code&amp;gt;RewardAirport&amp;lt;/code&amp;gt; element. You need to specify the four-letter airport code rather than the name.&lt;br /&gt;
&lt;br /&gt;
This would allow FSX to grant the reward after the player has visited Heathrow:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;RewardAirport ident=&amp;quot;EGLL&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, you can make a reward dependent on the player having already achieved another reward.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;DependantRewardId rewardId=&amp;quot;{a guid}&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An entire Criteria section may look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;Criteria landings=&amp;quot;3&amp;quot; differentAirports=&amp;quot;2&amp;quot;&lt;br /&gt;
    &amp;lt;RewardHours hoursType=&amp;quot;NIGHT&amp;quot; hours=&amp;quot;5.0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;RewardAirport ident=&amp;quot;EGLL&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;DependantRewardId rewardId=&amp;quot;{a guid}&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... which would mean that FSX would automatically grant this reward after the player has been to Heathrow, has flown for five hours at night, has already been granted another reward with a specific GUID and has made at least three landings at two different airports.&lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to specify all the types of criteria, only the ones you want to use. If you&#039;re using the reward as part of a mission, don&#039;t leave the Criteria section there, even empty, or FSX will grant the rewards automatically because it will see it has having a criteria of &amp;quot;0 landings at 0 different airports&amp;quot; - which is achieved just by running the sim.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
Tools overview blurb.&lt;br /&gt;
&lt;br /&gt;
=== OS Tools ===&lt;br /&gt;
Available with the OS.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;background:#f2f2f2&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|--&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Tool&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Rating&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;OS&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Tool Name&lt;br /&gt;
| Descriptive blurb&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| XP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Tool Name&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Descriptive blurb&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Vista&lt;br /&gt;
|-&lt;br /&gt;
| Tool Name&lt;br /&gt;
| Descriptive blurb&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| XP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Tool Name&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Descriptive blurb&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Vista&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3rd Party Tools ===&lt;br /&gt;
From 3rd party sources.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;background:#f2f2f2&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|--&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Tool&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Rating&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;Availability&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#C0C090;&amp;quot; | &#039;&#039;&#039;URL&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Tool Name&lt;br /&gt;
| Descriptive blurb&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| Payware&lt;br /&gt;
| [http://www.yoururl.com Download Page (SizeMb)]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Tool Name&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Descriptive blurb&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Freeware&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | [http://www.yoururl.com Download Page (SizeMb)]&lt;br /&gt;
|-&lt;br /&gt;
| Tool Name&lt;br /&gt;
| Descriptive blurb&lt;br /&gt;
| &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| Payware&lt;br /&gt;
| [http://www.yoururl.com Download (SizeMb)]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Tool Name&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Descriptive blurb&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | &#039;&#039;&#039;* * * * *&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | Freeware&lt;br /&gt;
| style=&amp;quot;background:#F8EABA;&amp;quot; | [http://www.yoururl.com Download Page (SizeMb)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related ==&lt;br /&gt;
&lt;br /&gt;
[[Compiling#Running_the_Reward_Compiler|Compiling Rewards]] - Compilation of a reward xml file.&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Briefing&amp;diff=3401</id>
		<title>Briefing</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Briefing&amp;diff=3401"/>
		<updated>2008-01-07T15:24:34Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: New page: = The Briefing File =  Once a player has selected your mission and clicked &amp;#039;Fly&amp;#039;, they are taken to a briefing page. This is simply an HTML file, with a description of what the mission is ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= The Briefing File =&lt;br /&gt;
&lt;br /&gt;
Once a player has selected your mission and clicked &#039;Fly&#039;, they are taken to a briefing page. This is simply an HTML file, with a description of what the mission is about. All of the default briefings follow the same style and, while you&#039;re free to come up with your own unique style, keeping to the same one maintains the &#039;look and feel&#039; of FSX and makes your mission fit well with the rest.&lt;br /&gt;
&lt;br /&gt;
You can copy any of the existing briefing files, found in the various folders under the &amp;lt;tt&amp;gt;Missions&amp;lt;/tt&amp;gt; folder, and edit those. Likewise, any HTML editor can be used to edit them. Both [http://www.microsoft.com/word/ MS Word] and the free [http://www.openoffice.org/ OpenOffice] can visually edit HTML, although both make lots of changes without your permission and you can end up with extremely large HTML files. Alternatively, any text editor such as Notepad or [http://www.notepad2.com/ Notepad2] will let you edit the HTML directly.&lt;br /&gt;
&lt;br /&gt;
Once your briefing file is created, you need to set your [[Function_Reference#Scenario_Metadata_Mission_Object|ScenarioMetadata]] object to point at it so that FSX knows what file to load.&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3400</id>
		<title>Missions - Creation</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3400"/>
		<updated>2008-01-07T15:13:15Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: /* Briefing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to create missions, a supplement to the SDK.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Creating a mission is a complex task involving a diverse use of tools &amp;amp; skills. Getting your first mission going, even following the SDK documentation, is likely to cause you some headaches.&lt;br /&gt;
&lt;br /&gt;
Still here? Good. Once you &#039;&#039;do&#039;&#039; have that first one running, the sky&#039;s your limit. That basic set of rules and files that make up a mission are always the same so once you&#039;ve got those sorted, it&#039;s just a case of coming up with an idea and writing it.&lt;br /&gt;
&lt;br /&gt;
At it&#039;s simplest, a mission is just a scripted set of events that tell some kind of story. It may be dramatic - mountain rescue, failing aircraft, poor weather. It could just as easily be a simple flight from A to B with you pointing out areas of interest along the way, or a completely abstract challenge like finding out how many times you can touch-and-go in a 747 in five minutes.&lt;br /&gt;
&lt;br /&gt;
Technically speaking, there are two main classes of &#039;things&#039; in a mission; Actions and Triggers. An Action makes something happen, and a Trigger checks to see if something&#039;s happened and calls an Action if it has. By stringing together Actions and Triggers, you tell your story.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need to prepare some sound files for the mission speech, some images to appear in FSX and some HTML with the mission briefing. All of these apart from the speech can be &#039;borrowed&#039; from the standard missions and edited so even if you&#039;re not an HTML whiz, it&#039;s certainly possible to do. And if you get really stuck you could always try asking in the [http://www.fsdeveloper.com/forum/forumdisplay.php?f=59 forum].&lt;br /&gt;
&lt;br /&gt;
== The Basics ==&lt;br /&gt;
&lt;br /&gt;
There are some simple things you will need before you start, and while you&#039;re working towards your first mission.&lt;br /&gt;
&lt;br /&gt;
=== The Plot ===&lt;br /&gt;
First and foremost, you need an idea. If this is your first mission, it&#039;s probably better to have a &#039;&#039;simple&#039;&#039; idea; re-writing [http://www.imdb.com/title/tt0064505/ The Italian Job] with Microlights would be fun, but you&#039;ll go insane before it sees the light of day. Start with something with only one or two things to do:&lt;br /&gt;
&lt;br /&gt;
# Fly above 1000 feet for three minutes&lt;br /&gt;
# Land at a specific airport&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve got this going you&#039;ll have a much better idea of how a mission hangs together and relocating it to Turin with Red, White and Blue [http://www.aircreation.net/ AirCreation] Trikes will be one step closer.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
You can safely assume that the player will get things wrong. You might be able to fly your mission from beginning to end but other people don&#039;t know what you were thinking about when you wrote it.&lt;br /&gt;
&lt;br /&gt;
Messages which seem perfectly clear to you might not be as useful as you think. Some speech saying &amp;quot;Now let&#039;s land over there&amp;quot; is fine, surely? Well, maybe. But what if they&#039;ve got a little lost, or distracted, and &#039;over there&#039; is behind them as they circle, trying to spot a landmark?&lt;br /&gt;
&lt;br /&gt;
If there&#039;s something you want the player to do, you need to tell them. They may not know that in the case of, say, being hopelessly lost they&#039;re required by law to do X, Y and Z. That&#039;s particularly important if doing X, Y and Z are what causes the next Trigger to fire; they&#039;ll fly around for a while, get bored, post a rant on a forum and curse your descendants.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;How&#039;&#039; you tell them is up to you. If your mission is a tour of local landmarks, explicit instructions are probably best (&amp;quot;Turn to 170 and fly towards the only hill on that plain&amp;quot;). On other missions, being led around by the nose may not work well so maybe less explicit instructions would be better (&amp;quot;Hey, there they are! They&#039;re OK, so let&#039;s check the next bridge downstream&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In either case, there are some tricks you can use to help out. First is the Mission Compass. This is a big help, particularly to people who don&#039;t know the area, and it can always be switched off by more experienced pilots. You set points on this using [[Function_Reference#Point_Of_Interest_Mission_Object|PointOfInterest]] (POI) objects, and [[Function_Reference#Point Of Interest Activation Action|PointOfInterestActivationActions]] to set which POI is currently active. You get a big, green rotating spike to show where you&#039;re supposed to go next.&lt;br /&gt;
&lt;br /&gt;
That does take the fun out of navigation challenge missions though. Instead of having to follow instructions, ask local towers for advice and read the landscape you just play fly-towards-the-green-arrow for half an hour. On the other hand, people flying a navigation challenge are more likely to get lost. Tricky.&lt;br /&gt;
&lt;br /&gt;
This is where your design skills start to come in. You need the mission compass to help people that have gone wrong, but you don&#039;t want it there all the time. There&#039;s several ways round this, but a couple are popular.&lt;br /&gt;
&lt;br /&gt;
First, you could enclose the whole area inside a huge AreaRectangle attached to a [[Function_Reference#Proximity_Trigger|ProximityTrigger]]. When you leave the rectangle, the trigger calls a [[Function_Reference#Dialog Action|DialogAction]] (&amp;quot;Dude, where are we?&amp;quot;) and then activates an appropriate PointOfInterest, showing where the player should be. Simple, no? They get the &#039;&#039;chance&#039;&#039; to get it right but then a bit of a prod if they need it.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you could do a similar thing with a [[Function_Reference#Timer Trigger|TimerTrigger]]. Start it when they leave the previous point and if they&#039;re more than, say, two minutes late getting to the next one then use the same trick with the [[Function_Reference#Dialog Action|DialogAction]] and PointOfInterestActivationAction.&lt;br /&gt;
&lt;br /&gt;
Lots of handy tips are also available here:&lt;br /&gt;
[http://www.fsinsider.com/developers/Pages/MissionBuildingTips.aspx FS Insider - Mission Building Tips]&lt;br /&gt;
&lt;br /&gt;
=== Logical Structuring ===&lt;br /&gt;
&lt;br /&gt;
A simple mission probably won&#039;t need much structuring but once you&#039;ve got beyond that and started putting together more complex scenarios, it can help to have a written structure.&lt;br /&gt;
Think of it as a screenplay, and follow the same three-stage layout.&lt;br /&gt;
&lt;br /&gt;
The first section is your introduction. You need to get the player&#039;s interest, explain who they are and why they&#039;re there. You use the first bit to get everything set up so that when The Exciting Thing happens, they know why and what to do about it.&lt;br /&gt;
&lt;br /&gt;
In part two, The Exciting Thing happens. It doesn&#039;t matter what it is, but assuming you have some kind of event to which the player is supposed to react, this part details what happens. Once they&#039;ve managed to cope with the situation and get it under control, they move on to...&lt;br /&gt;
&lt;br /&gt;
Part three, the conclusion. Having successfully dealt with the engine fire/squalling brats in the back seats/condor-strike, the player gets to reflect on what they&#039;ve done and enjoy the feeling of success for a little while. You could always throw in a last-minute plot twist of course.&lt;br /&gt;
&lt;br /&gt;
Structuring like this gives you a tidy way of making your mission appear much more complex. You can easily provide different threads, or ways of achieving something, without too much extra effort. Let&#039;s say your Introduction sees the player getting from a bush strip to the head of a particular valley. You start with them following the river, simple enough. Later on, you could add the option to fly across the peaks and save time; as long as they reach the same head of the same valley, the rest of the mission isn&#039;t affected. If they&#039;ve tried the mission before and failed, chances are they&#039;ll decide to try shortcuts anyway. Wouldn&#039;t it feel better if, having decided to cross the ridge instead of fly round, the mission reacts to that by saying &amp;quot;Hey, you&#039;re going over the ridge! A bit risky in this weather but the views will be stunning&amp;quot;? You can issue different Rewards, or maybe even alter how the next section plays out, depending on the path they took.&lt;br /&gt;
&lt;br /&gt;
In short, you can see your mission sections as leading up to choke-points, such as the head of the valley. If you have three sections, each with three different ways of achieving it, that&#039;s nine different ways of flying a single mission.&lt;br /&gt;
&lt;br /&gt;
=== Coding ===&lt;br /&gt;
This, as you might expect, is probably the trickiest bit. You may find it easier to have a big sheet of paper and draw the mission out in pencil before you start coding. That lets you work out how it fits together logically without having to worry about whether or not you&#039;ve got the spelling right.&lt;br /&gt;
&lt;br /&gt;
For example, you know that after you take off you want to have some speech, and then there are three ways of getting from A to B, where the next section starts. OK, so that&#039;s three boxes to draw; &#039;Takeoff&#039;, &#039;Speech&#039; and &#039;At point B&#039;. The speech should happen 30 seconds after takeoff, so note that down next to the Speech box. Then you can draw three lines between &#039;Speech&#039; and &#039;At Point B&#039; to show the three paths, and the first thing to do on each path is disable the other two paths.&lt;br /&gt;
&lt;br /&gt;
Already you&#039;ve got a decent map of what happens in what order, and translating from these into actual mission-system code will be easier.&lt;br /&gt;
&lt;br /&gt;
Read the list of possible Actions and Triggers, to find out what kinds of things you can check for and do. Try and spot a likely match for each of the boxes on your sheet of paper.&lt;br /&gt;
&lt;br /&gt;
To keep the example going, you might have a [[Function_Reference#Property Trigger|PropertyTrigger]] checking &amp;quot;Altitude AGL &amp;gt; 10&amp;quot; to test for takeoff. That would start a 30-second [[Function_Reference#Timer Trigger|TimerTrigger]] using an [[Function_Reference#Object Activation Action|ObjectActivationAction]] which, in turn, would call a [[Function_Reference#Dialog Action|DialogAction]] for your &amp;quot;Speech&amp;quot; box. You would need one Trigger per potential path; they might be set to detect altitude, or heading, or more likely that the player has entered an area. Each of those would need another [[Function_Reference#Dialog Action|DialogAction]] (just to keep the player informed), an [[Function_Reference#Object Activation Action|ObjectActivationAction]] to enable the Trigger that checks &amp;quot;At Point B&amp;quot; and another [[Function_Reference#Object Activation Action|ObjectActivationAction]] to disable the other two paths.&lt;br /&gt;
&lt;br /&gt;
Everyone will have their own style of writing, of course. Feel free to experiment.&lt;br /&gt;
&lt;br /&gt;
=== Code Design ===&lt;br /&gt;
Your first missions will probably be some active [[Function_Reference#Timer Trigger|TimerTrigger]]s and [[Function_Reference#Proximity_Trigger|ProximityTrigger]]s, each with some [[Function_Reference#Dialog Action|DialogAction]]s attached, and a LandingTrigger to finish the mission. This is fine for beginners, but once your missions get larger this easy design style will cause you problems.&lt;br /&gt;
&lt;br /&gt;
It is far easier to test a mission if you know what you expect to happen at a given moment. Sounds obvious, right? Of course you know what&#039;s supposed to happen, you designed and wrote it.&lt;br /&gt;
&lt;br /&gt;
The problem is that when you have lots of active triggers, any of them can fire. That&#039;s what they&#039;re for. They don&#039;t know that they&#039;re not &#039;&#039;supposed&#039;&#039; to fire so that the player that takes a shortcut - or the designer that&#039;s testing the last three minutes of a 45-minute mission - will find that some very wierd things are happening because triggers that are part of a completely different part of the mission are firing.&lt;br /&gt;
&lt;br /&gt;
The design solution is very easy; you only activate the triggers that you need, and you deactivate any that you don&#039;t need. In other words, almost all of your triggers should be &#039;&#039;&#039;de&#039;&#039;&#039;activated by default. Only when you&#039;re ready for them should they be activated.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s consider a simple mission where you&#039;re flying east from A to B to pick up your wife. As you approach B you&#039;re told that the air ambulance has broken down and someone is urgently needed in town C, to the north, to ferry a transplant organ to town B&#039;s airfield. You, of course, arrive in a shining white Cessna to save the day. A nice, straightforward story with only about a dozen triggers to implement. What could possibly go wrong?&lt;br /&gt;
&lt;br /&gt;
I take off from A and notice a motorway (freeway) leading to B and decide to follow that at 100 feet. Two minutes in, and still a long way from B, a timer switches on the altitude check that is supposed to fire just before I land at B to tell me to go to C. &amp;quot;Abort the landing, Sir Pilot! You&#039;re needed!&amp;quot;. Huh? What landing? Okay, off I go to C as instructed. Land, collect heart, take off, fly towards B. Now I hit a set of [[Function_Reference#Proximity_Trigger|ProximityTrigger]]s around town B, intended to fill in some empty time and which should have gone off &#039;&#039;before&#039;&#039; the emergency call, wittering on about my wife&#039;s assault on the January shoe sales. With a human heart destined for a dying child on the passenger seat.&lt;br /&gt;
&lt;br /&gt;
A similar thing would happen if I&#039;d fluffed the landing on a previous attempt and decided to fly straight to C to avoid the uneventful flight to B.&lt;br /&gt;
&lt;br /&gt;
Or what about the person who gets distracted for a few seconds on finals to town B - maybe his wife&#039;s at the door asking for help upstairs with some new shoes - and misses the &#039;divert to town C&#039; message, lands anyway to get told he&#039;s just saved someone&#039;s life because the final landing trigger was on by default? Huh? Whose life? Just how many shoes did she buy? What a dull mission; I took off, got harangued about footwear, landed, and it finished.&lt;br /&gt;
&lt;br /&gt;
Once more with feeling, then. Treat Triggers like lightbulbs; if you&#039;re not using it, switch it off.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
At some point you&#039;ll want to give your mission out to others. They react by flying around like airborne sheep in a hand-grenade factory, and then tell you that your mission sucks. Dude. Some reward for the weeks of work you put in.&lt;br /&gt;
&lt;br /&gt;
You&#039;ve already checked that it all works when it&#039;s flown correctly, that gets done while you&#039;re writing it. Unfortunately, you&#039;re the only person that knows what &#039;correctly&#039; means. Checking that it still works when it&#039;s &#039;&#039;not&#039;&#039; flown correctly is more difficult. You need to make sure that the player gets told when they&#039;ve gone out of bounds, that they&#039;ve been told &#039;&#039;&#039;exactly&#039;&#039;&#039; where they&#039;re supposed to park and not just &#039;near the buildings&#039; (What buildings? Which wall?). What happens when they land on the right runway in the wrong direction, or the at the wrong airport? What happens when they take a shortcut because they&#039;ve flown the mission before, and skip out section 1 completely?&lt;br /&gt;
&lt;br /&gt;
=== Pulling it all together ===&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
=== Distributing ===&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
See these pages for HowTos &amp;amp; Tools used in creating -&lt;br /&gt;
=== Categories ===&lt;br /&gt;
[[Categories]] - Assigning and creating categories.&lt;br /&gt;
&lt;br /&gt;
=== Mission Coding ===&lt;br /&gt;
[[Mission Coding]] - Creating your mission, development process &amp;amp; tips.&lt;br /&gt;
&lt;br /&gt;
=== Rewards ===&lt;br /&gt;
[[Rewards]] - Creation tips.&lt;br /&gt;
&lt;br /&gt;
=== Sounds ===&lt;br /&gt;
[[Sounds]] - Creating dialogue, and sounds, for missions.&lt;br /&gt;
&lt;br /&gt;
=== Artwork ===&lt;br /&gt;
[[Artwork]] - Creating artwork for mission briefings, rewards, etc.&lt;br /&gt;
&lt;br /&gt;
=== Briefing ===&lt;br /&gt;
Along with your mission script, you must provide a [[Briefing]] in an HTML file.&lt;br /&gt;
&lt;br /&gt;
= To Sort =&lt;br /&gt;
These bits probably need modifying and/or relocating to appropriate subsections.&lt;br /&gt;
&lt;br /&gt;
== SDK ==&lt;br /&gt;
[[Object Placement Tool]] - Installing, configuring, &amp;amp; general useage tips.&lt;br /&gt;
&lt;br /&gt;
[[Tools]] placeholder text.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
If you use Rewards, or you want your mission to load a little faster, you must [[Compiling|compile]] them using the [[SDK]]&#039;s command-line tools.&lt;br /&gt;
&lt;br /&gt;
== Function Reference ==&lt;br /&gt;
[[Function Reference|This section]] gives some basic details on the different types of object available to mission writers when writing a mission script.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
Currently there are no available tools to allow debugging of your mission.&lt;br /&gt;
&lt;br /&gt;
However there is a basic form of error reporting built into FSX.&lt;br /&gt;
&lt;br /&gt;
Add the following to your fsx.CFG :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[Debug]&lt;br /&gt;
ReportLoadErrors=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately there are lots of errors that this won&#039;t report. Another way of testing it is [[Compiling]] it; you may get some useful error messages from the compiler.&lt;br /&gt;
&lt;br /&gt;
Sometimes FSX will stop loading your mission completely. There are various reasons for this, but it&#039;s usually because an object that should be attached to another isn&#039;t, or vice-versa. A very quick way of detecting this is to add an activated TimerTrigger, and set &amp;lt;tt&amp;gt;OnScreenTimer&amp;lt;/tt&amp;gt; to True. This makes a small timer appear at the top of the screen as soon as the mission is loaded. If the timer is there, the mission is running. If not, FSX hasn&#039;t loaded it because of some kind of structural problem.&lt;br /&gt;
&lt;br /&gt;
Another simple way of adding some debugging information is to add DialogActions to key triggers that don&#039;t have one already. This can save you lots of time; two temporary DialogActions saying &amp;quot;LandingTrigger A On&amp;quot; and &amp;quot;LandingTrigger B On&amp;quot; might save you several minutes&#039; flying time on every test. If you make sure your temporary DialogActions have sensible names (i.e. they all start with &#039;Debug&#039; or &#039;Temp&#039;) they&#039;re easy to remove once you no longer need them.&lt;br /&gt;
&lt;br /&gt;
[[category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3399</id>
		<title>Missions - Creation</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3399"/>
		<updated>2008-01-07T15:11:18Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: /* Compiling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to create missions, a supplement to the SDK.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Creating a mission is a complex task involving a diverse use of tools &amp;amp; skills. Getting your first mission going, even following the SDK documentation, is likely to cause you some headaches.&lt;br /&gt;
&lt;br /&gt;
Still here? Good. Once you &#039;&#039;do&#039;&#039; have that first one running, the sky&#039;s your limit. That basic set of rules and files that make up a mission are always the same so once you&#039;ve got those sorted, it&#039;s just a case of coming up with an idea and writing it.&lt;br /&gt;
&lt;br /&gt;
At it&#039;s simplest, a mission is just a scripted set of events that tell some kind of story. It may be dramatic - mountain rescue, failing aircraft, poor weather. It could just as easily be a simple flight from A to B with you pointing out areas of interest along the way, or a completely abstract challenge like finding out how many times you can touch-and-go in a 747 in five minutes.&lt;br /&gt;
&lt;br /&gt;
Technically speaking, there are two main classes of &#039;things&#039; in a mission; Actions and Triggers. An Action makes something happen, and a Trigger checks to see if something&#039;s happened and calls an Action if it has. By stringing together Actions and Triggers, you tell your story.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need to prepare some sound files for the mission speech, some images to appear in FSX and some HTML with the mission briefing. All of these apart from the speech can be &#039;borrowed&#039; from the standard missions and edited so even if you&#039;re not an HTML whiz, it&#039;s certainly possible to do. And if you get really stuck you could always try asking in the [http://www.fsdeveloper.com/forum/forumdisplay.php?f=59 forum].&lt;br /&gt;
&lt;br /&gt;
== The Basics ==&lt;br /&gt;
&lt;br /&gt;
There are some simple things you will need before you start, and while you&#039;re working towards your first mission.&lt;br /&gt;
&lt;br /&gt;
=== The Plot ===&lt;br /&gt;
First and foremost, you need an idea. If this is your first mission, it&#039;s probably better to have a &#039;&#039;simple&#039;&#039; idea; re-writing [http://www.imdb.com/title/tt0064505/ The Italian Job] with Microlights would be fun, but you&#039;ll go insane before it sees the light of day. Start with something with only one or two things to do:&lt;br /&gt;
&lt;br /&gt;
# Fly above 1000 feet for three minutes&lt;br /&gt;
# Land at a specific airport&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve got this going you&#039;ll have a much better idea of how a mission hangs together and relocating it to Turin with Red, White and Blue [http://www.aircreation.net/ AirCreation] Trikes will be one step closer.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
You can safely assume that the player will get things wrong. You might be able to fly your mission from beginning to end but other people don&#039;t know what you were thinking about when you wrote it.&lt;br /&gt;
&lt;br /&gt;
Messages which seem perfectly clear to you might not be as useful as you think. Some speech saying &amp;quot;Now let&#039;s land over there&amp;quot; is fine, surely? Well, maybe. But what if they&#039;ve got a little lost, or distracted, and &#039;over there&#039; is behind them as they circle, trying to spot a landmark?&lt;br /&gt;
&lt;br /&gt;
If there&#039;s something you want the player to do, you need to tell them. They may not know that in the case of, say, being hopelessly lost they&#039;re required by law to do X, Y and Z. That&#039;s particularly important if doing X, Y and Z are what causes the next Trigger to fire; they&#039;ll fly around for a while, get bored, post a rant on a forum and curse your descendants.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;How&#039;&#039; you tell them is up to you. If your mission is a tour of local landmarks, explicit instructions are probably best (&amp;quot;Turn to 170 and fly towards the only hill on that plain&amp;quot;). On other missions, being led around by the nose may not work well so maybe less explicit instructions would be better (&amp;quot;Hey, there they are! They&#039;re OK, so let&#039;s check the next bridge downstream&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In either case, there are some tricks you can use to help out. First is the Mission Compass. This is a big help, particularly to people who don&#039;t know the area, and it can always be switched off by more experienced pilots. You set points on this using [[Function_Reference#Point_Of_Interest_Mission_Object|PointOfInterest]] (POI) objects, and [[Function_Reference#Point Of Interest Activation Action|PointOfInterestActivationActions]] to set which POI is currently active. You get a big, green rotating spike to show where you&#039;re supposed to go next.&lt;br /&gt;
&lt;br /&gt;
That does take the fun out of navigation challenge missions though. Instead of having to follow instructions, ask local towers for advice and read the landscape you just play fly-towards-the-green-arrow for half an hour. On the other hand, people flying a navigation challenge are more likely to get lost. Tricky.&lt;br /&gt;
&lt;br /&gt;
This is where your design skills start to come in. You need the mission compass to help people that have gone wrong, but you don&#039;t want it there all the time. There&#039;s several ways round this, but a couple are popular.&lt;br /&gt;
&lt;br /&gt;
First, you could enclose the whole area inside a huge AreaRectangle attached to a [[Function_Reference#Proximity_Trigger|ProximityTrigger]]. When you leave the rectangle, the trigger calls a [[Function_Reference#Dialog Action|DialogAction]] (&amp;quot;Dude, where are we?&amp;quot;) and then activates an appropriate PointOfInterest, showing where the player should be. Simple, no? They get the &#039;&#039;chance&#039;&#039; to get it right but then a bit of a prod if they need it.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you could do a similar thing with a [[Function_Reference#Timer Trigger|TimerTrigger]]. Start it when they leave the previous point and if they&#039;re more than, say, two minutes late getting to the next one then use the same trick with the [[Function_Reference#Dialog Action|DialogAction]] and PointOfInterestActivationAction.&lt;br /&gt;
&lt;br /&gt;
Lots of handy tips are also available here:&lt;br /&gt;
[http://www.fsinsider.com/developers/Pages/MissionBuildingTips.aspx FS Insider - Mission Building Tips]&lt;br /&gt;
&lt;br /&gt;
=== Logical Structuring ===&lt;br /&gt;
&lt;br /&gt;
A simple mission probably won&#039;t need much structuring but once you&#039;ve got beyond that and started putting together more complex scenarios, it can help to have a written structure.&lt;br /&gt;
Think of it as a screenplay, and follow the same three-stage layout.&lt;br /&gt;
&lt;br /&gt;
The first section is your introduction. You need to get the player&#039;s interest, explain who they are and why they&#039;re there. You use the first bit to get everything set up so that when The Exciting Thing happens, they know why and what to do about it.&lt;br /&gt;
&lt;br /&gt;
In part two, The Exciting Thing happens. It doesn&#039;t matter what it is, but assuming you have some kind of event to which the player is supposed to react, this part details what happens. Once they&#039;ve managed to cope with the situation and get it under control, they move on to...&lt;br /&gt;
&lt;br /&gt;
Part three, the conclusion. Having successfully dealt with the engine fire/squalling brats in the back seats/condor-strike, the player gets to reflect on what they&#039;ve done and enjoy the feeling of success for a little while. You could always throw in a last-minute plot twist of course.&lt;br /&gt;
&lt;br /&gt;
Structuring like this gives you a tidy way of making your mission appear much more complex. You can easily provide different threads, or ways of achieving something, without too much extra effort. Let&#039;s say your Introduction sees the player getting from a bush strip to the head of a particular valley. You start with them following the river, simple enough. Later on, you could add the option to fly across the peaks and save time; as long as they reach the same head of the same valley, the rest of the mission isn&#039;t affected. If they&#039;ve tried the mission before and failed, chances are they&#039;ll decide to try shortcuts anyway. Wouldn&#039;t it feel better if, having decided to cross the ridge instead of fly round, the mission reacts to that by saying &amp;quot;Hey, you&#039;re going over the ridge! A bit risky in this weather but the views will be stunning&amp;quot;? You can issue different Rewards, or maybe even alter how the next section plays out, depending on the path they took.&lt;br /&gt;
&lt;br /&gt;
In short, you can see your mission sections as leading up to choke-points, such as the head of the valley. If you have three sections, each with three different ways of achieving it, that&#039;s nine different ways of flying a single mission.&lt;br /&gt;
&lt;br /&gt;
=== Coding ===&lt;br /&gt;
This, as you might expect, is probably the trickiest bit. You may find it easier to have a big sheet of paper and draw the mission out in pencil before you start coding. That lets you work out how it fits together logically without having to worry about whether or not you&#039;ve got the spelling right.&lt;br /&gt;
&lt;br /&gt;
For example, you know that after you take off you want to have some speech, and then there are three ways of getting from A to B, where the next section starts. OK, so that&#039;s three boxes to draw; &#039;Takeoff&#039;, &#039;Speech&#039; and &#039;At point B&#039;. The speech should happen 30 seconds after takeoff, so note that down next to the Speech box. Then you can draw three lines between &#039;Speech&#039; and &#039;At Point B&#039; to show the three paths, and the first thing to do on each path is disable the other two paths.&lt;br /&gt;
&lt;br /&gt;
Already you&#039;ve got a decent map of what happens in what order, and translating from these into actual mission-system code will be easier.&lt;br /&gt;
&lt;br /&gt;
Read the list of possible Actions and Triggers, to find out what kinds of things you can check for and do. Try and spot a likely match for each of the boxes on your sheet of paper.&lt;br /&gt;
&lt;br /&gt;
To keep the example going, you might have a [[Function_Reference#Property Trigger|PropertyTrigger]] checking &amp;quot;Altitude AGL &amp;gt; 10&amp;quot; to test for takeoff. That would start a 30-second [[Function_Reference#Timer Trigger|TimerTrigger]] using an [[Function_Reference#Object Activation Action|ObjectActivationAction]] which, in turn, would call a [[Function_Reference#Dialog Action|DialogAction]] for your &amp;quot;Speech&amp;quot; box. You would need one Trigger per potential path; they might be set to detect altitude, or heading, or more likely that the player has entered an area. Each of those would need another [[Function_Reference#Dialog Action|DialogAction]] (just to keep the player informed), an [[Function_Reference#Object Activation Action|ObjectActivationAction]] to enable the Trigger that checks &amp;quot;At Point B&amp;quot; and another [[Function_Reference#Object Activation Action|ObjectActivationAction]] to disable the other two paths.&lt;br /&gt;
&lt;br /&gt;
Everyone will have their own style of writing, of course. Feel free to experiment.&lt;br /&gt;
&lt;br /&gt;
=== Code Design ===&lt;br /&gt;
Your first missions will probably be some active [[Function_Reference#Timer Trigger|TimerTrigger]]s and [[Function_Reference#Proximity_Trigger|ProximityTrigger]]s, each with some [[Function_Reference#Dialog Action|DialogAction]]s attached, and a LandingTrigger to finish the mission. This is fine for beginners, but once your missions get larger this easy design style will cause you problems.&lt;br /&gt;
&lt;br /&gt;
It is far easier to test a mission if you know what you expect to happen at a given moment. Sounds obvious, right? Of course you know what&#039;s supposed to happen, you designed and wrote it.&lt;br /&gt;
&lt;br /&gt;
The problem is that when you have lots of active triggers, any of them can fire. That&#039;s what they&#039;re for. They don&#039;t know that they&#039;re not &#039;&#039;supposed&#039;&#039; to fire so that the player that takes a shortcut - or the designer that&#039;s testing the last three minutes of a 45-minute mission - will find that some very wierd things are happening because triggers that are part of a completely different part of the mission are firing.&lt;br /&gt;
&lt;br /&gt;
The design solution is very easy; you only activate the triggers that you need, and you deactivate any that you don&#039;t need. In other words, almost all of your triggers should be &#039;&#039;&#039;de&#039;&#039;&#039;activated by default. Only when you&#039;re ready for them should they be activated.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s consider a simple mission where you&#039;re flying east from A to B to pick up your wife. As you approach B you&#039;re told that the air ambulance has broken down and someone is urgently needed in town C, to the north, to ferry a transplant organ to town B&#039;s airfield. You, of course, arrive in a shining white Cessna to save the day. A nice, straightforward story with only about a dozen triggers to implement. What could possibly go wrong?&lt;br /&gt;
&lt;br /&gt;
I take off from A and notice a motorway (freeway) leading to B and decide to follow that at 100 feet. Two minutes in, and still a long way from B, a timer switches on the altitude check that is supposed to fire just before I land at B to tell me to go to C. &amp;quot;Abort the landing, Sir Pilot! You&#039;re needed!&amp;quot;. Huh? What landing? Okay, off I go to C as instructed. Land, collect heart, take off, fly towards B. Now I hit a set of [[Function_Reference#Proximity_Trigger|ProximityTrigger]]s around town B, intended to fill in some empty time and which should have gone off &#039;&#039;before&#039;&#039; the emergency call, wittering on about my wife&#039;s assault on the January shoe sales. With a human heart destined for a dying child on the passenger seat.&lt;br /&gt;
&lt;br /&gt;
A similar thing would happen if I&#039;d fluffed the landing on a previous attempt and decided to fly straight to C to avoid the uneventful flight to B.&lt;br /&gt;
&lt;br /&gt;
Or what about the person who gets distracted for a few seconds on finals to town B - maybe his wife&#039;s at the door asking for help upstairs with some new shoes - and misses the &#039;divert to town C&#039; message, lands anyway to get told he&#039;s just saved someone&#039;s life because the final landing trigger was on by default? Huh? Whose life? Just how many shoes did she buy? What a dull mission; I took off, got harangued about footwear, landed, and it finished.&lt;br /&gt;
&lt;br /&gt;
Once more with feeling, then. Treat Triggers like lightbulbs; if you&#039;re not using it, switch it off.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
At some point you&#039;ll want to give your mission out to others. They react by flying around like airborne sheep in a hand-grenade factory, and then tell you that your mission sucks. Dude. Some reward for the weeks of work you put in.&lt;br /&gt;
&lt;br /&gt;
You&#039;ve already checked that it all works when it&#039;s flown correctly, that gets done while you&#039;re writing it. Unfortunately, you&#039;re the only person that knows what &#039;correctly&#039; means. Checking that it still works when it&#039;s &#039;&#039;not&#039;&#039; flown correctly is more difficult. You need to make sure that the player gets told when they&#039;ve gone out of bounds, that they&#039;ve been told &#039;&#039;&#039;exactly&#039;&#039;&#039; where they&#039;re supposed to park and not just &#039;near the buildings&#039; (What buildings? Which wall?). What happens when they land on the right runway in the wrong direction, or the at the wrong airport? What happens when they take a shortcut because they&#039;ve flown the mission before, and skip out section 1 completely?&lt;br /&gt;
&lt;br /&gt;
=== Pulling it all together ===&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
=== Distributing ===&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
See these pages for HowTos &amp;amp; Tools used in creating -&lt;br /&gt;
=== Categories ===&lt;br /&gt;
[[Categories]] - Assigning and creating categories.&lt;br /&gt;
&lt;br /&gt;
=== Mission Coding ===&lt;br /&gt;
[[Mission Coding]] - Creating your mission, development process &amp;amp; tips.&lt;br /&gt;
&lt;br /&gt;
=== Rewards ===&lt;br /&gt;
[[Rewards]] - Creation tips.&lt;br /&gt;
&lt;br /&gt;
=== Sounds ===&lt;br /&gt;
[[Sounds]] - Creating dialogue, and sounds, for missions.&lt;br /&gt;
&lt;br /&gt;
=== Artwork ===&lt;br /&gt;
[[Artwork]] - Creating artwork for mission briefings, rewards, etc.&lt;br /&gt;
&lt;br /&gt;
=== Briefing ===&lt;br /&gt;
[[Briefing]] - Creating HTML for mission briefings.&lt;br /&gt;
&lt;br /&gt;
= To Sort =&lt;br /&gt;
These bits probably need modifying and/or relocating to appropriate subsections.&lt;br /&gt;
&lt;br /&gt;
== SDK ==&lt;br /&gt;
[[Object Placement Tool]] - Installing, configuring, &amp;amp; general useage tips.&lt;br /&gt;
&lt;br /&gt;
[[Tools]] placeholder text.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
If you use Rewards, or you want your mission to load a little faster, you must [[Compiling|compile]] them using the [[SDK]]&#039;s command-line tools.&lt;br /&gt;
&lt;br /&gt;
== Function Reference ==&lt;br /&gt;
[[Function Reference|This section]] gives some basic details on the different types of object available to mission writers when writing a mission script.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
Currently there are no available tools to allow debugging of your mission.&lt;br /&gt;
&lt;br /&gt;
However there is a basic form of error reporting built into FSX.&lt;br /&gt;
&lt;br /&gt;
Add the following to your fsx.CFG :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[Debug]&lt;br /&gt;
ReportLoadErrors=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately there are lots of errors that this won&#039;t report. Another way of testing it is [[Compiling]] it; you may get some useful error messages from the compiler.&lt;br /&gt;
&lt;br /&gt;
Sometimes FSX will stop loading your mission completely. There are various reasons for this, but it&#039;s usually because an object that should be attached to another isn&#039;t, or vice-versa. A very quick way of detecting this is to add an activated TimerTrigger, and set &amp;lt;tt&amp;gt;OnScreenTimer&amp;lt;/tt&amp;gt; to True. This makes a small timer appear at the top of the screen as soon as the mission is loaded. If the timer is there, the mission is running. If not, FSX hasn&#039;t loaded it because of some kind of structural problem.&lt;br /&gt;
&lt;br /&gt;
Another simple way of adding some debugging information is to add DialogActions to key triggers that don&#039;t have one already. This can save you lots of time; two temporary DialogActions saying &amp;quot;LandingTrigger A On&amp;quot; and &amp;quot;LandingTrigger B On&amp;quot; might save you several minutes&#039; flying time on every test. If you make sure your temporary DialogActions have sensible names (i.e. they all start with &#039;Debug&#039; or &#039;Temp&#039;) they&#039;re easy to remove once you no longer need them.&lt;br /&gt;
&lt;br /&gt;
[[category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3398</id>
		<title>Missions - Creation</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3398"/>
		<updated>2008-01-07T15:09:45Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: /* Function Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to create missions, a supplement to the SDK.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Creating a mission is a complex task involving a diverse use of tools &amp;amp; skills. Getting your first mission going, even following the SDK documentation, is likely to cause you some headaches.&lt;br /&gt;
&lt;br /&gt;
Still here? Good. Once you &#039;&#039;do&#039;&#039; have that first one running, the sky&#039;s your limit. That basic set of rules and files that make up a mission are always the same so once you&#039;ve got those sorted, it&#039;s just a case of coming up with an idea and writing it.&lt;br /&gt;
&lt;br /&gt;
At it&#039;s simplest, a mission is just a scripted set of events that tell some kind of story. It may be dramatic - mountain rescue, failing aircraft, poor weather. It could just as easily be a simple flight from A to B with you pointing out areas of interest along the way, or a completely abstract challenge like finding out how many times you can touch-and-go in a 747 in five minutes.&lt;br /&gt;
&lt;br /&gt;
Technically speaking, there are two main classes of &#039;things&#039; in a mission; Actions and Triggers. An Action makes something happen, and a Trigger checks to see if something&#039;s happened and calls an Action if it has. By stringing together Actions and Triggers, you tell your story.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need to prepare some sound files for the mission speech, some images to appear in FSX and some HTML with the mission briefing. All of these apart from the speech can be &#039;borrowed&#039; from the standard missions and edited so even if you&#039;re not an HTML whiz, it&#039;s certainly possible to do. And if you get really stuck you could always try asking in the [http://www.fsdeveloper.com/forum/forumdisplay.php?f=59 forum].&lt;br /&gt;
&lt;br /&gt;
== The Basics ==&lt;br /&gt;
&lt;br /&gt;
There are some simple things you will need before you start, and while you&#039;re working towards your first mission.&lt;br /&gt;
&lt;br /&gt;
=== The Plot ===&lt;br /&gt;
First and foremost, you need an idea. If this is your first mission, it&#039;s probably better to have a &#039;&#039;simple&#039;&#039; idea; re-writing [http://www.imdb.com/title/tt0064505/ The Italian Job] with Microlights would be fun, but you&#039;ll go insane before it sees the light of day. Start with something with only one or two things to do:&lt;br /&gt;
&lt;br /&gt;
# Fly above 1000 feet for three minutes&lt;br /&gt;
# Land at a specific airport&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve got this going you&#039;ll have a much better idea of how a mission hangs together and relocating it to Turin with Red, White and Blue [http://www.aircreation.net/ AirCreation] Trikes will be one step closer.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
You can safely assume that the player will get things wrong. You might be able to fly your mission from beginning to end but other people don&#039;t know what you were thinking about when you wrote it.&lt;br /&gt;
&lt;br /&gt;
Messages which seem perfectly clear to you might not be as useful as you think. Some speech saying &amp;quot;Now let&#039;s land over there&amp;quot; is fine, surely? Well, maybe. But what if they&#039;ve got a little lost, or distracted, and &#039;over there&#039; is behind them as they circle, trying to spot a landmark?&lt;br /&gt;
&lt;br /&gt;
If there&#039;s something you want the player to do, you need to tell them. They may not know that in the case of, say, being hopelessly lost they&#039;re required by law to do X, Y and Z. That&#039;s particularly important if doing X, Y and Z are what causes the next Trigger to fire; they&#039;ll fly around for a while, get bored, post a rant on a forum and curse your descendants.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;How&#039;&#039; you tell them is up to you. If your mission is a tour of local landmarks, explicit instructions are probably best (&amp;quot;Turn to 170 and fly towards the only hill on that plain&amp;quot;). On other missions, being led around by the nose may not work well so maybe less explicit instructions would be better (&amp;quot;Hey, there they are! They&#039;re OK, so let&#039;s check the next bridge downstream&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In either case, there are some tricks you can use to help out. First is the Mission Compass. This is a big help, particularly to people who don&#039;t know the area, and it can always be switched off by more experienced pilots. You set points on this using [[Function_Reference#Point_Of_Interest_Mission_Object|PointOfInterest]] (POI) objects, and [[Function_Reference#Point Of Interest Activation Action|PointOfInterestActivationActions]] to set which POI is currently active. You get a big, green rotating spike to show where you&#039;re supposed to go next.&lt;br /&gt;
&lt;br /&gt;
That does take the fun out of navigation challenge missions though. Instead of having to follow instructions, ask local towers for advice and read the landscape you just play fly-towards-the-green-arrow for half an hour. On the other hand, people flying a navigation challenge are more likely to get lost. Tricky.&lt;br /&gt;
&lt;br /&gt;
This is where your design skills start to come in. You need the mission compass to help people that have gone wrong, but you don&#039;t want it there all the time. There&#039;s several ways round this, but a couple are popular.&lt;br /&gt;
&lt;br /&gt;
First, you could enclose the whole area inside a huge AreaRectangle attached to a [[Function_Reference#Proximity_Trigger|ProximityTrigger]]. When you leave the rectangle, the trigger calls a [[Function_Reference#Dialog Action|DialogAction]] (&amp;quot;Dude, where are we?&amp;quot;) and then activates an appropriate PointOfInterest, showing where the player should be. Simple, no? They get the &#039;&#039;chance&#039;&#039; to get it right but then a bit of a prod if they need it.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you could do a similar thing with a [[Function_Reference#Timer Trigger|TimerTrigger]]. Start it when they leave the previous point and if they&#039;re more than, say, two minutes late getting to the next one then use the same trick with the [[Function_Reference#Dialog Action|DialogAction]] and PointOfInterestActivationAction.&lt;br /&gt;
&lt;br /&gt;
Lots of handy tips are also available here:&lt;br /&gt;
[http://www.fsinsider.com/developers/Pages/MissionBuildingTips.aspx FS Insider - Mission Building Tips]&lt;br /&gt;
&lt;br /&gt;
=== Logical Structuring ===&lt;br /&gt;
&lt;br /&gt;
A simple mission probably won&#039;t need much structuring but once you&#039;ve got beyond that and started putting together more complex scenarios, it can help to have a written structure.&lt;br /&gt;
Think of it as a screenplay, and follow the same three-stage layout.&lt;br /&gt;
&lt;br /&gt;
The first section is your introduction. You need to get the player&#039;s interest, explain who they are and why they&#039;re there. You use the first bit to get everything set up so that when The Exciting Thing happens, they know why and what to do about it.&lt;br /&gt;
&lt;br /&gt;
In part two, The Exciting Thing happens. It doesn&#039;t matter what it is, but assuming you have some kind of event to which the player is supposed to react, this part details what happens. Once they&#039;ve managed to cope with the situation and get it under control, they move on to...&lt;br /&gt;
&lt;br /&gt;
Part three, the conclusion. Having successfully dealt with the engine fire/squalling brats in the back seats/condor-strike, the player gets to reflect on what they&#039;ve done and enjoy the feeling of success for a little while. You could always throw in a last-minute plot twist of course.&lt;br /&gt;
&lt;br /&gt;
Structuring like this gives you a tidy way of making your mission appear much more complex. You can easily provide different threads, or ways of achieving something, without too much extra effort. Let&#039;s say your Introduction sees the player getting from a bush strip to the head of a particular valley. You start with them following the river, simple enough. Later on, you could add the option to fly across the peaks and save time; as long as they reach the same head of the same valley, the rest of the mission isn&#039;t affected. If they&#039;ve tried the mission before and failed, chances are they&#039;ll decide to try shortcuts anyway. Wouldn&#039;t it feel better if, having decided to cross the ridge instead of fly round, the mission reacts to that by saying &amp;quot;Hey, you&#039;re going over the ridge! A bit risky in this weather but the views will be stunning&amp;quot;? You can issue different Rewards, or maybe even alter how the next section plays out, depending on the path they took.&lt;br /&gt;
&lt;br /&gt;
In short, you can see your mission sections as leading up to choke-points, such as the head of the valley. If you have three sections, each with three different ways of achieving it, that&#039;s nine different ways of flying a single mission.&lt;br /&gt;
&lt;br /&gt;
=== Coding ===&lt;br /&gt;
This, as you might expect, is probably the trickiest bit. You may find it easier to have a big sheet of paper and draw the mission out in pencil before you start coding. That lets you work out how it fits together logically without having to worry about whether or not you&#039;ve got the spelling right.&lt;br /&gt;
&lt;br /&gt;
For example, you know that after you take off you want to have some speech, and then there are three ways of getting from A to B, where the next section starts. OK, so that&#039;s three boxes to draw; &#039;Takeoff&#039;, &#039;Speech&#039; and &#039;At point B&#039;. The speech should happen 30 seconds after takeoff, so note that down next to the Speech box. Then you can draw three lines between &#039;Speech&#039; and &#039;At Point B&#039; to show the three paths, and the first thing to do on each path is disable the other two paths.&lt;br /&gt;
&lt;br /&gt;
Already you&#039;ve got a decent map of what happens in what order, and translating from these into actual mission-system code will be easier.&lt;br /&gt;
&lt;br /&gt;
Read the list of possible Actions and Triggers, to find out what kinds of things you can check for and do. Try and spot a likely match for each of the boxes on your sheet of paper.&lt;br /&gt;
&lt;br /&gt;
To keep the example going, you might have a [[Function_Reference#Property Trigger|PropertyTrigger]] checking &amp;quot;Altitude AGL &amp;gt; 10&amp;quot; to test for takeoff. That would start a 30-second [[Function_Reference#Timer Trigger|TimerTrigger]] using an [[Function_Reference#Object Activation Action|ObjectActivationAction]] which, in turn, would call a [[Function_Reference#Dialog Action|DialogAction]] for your &amp;quot;Speech&amp;quot; box. You would need one Trigger per potential path; they might be set to detect altitude, or heading, or more likely that the player has entered an area. Each of those would need another [[Function_Reference#Dialog Action|DialogAction]] (just to keep the player informed), an [[Function_Reference#Object Activation Action|ObjectActivationAction]] to enable the Trigger that checks &amp;quot;At Point B&amp;quot; and another [[Function_Reference#Object Activation Action|ObjectActivationAction]] to disable the other two paths.&lt;br /&gt;
&lt;br /&gt;
Everyone will have their own style of writing, of course. Feel free to experiment.&lt;br /&gt;
&lt;br /&gt;
=== Code Design ===&lt;br /&gt;
Your first missions will probably be some active [[Function_Reference#Timer Trigger|TimerTrigger]]s and [[Function_Reference#Proximity_Trigger|ProximityTrigger]]s, each with some [[Function_Reference#Dialog Action|DialogAction]]s attached, and a LandingTrigger to finish the mission. This is fine for beginners, but once your missions get larger this easy design style will cause you problems.&lt;br /&gt;
&lt;br /&gt;
It is far easier to test a mission if you know what you expect to happen at a given moment. Sounds obvious, right? Of course you know what&#039;s supposed to happen, you designed and wrote it.&lt;br /&gt;
&lt;br /&gt;
The problem is that when you have lots of active triggers, any of them can fire. That&#039;s what they&#039;re for. They don&#039;t know that they&#039;re not &#039;&#039;supposed&#039;&#039; to fire so that the player that takes a shortcut - or the designer that&#039;s testing the last three minutes of a 45-minute mission - will find that some very wierd things are happening because triggers that are part of a completely different part of the mission are firing.&lt;br /&gt;
&lt;br /&gt;
The design solution is very easy; you only activate the triggers that you need, and you deactivate any that you don&#039;t need. In other words, almost all of your triggers should be &#039;&#039;&#039;de&#039;&#039;&#039;activated by default. Only when you&#039;re ready for them should they be activated.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s consider a simple mission where you&#039;re flying east from A to B to pick up your wife. As you approach B you&#039;re told that the air ambulance has broken down and someone is urgently needed in town C, to the north, to ferry a transplant organ to town B&#039;s airfield. You, of course, arrive in a shining white Cessna to save the day. A nice, straightforward story with only about a dozen triggers to implement. What could possibly go wrong?&lt;br /&gt;
&lt;br /&gt;
I take off from A and notice a motorway (freeway) leading to B and decide to follow that at 100 feet. Two minutes in, and still a long way from B, a timer switches on the altitude check that is supposed to fire just before I land at B to tell me to go to C. &amp;quot;Abort the landing, Sir Pilot! You&#039;re needed!&amp;quot;. Huh? What landing? Okay, off I go to C as instructed. Land, collect heart, take off, fly towards B. Now I hit a set of [[Function_Reference#Proximity_Trigger|ProximityTrigger]]s around town B, intended to fill in some empty time and which should have gone off &#039;&#039;before&#039;&#039; the emergency call, wittering on about my wife&#039;s assault on the January shoe sales. With a human heart destined for a dying child on the passenger seat.&lt;br /&gt;
&lt;br /&gt;
A similar thing would happen if I&#039;d fluffed the landing on a previous attempt and decided to fly straight to C to avoid the uneventful flight to B.&lt;br /&gt;
&lt;br /&gt;
Or what about the person who gets distracted for a few seconds on finals to town B - maybe his wife&#039;s at the door asking for help upstairs with some new shoes - and misses the &#039;divert to town C&#039; message, lands anyway to get told he&#039;s just saved someone&#039;s life because the final landing trigger was on by default? Huh? Whose life? Just how many shoes did she buy? What a dull mission; I took off, got harangued about footwear, landed, and it finished.&lt;br /&gt;
&lt;br /&gt;
Once more with feeling, then. Treat Triggers like lightbulbs; if you&#039;re not using it, switch it off.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
At some point you&#039;ll want to give your mission out to others. They react by flying around like airborne sheep in a hand-grenade factory, and then tell you that your mission sucks. Dude. Some reward for the weeks of work you put in.&lt;br /&gt;
&lt;br /&gt;
You&#039;ve already checked that it all works when it&#039;s flown correctly, that gets done while you&#039;re writing it. Unfortunately, you&#039;re the only person that knows what &#039;correctly&#039; means. Checking that it still works when it&#039;s &#039;&#039;not&#039;&#039; flown correctly is more difficult. You need to make sure that the player gets told when they&#039;ve gone out of bounds, that they&#039;ve been told &#039;&#039;&#039;exactly&#039;&#039;&#039; where they&#039;re supposed to park and not just &#039;near the buildings&#039; (What buildings? Which wall?). What happens when they land on the right runway in the wrong direction, or the at the wrong airport? What happens when they take a shortcut because they&#039;ve flown the mission before, and skip out section 1 completely?&lt;br /&gt;
&lt;br /&gt;
=== Pulling it all together ===&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
=== Distributing ===&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
See these pages for HowTos &amp;amp; Tools used in creating -&lt;br /&gt;
=== Categories ===&lt;br /&gt;
[[Categories]] - Assigning and creating categories.&lt;br /&gt;
&lt;br /&gt;
=== Mission Coding ===&lt;br /&gt;
[[Mission Coding]] - Creating your mission, development process &amp;amp; tips.&lt;br /&gt;
&lt;br /&gt;
=== Rewards ===&lt;br /&gt;
[[Rewards]] - Creation tips.&lt;br /&gt;
&lt;br /&gt;
=== Sounds ===&lt;br /&gt;
[[Sounds]] - Creating dialogue, and sounds, for missions.&lt;br /&gt;
&lt;br /&gt;
=== Artwork ===&lt;br /&gt;
[[Artwork]] - Creating artwork for mission briefings, rewards, etc.&lt;br /&gt;
&lt;br /&gt;
=== Briefing ===&lt;br /&gt;
[[Briefing]] - Creating HTML for mission briefings.&lt;br /&gt;
&lt;br /&gt;
= To Sort =&lt;br /&gt;
These bits probably need modifying and/or relocating to appropriate subsections.&lt;br /&gt;
&lt;br /&gt;
== SDK ==&lt;br /&gt;
[[Object Placement Tool]] - Installing, configuring, &amp;amp; general useage tips.&lt;br /&gt;
&lt;br /&gt;
[[Tools]] placeholder text.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
[[Compiling]] - &lt;br /&gt;
&lt;br /&gt;
== Function Reference ==&lt;br /&gt;
[[Function Reference|This section]] gives some basic details on the different types of object available to mission writers when writing a mission script.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
Currently there are no available tools to allow debugging of your mission.&lt;br /&gt;
&lt;br /&gt;
However there is a basic form of error reporting built into FSX.&lt;br /&gt;
&lt;br /&gt;
Add the following to your fsx.CFG :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[Debug]&lt;br /&gt;
ReportLoadErrors=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately there are lots of errors that this won&#039;t report. Another way of testing it is [[Compiling]] it; you may get some useful error messages from the compiler.&lt;br /&gt;
&lt;br /&gt;
Sometimes FSX will stop loading your mission completely. There are various reasons for this, but it&#039;s usually because an object that should be attached to another isn&#039;t, or vice-versa. A very quick way of detecting this is to add an activated TimerTrigger, and set &amp;lt;tt&amp;gt;OnScreenTimer&amp;lt;/tt&amp;gt; to True. This makes a small timer appear at the top of the screen as soon as the mission is loaded. If the timer is there, the mission is running. If not, FSX hasn&#039;t loaded it because of some kind of structural problem.&lt;br /&gt;
&lt;br /&gt;
Another simple way of adding some debugging information is to add DialogActions to key triggers that don&#039;t have one already. This can save you lots of time; two temporary DialogActions saying &amp;quot;LandingTrigger A On&amp;quot; and &amp;quot;LandingTrigger B On&amp;quot; might save you several minutes&#039; flying time on every test. If you make sure your temporary DialogActions have sensible names (i.e. they all start with &#039;Debug&#039; or &#039;Temp&#039;) they&#039;re easy to remove once you no longer need them.&lt;br /&gt;
&lt;br /&gt;
[[category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3397</id>
		<title>Missions - Creation</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3397"/>
		<updated>2008-01-07T14:57:23Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to create missions, a supplement to the SDK.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Creating a mission is a complex task involving a diverse use of tools &amp;amp; skills. Getting your first mission going, even following the SDK documentation, is likely to cause you some headaches.&lt;br /&gt;
&lt;br /&gt;
Still here? Good. Once you &#039;&#039;do&#039;&#039; have that first one running, the sky&#039;s your limit. That basic set of rules and files that make up a mission are always the same so once you&#039;ve got those sorted, it&#039;s just a case of coming up with an idea and writing it.&lt;br /&gt;
&lt;br /&gt;
At it&#039;s simplest, a mission is just a scripted set of events that tell some kind of story. It may be dramatic - mountain rescue, failing aircraft, poor weather. It could just as easily be a simple flight from A to B with you pointing out areas of interest along the way, or a completely abstract challenge like finding out how many times you can touch-and-go in a 747 in five minutes.&lt;br /&gt;
&lt;br /&gt;
Technically speaking, there are two main classes of &#039;things&#039; in a mission; Actions and Triggers. An Action makes something happen, and a Trigger checks to see if something&#039;s happened and calls an Action if it has. By stringing together Actions and Triggers, you tell your story.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need to prepare some sound files for the mission speech, some images to appear in FSX and some HTML with the mission briefing. All of these apart from the speech can be &#039;borrowed&#039; from the standard missions and edited so even if you&#039;re not an HTML whiz, it&#039;s certainly possible to do. And if you get really stuck you could always try asking in the [http://www.fsdeveloper.com/forum/forumdisplay.php?f=59 forum].&lt;br /&gt;
&lt;br /&gt;
== The Basics ==&lt;br /&gt;
&lt;br /&gt;
There are some simple things you will need before you start, and while you&#039;re working towards your first mission.&lt;br /&gt;
&lt;br /&gt;
=== The Plot ===&lt;br /&gt;
First and foremost, you need an idea. If this is your first mission, it&#039;s probably better to have a &#039;&#039;simple&#039;&#039; idea; re-writing [http://www.imdb.com/title/tt0064505/ The Italian Job] with Microlights would be fun, but you&#039;ll go insane before it sees the light of day. Start with something with only one or two things to do:&lt;br /&gt;
&lt;br /&gt;
# Fly above 1000 feet for three minutes&lt;br /&gt;
# Land at a specific airport&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve got this going you&#039;ll have a much better idea of how a mission hangs together and relocating it to Turin with Red, White and Blue [http://www.aircreation.net/ AirCreation] Trikes will be one step closer.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
You can safely assume that the player will get things wrong. You might be able to fly your mission from beginning to end but other people don&#039;t know what you were thinking about when you wrote it.&lt;br /&gt;
&lt;br /&gt;
Messages which seem perfectly clear to you might not be as useful as you think. Some speech saying &amp;quot;Now let&#039;s land over there&amp;quot; is fine, surely? Well, maybe. But what if they&#039;ve got a little lost, or distracted, and &#039;over there&#039; is behind them as they circle, trying to spot a landmark?&lt;br /&gt;
&lt;br /&gt;
If there&#039;s something you want the player to do, you need to tell them. They may not know that in the case of, say, being hopelessly lost they&#039;re required by law to do X, Y and Z. That&#039;s particularly important if doing X, Y and Z are what causes the next Trigger to fire; they&#039;ll fly around for a while, get bored, post a rant on a forum and curse your descendants.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;How&#039;&#039; you tell them is up to you. If your mission is a tour of local landmarks, explicit instructions are probably best (&amp;quot;Turn to 170 and fly towards the only hill on that plain&amp;quot;). On other missions, being led around by the nose may not work well so maybe less explicit instructions would be better (&amp;quot;Hey, there they are! They&#039;re OK, so let&#039;s check the next bridge downstream&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In either case, there are some tricks you can use to help out. First is the Mission Compass. This is a big help, particularly to people who don&#039;t know the area, and it can always be switched off by more experienced pilots. You set points on this using [[Function_Reference#Point_Of_Interest_Mission_Object|PointOfInterest]] (POI) objects, and [[Function_Reference#Point Of Interest Activation Action|PointOfInterestActivationActions]] to set which POI is currently active. You get a big, green rotating spike to show where you&#039;re supposed to go next.&lt;br /&gt;
&lt;br /&gt;
That does take the fun out of navigation challenge missions though. Instead of having to follow instructions, ask local towers for advice and read the landscape you just play fly-towards-the-green-arrow for half an hour. On the other hand, people flying a navigation challenge are more likely to get lost. Tricky.&lt;br /&gt;
&lt;br /&gt;
This is where your design skills start to come in. You need the mission compass to help people that have gone wrong, but you don&#039;t want it there all the time. There&#039;s several ways round this, but a couple are popular.&lt;br /&gt;
&lt;br /&gt;
First, you could enclose the whole area inside a huge AreaRectangle attached to a [[Function_Reference#Proximity_Trigger|ProximityTrigger]]. When you leave the rectangle, the trigger calls a [[Function_Reference#Dialog Action|DialogAction]] (&amp;quot;Dude, where are we?&amp;quot;) and then activates an appropriate PointOfInterest, showing where the player should be. Simple, no? They get the &#039;&#039;chance&#039;&#039; to get it right but then a bit of a prod if they need it.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you could do a similar thing with a [[Function_Reference#Timer Trigger|TimerTrigger]]. Start it when they leave the previous point and if they&#039;re more than, say, two minutes late getting to the next one then use the same trick with the [[Function_Reference#Dialog Action|DialogAction]] and PointOfInterestActivationAction.&lt;br /&gt;
&lt;br /&gt;
Lots of handy tips are also available here:&lt;br /&gt;
[http://www.fsinsider.com/developers/Pages/MissionBuildingTips.aspx FS Insider - Mission Building Tips]&lt;br /&gt;
&lt;br /&gt;
=== Logical Structuring ===&lt;br /&gt;
&lt;br /&gt;
A simple mission probably won&#039;t need much structuring but once you&#039;ve got beyond that and started putting together more complex scenarios, it can help to have a written structure.&lt;br /&gt;
Think of it as a screenplay, and follow the same three-stage layout.&lt;br /&gt;
&lt;br /&gt;
The first section is your introduction. You need to get the player&#039;s interest, explain who they are and why they&#039;re there. You use the first bit to get everything set up so that when The Exciting Thing happens, they know why and what to do about it.&lt;br /&gt;
&lt;br /&gt;
In part two, The Exciting Thing happens. It doesn&#039;t matter what it is, but assuming you have some kind of event to which the player is supposed to react, this part details what happens. Once they&#039;ve managed to cope with the situation and get it under control, they move on to...&lt;br /&gt;
&lt;br /&gt;
Part three, the conclusion. Having successfully dealt with the engine fire/squalling brats in the back seats/condor-strike, the player gets to reflect on what they&#039;ve done and enjoy the feeling of success for a little while. You could always throw in a last-minute plot twist of course.&lt;br /&gt;
&lt;br /&gt;
Structuring like this gives you a tidy way of making your mission appear much more complex. You can easily provide different threads, or ways of achieving something, without too much extra effort. Let&#039;s say your Introduction sees the player getting from a bush strip to the head of a particular valley. You start with them following the river, simple enough. Later on, you could add the option to fly across the peaks and save time; as long as they reach the same head of the same valley, the rest of the mission isn&#039;t affected. If they&#039;ve tried the mission before and failed, chances are they&#039;ll decide to try shortcuts anyway. Wouldn&#039;t it feel better if, having decided to cross the ridge instead of fly round, the mission reacts to that by saying &amp;quot;Hey, you&#039;re going over the ridge! A bit risky in this weather but the views will be stunning&amp;quot;? You can issue different Rewards, or maybe even alter how the next section plays out, depending on the path they took.&lt;br /&gt;
&lt;br /&gt;
In short, you can see your mission sections as leading up to choke-points, such as the head of the valley. If you have three sections, each with three different ways of achieving it, that&#039;s nine different ways of flying a single mission.&lt;br /&gt;
&lt;br /&gt;
=== Coding ===&lt;br /&gt;
This, as you might expect, is probably the trickiest bit. You may find it easier to have a big sheet of paper and draw the mission out in pencil before you start coding. That lets you work out how it fits together logically without having to worry about whether or not you&#039;ve got the spelling right.&lt;br /&gt;
&lt;br /&gt;
For example, you know that after you take off you want to have some speech, and then there are three ways of getting from A to B, where the next section starts. OK, so that&#039;s three boxes to draw; &#039;Takeoff&#039;, &#039;Speech&#039; and &#039;At point B&#039;. The speech should happen 30 seconds after takeoff, so note that down next to the Speech box. Then you can draw three lines between &#039;Speech&#039; and &#039;At Point B&#039; to show the three paths, and the first thing to do on each path is disable the other two paths.&lt;br /&gt;
&lt;br /&gt;
Already you&#039;ve got a decent map of what happens in what order, and translating from these into actual mission-system code will be easier.&lt;br /&gt;
&lt;br /&gt;
Read the list of possible Actions and Triggers, to find out what kinds of things you can check for and do. Try and spot a likely match for each of the boxes on your sheet of paper.&lt;br /&gt;
&lt;br /&gt;
To keep the example going, you might have a [[Function_Reference#Property Trigger|PropertyTrigger]] checking &amp;quot;Altitude AGL &amp;gt; 10&amp;quot; to test for takeoff. That would start a 30-second [[Function_Reference#Timer Trigger|TimerTrigger]] using an [[Function_Reference#Object Activation Action|ObjectActivationAction]] which, in turn, would call a [[Function_Reference#Dialog Action|DialogAction]] for your &amp;quot;Speech&amp;quot; box. You would need one Trigger per potential path; they might be set to detect altitude, or heading, or more likely that the player has entered an area. Each of those would need another [[Function_Reference#Dialog Action|DialogAction]] (just to keep the player informed), an [[Function_Reference#Object Activation Action|ObjectActivationAction]] to enable the Trigger that checks &amp;quot;At Point B&amp;quot; and another [[Function_Reference#Object Activation Action|ObjectActivationAction]] to disable the other two paths.&lt;br /&gt;
&lt;br /&gt;
Everyone will have their own style of writing, of course. Feel free to experiment.&lt;br /&gt;
&lt;br /&gt;
=== Code Design ===&lt;br /&gt;
Your first missions will probably be some active [[Function_Reference#Timer Trigger|TimerTrigger]]s and [[Function_Reference#Proximity_Trigger|ProximityTrigger]]s, each with some [[Function_Reference#Dialog Action|DialogAction]]s attached, and a LandingTrigger to finish the mission. This is fine for beginners, but once your missions get larger this easy design style will cause you problems.&lt;br /&gt;
&lt;br /&gt;
It is far easier to test a mission if you know what you expect to happen at a given moment. Sounds obvious, right? Of course you know what&#039;s supposed to happen, you designed and wrote it.&lt;br /&gt;
&lt;br /&gt;
The problem is that when you have lots of active triggers, any of them can fire. That&#039;s what they&#039;re for. They don&#039;t know that they&#039;re not &#039;&#039;supposed&#039;&#039; to fire so that the player that takes a shortcut - or the designer that&#039;s testing the last three minutes of a 45-minute mission - will find that some very wierd things are happening because triggers that are part of a completely different part of the mission are firing.&lt;br /&gt;
&lt;br /&gt;
The design solution is very easy; you only activate the triggers that you need, and you deactivate any that you don&#039;t need. In other words, almost all of your triggers should be &#039;&#039;&#039;de&#039;&#039;&#039;activated by default. Only when you&#039;re ready for them should they be activated.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s consider a simple mission where you&#039;re flying east from A to B to pick up your wife. As you approach B you&#039;re told that the air ambulance has broken down and someone is urgently needed in town C, to the north, to ferry a transplant organ to town B&#039;s airfield. You, of course, arrive in a shining white Cessna to save the day. A nice, straightforward story with only about a dozen triggers to implement. What could possibly go wrong?&lt;br /&gt;
&lt;br /&gt;
I take off from A and notice a motorway (freeway) leading to B and decide to follow that at 100 feet. Two minutes in, and still a long way from B, a timer switches on the altitude check that is supposed to fire just before I land at B to tell me to go to C. &amp;quot;Abort the landing, Sir Pilot! You&#039;re needed!&amp;quot;. Huh? What landing? Okay, off I go to C as instructed. Land, collect heart, take off, fly towards B. Now I hit a set of [[Function_Reference#Proximity_Trigger|ProximityTrigger]]s around town B, intended to fill in some empty time and which should have gone off &#039;&#039;before&#039;&#039; the emergency call, wittering on about my wife&#039;s assault on the January shoe sales. With a human heart destined for a dying child on the passenger seat.&lt;br /&gt;
&lt;br /&gt;
A similar thing would happen if I&#039;d fluffed the landing on a previous attempt and decided to fly straight to C to avoid the uneventful flight to B.&lt;br /&gt;
&lt;br /&gt;
Or what about the person who gets distracted for a few seconds on finals to town B - maybe his wife&#039;s at the door asking for help upstairs with some new shoes - and misses the &#039;divert to town C&#039; message, lands anyway to get told he&#039;s just saved someone&#039;s life because the final landing trigger was on by default? Huh? Whose life? Just how many shoes did she buy? What a dull mission; I took off, got harangued about footwear, landed, and it finished.&lt;br /&gt;
&lt;br /&gt;
Once more with feeling, then. Treat Triggers like lightbulbs; if you&#039;re not using it, switch it off.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
At some point you&#039;ll want to give your mission out to others. They react by flying around like airborne sheep in a hand-grenade factory, and then tell you that your mission sucks. Dude. Some reward for the weeks of work you put in.&lt;br /&gt;
&lt;br /&gt;
You&#039;ve already checked that it all works when it&#039;s flown correctly, that gets done while you&#039;re writing it. Unfortunately, you&#039;re the only person that knows what &#039;correctly&#039; means. Checking that it still works when it&#039;s &#039;&#039;not&#039;&#039; flown correctly is more difficult. You need to make sure that the player gets told when they&#039;ve gone out of bounds, that they&#039;ve been told &#039;&#039;&#039;exactly&#039;&#039;&#039; where they&#039;re supposed to park and not just &#039;near the buildings&#039; (What buildings? Which wall?). What happens when they land on the right runway in the wrong direction, or the at the wrong airport? What happens when they take a shortcut because they&#039;ve flown the mission before, and skip out section 1 completely?&lt;br /&gt;
&lt;br /&gt;
=== Pulling it all together ===&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
=== Distributing ===&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
See these pages for HowTos &amp;amp; Tools used in creating -&lt;br /&gt;
=== Categories ===&lt;br /&gt;
[[Categories]] - Assigning and creating categories.&lt;br /&gt;
&lt;br /&gt;
=== Mission Coding ===&lt;br /&gt;
[[Mission Coding]] - Creating your mission, development process &amp;amp; tips.&lt;br /&gt;
&lt;br /&gt;
=== Rewards ===&lt;br /&gt;
[[Rewards]] - Creation tips.&lt;br /&gt;
&lt;br /&gt;
=== Sounds ===&lt;br /&gt;
[[Sounds]] - Creating dialogue, and sounds, for missions.&lt;br /&gt;
&lt;br /&gt;
=== Artwork ===&lt;br /&gt;
[[Artwork]] - Creating artwork for mission briefings, rewards, etc.&lt;br /&gt;
&lt;br /&gt;
=== Briefing ===&lt;br /&gt;
[[Briefing]] - Creating HTML for mission briefings.&lt;br /&gt;
&lt;br /&gt;
= To Sort =&lt;br /&gt;
These bits probably need modifying and/or relocating to appropriate subsections.&lt;br /&gt;
&lt;br /&gt;
== SDK ==&lt;br /&gt;
[[Object Placement Tool]] - Installing, configuring, &amp;amp; general useage tips.&lt;br /&gt;
&lt;br /&gt;
[[Tools]] placeholder text.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
[[Compiling]] - &lt;br /&gt;
&lt;br /&gt;
== Function Reference ==&lt;br /&gt;
[[Function Reference]] with example code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
Currently there are no available tools to allow debugging of your mission.&lt;br /&gt;
&lt;br /&gt;
However there is a basic form of error reporting built into FSX.&lt;br /&gt;
&lt;br /&gt;
Add the following to your fsx.CFG :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[Debug]&lt;br /&gt;
ReportLoadErrors=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately there are lots of errors that this won&#039;t report. Another way of testing it is [[Compiling]] it; you may get some useful error messages from the compiler.&lt;br /&gt;
&lt;br /&gt;
Sometimes FSX will stop loading your mission completely. There are various reasons for this, but it&#039;s usually because an object that should be attached to another isn&#039;t, or vice-versa. A very quick way of detecting this is to add an activated TimerTrigger, and set &amp;lt;tt&amp;gt;OnScreenTimer&amp;lt;/tt&amp;gt; to True. This makes a small timer appear at the top of the screen as soon as the mission is loaded. If the timer is there, the mission is running. If not, FSX hasn&#039;t loaded it because of some kind of structural problem.&lt;br /&gt;
&lt;br /&gt;
Another simple way of adding some debugging information is to add DialogActions to key triggers that don&#039;t have one already. This can save you lots of time; two temporary DialogActions saying &amp;quot;LandingTrigger A On&amp;quot; and &amp;quot;LandingTrigger B On&amp;quot; might save you several minutes&#039; flying time on every test. If you make sure your temporary DialogActions have sensible names (i.e. they all start with &#039;Debug&#039; or &#039;Temp&#039;) they&#039;re easy to remove once you no longer need them.&lt;br /&gt;
&lt;br /&gt;
[[category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Function_Reference&amp;diff=3396</id>
		<title>Missions - Function Reference</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Function_Reference&amp;diff=3396"/>
		<updated>2008-01-07T14:39:02Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: /* Object Activation Action  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Mission Object Reference ]]&lt;br /&gt;
&lt;br /&gt;
All of the objects that are available to use in a mission are described in the [[SDK#FSX|SDK]] documentation. Some notes, exceptions and gotchas are listed here.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Actions ]] =&lt;br /&gt;
Actions are what makes things happen in a mission. There are lots of different actions you can use. An Action only gets used when it is called from a [[#Triggers|Trigger]].&lt;br /&gt;
&lt;br /&gt;
== [[Activate Waypoints Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Adjust Payload Action ]] ==&lt;br /&gt;
This allows you to change the player&#039;s payload at a certain point in their aircraft. The payload station number can be found in the corresponding &amp;lt;code&amp;gt;aircraft.cfg&amp;lt;/code&amp;gt; file for the player&#039;s aircraft, in the &amp;lt;code&amp;gt;[WEIGHT_AND_BALANCE]&amp;lt;/code&amp;gt; section.&lt;br /&gt;
&lt;br /&gt;
For example, try using a combination of [[#Random Action]]s, [[#Timer Trigger]]s and AdjustPayloadActions to simulate the effect of the entire New Zealand rugby team starting a brawl in the back or your KingAir 350 just before landing.&lt;br /&gt;
&lt;br /&gt;
The OPT never saves the ObjectReference field of an AdjustPayloadAction. While it&#039;s theoretically possible to add or remove payloads from AI, this means it&#039;s not really possible unless you hand-edit the XML.&lt;br /&gt;
&lt;br /&gt;
== [[Attach Droppable Payload Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attach Effect Action ]] ==&lt;br /&gt;
This attaches a visual effect, one of the ones provided in the Effects folder of FSX, to an AI or scenery object. However, it has some significant limitations.&lt;br /&gt;
&lt;br /&gt;
Only models which have AttachPoints built in can be used with an effect. Very few do. Furthermore, if that attachpoint was created with a particular effect in mind, it can never be used with any other effect. Put simply, you can attach effects to the GEN_SceneryEffect model, which is invisible and so can be placed alongside any static visible model. It is highly unlikely that you can attach an effect to the any of the default AI models. In SP1 only (i.e. not RTM, SP2 or Acceleration) you can attach effects to the player.&lt;br /&gt;
&lt;br /&gt;
== [[Change Object Type Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Count Action ]] ==&lt;br /&gt;
This adds a value to a [[#Counter Trigger]]. By setting a negative value for &#039;&#039;Count&#039;&#039;, you can subtract.&lt;br /&gt;
&lt;br /&gt;
== [[Custom Action ]] ==&lt;br /&gt;
These are only useful when working with mission command extensions written using [[SimConnect]]. They pass the &#039;&#039;PayloadString&#039;&#039; value to the extension, which may be either an EXE or a DLL, so that it can perform some kind of action that the normal mission system doesn&#039;t support.&lt;br /&gt;
&lt;br /&gt;
== [[Dialog Action ]] ==&lt;br /&gt;
The main way for you to interact with the mission player, this will display some text on screen and optionally play a sound file. This would typically be a recorded version of the text message.&lt;br /&gt;
&lt;br /&gt;
These messages can be switched off in the simulator settings, so you can&#039;t assume that the sound file is enough. Alternatively, the player have the messages enabled but sound disabled, so you also can&#039;t assume that the text is enough. If they have both messages &#039;&#039;and&#039;&#039; sound disabled, that&#039;s their problem.&lt;br /&gt;
&lt;br /&gt;
The sound file is relative to the &amp;quot;Sound&amp;quot; subfolder of the mission folder.&lt;br /&gt;
&lt;br /&gt;
Do try to make your visible text and recorded speech match; mismatched subtitles get on my nerves :)&lt;br /&gt;
&lt;br /&gt;
== [[Failure Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Goal Resolution Action ]] ==&lt;br /&gt;
These set the state of a [[#Goal Object]] to be one of Pending, Complete or Failed. Only goals which are activated count towards the final result of the mission though, so you can change the list of goals during the mission. When no active goals are pending, the mission finishes.&lt;br /&gt;
&lt;br /&gt;
== [[Grant Reward Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Object Activation Action ]] ==&lt;br /&gt;
Some types of objects, typically Triggers and Scenery, can be activated and deactivated. This is important for the flow of your mission; you should only have the appropriate triggers activated to prevent the player from taking shortcuts. Using this action you can activate and deactivate other objects.&lt;br /&gt;
&lt;br /&gt;
== [[One Shot Sound Action ]] ==&lt;br /&gt;
Very simply, this plays a recorded sound when it is called.&lt;br /&gt;
&lt;br /&gt;
== [[Play Animation Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Play List Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Point Of Interest Activation Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Random Action ]] ==&lt;br /&gt;
This is almost two actions in one. You can set the percentage of the time that you want this action to do anything at all (&#039;&#039;ProbabilityPercent&#039;&#039;). Additionally, only one of the items in the &#039;&#039;Actions&#039;&#039; list is fired, again at random.&lt;br /&gt;
&lt;br /&gt;
This can be very useful for creating &#039;chatter&#039; for making transit sections of your mission a little more interesting. You can have a non-&#039;&#039;OneShot&#039;&#039; [[#Timer Trigger]], set maybe to 45 seconds, calling a RandomAction with &#039;&#039;ProbabilityPercent&#039;&#039; of 33 and half a dozen [[#Dialog Action]]s attached.&lt;br /&gt;
&lt;br /&gt;
== [[ResetTimer Action ]] ==&lt;br /&gt;
Mainly useful with repeating timers. If you want to check that the player has done something within a certain time, the [[#Timer Trigger]] is fine. However, if you want to use the same TimerTrigger again, the &#039;&#039;StartTime&#039;&#039; needs to be reset to 0. You can&#039;t use the [[#Timer Adjust Action]] because it has no &#039;set&#039; option.&lt;br /&gt;
&lt;br /&gt;
== [[Rumble Action ]] ==&lt;br /&gt;
This provides force-feedback in a mission, but only works with XBox rumble-controllers, and not other force-feedback joysticks.&lt;br /&gt;
&lt;br /&gt;
== [[Spawn Action ]] ==&lt;br /&gt;
This activates a spawnlist, creating any objects it contains.&lt;br /&gt;
&lt;br /&gt;
== [[Timer Adjust Action ]] ==&lt;br /&gt;
Allows you to add or remove (by using negative numbers) the time remaining before a [[#Timer Trigger]] fires.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[AI Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[AircraftAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[TakeoffAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[LandingAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[TaxiAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[GroundVehicleAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Waypoint List Object  ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Waypoint Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Area Definition Object ]] =&lt;br /&gt;
On some systems, small AreaDefinitions can be missed by the mission system. Normally this only affects slower PCs and faster-moving aircraft. Try to make the smallest dimensions of an AreaDefinition at least 20 meters to avoid problems on slower PCs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Group Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Mission Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Camera Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attached World Position Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attached World Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Picture In Picture View Controller Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Point Of Interest Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Realism Overrides Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Ridge Lift Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Scenario Metadata Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Thermal Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Scenery Objects ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Mobile Scenery Objects ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Spawn List ]] =&lt;br /&gt;
This creates new nodes during a mission. You can use it to create visual models in addition to mission actions and triggers. In FSX Acceleration, commands created by a spawnlist can refer to any other object in the mission but in all other versions, including SP2, commands created by a spawnlist &#039;&#039;must&#039;&#039; only refer to other objects in the same spawnlist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Triggers ]] =&lt;br /&gt;
Triggers are used to check for key events during the mission. You might check that the player is above a certain altitude, or has landed at a key airport, or that a certain amount of time has elapsed.&lt;br /&gt;
&lt;br /&gt;
== [[Generic Trigger Properties ]] ==&lt;br /&gt;
All triggers can be marked as Active or Inactive using the &#039;&#039;Activated&#039;&#039; field. An inactive trigger does nothing. The usual way to make your mission storyline is to use the [[#Object Activation Action]] to enable new triggers once the player has achieved a key task.&lt;br /&gt;
&lt;br /&gt;
Triggers can also be marked as &#039;&#039;OneShot&#039;&#039;, which defaults to true. This means that the trigger fires once, and once only. Normally this is what you want to happen, but there are some exceptions.&lt;br /&gt;
&lt;br /&gt;
ProximityTriggers have two Action lists; &#039;&#039;OnEnterActions&#039;&#039; and &#039;&#039;OnExitActions&#039;&#039;. If it is a &#039;&#039;OneShot&#039;&#039; trigger, only one set of actions will ever be used because after the first set has fired, the trigger will be deactivated. If you want both sets of actions to be used, you have to mark the triggers as not being &#039;&#039;OneShot&#039;&#039; (that is, untick the box).&lt;br /&gt;
&lt;br /&gt;
Another common use for a non-&#039;&#039;OneShot&#039;&#039; trigger is a recurring timer, where you want something to happen, say, every two minutes.&lt;br /&gt;
&lt;br /&gt;
If you want to re-use a trigger after it has been fired, but still want it to disable itself after every time, you can use the [[#Object Activation Action]] to re-enable it.&lt;br /&gt;
&lt;br /&gt;
== [[Airport Landing Trigger ]] ==&lt;br /&gt;
Checks that the player, or an AI, has landed or touched down at a specific airport. The associated RunwayFilter object doesn&#039;t seem to care which end of the named runway you touch down on; that is, runways 4 and 22 are seen to be the same.&lt;br /&gt;
&lt;br /&gt;
== [[Area Landing Trigger ]] ==&lt;br /&gt;
Checks to see that the player, or an AI, has landed or touched down &#039;&#039;anywhere&#039;&#039;. This seems to have a lower priority than the [[#Airport Landing Trigger]], so it&#039;s common to use this to detect off-airport landings by simply not attaching any AreaRectangle.&lt;br /&gt;
&lt;br /&gt;
== [[Counter Trigger ]] ==&lt;br /&gt;
Simply counts up from 0 to whatever level you tell it to. Use this for things like failing the mission if the player ignores five warnings that they must do something.&lt;br /&gt;
&lt;br /&gt;
== [[Menu Prompt Trigger ]] ==&lt;br /&gt;
This asks the player to make a choice. It&#039;s usually used to give multiple ways of completing a mission by using the different menu items to call [[#Object Activation Action]]s which activate different sets of triggers and goals.&lt;br /&gt;
&lt;br /&gt;
== [[Parking Trigger ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Property Trigger ]] ==&lt;br /&gt;
One of the more useful triggers, this can check a set of predefined properties of the player or an AI for being higher, lower or equal to a constant value or another property. Properties can also be combined using And/Or/Not, but you need to hand-edit the mission XML to use these groupings.&lt;br /&gt;
&lt;br /&gt;
== [[Proximity Trigger ]] ==&lt;br /&gt;
A simple but powerful test, this checks that the player or an AI has entered or left a defined area.&lt;br /&gt;
&lt;br /&gt;
== [[Timer Trigger ]] ==&lt;br /&gt;
It&#039;s main purpose is to simply wait for a set time and then call an action. However, it can be used for two other things. By setting &#039;&#039;OnScreenTimer&#039;&#039; to True, you get a visible timer in the sim. This can be count-up or count-down, depending on the values of &#039;&#039;StartTime&#039;&#039; and &#039;&#039;StopTime&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Since this gives visual feedback that the mission system is working, this means it is also a very useful test. If you think that an error is preventing your mission from being loaded at all, create an active, on-screen TimerTrigger. If you get a visible timer, the mission is being run.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Goal Object ]] =&lt;br /&gt;
Each mission must have at least one Goal. When all active Goals are complete or failed, the mission ends. You can change which goals have to be achieved during the mission by using the [[#Object Activation Action]] to switch them on or off.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Reward Object ]] =&lt;br /&gt;
Rewards are used in addition to Goals. The player doesn&#039;t need to get all the rewards to finish the mission; in fact, they may not even know that rewards are available. They&#039;re just a way of saying &amp;quot;Hey, well done!&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Rewards are [[Rewards|created]] in a separate file to the mission, and must be [[Compiling|compiled]] before they can be used.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Disabled Traffic Airport Object ]] =&lt;br /&gt;
This tells the simulator that it should not create any AI traffic at a specific list of airports. You don&#039;t want an unplanned 747 bearing down on you when you&#039;re in the last few minutes of a two hour long mission, nursing a crippled Cessna back to earth at Heathrow. It can also affect some triggers which may be set up to fire for any aircraft.&lt;br /&gt;
&lt;br /&gt;
= Related content =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
http://www.fsinsider.com/developers/Pages/MissionBuildingTips.aspx&lt;br /&gt;
&lt;br /&gt;
[[category:FSX]] [[category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3395</id>
		<title>Missions - Creation</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3395"/>
		<updated>2008-01-07T14:38:51Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: /* The Basics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to create missions, a supplement to the SDK.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Creating a mission is a complex task involving a diverse use of tools &amp;amp; skills. Getting your first mission going, even following the SDK documentation, is likely to cause you some headaches.&lt;br /&gt;
&lt;br /&gt;
Still here? Good. Once you &#039;&#039;do&#039;&#039; have that first one running, the sky&#039;s your limit. That basic set of rules and files that make up a mission are always the same so once you&#039;ve got those sorted, it&#039;s just a case of coming up with an idea and writing it.&lt;br /&gt;
&lt;br /&gt;
At it&#039;s simplest, a mission is just a scripted set of events that tell some kind of story. It may be dramatic - mountain rescue, failing aircraft, poor weather. It could just as easily be a simple flight from A to B with you pointing out areas of interest along the way, or a completely abstract challenge like finding out how many times you can touch-and-go in a 747 in five minutes.&lt;br /&gt;
&lt;br /&gt;
Technically speaking, there are two main classes of &#039;things&#039; in a mission; Actions and Triggers. An Action makes something happen, and a Trigger checks to see if something&#039;s happened and calls an Action if it has. By stringing together Actions and Triggers, you tell your story.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need to prepare some sound files for the mission speech, some images to appear in FSX and some HTML with the mission briefing. All of these apart from the speech can be &#039;borrowed&#039; from the standard missions and edited so even if you&#039;re not an HTML whiz, it&#039;s certainly possible to do. And if you get really stuck you could always try asking in the [http://www.fsdeveloper.com/forum/forumdisplay.php?f=59 forum].&lt;br /&gt;
&lt;br /&gt;
== The Basics ==&lt;br /&gt;
&lt;br /&gt;
There are some simple things you will need before you start, and while you&#039;re working towards your first mission.&lt;br /&gt;
&lt;br /&gt;
=== The Plot ===&lt;br /&gt;
First and foremost, you need an idea. If this is your first mission, it&#039;s probably better to have a &#039;&#039;simple&#039;&#039; idea; re-writing [http://www.imdb.com/title/tt0064505/ The Italian Job] with Microlights would be fun, but you&#039;ll go insane before it sees the light of day. Start with something with only one or two things to do:&lt;br /&gt;
&lt;br /&gt;
# Fly above 1000 feet for three minutes&lt;br /&gt;
# Land at a specific airport&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve got this going you&#039;ll have a much better idea of how a mission hangs together and relocating it to Turin with Red, White and Blue [http://www.aircreation.net/ AirCreation] Trikes will be one step closer.&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
You can safely assume that the player will get things wrong. You might be able to fly your mission from beginning to end but other people don&#039;t know what you were thinking about when you wrote it.&lt;br /&gt;
&lt;br /&gt;
Messages which seem perfectly clear to you might not be as useful as you think. Some speech saying &amp;quot;Now let&#039;s land over there&amp;quot; is fine, surely? Well, maybe. But what if they&#039;ve got a little lost, or distracted, and &#039;over there&#039; is behind them as they circle, trying to spot a landmark?&lt;br /&gt;
&lt;br /&gt;
If there&#039;s something you want the player to do, you need to tell them. They may not know that in the case of, say, being hopelessly lost they&#039;re required by law to do X, Y and Z. That&#039;s particularly important if doing X, Y and Z are what causes the next Trigger to fire; they&#039;ll fly around for a while, get bored, post a rant on a forum and curse your descendants.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;How&#039;&#039; you tell them is up to you. If your mission is a tour of local landmarks, explicit instructions are probably best (&amp;quot;Turn to 170 and fly towards the only hill on that plain&amp;quot;). On other missions, being led around by the nose may not work well so maybe less explicit instructions would be better (&amp;quot;Hey, there they are! They&#039;re OK, so let&#039;s check the next bridge downstream&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In either case, there are some tricks you can use to help out. First is the Mission Compass. This is a big help, particularly to people who don&#039;t know the area, and it can always be switched off by more experienced pilots. You set points on this using [[Function_Reference#Point_Of_Interest_Mission_Object|PointOfInterest]] (POI) objects, and [[Function_Reference#Point Of Interest Activation Action|PointOfInterestActivationActions]] to set which POI is currently active. You get a big, green rotating spike to show where you&#039;re supposed to go next.&lt;br /&gt;
&lt;br /&gt;
That does take the fun out of navigation challenge missions though. Instead of having to follow instructions, ask local towers for advice and read the landscape you just play fly-towards-the-green-arrow for half an hour. On the other hand, people flying a navigation challenge are more likely to get lost. Tricky.&lt;br /&gt;
&lt;br /&gt;
This is where your design skills start to come in. You need the mission compass to help people that have gone wrong, but you don&#039;t want it there all the time. There&#039;s several ways round this, but a couple are popular.&lt;br /&gt;
&lt;br /&gt;
First, you could enclose the whole area inside a huge AreaRectangle attached to a [[Function_Reference#Proximity_Trigger|ProximityTrigger]]. When you leave the rectangle, the trigger calls a [[Function_Reference#Dialog Action|DialogAction]] (&amp;quot;Dude, where are we?&amp;quot;) and then activates an appropriate PointOfInterest, showing where the player should be. Simple, no? They get the &#039;&#039;chance&#039;&#039; to get it right but then a bit of a prod if they need it.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you could do a similar thing with a [[Function_Reference#Timer Trigger|TimerTrigger]]. Start it when they leave the previous point and if they&#039;re more than, say, two minutes late getting to the next one then use the same trick with the [[Function_Reference#Dialog Action|DialogAction]] and PointOfInterestActivationAction.&lt;br /&gt;
&lt;br /&gt;
Lots of handy tips are also available here:&lt;br /&gt;
[http://www.fsinsider.com/developers/Pages/MissionBuildingTips.aspx FS Insider - Mission Building Tips]&lt;br /&gt;
&lt;br /&gt;
=== Logical Structuring ===&lt;br /&gt;
&lt;br /&gt;
A simple mission probably won&#039;t need much structuring but once you&#039;ve got beyond that and started putting together more complex scenarios, it can help to have a written structure.&lt;br /&gt;
Think of it as a screenplay, and follow the same three-stage layout.&lt;br /&gt;
&lt;br /&gt;
The first section is your introduction. You need to get the player&#039;s interest, explain who they are and why they&#039;re there. You use the first bit to get everything set up so that when The Exciting Thing happens, they know why and what to do about it.&lt;br /&gt;
&lt;br /&gt;
In part two, The Exciting Thing happens. It doesn&#039;t matter what it is, but assuming you have some kind of event to which the player is supposed to react, this part details what happens. Once they&#039;ve managed to cope with the situation and get it under control, they move on to...&lt;br /&gt;
&lt;br /&gt;
Part three, the conclusion. Having successfully dealt with the engine fire/squalling brats in the back seats/condor-strike, the player gets to reflect on what they&#039;ve done and enjoy the feeling of success for a little while. You could always throw in a last-minute plot twist of course.&lt;br /&gt;
&lt;br /&gt;
Structuring like this gives you a tidy way of making your mission appear much more complex. You can easily provide different threads, or ways of achieving something, without too much extra effort. Let&#039;s say your Introduction sees the player getting from a bush strip to the head of a particular valley. You start with them following the river, simple enough. Later on, you could add the option to fly across the peaks and save time; as long as they reach the same head of the same valley, the rest of the mission isn&#039;t affected. If they&#039;ve tried the mission before and failed, chances are they&#039;ll decide to try shortcuts anyway. Wouldn&#039;t it feel better if, having decided to cross the ridge instead of fly round, the mission reacts to that by saying &amp;quot;Hey, you&#039;re going over the ridge! A bit risky in this weather but the views will be stunning&amp;quot;? You can issue different Rewards, or maybe even alter how the next section plays out, depending on the path they took.&lt;br /&gt;
&lt;br /&gt;
In short, you can see your mission sections as leading up to choke-points, such as the head of the valley. If you have three sections, each with three different ways of achieving it, that&#039;s nine different ways of flying a single mission.&lt;br /&gt;
&lt;br /&gt;
=== Coding ===&lt;br /&gt;
This, as you might expect, is probably the trickiest bit. You may find it easier to have a big sheet of paper and draw the mission out in pencil before you start coding. That lets you work out how it fits together logically without having to worry about whether or not you&#039;ve got the spelling right.&lt;br /&gt;
&lt;br /&gt;
For example, you know that after you take off you want to have some speech, and then there are three ways of getting from A to B, where the next section starts. OK, so that&#039;s three boxes to draw; &#039;Takeoff&#039;, &#039;Speech&#039; and &#039;At point B&#039;. The speech should happen 30 seconds after takeoff, so note that down next to the Speech box. Then you can draw three lines between &#039;Speech&#039; and &#039;At Point B&#039; to show the three paths, and the first thing to do on each path is disable the other two paths.&lt;br /&gt;
&lt;br /&gt;
Already you&#039;ve got a decent map of what happens in what order, and translating from these into actual mission-system code will be easier.&lt;br /&gt;
&lt;br /&gt;
Read the list of possible Actions and Triggers, to find out what kinds of things you can check for and do. Try and spot a likely match for each of the boxes on your sheet of paper.&lt;br /&gt;
&lt;br /&gt;
To keep the example going, you might have a [[Function_Reference#Property Trigger|PropertyTrigger]] checking &amp;quot;Altitude AGL &amp;gt; 10&amp;quot; to test for takeoff. That would start a 30-second [[Function_Reference#Timer Trigger|TimerTrigger]] using an [[Function_Reference#Object Activation Action|ObjectActivationAction]] which, in turn, would call a [[Function_Reference#Dialog Action|DialogAction]] for your &amp;quot;Speech&amp;quot; box. You would need one Trigger per potential path; they might be set to detect altitude, or heading, or more likely that the player has entered an area. Each of those would need another [[Function_Reference#Dialog Action|DialogAction]] (just to keep the player informed), an [[Function_Reference#Object Activation Action|ObjectActivationAction]] to enable the Trigger that checks &amp;quot;At Point B&amp;quot; and another [[Function_Reference#Object Activation Action|ObjectActivationAction]] to disable the other two paths.&lt;br /&gt;
&lt;br /&gt;
Everyone will have their own style of writing, of course. Feel free to experiment.&lt;br /&gt;
&lt;br /&gt;
=== Code Design ===&lt;br /&gt;
Your first missions will probably be some active [[Function_Reference#Timer Trigger|TimerTrigger]]s and [[Function_Reference#Proximity_Trigger|ProximityTrigger]]s, each with some [[Function_Reference#Dialog Action|DialogAction]]s attached, and a LandingTrigger to finish the mission. This is fine for beginners, but once your missions get larger this easy design style will cause you problems.&lt;br /&gt;
&lt;br /&gt;
It is far easier to test a mission if you know what you expect to happen at a given moment. Sounds obvious, right? Of course you know what&#039;s supposed to happen, you designed and wrote it.&lt;br /&gt;
&lt;br /&gt;
The problem is that when you have lots of active triggers, any of them can fire. That&#039;s what they&#039;re for. They don&#039;t know that they&#039;re not &#039;&#039;supposed&#039;&#039; to fire so that the player that takes a shortcut - or the designer that&#039;s testing the last three minutes of a 45-minute mission - will find that some very wierd things are happening because triggers that are part of a completely different part of the mission are firing.&lt;br /&gt;
&lt;br /&gt;
The design solution is very easy; you only activate the triggers that you need, and you deactivate any that you don&#039;t need. In other words, almost all of your triggers should be &#039;&#039;&#039;de&#039;&#039;&#039;activated by default. Only when you&#039;re ready for them should they be activated.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s consider a simple mission where you&#039;re flying east from A to B to pick up your wife. As you approach B you&#039;re told that the air ambulance has broken down and someone is urgently needed in town C, to the north, to ferry a transplant organ to town B&#039;s airfield. You, of course, arrive in a shining white Cessna to save the day. A nice, straightforward story with only about a dozen triggers to implement. What could possibly go wrong?&lt;br /&gt;
&lt;br /&gt;
I take off from A and notice a motorway (freeway) leading to B and decide to follow that at 100 feet. Two minutes in, and still a long way from B, a timer switches on the altitude check that is supposed to fire just before I land at B to tell me to go to C. &amp;quot;Abort the landing, Sir Pilot! You&#039;re needed!&amp;quot;. Huh? What landing? Okay, off I go to C as instructed. Land, collect heart, take off, fly towards B. Now I hit a set of [[Function_Reference#Proximity_Trigger|ProximityTrigger]]s around town B, intended to fill in some empty time and which should have gone off &#039;&#039;before&#039;&#039; the emergency call, wittering on about my wife&#039;s assault on the January shoe sales. With a human heart destined for a dying child on the passenger seat.&lt;br /&gt;
&lt;br /&gt;
A similar thing would happen if I&#039;d fluffed the landing on a previous attempt and decided to fly straight to C to avoid the uneventful flight to B.&lt;br /&gt;
&lt;br /&gt;
Or what about the person who gets distracted for a few seconds on finals to town B - maybe his wife&#039;s at the door asking for help upstairs with some new shoes - and misses the &#039;divert to town C&#039; message, lands anyway to get told he&#039;s just saved someone&#039;s life because the final landing trigger was on by default? Huh? Whose life? Just how many shoes did she buy? What a dull mission; I took off, got harangued about footwear, landed, and it finished.&lt;br /&gt;
&lt;br /&gt;
Once more with feeling, then. Treat Triggers like lightbulbs; if you&#039;re not using it, switch it off.&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
At some point you&#039;ll want to give your mission out to others. They react by flying around like airborne sheep in a hand-grenade factory, and then tell you that your mission sucks. Dude. Some reward for the weeks of work you put in.&lt;br /&gt;
&lt;br /&gt;
You&#039;ve already checked that it all works when it&#039;s flown correctly, that gets done while you&#039;re writing it. Unfortunately, you&#039;re the only person that knows what &#039;correctly&#039; means. Checking that it still works when it&#039;s &#039;&#039;not&#039;&#039; flown correctly is more difficult. You need to make sure that the player gets told when they&#039;ve gone out of bounds, that they&#039;ve been told &#039;&#039;&#039;exactly&#039;&#039;&#039; where they&#039;re supposed to park and not just &#039;near the buildings&#039; (What buildings? Which wall?). What happens when they land on the right runway in the wrong direction, or the at the wrong airport? What happens when they take a shortcut because they&#039;ve flown the mission before, and skip out section 1 completely?&lt;br /&gt;
&lt;br /&gt;
=== Pulling it all together ===&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
=== Distributing ===&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
See these pages for HowTos &amp;amp; Tools used in creating -&lt;br /&gt;
=== Categories ===&lt;br /&gt;
[[Categories]] - Assigning and creating categories.&lt;br /&gt;
&lt;br /&gt;
=== Mission Coding ===&lt;br /&gt;
[[Mission Coding]] - Creating your mission, development process &amp;amp; tips.&lt;br /&gt;
&lt;br /&gt;
=== Rewards ===&lt;br /&gt;
[[Rewards]] - Creation tips.&lt;br /&gt;
&lt;br /&gt;
=== Sounds ===&lt;br /&gt;
[[Sounds]] - Creating dialogue, and sounds, for missions.&lt;br /&gt;
&lt;br /&gt;
=== Artwork ===&lt;br /&gt;
[[Artwork]] - Creating artwork for mission briefings, rewards, etc.&lt;br /&gt;
&lt;br /&gt;
=== Briefing ===&lt;br /&gt;
[[Briefing]] - Creating HTML for mission briefings.&lt;br /&gt;
&lt;br /&gt;
= To Sort =&lt;br /&gt;
These bits probably need modifying and/or relocating to appropriate subsections.&lt;br /&gt;
&lt;br /&gt;
== SDK ==&lt;br /&gt;
[[Object Placement Tool]] - Installing, configuring, &amp;amp; general useage tips.&lt;br /&gt;
&lt;br /&gt;
[[Tools]] placeholder text.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
[[Compiling]] - &lt;br /&gt;
&lt;br /&gt;
== Function Reference ==&lt;br /&gt;
[[Function Reference]] with example code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
Currently there are no available tools to allow debugging of your mission.&lt;br /&gt;
&lt;br /&gt;
However there is a basic form of error reporting built into FSX.&lt;br /&gt;
&lt;br /&gt;
Add the following to your fsx.CFG&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[Debug]&lt;br /&gt;
&lt;br /&gt;
ReportLoadErrors=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3394</id>
		<title>Missions - Creation</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Creation&amp;diff=3394"/>
		<updated>2008-01-07T12:53:42Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to create missions, a supplement to the SDK.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Creating a mission is a complex task involving a diverse use of tools &amp;amp; skills. Getting your first mission going, even following the SDK documentation, is likely to cause you some headaches.&lt;br /&gt;
&lt;br /&gt;
Still here? Good. Once you &#039;&#039;do&#039;&#039; have that first one running, the sky&#039;s your limit. That basic set of rules and files that make up a mission are always the same so once you&#039;ve got those sorted, it&#039;s just a case of coming up with an idea and writing it.&lt;br /&gt;
&lt;br /&gt;
At it&#039;s simplest, a mission is just a scripted set of events that tell some kind of story. It may be dramatic - mountain rescue, failing aircraft, poor weather. It could just as easily be a simple flight from A to B with you pointing out areas of interest along the way, or a completely abstract challenge like finding out how many times you can touch-and-go in a 747 in five minutes.&lt;br /&gt;
&lt;br /&gt;
Technically speaking, there are two main classes of &#039;things&#039; in a mission; Actions and Triggers. An Action makes something happen, and a Trigger checks to see if something&#039;s happened and calls an Action if it has. By stringing together Actions and Triggers, you tell your story.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll also need to prepare some sound files for the mission speech, some images to appear in FSX and some HTML with the mission briefing. All of these apart from the speech can be &#039;borrowed&#039; from the standard missions and edited so even if you&#039;re not an HTML whiz, it&#039;s certainly possible to do. And if you get really stuck you could always try asking in the [http://www.fsdeveloper.com/forum/forumdisplay.php?f=59 forum].&lt;br /&gt;
&lt;br /&gt;
== The Basics ==&lt;br /&gt;
&lt;br /&gt;
Plot - Have a purpose.&lt;br /&gt;
&lt;br /&gt;
Instructions - Guide the user.&lt;br /&gt;
&lt;br /&gt;
Out of bounds - Trap the user when they stray beyond your intended route.&lt;br /&gt;
&lt;br /&gt;
[http://www.fsinsider.com/developers/Pages/MissionBuildingTips.aspx FS Insider - Mission Building Tips]&lt;br /&gt;
&lt;br /&gt;
Structuring.&lt;br /&gt;
&lt;br /&gt;
Coding.&lt;br /&gt;
&lt;br /&gt;
Testing.&lt;br /&gt;
&lt;br /&gt;
Pulling it all together.&lt;br /&gt;
&lt;br /&gt;
Packaging.&lt;br /&gt;
&lt;br /&gt;
Distributing.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
See these pages for HowTos &amp;amp; Tools used in creating -&lt;br /&gt;
=== Categories ===&lt;br /&gt;
[[Categories]] - Assigning and creating categories.&lt;br /&gt;
&lt;br /&gt;
=== Mission Coding ===&lt;br /&gt;
[[Mission Coding]] - Creating your mission, development process &amp;amp; tips.&lt;br /&gt;
&lt;br /&gt;
=== Rewards ===&lt;br /&gt;
[[Rewards]] - Creation tips.&lt;br /&gt;
&lt;br /&gt;
=== Sounds ===&lt;br /&gt;
[[Sounds]] - Creating dialogue, and sounds, for missions.&lt;br /&gt;
&lt;br /&gt;
=== Artwork ===&lt;br /&gt;
[[Artwork]] - Creating artwork for mission briefings, rewards, etc.&lt;br /&gt;
&lt;br /&gt;
=== Briefing ===&lt;br /&gt;
[[Briefing]] - Creating HTML for mission briefings.&lt;br /&gt;
&lt;br /&gt;
= To Sort =&lt;br /&gt;
These bits probably need modifying and/or relocating to appropriate subsections.&lt;br /&gt;
&lt;br /&gt;
== SDK ==&lt;br /&gt;
[[Object Placement Tool]] - Installing, configuring, &amp;amp; general useage tips.&lt;br /&gt;
&lt;br /&gt;
[[Tools]] placeholder text.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
[[Compiling]] - &lt;br /&gt;
&lt;br /&gt;
== Function Reference ==&lt;br /&gt;
[[Function Reference]] with example code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
Currently there are no available tools to allow debugging of your mission.&lt;br /&gt;
&lt;br /&gt;
However there is a basic form of error reporting built into FSX.&lt;br /&gt;
&lt;br /&gt;
Add the following to your fsx.CFG&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[Debug]&lt;br /&gt;
&lt;br /&gt;
ReportLoadErrors=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Function_Reference&amp;diff=3381</id>
		<title>Missions - Function Reference</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Function_Reference&amp;diff=3381"/>
		<updated>2008-01-05T12:22:01Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Mission Object Reference ]]&lt;br /&gt;
&lt;br /&gt;
All of the objects that are available to use in a mission are described in the [[SDK#FSX|SDK]] documentation. Some notes, exceptions and gotchas are listed here.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Actions ]] =&lt;br /&gt;
Actions are what makes things happen in a mission. There are lots of different actions you can use. An Action only gets used when it is called from a [[#Triggers|Trigger]].&lt;br /&gt;
&lt;br /&gt;
== [[Activate Waypoints Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Adjust Payload Action ]] ==&lt;br /&gt;
This allows you to change the player&#039;s payload at a certain point in their aircraft. The payload station number can be found in the corresponding &amp;lt;code&amp;gt;aircraft.cfg&amp;lt;/code&amp;gt; file for the player&#039;s aircraft, in the &amp;lt;code&amp;gt;[WEIGHT_AND_BALANCE]&amp;lt;/code&amp;gt; section.&lt;br /&gt;
&lt;br /&gt;
For example, try using a combination of [[#Random Action]]s, [[#Timer Trigger]]s and AdjustPayloadActions to simulate the effect of the entire New Zealand rugby team starting a brawl in the back or your KingAir 350 just before landing.&lt;br /&gt;
&lt;br /&gt;
The OPT never saves the ObjectReference field of an AdjustPayloadAction. While it&#039;s theoretically possible to add or remove payloads from AI, this means it&#039;s not really possible unless you hand-edit the XML.&lt;br /&gt;
&lt;br /&gt;
== [[Attach Droppable Payload Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attach Effect Action ]] ==&lt;br /&gt;
This attaches a visual effect, one of the ones provided in the Effects folder of FSX, to an AI or scenery object. However, it has some significant limitations.&lt;br /&gt;
&lt;br /&gt;
Only models which have AttachPoints built in can be used with an effect. Very few do. Furthermore, if that attachpoint was created with a particular effect in mind, it can never be used with any other effect. Put simply, you can attach effects to the GEN_SceneryEffect model, which is invisible and so can be placed alongside any static visible model. It is highly unlikely that you can attach an effect to the any of the default AI models. In SP1 only (i.e. not RTM, SP2 or Acceleration) you can attach effects to the player.&lt;br /&gt;
&lt;br /&gt;
== [[Change Object Type Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Count Action ]] ==&lt;br /&gt;
This adds a value to a [[#Counter Trigger]]. By setting a negative value for &#039;&#039;Count&#039;&#039;, you can subtract.&lt;br /&gt;
&lt;br /&gt;
== [[Custom Action ]] ==&lt;br /&gt;
These are only useful when working with mission command extensions written using [[SimConnect]]. They pass the &#039;&#039;PayloadString&#039;&#039; value to the extension, which may be either an EXE or a DLL, so that it can perform some kind of action that the normal mission system doesn&#039;t support.&lt;br /&gt;
&lt;br /&gt;
== [[Dialog Action ]] ==&lt;br /&gt;
The main way for you to interact with the mission player, this will display some text on screen and optionally play a sound file. This would typically be a recorded version of the text message.&lt;br /&gt;
&lt;br /&gt;
These messages can be switched off in the simulator settings, so you can&#039;t assume that the sound file is enough. Alternatively, the player have the messages enabled but sound disabled, so you also can&#039;t assume that the text is enough. If they have both messages &#039;&#039;and&#039;&#039; sound disabled, that&#039;s their problem.&lt;br /&gt;
&lt;br /&gt;
The sound file is relative to the &amp;quot;Sound&amp;quot; subfolder of the mission folder.&lt;br /&gt;
&lt;br /&gt;
Do try to make your visible text and recorded speech match; mismatched subtitles get on my nerves :)&lt;br /&gt;
&lt;br /&gt;
== [[Failure Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Goal Resolution Action ]] ==&lt;br /&gt;
These set the state of a [[#Goal Object]] to be one of Pending, Complete or Failed. Only goals which are activated count towards the final result of the mission though, so you can change the list of goals during the mission. When no active goals are pending, the mission finishes.&lt;br /&gt;
&lt;br /&gt;
== [[Grant Reward Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Object Activation Action ]] ==&lt;br /&gt;
Some types of objects, typically Triggers and Scenery, can be activated and deactivated. This is important for the flow of your mission; you should only have the appropriate triggers activated to avoid the player from taking shortcuts. Using this action you can activate and deactivate other objects.&lt;br /&gt;
&lt;br /&gt;
== [[One Shot Sound Action ]] ==&lt;br /&gt;
Very simply, this plays a recorded sound when it is called.&lt;br /&gt;
&lt;br /&gt;
== [[Play Animation Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Play List Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Point Of Interest Activation Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Random Action ]] ==&lt;br /&gt;
This is almost two actions in one. You can set the percentage of the time that you want this action to do anything at all (&#039;&#039;ProbabilityPercent&#039;&#039;). Additionally, only one of the items in the &#039;&#039;Actions&#039;&#039; list is fired, again at random.&lt;br /&gt;
&lt;br /&gt;
This can be very useful for creating &#039;chatter&#039; for making transit sections of your mission a little more interesting. You can have a non-&#039;&#039;OneShot&#039;&#039; [[#Timer Trigger]], set maybe to 45 seconds, calling a RandomAction with &#039;&#039;ProbabilityPercent&#039;&#039; of 33 and half a dozen [[#Dialog Action]]s attached.&lt;br /&gt;
&lt;br /&gt;
== [[ResetTimer Action ]] ==&lt;br /&gt;
Mainly useful with repeating timers. If you want to check that the player has done something within a certain time, the [[#Timer Trigger]] is fine. However, if you want to use the same TimerTrigger again, the &#039;&#039;StartTime&#039;&#039; needs to be reset to 0. You can&#039;t use the [[#Timer Adjust Action]] because it has no &#039;set&#039; option.&lt;br /&gt;
&lt;br /&gt;
== [[Rumble Action ]] ==&lt;br /&gt;
This provides force-feedback in a mission, but only works with XBox rumble-controllers, and not other force-feedback joysticks.&lt;br /&gt;
&lt;br /&gt;
== [[Spawn Action ]] ==&lt;br /&gt;
This activates a spawnlist, creating any objects it contains.&lt;br /&gt;
&lt;br /&gt;
== [[Timer Adjust Action ]] ==&lt;br /&gt;
Allows you to add or remove (by using negative numbers) the time remaining before a [[#Timer Trigger]] fires.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[AI Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[AircraftAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[TakeoffAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[LandingAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[TaxiAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[GroundVehicleAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Waypoint List Object  ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Waypoint Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Area Definition Object ]] =&lt;br /&gt;
On some systems, small AreaDefinitions can be missed by the mission system. Normally this only affects slower PCs and faster-moving aircraft. Try to make the smallest dimensions of an AreaDefinition at least 20 meters to avoid problems on slower PCs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Group Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Mission Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Camera Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attached World Position Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attached World Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Picture In Picture View Controller Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Point Of Interest Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Realism Overrides Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Ridge Lift Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Scenario Metadata Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Thermal Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Scenery Objects ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Mobile Scenery Objects ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Spawn List ]] =&lt;br /&gt;
This creates new nodes during a mission. You can use it to create visual models in addition to mission actions and triggers. In FSX Acceleration, commands created by a spawnlist can refer to any other object in the mission but in all other versions, including SP2, commands created by a spawnlist &#039;&#039;must&#039;&#039; only refer to other objects in the same spawnlist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Triggers ]] =&lt;br /&gt;
Triggers are used to check for key events during the mission. You might check that the player is above a certain altitude, or has landed at a key airport, or that a certain amount of time has elapsed.&lt;br /&gt;
&lt;br /&gt;
== [[Generic Trigger Properties ]] ==&lt;br /&gt;
All triggers can be marked as Active or Inactive using the &#039;&#039;Activated&#039;&#039; field. An inactive trigger does nothing. The usual way to make your mission storyline is to use the [[#Object Activation Action]] to enable new triggers once the player has achieved a key task.&lt;br /&gt;
&lt;br /&gt;
Triggers can also be marked as &#039;&#039;OneShot&#039;&#039;, which defaults to true. This means that the trigger fires once, and once only. Normally this is what you want to happen, but there are some exceptions.&lt;br /&gt;
&lt;br /&gt;
ProximityTriggers have two Action lists; &#039;&#039;OnEnterActions&#039;&#039; and &#039;&#039;OnExitActions&#039;&#039;. If it is a &#039;&#039;OneShot&#039;&#039; trigger, only one set of actions will ever be used because after the first set has fired, the trigger will be deactivated. If you want both sets of actions to be used, you have to mark the triggers as not being &#039;&#039;OneShot&#039;&#039; (that is, untick the box).&lt;br /&gt;
&lt;br /&gt;
Another common use for a non-&#039;&#039;OneShot&#039;&#039; trigger is a recurring timer, where you want something to happen, say, every two minutes.&lt;br /&gt;
&lt;br /&gt;
If you want to re-use a trigger after it has been fired, but still want it to disable itself after every time, you can use the [[#Object Activation Action]] to re-enable it.&lt;br /&gt;
&lt;br /&gt;
== [[Airport Landing Trigger ]] ==&lt;br /&gt;
Checks that the player, or an AI, has landed or touched down at a specific airport. The associated RunwayFilter object doesn&#039;t seem to care which end of the named runway you touch down on; that is, runways 4 and 22 are seen to be the same.&lt;br /&gt;
&lt;br /&gt;
== [[Area Landing Trigger ]] ==&lt;br /&gt;
Checks to see that the player, or an AI, has landed or touched down &#039;&#039;anywhere&#039;&#039;. This seems to have a lower priority than the [[#Airport Landing Trigger]], so it&#039;s common to use this to detect off-airport landings by simply not attaching any AreaRectangle.&lt;br /&gt;
&lt;br /&gt;
== [[Counter Trigger ]] ==&lt;br /&gt;
Simply counts up from 0 to whatever level you tell it to. Use this for things like failing the mission if the player ignores five warnings that they must do something.&lt;br /&gt;
&lt;br /&gt;
== [[Menu Prompt Trigger ]] ==&lt;br /&gt;
This asks the player to make a choice. It&#039;s usually used to give multiple ways of completing a mission by using the different menu items to call [[#Object Activation Action]]s which activate different sets of triggers and goals.&lt;br /&gt;
&lt;br /&gt;
== [[Parking Trigger ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Property Trigger ]] ==&lt;br /&gt;
One of the more useful triggers, this can check a set of predefined properties of the player or an AI for being higher, lower or equal to a constant value or another property. Properties can also be combined using And/Or/Not, but you need to hand-edit the mission XML to use these groupings.&lt;br /&gt;
&lt;br /&gt;
== [[Proximity Trigger ]] ==&lt;br /&gt;
A simple but powerful test, this checks that the player or an AI has entered or left a defined area.&lt;br /&gt;
&lt;br /&gt;
== [[Timer Trigger ]] ==&lt;br /&gt;
It&#039;s main purpose is to simply wait for a set time and then call an action. However, it can be used for two other things. By setting &#039;&#039;OnScreenTimer&#039;&#039; to True, you get a visible timer in the sim. This can be count-up or count-down, depending on the values of &#039;&#039;StartTime&#039;&#039; and &#039;&#039;StopTime&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Since this gives visual feedback that the mission system is working, this means it is also a very useful test. If you think that an error is preventing your mission from being loaded at all, create an active, on-screen TimerTrigger. If you get a visible timer, the mission is being run.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Goal Object ]] =&lt;br /&gt;
Each mission must have at least one Goal. When all active Goals are complete or failed, the mission ends. You can change which goals have to be achieved during the mission by using the [[#Object Activation Action]] to switch them on or off.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Reward Object ]] =&lt;br /&gt;
Rewards are used in addition to Goals. The player doesn&#039;t need to get all the rewards to finish the mission; in fact, they may not even know that rewards are available. They&#039;re just a way of saying &amp;quot;Hey, well done!&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Rewards are [[Rewards|created]] in a separate file to the mission, and must be [[Compiling|compiled]] before they can be used.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Disabled Traffic Airport Object ]] =&lt;br /&gt;
This tells the simulator that it should not create any AI traffic at a specific list of airports. You don&#039;t want an unplanned 747 bearing down on you when you&#039;re in the last few minutes of a two hour long mission, nursing a crippled Cessna back to earth at Heathrow. It can also affect some triggers which may be set up to fire for any aircraft.&lt;br /&gt;
&lt;br /&gt;
= Related content =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
http://www.fsinsider.com/developers/Pages/MissionBuildingTips.aspx&lt;br /&gt;
&lt;br /&gt;
[[category:FSX]] [[category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Function_Reference&amp;diff=3310</id>
		<title>Missions - Function Reference</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Function_Reference&amp;diff=3310"/>
		<updated>2008-01-04T16:40:26Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Mission Object Reference ]]&lt;br /&gt;
&lt;br /&gt;
All of the objects that are available to use in a mission are described in the [[SDK#FSX|SDK]] documentation. Some notes, exceptions and gotchas are listed here.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Actions ]] =&lt;br /&gt;
Actions are what makes things happen in a mission. There are lots of different actions you can use. An Action only gets used when it is called from a [[#Triggers|Trigger]].&lt;br /&gt;
&lt;br /&gt;
== [[Activate Waypoints Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Adjust Payload Action ]] ==&lt;br /&gt;
This allows you to change the player&#039;s payload at a certain point in their aircraft. The payload station number can be found in the corresponding &amp;lt;code&amp;gt;aircraft.cfg&amp;lt;/code&amp;gt; file for the player&#039;s aircraft, in the &amp;lt;code&amp;gt;[WEIGHT_AND_BALANCE]&amp;lt;/code&amp;gt; section.&lt;br /&gt;
&lt;br /&gt;
For example, try using a combination of [[#Random Action]]s, [[#Timer Trigger]]s and AdjustPayloadActions to simulate the effect of the entire New Zealand rugby team starting a brawl in the back or your KingAir 350 just before landing.&lt;br /&gt;
&lt;br /&gt;
The OPT never saves the ObjectReference field of an AdjustPayloadAction. While it&#039;s theoretically possible to add or remove payloads from AI, this means it&#039;s not really possible unless you hand-edit the XML.&lt;br /&gt;
&lt;br /&gt;
== [[Attach Droppable Payload Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attach Effect Action ]] ==&lt;br /&gt;
This attaches a visual effect, one of the ones provided in the Effects folder of FSX, to an AI or scenery object. However, it has some significant limitations.&lt;br /&gt;
&lt;br /&gt;
Only models which have AttachPoints built in can be used with an effect. Very few do. Furthermore, if that attachpoint was created with a particular effect in mind, it can never be used with any other effect. Put simply, you can attach effects to the GEN_SceneryEffect model, which is invisible and so can be placed alongside any static visible model. It is highly unlikely that you can attach an effect to the any of the default AI models. In SP1 only (i.e. not RTM, SP2 or Acceleration) you can attach effects to the player.&lt;br /&gt;
&lt;br /&gt;
== [[Change Object Type Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Count Action ]] ==&lt;br /&gt;
This adds a value to a [[#Counter Trigger]]. By setting a negative value for &#039;&#039;Count&#039;&#039;, you can subtract.&lt;br /&gt;
&lt;br /&gt;
== [[Custom Action ]] ==&lt;br /&gt;
These are only useful when working with mission command extensions written using [[SimConnect]]. They pass the &#039;&#039;PayloadString&#039;&#039; value to the extension, which may be either an EXE or a DLL, so that it can perform some kind of action that the normal mission system doesn&#039;t support.&lt;br /&gt;
&lt;br /&gt;
== [[Dialog Action ]] ==&lt;br /&gt;
The main way for you to interact with the mission player, this will display some text on screen and optionally play a sound file. This would typically be a recorded version of the text message.&lt;br /&gt;
&lt;br /&gt;
These messages can be switched off in the simulator settings, so you can&#039;t assume that the sound file is enough. Alternatively, the player have the messages enabled but sound disabled, so you also can&#039;t assume that the text is enough. If they have both messages &#039;&#039;and&#039;&#039; sound disabled, that&#039;s their problem.&lt;br /&gt;
&lt;br /&gt;
The sound file is relative to the &amp;quot;Sound&amp;quot; subfolder of the mission folder.&lt;br /&gt;
&lt;br /&gt;
Do try to make your visible text and recorded speech match; mismatched subtitles get on my nerves :)&lt;br /&gt;
&lt;br /&gt;
== [[Failure Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Goal Resolution Action ]] ==&lt;br /&gt;
These set the state of a [[#Goal Object]] to be one of Pending, Complete or Failed. Only goals which are activated count towards the final result of the mission though, so you can change the list of goals during the mission. When no active goals are pending, the mission finishes.&lt;br /&gt;
&lt;br /&gt;
== [[Grant Reward Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Object Activation Action ]] ==&lt;br /&gt;
Some types of objects, typically Triggers and Scenery, can be activated and deactivated. This is important for the flow of your mission; you should only have the appropriate triggers activated to avoid the player from taking shortcuts. Using this action you can activate and deactivate other objects.&lt;br /&gt;
&lt;br /&gt;
== [[One Shot Sound Action ]] ==&lt;br /&gt;
Very simply, this plays a recorded sound when it is called.&lt;br /&gt;
&lt;br /&gt;
== [[Play Animation Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Play List Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Point Of Interest Activation Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Random Action ]] ==&lt;br /&gt;
This is almost two actions in one. You can set the percentage of the time that you want this action to do anything at all (&#039;&#039;ProbabilityPercent&#039;&#039;). Additionally, only one of the items in the &#039;&#039;Actions&#039;&#039; list is fired, again at random.&lt;br /&gt;
&lt;br /&gt;
This can be very useful for creating &#039;chatter&#039; for making transit sections of your mission a little more interesting. You can have a non-&#039;&#039;OneShot&#039;&#039; [[#Timer Trigger]], set maybe to 45 seconds, calling a RandomAction with &#039;&#039;ProbabilityPercent&#039;&#039; of 33 and half a dozen [[#Dialog Action]]s attached.&lt;br /&gt;
&lt;br /&gt;
== [[ResetTimer Action ]] ==&lt;br /&gt;
Mainly useful with repeating timers. If you want to check that the player has done something within a certain time, the [[#Timer Trigger]] is fine. However, if you want to use the same TimerTrigger again, the &#039;&#039;StartTime&#039;&#039; needs to be reset to 0. You can&#039;t use the [[#Timer Adjust Action]] because it has no &#039;set&#039; option.&lt;br /&gt;
&lt;br /&gt;
== [[Rumble Action ]] ==&lt;br /&gt;
This provides force-feedback in a mission, but only works with XBox rumble-controllers, and not other force-feedback joysticks.&lt;br /&gt;
&lt;br /&gt;
== [[Spawn Action ]] ==&lt;br /&gt;
This activates a spawnlist, creating any objects it contains.&lt;br /&gt;
&lt;br /&gt;
== [[Timer Adjust Action ]] ==&lt;br /&gt;
Allows you to add or remove (by using negative numbers) the time remaining before a [[#Timer Trigger]] fires.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[AI Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[AircraftAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[TakeoffAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[LandingAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[TaxiAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[GroundVehicleAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Waypoint List Object  ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Waypoint Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Area Definition Object ]] =&lt;br /&gt;
On some systems, small AreaDefinitions can be missed by the mission system. Normally this only affects slower PCs and faster-moving aircraft. Try to make the smallest dimensions of an AreaDefinition at least 20 meters to avoid problems on slower PCs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Group Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Mission Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Camera Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attached World Position Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attached World Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Picture In Picture View Controller Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Point Of Interest Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Realism Overrides Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Ridge Lift Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Scenario Metadata Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Thermal Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Scenery Objects ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Mobile Scenery Objects ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Spawn List ]] =&lt;br /&gt;
This creates new nodes during a mission. You can use it to create visual models in addition to mission actions and triggers. In FSX Acceleration, commands created by a spawnlist can refer to any other object in the mission but in all other versions, including SP2, commands created by a spawnlist &#039;&#039;must&#039;&#039; only refer to other objects in the same spawnlist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Triggers ]] =&lt;br /&gt;
Triggers are used to check for key events during the mission. You might check that the player is above a certain altitude, or has landed at a key airport, or that a certain amount of time has elapsed.&lt;br /&gt;
&lt;br /&gt;
== [[Generic Trigger Properties ]] ==&lt;br /&gt;
All triggers can be marked as Active or Inactive using the &#039;&#039;Activated&#039;&#039; field. An inactive trigger does nothing. The usual way to make your mission storyline is to use the [[#Object Activation Action]] to enable new triggers once the player has achieved a key task.&lt;br /&gt;
&lt;br /&gt;
Triggers can also be marked as &#039;&#039;OneShot&#039;&#039;, which defaults to true. This means that the trigger fires once, and once only. Normally this is what you want to happen, but there are some exceptions.&lt;br /&gt;
&lt;br /&gt;
ProximityTriggers have two Action lists; &#039;&#039;OnEnterActions&#039;&#039; and &#039;&#039;OnExitActions&#039;&#039;. If it is a &#039;&#039;OneShot&#039;&#039; trigger, only one set of actions will ever be used because after the first set has fired, the trigger will be deactivated. If you want both sets of actions to be used, you have to mark the triggers as not being &#039;&#039;OneShot&#039;&#039; (that is, untick the box).&lt;br /&gt;
&lt;br /&gt;
Another common use for a non-&#039;&#039;OneShot&#039;&#039; trigger is a recurring timer, where you want something to happen, say, every two minutes.&lt;br /&gt;
&lt;br /&gt;
If you want to re-use a trigger after it has been fired, but still want it to disable itself after every time, you can use the [[#Object Activation Action]] to re-enable it.&lt;br /&gt;
&lt;br /&gt;
== [[Airport Landing Trigger ]] ==&lt;br /&gt;
Checks that the player, or an AI, has landed or touched down at a specific airport. The associated RunwayFilter object doesn&#039;t seem to care which end of the named runway you touch down on; that is, runways 4 and 22 are seen to be the same.&lt;br /&gt;
&lt;br /&gt;
== [[Area Landing Trigger ]] ==&lt;br /&gt;
Checks to see that the player, or an AI, has landed or touched down &#039;&#039;anywhere&#039;&#039;. This seems to have a lower priority than the [[#Airport Landing Trigger]], so it&#039;s common to use this to detect off-airport landings by simply not attaching any AreaRectangle.&lt;br /&gt;
&lt;br /&gt;
== [[Counter Trigger ]] ==&lt;br /&gt;
Simply counts up from 0 to whatever level you tell it to. Use this for things like failing the mission if the player ignores five warnings that they must do something.&lt;br /&gt;
&lt;br /&gt;
== [[Menu Prompt Trigger ]] ==&lt;br /&gt;
This asks the player to make a choice. It&#039;s usually used to give multiple ways of completing a mission by using the different menu items to call [[#Object Activation Action]]s which activate different sets of triggers and goals.&lt;br /&gt;
&lt;br /&gt;
== [[Parking Trigger ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Property Trigger ]] ==&lt;br /&gt;
One of the more useful triggers, this can check a set of predefined properties of the player or an AI for being higher, lower or equal to a constant value or another property. Properties can also be combined using And/Or/Not, but you need to hand-edit the mission XML to use these groupings.&lt;br /&gt;
&lt;br /&gt;
== [[Proximity Trigger ]] ==&lt;br /&gt;
A simple but powerful test, this checks that the player or an AI has entered or left a defined area.&lt;br /&gt;
&lt;br /&gt;
== [[Timer Trigger ]] ==&lt;br /&gt;
It&#039;s main purpose is to simply wait for a set time and then call an action. However, it can be used for two other things. By setting &#039;&#039;OnScreenTimer&#039;&#039; to True, you get a visible timer in the sim. This can be count-up or count-down, depending on the values of &#039;&#039;StartTime&#039;&#039; and &#039;&#039;StopTime&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Since this gives visual feedback that the mission system is working, this means it is also a very useful test. If you think that an error is preventing your mission from being loaded at all, create an active, on-screen TimerTrigger. If you get a visible timer, the mission is being run.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Goal Object ]] =&lt;br /&gt;
Each mission must have at least one Goal. When all active Goals are complete or failed, the mission ends. You can change which goals have to be achieved during the mission by using the [[#Object Activation Action]] to switch them on or off.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Disabled Traffic Airport Object ]] =&lt;br /&gt;
This tells the simulator that it should not create any AI traffic at a specific list of airports. You don&#039;t want an unplanned 747 bearing down on you when you&#039;re in the last few minutes of a two hour long mission, nursing a crippled Cessna back to earth at Heathrow. It can also affect some triggers which may be set up to fire for any aircraft.&lt;br /&gt;
&lt;br /&gt;
= Related content =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
http://www.fsinsider.com/developers/Pages/MissionBuildingTips.aspx&lt;br /&gt;
&lt;br /&gt;
[[category:FSX]] [[category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Function_Reference&amp;diff=3309</id>
		<title>Missions - Function Reference</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Missions_-_Function_Reference&amp;diff=3309"/>
		<updated>2008-01-04T16:29:55Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Mission Object Reference ]]&lt;br /&gt;
&lt;br /&gt;
All of the objects that are available to use in a mission are described in the [[SDK#FSX|SDK]] documentation. Some notes, exceptions and gotchas are listed here.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Actions ]] =&lt;br /&gt;
Actions are what makes things happen in a mission. There are lots of different actions you can use. An Action only gets used when it is called from a [[#Triggers|Trigger]].&lt;br /&gt;
&lt;br /&gt;
== [[Activate Waypoints Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Adjust Payload Action ]] ==&lt;br /&gt;
This allows you to change the player&#039;s payload at a certain point in their aircraft. The payload station number can be found in the corresponding &amp;lt;code&amp;gt;aircraft.cfg&amp;lt;/code&amp;gt; file for the player&#039;s aircraft, in the &amp;lt;code&amp;gt;[WEIGHT_AND_BALANCE]&amp;lt;/code&amp;gt; section.&lt;br /&gt;
&lt;br /&gt;
For example, try using a combination of RandomActions, TimerTriggers and AdjustPayloadActions to simulate the effect of the entire New Zealand rugby team starting a brawl in the back or your KingAir 350 just before landing.&lt;br /&gt;
&lt;br /&gt;
The OPT never saves the ObjectReference field of an AdjustPayloadAction. While it&#039;s theoretically possible to add or remove payloads from AI, this means it&#039;s not really possible unless you hand-edit the XML.&lt;br /&gt;
&lt;br /&gt;
== [[Attach Droppable Payload Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attach Effect Action ]] ==&lt;br /&gt;
This attaches a visual effect, one of the ones provided in the Effects folder of FSX, to an AI or scenery object. However, it has some significant limitations.&lt;br /&gt;
&lt;br /&gt;
Only models which have AttachPoints built in can be used with an effect. Very few do. Furthermore, if that attachpoint was created with a particular effect in mind, it can never be used with any other effect. Put simply, you can attach effects to the GEN_SceneryEffect model, which is invisible and so can be placed alongside any static visible model. It is highly unlikely that you can attach an effect to the any of the default AI models. In SP1 only (i.e. not RTM, SP2 or Acceleration) you can attach effects to the player.&lt;br /&gt;
&lt;br /&gt;
== [[Change Object Type Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Count Action ]] ==&lt;br /&gt;
This adds a value to a [[#Counter Trigger]]. By setting a negative value for &#039;&#039;Count&#039;&#039;, you can subtract.&lt;br /&gt;
&lt;br /&gt;
== [[Custom Action ]] ==&lt;br /&gt;
These are only useful when working with mission command extensions written using [[SimConnect]]. They pass the &#039;&#039;PayloadString&#039;&#039; value to the extension, which may be either an EXE or a DLL, so that it can perform some kind of action that the normal mission system doesn&#039;t support.&lt;br /&gt;
&lt;br /&gt;
== [[Dialog Action ]] ==&lt;br /&gt;
The main way for you to interact with the mission player, this will display some text on screen and optionally play a sound file. This would typically be a recorded version of the text message.&lt;br /&gt;
&lt;br /&gt;
These messages can be switched off in the simulator settings, so you can&#039;t assume that the sound file is enough. Alternatively, the player have the messages enabled but sound disabled, so you also can&#039;t assume that the text is enough. If they have both messages &#039;&#039;and&#039;&#039; sound disabled, that&#039;s their problem.&lt;br /&gt;
&lt;br /&gt;
The sound file is relative to the &amp;quot;Sound&amp;quot; subfolder of the mission folder.&lt;br /&gt;
&lt;br /&gt;
Do try to make your visible text and recorded speech match; mismatched subtitles get on my nerves :)&lt;br /&gt;
&lt;br /&gt;
== [[Failure Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Goal Resolution Action ]] ==&lt;br /&gt;
These set the state of a goal to be one of Pending, Complete or Failed. Only goals which are activated count towards the final result of the mission though, so you can change the list of goals during the mission. When no active goals are pending, the mission finishes.&lt;br /&gt;
&lt;br /&gt;
== [[Grant Reward Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Object Activation Action ]] ==&lt;br /&gt;
Some types of objects, typically Triggers and Scenery, can be activated and deactivated. This is important for the flow of your mission; you should only have the appropriate triggers activated to avoid the player from taking shortcuts. Using this action you can activate and deactivate other objects.&lt;br /&gt;
&lt;br /&gt;
== [[One Shot Sound Action ]] ==&lt;br /&gt;
Very simply, this plays a recorded sound when it is called.&lt;br /&gt;
&lt;br /&gt;
== [[Play Animation Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Play List Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Point Of Interest Activation Action ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Random Action ]] ==&lt;br /&gt;
This is almost two actions in one. You can set the percentage of the time that you want this action to do anything at all (&#039;&#039;ProbabilityPercent&#039;&#039;). Additionally, only one of the items in the &#039;&#039;Actions&#039;&#039; list is fired, again at random.&lt;br /&gt;
&lt;br /&gt;
This can be very useful for creating &#039;chatter&#039; for making transit sections of your mission a little more interesting. You can have a non-&#039;&#039;OneShot&#039;&#039; TimerTrigger, set maybe to 45 seconds, calling a RandomAction with &#039;&#039;ProbabilityPercent&#039;&#039; of 33 and half a dozen DialogActions attached.&lt;br /&gt;
&lt;br /&gt;
== [[ResetTimer Action ]] ==&lt;br /&gt;
Mainly useful with repeating timers. If you want to check that the player has done something within a certain time, the TimerTrigger is fine. However, if you want to use the same TimerTrigger again, the StartTime needs to be reset to 0. You can&#039;t use the Timer Adjust Action because it has no &#039;set&#039; option.&lt;br /&gt;
&lt;br /&gt;
== [[Rumble Action ]] ==&lt;br /&gt;
This provides force-feedback in a mission, but only works with XBox rumble-controllers, and not other force-feedback joysticks.&lt;br /&gt;
&lt;br /&gt;
== [[Spawn Action ]] ==&lt;br /&gt;
This activates a spawnlist, creating any objects it contains.&lt;br /&gt;
&lt;br /&gt;
== [[Timer Adjust Action ]] ==&lt;br /&gt;
Allows you to add or remove (by using negative numbers) the time remaining before a TimerTrigger fires.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[AI Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[AircraftAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[TakeoffAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[LandingAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[TaxiAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[GroundVehicleAI Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Waypoint List Object  ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Waypoint Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Area Definition Object ]] =&lt;br /&gt;
On some systems, small AreaDefinitions can be missed by the mission system. Normally this only affects slower PCs and faster-moving aircraft. Try to make the smallest dimensions of an AreaDefinition at least 20 meters to avoid problems on slower PCs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Group Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Mission Object ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Camera Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attached World Position Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Attached World Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Picture In Picture View Controller Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Point Of Interest Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Realism Overrides Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Ridge Lift Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Scenario Metadata Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Thermal Mission Object ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Scenery Objects ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Mobile Scenery Objects ]] =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Spawn List ]] =&lt;br /&gt;
This creates new nodes during a mission. You can use it to create visual models in addition to mission actions and triggers. In FSX Acceleration, commands created by a spawnlist can refer to any other object in the mission but in all other versions, including SP2, commands created by a spawnlist &#039;&#039;must&#039;&#039; only refer to other objects in the same spawnlist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Triggers ]] =&lt;br /&gt;
Triggers are used to check for key events during the mission. You might check that the player is above a certain altitude, or has landed at a key airport, or that a certain amount of time has elapsed.&lt;br /&gt;
&lt;br /&gt;
== [[Generic Trigger Properties ]] ==&lt;br /&gt;
All triggers can be marked as Active or Inactive using the &#039;&#039;Activated&#039;&#039; field. An inactive trigger does nothing. The usual way to make your mission storyline is to use the ObjectActivationAction to enable new triggers once the player has achieved a key task.&lt;br /&gt;
&lt;br /&gt;
Triggers can also be marked as &#039;&#039;OneShot&#039;&#039;, which defaults to true. This means that the trigger fires once, and once only. Normally this is what you want to happen, but there are some exceptions.&lt;br /&gt;
&lt;br /&gt;
ProximityTriggers have two Action lists; &#039;&#039;OnEnterActions&#039;&#039; and &#039;&#039;OnExitActions&#039;&#039;. If it is a &#039;&#039;OneShot&#039;&#039; trigger, only one set of actions will ever be used because after the first set has fired, the trigger will be deactivated. If you want both sets of actions to be used, you have to mark the triggers as not being &#039;&#039;OneShot&#039;&#039; (that is, untick the box).&lt;br /&gt;
&lt;br /&gt;
Another common use for a non-&#039;&#039;OneShot&#039;&#039; trigger is a recurring timer, where you want something to happen, say, every two minutes.&lt;br /&gt;
&lt;br /&gt;
If you want to re-use a trigger after it has been fired, but still want it to disable itself after every time, you can use the ObjectActivationAction to re-enable it.&lt;br /&gt;
&lt;br /&gt;
== [[Airport Landing Trigger ]] ==&lt;br /&gt;
Checks that the player, or an AI, has landed or touched down at a specific airport. The associated RunwayFilter object doesn&#039;t seem to care which end of the named runway you touch down on; that is, runways 4 and 22 are seen to be the same.&lt;br /&gt;
&lt;br /&gt;
== [[Area Landing Trigger ]] ==&lt;br /&gt;
Checks to see that the player, or an AI, has landed or touched down &#039;&#039;anywhere&#039;&#039;. This seems to have a lower priority than the AirportLandingTrigger, so it&#039;s common to use this to detect off-airport landings by simply not attaching any AreaRectangle.&lt;br /&gt;
&lt;br /&gt;
== [[Counter Trigger ]] ==&lt;br /&gt;
Simply counts up from 0 to whatever level you tell it to. Use this for things like failing the mission if the player ignores five warnings that they must do something.&lt;br /&gt;
&lt;br /&gt;
== [[Menu Prompt Trigger ]] ==&lt;br /&gt;
This asks the player to make a choice. It&#039;s usually used to give multiple ways of completing a mission by using the different menu items to call ObjectActivationActions which activate different sets of triggers and goals.&lt;br /&gt;
&lt;br /&gt;
== [[Parking Trigger ]] ==&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
== [[Property Trigger ]] ==&lt;br /&gt;
One of the more useful triggers, this can check a set of predefined properties of the player or an AI for being higher, lower or equal to a constant value or another property. Properties can also be combined using And/Or/Not, but you need to hand-edit the mission XML to use these groupings.&lt;br /&gt;
&lt;br /&gt;
== [[Proximity Trigger ]] ==&lt;br /&gt;
A simple but powerful test, this checks that the player or an AI has entered or left a defined area.&lt;br /&gt;
&lt;br /&gt;
== [[Timer Trigger ]] ==&lt;br /&gt;
It&#039;s main purpose is to simply wait for a set time and then call an action. However, it can be used for two other things. By setting &#039;&#039;OnScreenTimer&#039;&#039; to True, you get a visible timer in the sim. This can be count-up or count-down, depending on the values of StartTime and StopTime.&lt;br /&gt;
&lt;br /&gt;
Since this gives visual feedback that the mission system is working, this means it is also a very useful test. If you think that an error is preventing your mission from being loaded at all, create an active, on-screen TimerTrigger. If you get a visible timer, the mission is being run.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Goal Object ]] =&lt;br /&gt;
Each mission must have at least one Goal. When all active Goals are complete or failed, the mission ends. You can change which goals have to be achieved during the mission by using the ObjectActivationAction to switch them on or off.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
= [[Disabled Traffic Airport Object ]] =&lt;br /&gt;
This tells the simulator that it should not create any AI traffic at a specific list of airports. You don&#039;t want an unplanned 747 bearing down on you when you&#039;re in the last few minutes of a two hour long mission, nursing a crippled Cessna back to earth at Heathrow. It can also affect some triggers which may be set up to fire for any aircraft.&lt;br /&gt;
&lt;br /&gt;
= Related content =&lt;br /&gt;
Placeholder text&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
http://www.fsinsider.com/developers/Pages/MissionBuildingTips.aspx&lt;br /&gt;
&lt;br /&gt;
[[category:FSX]] [[category:Missions]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Compiling&amp;diff=3306</id>
		<title>Compiling</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Compiling&amp;diff=3306"/>
		<updated>2008-01-04T14:24:15Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: New page: __TOC__  == Compiling Missions and Rewards == Both Missions and Rewards are written as XML files. While missions may be (and usually are) run straight from the XML, rewards must be compile...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== Compiling Missions and Rewards ==&lt;br /&gt;
Both Missions and Rewards are written as XML files. While missions may be (and usually are) run straight from the XML, rewards must be compiled before they can be used. In short, if you don&#039;t use any rewards and don&#039;t care about saving a fraction of a second in loading time which the player won&#039;t notice anyway because they&#039;re reading the mission briefing, stop reading now.&lt;br /&gt;
&lt;br /&gt;
There are two reasons for compiling a mission. First, it makes it rather faster to load. For all but the largest missions though, this isn&#039;t going to make much noticeable difference. Second, it makes it a little harder for the unwashed masses to find out your mission-writing tricks because the compiled version can&#039;t be loaded into mission editors. However, thanks to the SPB2XML [http://www.google.com/search?q=SPB2XML] tool it can be converted back to XML.&lt;br /&gt;
&lt;br /&gt;
On the other hand, it can also cause a little confusion for you, the mission designer. You have to keep the original mission XML available, otherwise you can&#039;t edit it any more. When you compile your mission though, FSX has two different versions to choose between and it prefers the compiled version. That means that if you compile a mission and then make some more changes, those changes won&#039;t appear in FSX unless you delete the compiled version. It&#039;s easier to only compile your mission once it&#039;s absolutely finished, or to not compile it at all.&lt;br /&gt;
&lt;br /&gt;
=== Running the Mission Compiler ===&lt;br /&gt;
The mission compiler, &amp;lt;tt&amp;gt;simpropcompiler.exe&amp;lt;/tt&amp;gt;, is part of the [[SDK#FSX|SDK]]. It&#039;s located in the &amp;quot;&amp;lt;tt&amp;gt;Core Utilities Kit\SimProp&amp;lt;/tt&amp;gt;&amp;quot; subfolder of the SDK and is a command-line tool. That means that if you double-click it, you&#039;ll see nothing more than a brief, black flash.&lt;br /&gt;
&lt;br /&gt;
While it&#039;s certainly possible to set it up to work with drag-n-drop operation, there is a significant downside to this. If there are any errors in the XML, you won&#039;t see what they are because the DOS box that opens temporarily will close before you can read the error messages. It&#039;s better to open a good, old-fashioned DOS prompt.&lt;br /&gt;
&lt;br /&gt;
Unfortunately there are several different paths needed, so the command-line can get rather long. After you&#039;ve opened the DOS prompt (use Start-&amp;gt;Run and type &amp;quot;cmd&amp;quot;), change directory to the folder with the file you want to compile. If you &#039;&#039;really&#039;&#039; don&#039;t do typing, you can drag the folder from an Explorer window over the DOS window and it will do it for you. Type &amp;lt;code&amp;gt;cd &amp;lt;/code&amp;gt; (with the space afterwards) and then drop the folder.&lt;br /&gt;
&lt;br /&gt;
The command you need will be similar to this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;(Path to Compiler)&amp;quot; 2spb -symbols &amp;quot;(Path to FSX)\propdefs\*.xml&amp;quot; my_file.xml my_file.spb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Path to Compiler)&#039;&#039;&#039; must be replaced with the path to the compiler, oddly enough. It must include the &amp;quot;simpropcompiler.exe&amp;quot; part. Again, the easiest way to do this is to find it using Explorer and then drag-n-drop simpropcompiler.exe onto the DOS window. The rest of the line gives the compiler instructions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2spb&#039;&#039;&#039; tells the compiler what to do - that is, compile some XML to spb. &#039;&#039;&#039;-symbols &amp;quot;(Path to FSX)\propdefs\*.xml&#039;&#039;&#039; tells it where to find some important reference data. &#039;&#039;&#039;my_file.xml&#039;&#039;&#039; is the file you want it to compile, and &#039;&#039;&#039;my_file.spb&#039;&#039;&#039; is the file it will create. You need to change &#039;&#039;&#039;(Path to FSX)&#039;&#039;&#039; to wherever you&#039;ve installed FSX to. If you have a standard installation, this will be:&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\Program Files\Microsoft Games\Microsoft Flight Simulator X&amp;lt;/pre&amp;gt;&lt;br /&gt;
so the full symbol path will be:&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\Program Files\Microsoft Games\Microsoft Flight Simulator X\propdefs\*.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A full command-line, then, might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;C:\Program Files\Microsoft Games\Microsoft Flight Simulator X SDK\SDK\&amp;amp;crarr;&lt;br /&gt;
  Core Utilities Kit\SimProp\simpropcompiler.exe&amp;quot; 2spb&amp;amp;crarr;&lt;br /&gt;
  -symbols &amp;quot;C:\Program Files\Microsoft Games\Microsoft Flight Simulator X\propdefs\*.xml&amp;quot;&amp;amp;crarr;&lt;br /&gt;
  my_file.xml my_file.spb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If this works, you will get an SPB file created. There is no &#039;success&#039; message; if all goes well you will see the normal Microsoft copyright messages and nothing else. If it doesn&#039;t compile, you&#039;ll get a list of errors and you can use this list to find out what&#039;s wrong, and fix it. You can usually try compiling it again by just pressing the up-arrow key and then Enter.&lt;br /&gt;
&lt;br /&gt;
==== Likely Errors ====&lt;br /&gt;
Some of the most common errors are:&lt;br /&gt;
# &amp;lt;tt&amp;gt;Myfile.xml(0) : error 80004005 : Unable to load symbols.&amp;lt;/tt&amp;gt;&lt;br /&gt;
#: This means that the path to the symbols - the bit after &amp;quot;&#039;&#039;&#039;-symbols&#039;&#039;&#039;&amp;quot; - was wrong.&lt;br /&gt;
# &amp;lt;tt&amp;gt;MyFile.xml(0) : error 80004005 : Read failed.&amp;lt;/tt&amp;gt;&lt;br /&gt;
#: It can&#039;t read the XML file you told it to compile. Check that you&#039;re in the right directory, and that you&#039;ve typed the filename correctly.&lt;br /&gt;
# &amp;lt;tt&amp;gt;MyFile.xml(0) : error 80070057 : Write failed.&amp;lt;/tt&amp;gt;&lt;br /&gt;
#: It can&#039;t write the compiled SPB file. Maybe you&#039;ve not given it an output filename (the last option).&lt;br /&gt;
# &amp;lt;tt&amp;gt;MyFile.xml(0) : error 80070005 : Write failed.&amp;lt;/tt&amp;gt;&lt;br /&gt;
#: It still can&#039;t write the compiled SPB file. This usually means that it&#039;s tried to write it over a read-only file that already exists, or that you don&#039;t have permission to write to the output folder.&lt;br /&gt;
# &amp;lt;tt&amp;gt;MyFile.xml(1234,56) : error ??????? : Some Error Description&amp;lt;/tt&amp;gt;&lt;br /&gt;
#: This is an actual error in the XML. The first number after the filename is the line number that it thinks is wrong, and the error description should give you an idea of what&#039;s wrong and how to fix it.&lt;br /&gt;
&lt;br /&gt;
=== Running the Reward Compiler ===&lt;br /&gt;
As with the mission compiler, the reward compiler is also a command-line tool. However, it&#039;s a little less complex to use.&lt;br /&gt;
&lt;br /&gt;
The reward compiler, &amp;lt;code&amp;gt;BGLComp.exe&amp;lt;/code&amp;gt;, is also found under the [[SDK#FSX|SDK]] folder, in a subfolder called &amp;quot;&amp;lt;code&amp;gt;Environment Kit\BGL Compiler SDK&amp;lt;/code&amp;gt;&amp;quot;. Unlike the mission compiler, all you need to do to compile your rewards is change into the directory containing the XML file that contains your rewards, and run the compiler with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;(Path to BGLComp.exe) MyRewards.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With a standard SDK installation, that would be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;C:\Program Files\Microsoft Games\Microsoft Flight Simulator X SDK\SDK\&amp;amp;crarr;&lt;br /&gt;
  Environment Kit\BGL Compiler SDK\BGLComp.exe&amp;quot; MyRewards.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this works as expected, a .RWD file will be created and you will see something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;Parsing document: MyRewards.xml&lt;br /&gt;
&lt;br /&gt;
Parse complete!&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Likely Errors ====&lt;br /&gt;
If BGLComp.exe can&#039;t open the XML file, you will get no output at all! However, if there are any errors in the XML, the reasons for the errors are clearly described. For example:&lt;br /&gt;
* &amp;lt;tt&amp;gt;INTERNAL COMPILER ERROR:  #C2623: Couldn&#039;t open file: (a filename)&amp;lt;/tt&amp;gt;&lt;br /&gt;
*: A file referenced by the reward, most probably an image, couldn&#039;t be found.&lt;br /&gt;
* &amp;lt;tt&amp;gt;INTERNAL COMPILER ERROR:  #C2032: XML Parse Error! Element tree follows:&amp;lt;/tt&amp;gt;&lt;br /&gt;
*: There&#039;s some kind of problem in the XML, and the next lines of output show where the error is. &lt;br /&gt;
&lt;br /&gt;
[[Category:Missions]][[Category:SDK]]&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
	<entry>
		<id>http://www.fsdeveloper.com/wiki/index.php?title=Categories&amp;diff=3304</id>
		<title>Categories</title>
		<link rel="alternate" type="text/html" href="http://www.fsdeveloper.com/wiki/index.php?title=Categories&amp;diff=3304"/>
		<updated>2008-01-04T12:09:51Z</updated>

		<summary type="html">&lt;p&gt;Jimkeir: New page: == Overview == Categories are the way that FSX separates the missions. You can see them on the mission selection screen; the default categories in FSX are:  *Tutorial *Just for Fun *The Go...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Categories are the way that FSX separates the missions. You can see them on the mission selection screen; the default categories in FSX are:&lt;br /&gt;
&lt;br /&gt;
*Tutorial&lt;br /&gt;
*Just for Fun&lt;br /&gt;
*The Good Life&lt;br /&gt;
*Backcountry&lt;br /&gt;
*Emergency&lt;br /&gt;
*Airline Pilot&lt;br /&gt;
*Challenges&lt;br /&gt;
&lt;br /&gt;
FSX Acceleration adds these:&lt;br /&gt;
&lt;br /&gt;
*Racing&lt;br /&gt;
*Military&lt;br /&gt;
*Test Pilot&lt;br /&gt;
*Law Enforcement&lt;br /&gt;
*Acceleration&lt;br /&gt;
&lt;br /&gt;
Every mission must belong to at least one category, but can belong to more. The categories your mission belongs to are set in the ScenarioMetadata node.&lt;br /&gt;
&lt;br /&gt;
As with many FSX objects, categories are known by GUIDs, long strings of characters like this:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
{93290E1B-CDE3-4263-B7AE-B8F87F99D901}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
It&#039;s the GUIDs that need to be entered into the ScenarioMetadata Category field, not the category name.&lt;br /&gt;
&lt;br /&gt;
== Creating New Categories ==&lt;br /&gt;
If your mission doesn&#039;t fit into one of the existing categories, you can create a new one. Maybe you want a category for all of your own missions, so that players can find them easily. Do try to use an existing one if possible though; if there are too many categories then it will be just as hard to find a mission as if there were no categories at all.&lt;br /&gt;
&lt;br /&gt;
Creating a new one is easy if you can use a text editor! The categories are all defined in XML files, in the Categories folder under your FSX installation. There will be at least one, and possibly more of these files already.&lt;br /&gt;
&lt;br /&gt;
* FSX uses &#039;&#039;FSCategories.xml&#039;&#039;&lt;br /&gt;
* FSX Acceleration adds &#039;&#039;FSXXCategories.xml&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t change these files!&#039;&#039;&#039; When you upgrade or patch FSX, your changes will be lost. Also, if you give your mission to other people then your edited copy of, say, FSCategories.xml would kill other people&#039;s missions if they&#039;ve also changed the same file.&lt;br /&gt;
&lt;br /&gt;
Instead, create a new file containing only the new categories you need. The easiest way is to copy FSCategories.xml to, say, MyCategories.xml . Use a sensible name, so that other people&#039;s category files don&#039;t clash with yours. Once you&#039;ve copied it, you can edit it using most text editors. Notepad will do fine, but don&#039;t use Wordpad (or Word, OpenOffice etc.) because they will change it in unexpected ways.&lt;br /&gt;
&lt;br /&gt;
The top of the category file has some details which must be unchanged. The very last line must be left intact too. Between these are the actual category descriptions. This XML fragment shows a category file with a single new category, but you can add as many new categories as you need to a single XML file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;Windows-1252&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;SimBase.Document Type=&amp;quot;AceXML&amp;quot; version=&amp;quot;1,0&amp;quot; id=&amp;quot;FSCategories&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Descr&amp;gt;AceXML Document&amp;lt;/Descr&amp;gt;&lt;br /&gt;
    &amp;lt;Filename&amp;gt;MyCategories.xml&amp;lt;/Filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;SimMissionUI.ScenarioCategory id=&amp;quot;{82c19bb4-1779-43d8-b7d1-8c6a6f8b17d0}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Descr&amp;gt;This is a new category just for my missions.&amp;lt;/Descr&amp;gt;&lt;br /&gt;
        &amp;lt;Title&amp;gt;My New Missions&amp;lt;/Title&amp;gt;&lt;br /&gt;
        &amp;lt;PreviewImage&amp;gt;banner_mymissions.bmp&amp;lt;/PreviewImage&amp;gt;&lt;br /&gt;
    &amp;lt;/SimMissionUI.ScenarioCategory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/SimBase.Document&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The key parts you need to change are:&lt;br /&gt;
* Filename. This should match the actual filename of the file it&#039;s in.&lt;br /&gt;
* Descr. This is the descriptive text that appears in the FSX Mission GUI.&lt;br /&gt;
* Title. This is the new category&#039;s title, used in the drop-list of the FSX Mission GUI.&lt;br /&gt;
* PreviewImage. The name of a bitmap with your new category&#039;s banner.&lt;br /&gt;
* id (Part of the SimMissionUI.ScenarioCategory). This is the GUID (unique identifier) for your new category. You can create one using GUIDGen.exe if you have it, or at http://www.guidgen.com .&lt;br /&gt;
&lt;br /&gt;
As always, XML is very fussy! All the special symbols, and even the case of the words, is important. If you change &amp;quot;Descr&amp;quot; to &amp;quot;descr&amp;quot; for example, it won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
The only other thing you have to do is create a banner image. The easiest way is again to copy one of the existing ones and then edit that using your favourite image editor. Make sure the image&#039;s filename matches the name given under &amp;quot;PreviewImage&amp;quot; in the XML file.&lt;br /&gt;
&lt;br /&gt;
Now you can run FSX and see &amp;quot;My New Missions&amp;quot; appear in the category list.&lt;/div&gt;</summary>
		<author><name>Jimkeir</name></author>
	</entry>
</feed>