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

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

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

tr	{vertical-align:top;}

-->
</style>
</head>
<body>
<h1><img src="SimObject Creation Kit/SimObject Container SDK/Images/fsx-bannerjet.jpg" width="800" height="200" /></h1>
<h1>Microsoft &reg; Flight Simulator X SDK Overview</h1>
<h3>Introduction</h3>
<p> The <i>Microsoft &reg; Flight Simulator X SDK</i> can be used to create add-on components for <i>Microsoft &reg; Flight Simulator X.  </i>These components can be new or replacement aircraft, instrumentation, missions, scenery, terrain, airport ground vehicles, airport runways and buildings, special effects, camera views, and many other elements of the simulated world. It must be pointed out though that some of these tasks, such as creating new aircraft, are very involved, demand a considerable amount of skill and knowledge, and are time consuming. Other tasks, though requiring patience and close attention to detail, can be completed in a few hours - such as designing and adding a simple gauge to an existing aircraft, configuring a new camera, creating a new graphical special effect, or completing a fairly simple new mission. One of the keys to success in using this SDK is breaking a task down into small, testable components. Indeed, the creation of a new aircraft can involve the creation of new instruments,  special effects,  camera views, and appropriate missions, that can all be completed and tested individually before being added to the new aircraft. </p>
<p>&nbsp; </p>
<p>This document provides a brief overview of all the components of the <i>Microsoft &reg; Flight Simulator X SDK,</i> and provides links to all the detailed documentation for each component. Unless the default installation directory is changed, the SDK installs to:</p>
<p>&nbsp;</p>
<p><b>C:\Program Files\Microsoft Games\Microsoft Flight Simulator X SDK\SDK\  </b></p>
<p>&nbsp;</p>
<p>The SDK is divided into four main areas:</p>
<ol>
  <li><a href="#CoreUtilitiesKit">Core Utilities Kit</a>: This  covers the new SimConnect SDK - the programmers interface to <i>Flight Simulator</i>, Camera Configuration, and also tables of variables that can be used by client applications written for SimConnect, and other components of the overall SDK. </li>
  <li><a href="#EnvironmentKit">Environment Kit</a>: This  covers terrain, scenery, modeling, aircraft and boat traffic, and special effects.</li>
  <li><a href="#MissionCreationKit">Mission Creation Kit</a>: This is new  to <i>Flight Simulator</i>, and covers the creation of missions (directed challenges and adventures).</li>
  <li><a href="#SimObjectCreationKit">SimObject Creation Kit</a>: This  covers the creation of aircraft, panels and gauges, and also all the other simulation objects that can appear (ground vehicles, boats, animals, trains, and so on).</li>
</ol>
<p>Some tools and components are relevant to areas outside of the kit they are contained in. For example, special effects can be applied to aircraft as well as scenery. See also the <a href="#HintsandTips">Hints and Tips</a> section for some guidance on specific general topics. A few of the tools require Microsoft &reg; .NET Framework Version 2.0 to be installed <i>first</i>. Install this from:
<p>&nbsp;</p>
<a href = "
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en">
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&amp;displaylang=en</a></p>
<p>&nbsp;</p>
<h3>New for Flight Simulator X</h3>
<p>Most of the SDK components have been updated since <i>Flight Simulator 2004</i>, however a few components are completely new:</p>
<p>&nbsp;</p>
<h6><a href="Core Utilities Kit/SimConnect SDK/SimConnect.htm">SimConnect</a></h6>
<p>This is for programmers to extend <i>Flight Simulator X</i> through the writing of client applications and libraries. The SDK contains around 65 functions, and the documentation includes many  working samples to help explain the development process.</p>
<p>&nbsp;</p>
<h6><a href="Mission Creation Kit/Mission Creation.html">Missions</a> </h6>
<p>A mission is a structured flight that can be an adventure, a  tutorial, a test of knowledge or skill, a fun ride, or whatever the creator can  dream up. A good number of missions will be shipping with <em>Flight Simulator X, </em>however any interested third party developer  can create their own.</p>
<p>&nbsp;</p>
<h6><a href="Core Utilities Kit/Camera Configuration/Camera Configuration.htm">Camera Configuration</a></h6>
<p>The new camera system is highly customizable, providing the end user with some great new features and views.  </p>
<p>&nbsp; </p>
<h3>SDK Components</h3>
<p>The following tables lists the components of each kit, with links to the documentation describing how to use it. </p>
<h4>Core Utilities Kit <a name="CoreUtilitiesKit" id="CoreUtilitiesKit"></a></h4>
<table width="700" class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><h5>Component</h5></td>
    <td><h5>Description</h5></td>
    <td><h5>Documentation</h5></td>
  </tr>
  <tr>
    <td>SimConnect SDK </td>
    <td>The SimConnect SDK can be used by programmers to write add-on
