# Input Configuration XML Properties The `[device_name].xml` file is the **input configuration file** which is used to create custom input bindings within the simulation for different devices. The file contains information that binds specific inputs from a controller (XBox gamepad, mouse, VR controller, joystick, etc...) to specific [input event actions.](../../programming-apis/key-events/key-events/)   This file is created automatically for you when you use [The Input Profile Editor](../../devmode/editors/input-editors/the-input-profile-editor/), and a such, this page is provided **purely for reference** and all edition of the file should be done using the editor to ensure that it is set up correctly. Please see the following pages for more information on how to do this: - [Setting Up Transversal Bindings](device-profiles/#transversal-bindings) - [Aircraft Category Profiles](aircraft-category-input-profiles/) - [Aircraft Specific Input Profiles](aircraft-specific-input-profiles/)   this file has the following schematic structure: ``` xml ```     ### <DefaultInput> This is the container element within which all the other elements that define the input bindings will be stored. It has the following sub-elements: 1. `` 2. ``   It requires the following attributes:  
AttributeDescriptionTypeRequired
PrimaryThis shows whether the profile is the "primary" profile or not. When set to 1, the profile will be applied as the default profile when the simulation is started and the device is connected. When set to 0, it will not be applied automatically.BoolYes
PlatformAvailability

This sets what platforms the device profile is valid for. The possible options are:

  1. "PC"
  2. "XBOX"
  3. "PLAYSTATION"
  4. "PC, XBOX"
  5. "PC, PLAYSTATION"
  6. "XBOX, PLAYSTATION"
  7. "ALL"
StringYes
    ### <Version /> This self-closing element is a sub-element of `` and is used to identify the current version of the file. Note that every time you save the file using the [Input Profile Editor](../../devmode/editors/input-editors/the-input-profile-editor/), this number will be incremented automatically.   It requires the following attributes:   {{< table-wrapper >}} | Attribute | Description | Type | Required | |-----------|-----------------------------------------|---------|:--------:| | `Num` | The current version number of the file. | Integer | Yes | {{< /table-wrapper >}}     ### <Device> This sub-element of `` is the container element that holds all the different inputs and global values related to the device that was used for the input profile. It has the following sub-elements: 1. `` 2. ``   It requires the following attributes:  
AttributeDescriptionTypeRequired
DeviceNameThe identifying name of the device.StringYes
GUID

The unique GUID for the device. This is the reference the simulation will use to identify the device, and must be in the format "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx}", all lower case, for example:

GUID="{3b2577e0-8753-11ed-8004-444553540000}".

StringYes
ProductID

This is the product ID for the device being defined. The ID should be formatted as a hexadecimal value. For example, if the Product ID is 767 you would have:

ProductID="0x2FF"

You can find the product ID from the device properties in the Input Device Editor.

HexadecimalYes
CompositeIDThis is the composite ID for the device being defined, expressed as an integer. You can find the composite ID from the device properties in the the Input Device Editor.IntegerYes
HWVerHardware version of the device. Similar to the composite ID, the hardware version is used to link multiple parts together when they do not all belong to a single product ID.StringYes
    ### <Axes> This sub-element of `` is the container element that holds the global axis values, defined using multiple `` elements. This element has no attributes.     ### <Context> This sub-element of `` is used to store the bound inputs associated with a specific simulation *context*. Context is an internal setting used by the simulation to enabled/disable inputs based on what the user is doing within the simulation (for example, using the drone camera, using cockpit controls, etc...). As such, the input profile XML file will normally have multiple `` entries, and within each context you will have multiple `` elements defining the inputs bound to the context. You can find more information on context here: - [Understanding Contexts And Profiles](input-profiles/#contexts-profiles)   This element has the following attribute:   {{< table-wrapper >}} | Attribute | Description | Type | Required | |---------------|----------------------------------------------------------------|--------|:--------:| | `ContextName` | The context name for the actions contained within the element. | String | Yes | {{< /table-wrapper >}}     ### <Action> This sub-element of `` is used to hold the input bindings to specific input event actions. It can have the following two sub-elements: 1. `` 2. ``   This element has the following attributes:  
