Frequently Asked Questions (FAQ)

From FreeSpace Wiki
Revision as of 15:33, 19 February 2024 by Wookieejedi (talk | contribs) (update with Knet reference)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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, gamepads, throttles, or game controllers; independently assign the mouse to controls; 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 such as Knossos.NET 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:


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\bin\FSO-22.0.0\windows\x64> fs2_open_22_0_0_x64_SSE2.exe -get_flags json_v1 > flags.txt

Keep in mind this is an example only. You will need to change FSO-22.0.0 and fs2_open_22_0_0_x64_SSE2.exe to fit the version you have installed.

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"

As above, fs2_open_22_0_0_x64_SSE2.exe will need to match the actual version you are working with.

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.

Windows Tutorial for obtaining the GUID
  1. Navigate to your FSO installation using File Explorer. If you're using Knossos, then this directory is the same as "Library Path" within Knossos's settings.
  2. Right click the address bar within File Explorer and "Copy the Address as Text"
  3. Open the command prompt from the start menu:
    • Open the start menu,
    • Type in "prompt",
    • and then left click on "Command Prompt"
  4. In the command prompt window, type in "cd /D " (without the quotes), with a space after the D. Then, right click on the command prompt and Paste the address you copied from before. Hit the Enter key to execute the cd command. The prompt should then show the address text again with ">" as the last character to show that its now in that directory.
  5. In the command prompt, type in "dir" and hit enter to execute the dir command, which should show you a list of all files and folders within the directory. Confirm that your fs2_open.exe is in there.
  6. Follow the directions outlined in #Where do I get the Joystick ID's and GUID's?, Using the full name of your fs2_open.exe should it differ from the instructions.