components to Microsoft &reg; <i>Flight Simulator</i>.
These components can be written
in C, C++, or, if the
managed API calls are being used, any Microsoft .NET lanaguge such as
C#.net or VB.net.</td>
    <td><a href="Core Utilities Kit/SimConnect SDK/SimConnect.htm">SimConnect</a></td>
  </tr>
  <tr>
    <td>Variables</td>
    <td>This folder contains a number of files that themselves contain large tables of the variables that can be used along with SimConnect, the XML gauge system, or the C gauge system. </td>
    <td><p><a href="Core Utilities Kit/Variables/Event IDs.htm">Event IDs</a></p>
        <p><a href="Core Utilities Kit/Variables/Simulation Variables.html">Simulation&nbsp;Variables</a></p>
      <p><a href="Core Utilities Kit/Variables/Token Variables.html"></a></p>
      <p><a href="Core Utilities Kit/Variables/Tooltips.html"></a></p></td>
  </tr>
  <tr>
    <td>Camera Configuration </td>
    <td>The camera system has been completely rewritten for <i>Flight Simulator X</i>, and is highly customizable and extensible. </td>
    <td><a href="Core Utilities Kit/Camera Configuration/Camera Configuration.htm">Camera Configuration</a> </td>
  </tr>
  <tr>
    <td>SimProp</td>
    <td>Includes a tool to compile certain xml files into binary, the simpropcompiler. Creating these files is described in the Mission Creation document, as compiling mission xml files is the primary use of the tool. </td>
    <td><a href="Mission Creation Kit/Mission Creation.html">Mission Creation </a></td>
  </tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h4>Environment Kit <a name="EnvironmentKit" id="EnvironmentKit"></a></h4>
<table width="700" class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><h5>Component</h5></td>
    <td><h5>Description</h5></td>
    <td><h5>Documentation</h5></td>
  </tr>
  <tr>
    <td>Autogen SDK </td>
    <td><p>Autogen is the name given to the process of creating default buildings and vegetation. The SDK includes the annotation and autogen config editor tools. </p>    </td>
    <td><p><a href="Environment Kit/Autogen SDK/Autogen.html">Autogen</a></p>
      <p><a href="Environment Kit/Autogen SDK/Library Objects.txt">Library Objects</a></p>
      <p>&nbsp;</p>
      <p>&nbsp; </p></td>
  </tr>
  <tr>
    <td>BGL Compiler SDK </td>
    <td><p>This SDK is used to compile scenery with the BGL scenery compiler.&nbsp; An, XML-based scenery  format was introduced for <i>Microsoft Flight Simulator 2004</i> and is required for  creating new scenery.</p>
      <p>&nbsp;</p>
      <p>Includes the BGLComp and BGLScan tools. </p></td>
    <td><p><a href="Environment Kit/BGL Compiler SDK/The BGL Compiler.html">The BGL Compiler</a></p>    </td>
  </tr>
  <tr>
    <td>Special Effects SDK </td>
    <td>Special effects are used by <em>Flight Simulator</em> to represent graphical   effects such as fire, smoke, rain, steam, exhaust, and similar short term and   highly animated effects.The Special Effects tool is a dialog based utility that   runs along with <em>Flight Simulator</em>. </td>
    <td><a href="Environment Kit/Special Effects SDK/Creating Special Effects.html">Creating Special Effects </a></td>
  </tr>
  <tr>
    <td>Terrain SDK </td>
    <td><p>The terrain system in<i> Flight Simulator</i> consists of eigth main data components,   elevation (DEM data), imagery, land classification, water classification,   regions, seasons, vector data, and population density. All sets of data can be replaced in   whole or in part by new data, perhaps providing a higher resolution, or   sometimes simply alternative data.</p>
      <p>&nbsp;</p>
    <p>Includes the tmfViewer, Shp2Vec, Resample and Imagetool tools. </p></td>
    <td><p><a href="Environment Kit/Terrain SDK/Terrain and Scenery.html">Terrain and Scenery</a></p>
    <p><a href="Environment Kit/Terrain SDK/Terrain Configuration File.html">Terrain&nbsp;Configuration&nbsp;File</a></p>
    <p><a href="Environment Kit/Terrain SDK/Scenery Configuration File.html">Scenery&nbsp;Configuration&nbsp;File </a></p></td>
  </tr>
  <tr>
    <td>Traffic Toolbox SDK </td>
    <td>Includes the TrafficDatabaseBuilder tool, and the traffictoolbox.dll tool. </td>
    <td><a href="Environment Kit/Traffic Toolbox SDK/Traffic Toolbox.html">Traffic Toolbox</a> </td>
  </tr>
  <tr>
    <td>Modeling SDK </td>
    <td>Contains tools to help build the 3D aircraft and scenery models. Includes the XtoMdl.exe tool, and attach point and cloud creation scripts. </td>
    <td><a href="Environment Kit/Modeling SDK/Modeling Tools.html">Modeling Tools</a></td>
  </tr>
  <tr>
    <td>Weather SDK </td>
    <td>Describes the xml files that control the parameters for thermals and the rendered images for thermals and ridge lift. </td>
    <td><a href="Environment Kit/Weather SDK/Weather Systems.html">Weather Systems </a></td>
  </tr>