AttributeDescriptionTypeRequired
ActionName

This is the name of the input event action that the primary (and secondary) device input will be bound to. The action name is either:

  • An Event ID - prefixed with "KEY_" - if the profile is transversal or for an aircraft category. For example:

    ActionName="KEY_KOHLSMAN_INC"
  • An Input Event taken from from the aircraft model behaviours if the profile is an aircraft specific profile. For example:

    ActionName="AIRFRAME_ALTERNATE_AIR_GEAR_INC"
StringYes
Flag

This is a bit-flag which is used to define the kind of input that is being received from the device being defined. The following values can be combined to create a single flag value that defines the way the input will be interpreted:

  1. 1 = FL_ANALOG
  2. 2 = FL_DIGITAL
  3. 4 = FL_AXIS
  4. 8 = FL_NO_MOD
  5. 16 = FL_MOD_CTRL
  6. 32 = FL_MOD_SHIFT
  7. 64 = FL_MOD_ALT
  8. 128 = FL_MOD_INV
  9. 256 = FL_MOD_UP
  10. 512 = FL_MOD_VALUE
  11. 1024 = FL_MOD_NO_SENS_CURVE
  12. 2048 = FL_MOD_RESET_ONCONTEXT_DISABLED
  13. 4096 = FL_MOD_AXIS_OVERRIDE
  14. 8192 = FL_MOD_PRESSED
  15. 16384 = FL_MOD_DELAYED_EXCLUSIVE
  16. 32768 = FL_MOD_NO_KEYBOARD_LAYOUT

For a full description of these flags, please see the section on Action Options. It should be noted that:

IntegerYes
ValueEventThis is the value that will be sent when the event is triggered.Float/IntegerNo
    #### <Primary> This is a sub-element of `` and is used to define the primary input for the event action. The element has no attributes and must contain one `` sub-element, and optionally - depending on whether the input has a custom axis definition - one `` sub-element.     #### <Secondary> This is a sub-element of `` and is used to define the secondary input for the event action. The element has no attributes and must contain one `` sub-element, and optionally - depending on whether the input has a custom axis definition - one `` sub-element.     ### <Axis /> This element can be used in the `` and `` elements to define the properties of a single axis of the device. This is a self-closing element with the following attributes:  
AttributeDescriptionTypeRequired
AxisName

The name of the axis being defined. Must be one of the following:

  1. "X"
  2. "Y"
  3. "Z"
  4. "rX"
  5. "rY"
  6. "rZ"
  7. "SliderX"
  8. "SliderY"
StringYes
AxisSensitivyThe positive sensitivity of the chosen axis, defined as a value between 0 and 100.IntegerYes
AxisSensitivyMinusThe negative sensitivity of the chosen axis, defined as a value between -100 and 0.IntegerYes
AxisDeadZoneThe inside position of the chosen axis dead zone, defined as a value between 0 and 100.IntegerYes
AxisOutDeadZoneThe outside position of the chosen axis dead zone, defined as a value between 0 and 100.IntegerYes
AxisNeutralThe chosen axis neutral position, defined as a value between -100 and 100.IntegerYes
AxisResponseRateThe response rate for the chosen axis, defined as a value between 100 and 2000. You can use -1 to ignore this attribute and use the default sensitivity.IntegerYes
    ### <KEY> This is a sub-element of both the `` and `` elements, and is used to define a single input source from a device. Note that the value given inside the `` tag is generated by the [Input Profile Editor](../../devmode/editors/input-editors/the-input-profile-editor/) and is essentially the numeric ID for the `Information` attribute input source, in a format that can be easily read by the simulation. You should not change this value or try to use your own.   This element has the following attribute:   {{< table-wrapper >}} | Attribute | Description | Type | Required | |---------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------|:--------:| | `Information` | This is the name of the input source as returned by the device or as shown in the [Device Keys](../../devmode/editors/input-editors/the-input-profile-editor/#device_keys) window. | String | Yes | {{< /table-wrapper >}}