Difference between revisions of "Frequently Asked Questions (FAQ)"

From FreeSpace Wiki
Jump to: navigation, search
(added section - Why can't I use my pilot with different versions)
(Formatting; Add FAQs for multi-joy.)
Line 1: Line 1:
==Why are my bindings back to defaults?==
+
This page contains answers to questions that may be asked when playing newer versions of FSO.  They are usually questions related to new behaviors not present in older version or vanilla FreeSpace, and are often questions that don't have a simple one-line answer.
 +
 
 +
 
 +
===Why are my bindings back to defaults?===
 
If you created or played with a pilot on FSO 22.0 or later, your bindings were moved into files known as "presets" which are saved in a sub directory of your players folder.
 
If you created or played with a pilot on FSO 22.0 or later, your bindings were moved into files known as "presets" which are saved in a sub directory of your players folder.
 +
  
 
'''Example:''' '''''C:\Users\z64555\AppData\Roaming\HardLightProductions\FreeSpaceOpen\data\players\presets'''''
 
'''Example:''' '''''C:\Users\z64555\AppData\Roaming\HardLightProductions\FreeSpaceOpen\data\players\presets'''''
 +
  
 
The reason why your bindings are back to defaults in pre-22.0 version is because:
 
The reason why your bindings are back to defaults in pre-22.0 version is because:
Line 14: Line 19:
  
  
==Why can't I use my pilot with different versions of FSO?==
+
===Why can't I use my pilot with different versions of FSO?===
 
Our pilot file handling code has improved over the years to allow new data to be added to the pilot file, but we still haven't managed to get it in a perfect state due to a lack of manpower and interest.
 
Our pilot file handling code has improved over the years to allow new data to be added to the pilot file, but we still haven't managed to get it in a perfect state due to a lack of manpower and interest.
  
 
Pilot files might be still usable across different versions of FSO, but this can not be guaranteed at this point in time.  When in doubt, it is always recommended that you make a clone of your pilot and use the clone for that version of FSO.
 
Pilot files might be still usable across different versions of FSO, but this can not be guaranteed at this point in time.  When in doubt, it is always recommended that you make a clone of your pilot and use the clone for that version of FSO.
 +
 +
 +
===Can I use multiple joysticks in FSO?===
 +
As of FSO version 22.0, players are now able to assign up to 4 independent joysticks/controllers, independently assign the mouse to controls, and can assign a primary input binding and a secondary input binding from two different joysticks per control.
 +
 +
In order to make use of this capability, you must use a compatible launcher or manually set the joystick ID and GUID's within your '''fs2_open.ini''' file.
 +
 +
====Where is the fs2_open.ini file?====
 +
This may be found within AppData.
 +
 +
'''Example:''' '''''C:\Users\z64555\AppData\Roaming\HardLightProductions\FreeSpaceOpen\fs2_open.ini'''''
 +
 +
====How do I assign my joysticks in the fs2_open.ini?====
 +
Add the following keys to your .ini, underneath the '''[Default]''' section:
 +
 +
  '''''Joy0ID='''''
 +
  '''''Joy0GUID='''''
 +
  '''''Joy1ID='''''
 +
  '''''Joy1GUID='''''
 +
  '''''Joy2ID='''''
 +
  '''''Joy2GUID='''''
 +
  '''''Joy3ID='''''
 +
  '''''Joy3GUID='''''
 +
 +
'''Joy0''' is effectively the same as '''CurrentJoystick'''
 +
 +
====Where do I get the Joystick ID's and GUID's?====
 +
{{Note|For best reliability, the GUID's must be obtained from FSO itself, not from any other third-party app.}}
 +
 +
This is the most difficult part of manually assigning the joysticks, depending on your operating system and familiarity with command prompt/ shell.  Essentially, you'll want to run FSO with the '''-get_flags json_v1''' commandline flag from the command prompt, power shell, or bash.
 +
 +
 +
'''Example:''' '''''C;\Games\FreeSpaceOpen\fs2_open_22_0_0_x64_SSE2.exe -get_flags json_v1 > flags.txt'''''
 +
 +
 +
Windows users will probably also need to set the '''FSO_KEEP_STDOUT''' environment variable, due to its tendency to shut down the STDOUT streams to console when the application is identified as a WINDOWS application (as opposed to a CONSOLE application), in which case they should try the following:
 +
 +
'''cmd /V /C "set FSO_KEEP_STDOUT=1&& fs2_open_22_0_0_x64_SSE2.exe -get_flags json_v1 > flags.txt"'''
 +
 +
Once you have a flags.txt file created, look for a section that looks like this:
 +
 +
  {
 +
    "joysticks": [
 +
      {
 +
        "name": "Joystick Name",
 +
        "guid": "03000000EFBE00006D04000000000000",
 +
        "id": 0,
 +
        "device": 0
 +
      }
 +
    ]
 +
  }
 +
 +
Use the "guid" and "id" key values to assign that joystick to Joy0, Joy1, Joy2, or Joy3 respectively.

Revision as of 18:53, 9 February 2022

This page contains answers to questions that may be asked when playing newer versions of FSO. They are usually questions related to new behaviors not present in older version or vanilla FreeSpace, and are often questions that don't have a simple one-line answer.


Why are my bindings back to defaults?

If you created or played with a pilot on FSO 22.0 or later, your bindings were moved into files known as "presets" which are saved in a sub directory of your players folder.


Example: C:\Users\z64555\AppData\Roaming\HardLightProductions\FreeSpaceOpen\data\players\presets


The reason why your bindings are back to defaults in pre-22.0 version is because:

1. Older versions of FSO still require that the pilot have bindings in them, or else FSO will crash because it doesn't know how to handle a pilot with missing data.

2. To prevent having a new preset generated each time the same pilot is used across pre- and post-22.0 versions of FSO, the bindings within the pilot are forced to the defaults.

  • The bindings that were originally saved are still safe within the \presets sub directory.

Related Github issue: Issue 3902


Why can't I use my pilot with different versions of FSO?

Our pilot file handling code has improved over the years to allow new data to be added to the pilot file, but we still haven't managed to get it in a perfect state due to a lack of manpower and interest.

Pilot files might be still usable across different versions of FSO, but this can not be guaranteed at this point in time. When in doubt, it is always recommended that you make a clone of your pilot and use the clone for that version of FSO.


Can I use multiple joysticks in FSO?

As of FSO version 22.0, players are now able to assign up to 4 independent joysticks/controllers, independently assign the mouse to controls, and can assign a primary input binding and a secondary input binding from two different joysticks per control.

In order to make use of this capability, you must use a compatible launcher or manually set the joystick ID and GUID's within your fs2_open.ini file.

Where is the fs2_open.ini file?

This may be found within AppData.

Example: C:\Users\z64555\AppData\Roaming\HardLightProductions\FreeSpaceOpen\fs2_open.ini

How do I assign my joysticks in the fs2_open.ini?

Add the following keys to your .ini, underneath the [Default] section:

 Joy0ID=
 Joy0GUID=
 Joy1ID=
 Joy1GUID=
 Joy2ID=
 Joy2GUID=
 Joy3ID=
 Joy3GUID=

Joy0 is effectively the same as CurrentJoystick

Where do I get the Joystick ID's and GUID's?

Note: For best reliability, the GUID's must be obtained from FSO itself, not from any other third-party app.

This is the most difficult part of manually assigning the joysticks, depending on your operating system and familiarity with command prompt/ shell. Essentially, you'll want to run FSO with the -get_flags json_v1 commandline flag from the command prompt, power shell, or bash.


Example: C;\Games\FreeSpaceOpen\fs2_open_22_0_0_x64_SSE2.exe -get_flags json_v1 > flags.txt


Windows users will probably also need to set the FSO_KEEP_STDOUT environment variable, due to its tendency to shut down the STDOUT streams to console when the application is identified as a WINDOWS application (as opposed to a CONSOLE application), in which case they should try the following:

cmd /V /C "set FSO_KEEP_STDOUT=1&& fs2_open_22_0_0_x64_SSE2.exe -get_flags json_v1 > flags.txt"

Once you have a flags.txt file created, look for a section that looks like this:

 {
   "joysticks": [
     {
       "name": "Joystick Name",
       "guid": "03000000EFBE00006D04000000000000",
       "id": 0,
       "device": 0
     }
   ]
 }

Use the "guid" and "id" key values to assign that joystick to Joy0, Joy1, Joy2, or Joy3 respectively.