</table>
<h4>&nbsp;</h4>
<h4>Mission Creation SDK<a name="MissionCreationKit" id="MissionCreationKit"></a></h4>
<table width="700" class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><h5>Component</h5></td>
    <td><h5>Description</h5></td>
    <td><h5>Documentation</h5></td>
  </tr>
  <tr>
    <td>Missions</td>
    <td>A mission is a structured flight that can be an adventure, a tutorial, a test of   knowledge or skill, a fun ride, or whatever the creator can dream up. These   missions are stored in XML files and are made available to the user through the   Missions menu of FSX.<br />
      <br />
      Creating Missions involves use of the Object   Placement Tool, which is powerful but not the easiest or most obvious tool to   use. <br />
      <br />
      The Tutorial section of this document explains how to install the   tool, how to create a simple mission using it, and&nbsp;how to add that Mission so   that it shows up in FSX.
    <br /></td>
    <td><a href="Mission Creation Kit/Mission Creation.html">Mission Creation </a></td>
  </tr>
</table>
<p>&nbsp;</p>
<h4>SimObject Creation Kit <a name="SimObjectCreationKit" id="SimObjectCreationKit"></a></h4>
<table width="700" class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><h5>Component</h5></td>
    <td><h5>Description</h5></td>
    <td><h5>Documentation</h5></td>
  </tr>
  <tr>
    <td>Cabdir SDK</td>
    <td>If you create add-ons for <i>Flight Simulator</i>, you  can use the Cabdir utility (cabdir.exe) to combine all the folders and files in  a directory into a single .cab file (similar to a .zip file), simplifying the  process of distributing files to end-users. </td>
    <td><a href="SimObject Creation Kit/Cabdir SDK/Cabdir.html">Cabdir</a></td>
  </tr>
  <tr>
    <td>Panels and Gauges SDK</td>
    <td><p>XML gauges are described in full, along with a tutorial that shows the creation of a simple fuel pressure gauge, and a slightly more complex stopwatch gauge. Gauges can also be developed in C++, and the necessary include files, and a sample, are provided. </p>
      <p>&nbsp;</p>
      <p>Panel configuration files determine what gauges are displayed for any particular aircraft. Panels are particular to one variation of one aircraft, whereas gauges can be referenced from any number of panels. </p>
    </td>
    <td><p><a href="SimObject Creation Kit/Panels and Gauges SDK/Creating XML Gauges.html">Creating&nbsp;XML&nbsp;Gauges</a> </p>
    <p><a href="SimObject Creation Kit/Panels and Gauges SDK/Panel Configuration Files.htm">Panel&nbsp;Configuration&nbsp;Files </a></p>
    <p><a href="SimObject Creation Kit/Panels and Gauges SDK/GPS Variables.html">GPS Variables</a></p>
    <p><a href="SimObject Creation Kit/Panels and Gauges SDK/Panel and Gauge Artwork.html">Panel&nbsp;and&nbsp;Gauge&nbsp;Artwork</a></p>
    <p><a href="SimObject Creation Kit/Panels and Gauges SDK/Creating C Gauges.doc">Creating C Gauges</a></p>
    <p><a href="SimObject Creation Kit/Panels and Gauges SDK/Tooltips.html">Tooltips</a></p>
    <p><a href="SimObject Creation Kit/Panels and Gauges SDK/HelpIDs.html">HelpIDs</a></p>
    <p><a href="SimObject Creation Kit/Panels and Gauges SDK/Token Variables.html">Token Variables</a></p>
    <p>&nbsp; </p></td>
  </tr>
  <tr>
    <td><p>SimObject Container SDK</p></td>
    <td><p>The aircraft configuration file specifies the versions of the aircraft included in the   aircraft container, as well as the attributes (name, color, sound, panels,   gauges, and so on) for each aircraft and where to find the files that define   those attributes. Other simulation objects such as airport vehicles, animals,  boats, and so on, also require configuration files. </p>
      <p>&nbsp;</p>
    <p>The sound configuration file is located in an aircraft&rsquo;s Sound folder, and defines the   sounds to use for that aircraft. </p></td>
    <td><p><a href="SimObject Creation Kit/SimObject Container SDK/Aircraft Configuration Files.htm">Aircraft&nbsp;Configuration&nbsp;Files</a></p>
        <p><a href="SimObject Creation Kit/SimObject Container SDK/Sound Configuration Files.htm">Sound&nbsp;Configuration&nbsp;Files</a></p>
      <p><a href="SimObject Creation Kit/SimObject Container SDK/Simulation Object Configuration Files.htm">SimObject&nbsp;Configuration&nbsp;Files </a></p></td>
  </tr>
</table>
<p>&nbsp;</p>
<h3>Hints and Tips<a name="HintsandTips" id="HintsandTips"></a></h3>
<h6>&nbsp;</h6>
<h6>Development Software</h6>
<p>Microsoft &reg; Visual C++ 2005 or Microsoft &reg; Visual C++ 2005 Express Edition can be used to develop SimConnect client applications. For more information on the <i>Express Edition</i> check out the following websites:</p>
<p>&nbsp;</p>
<p><a title="http://www.microsoft.com/vstudio/express" href="http://www.microsoft.com/vstudio/express">www.microsoft.com/vstudio/express</a></p>
<p><a title="http://www.msdn.microsoft.com/coding4fun" href="http://www.msdn.microsoft.com/coding4fun">www.msdn.microsoft.com/coding4fun</a></p>
<p>&nbsp;  </p>
<h6>SDK Updates</h6>
<p>Updates to the SDK tools, samples, documentation and other components will be available from:</p>
<p>&nbsp;</p>
<p><a href="http://www.fsinsider.com">/http://www.fsinsider.com/</a></p>
<p>&nbsp; </p>
<h6>Forums</h6>
<p> Whereas most developer questions will be answered in the SDK documentation and samples, there will always be some questions that are not, so SDK developers are encouraged to join and participate in the various forums discussing the development of add-ons for <i>Flight Simulator</i>.</p>
<p>&nbsp;</p>
<h6>Generating GUIDs </h6>
<p>A number of the SDK components require GUIDs (globally unqiue identifiers). A tool to generate these is included with both Visual Studio and Visual Studio Express, or alternatively download the GUIDGEN tool from:</p>
<p>&nbsp;</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?familyid=94551f58-484f-4a8c-bb39-adb270833afc&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=94551f58-484f-4a8c-bb39-adb270833afc&amp;displaylang=en</a></p>
<p>&nbsp;</p>
<p>This will place an icon on the desktop, called GUIDGen, open this up and double click on GUIDGEN to open up the tool:</p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><img src="GUIDGen dialog.JPG" width="375" height="346" /></td>
    <td><p>For most <i>Flight Simulator </i>applications, choose option 4. Registry Format as the most appropriate GUID format.</p>
    <p>&nbsp;</p>
    <p>Click New GUID as many times as necessary, as it is not a good idea to manually modify existing GUIDs, as the chances of repeating an existing GUID is greatly increased by doing this. </p>
    <p>&nbsp;</p>
    </td>
  </tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h6>Installation to a non-default folder</h6>
<p>The paths in the documentation and some tools will only be correct if the SDK is installed to the default folder. If the SDK is installed to a non-default folder, be aware that some documented paths may not be correct, and run the tool ConfigSDK.exe (in the SDK folder) to update the paths of a number of the configuration tools to the correct folder. </p>
<p>&nbsp; </p>
<h6>Legacy</h6>
<p>The NetPipes SDK, ABL SDK and Weather Themes SDK  are being deprecated, and are no longer supported.
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p align="center">&copy; &amp; (P) 2006 Microsoft   Corporation. All rights reserved.</p>
<p align="center">&nbsp;</p>
<p align="center">Microsoft, DirectX, Visual   Studio, and Windows are either registered trademarks or trademarks of Microsoft   Corporation in the United   States and/or other   countries.</p>
<p align="center">&nbsp;</p>
<p align="center">The names of actual companies   and products mentioned herein may be the trademarks of their respective   owners.</p>
<p align="center">&nbsp;</p>
<p align="center">~~@~~ </p>
</body>
</html>
