Jump to content

RoF joystick ID editing: an easier way

IRFC Hawkeye

Recommended Posts

We all know what a pain it is when some Windows update decides to change all of your joystick IDs in RoF.  If you have a lot of devices, and lots of buttons axis' assigned on those devices, it can take a long time to fix, and it's easy to miss something.


Instead of going through all of the pages in your current controls map inside the game, re-assigning every one that has to do with a joystick, and then re-saving the file, you can do this:


First, start the game and determine what your current joystick IDs are, compared to your old IDs.  Click in any open field of the controls map, and actuate a button (or axis) for each game controller; take note of what ID the game now sees it as.  Example: this assumes an installation that uses 3 different game controllers:  a joystick, a throttle, and a set of pedals.


Device:          Old ID:          New ID:


Joystick           joy0               joy1

Throttle            joy1               joy2

Pedals             joy2               joy0


Write down the above information; exit and close the RoF game.


Now browse to the location of the ".actions" file that you wish to correct.  For example, if the current controls map that you're using is based on a file that you've saved called "1 and 2 engine" in the game, find the file called "1 and 2 engine.actions". In this example, the location would be:  C:\Program Files (x86)\1C-777\Rise of Flight\data\input   Open the file using Notepad.


In the center column of that file, see all of the entries that have either "joy0", "joy1" or "joy2" in them.  All of the other entries that do not have "joy_" in them, you will ignore and bypass.  Starting at the very first entry that has "joy_" in it, position your cursor just to the right of the number that follows "joy".  That is your OLD or original controller ID for that controller.  Hit "Backspace", and then enter the NEW number for that particular controller.  Then, using the "down arrow", arrow down until the cursor is on the right side of the NEXT number in the file.  Paying attention to what that number is, change it to the new ID.  Using the example above, you would do this:  Change every "0" to a "1".  Change every "1" to a "2".  Change every "2" to a "0".


By starting at the first instance of a joystick ID in the file, and progressing down, in order, all the way through the file to the end, you'll be doing this repetitively:  Backspace, [new number], down arrow, backspace, [new number], down arrow, etc., etc.


When all of the "joy_" entries have been corrected to their current IDs, save the file by going to the top and hit "File>Save"; then close the file browser.


Restart RoF, then go to Settings and Controls; then import the file with the name that you just edited.  Then hit "apply".  This will make the corrected file your current controls map file.  DO NOT edit   "_current_.map"  in the "input" directory, directly.  Use the above procedure instead.


The above procedure allows you to more quickly correct the entire controls map without having to depress the correct buttons all over again, some of which may be tricky or finicky to duplicate, and avoids you having to remember exactly which button to push for each function, in order to keep it the same as it was before the ID change.  Since you are only changing the number, you don't have to remember which did what.  It also reduces the chance that you'll miss some single entry on a page of the controls map in the game, since you're going in order from top to bottom in the file.


Once the imported file has been applied, everything should now work again, just like it did before, with a minimum of hassle.





Link to comment
Share on other sites

At one time I was going to do that. However, obviously the more controllers you have, the more complex it gets; then add to that any variations in controls maps you may have started with.

For example, if I have 3 controllers, there are 8 different possibilities in ID combinations, for each map. Now, if I have 3 or 4 different maps, such as a default map, a map for single engine planes, a map for twin engined planes, and a map for a 4 engined plane....or maybe, you've made a map for a rotary type plane, as opposed to a water cooled plane, in addition to the default map. In any case, the number of required maps to cover all possible variations in controller IDs quickly explodes to 24 - 32 different maps.

The solution of course is to develop one single, universal map that works for everything. RoF won't let you edit the "default" map....at least, not within the game.... so from that standpoint, you'd have to have at least 2 separate maps. It would be interesting to see if you could successfully edit the "default" map outside the game and be able to use that map alone.  Even if RoF forced you to have the non-editable default map, you could effectively ignore it and work off of your other 8 (or whatever number, depending on your number of controllers), thereby minimizing the number to 9 total maps that would cover all possible ID combinations.

What you're suggesting is doable, and far more practical for anybody who has fewer game controllers, and, ultimately, the least possible number of maps.... preferably, one universal map.

Truthfully, I think I'm just about to that point anyway. I think it could be practical for anybody that wanted to work at it. Using the method in the O.P. would certainly be the easiest way to accomplish that.

Link to comment
Share on other sites

For me the only item that changes is my throttle so I just have "joy1" "joy2" etc for throttle in BOx and I have all the differences saved in ROF controls "import" / "export". In BOx I just load whichever conf.ini is needed and in ROF I just import the saved file in the controls menu (I wish they had kept that option in BOx).

Link to comment
Share on other sites

It's not that the IDs don't change for BoX.... but the game recognizes when they have changed. The next time you start the game, it asks you if you want to transfer all of the functions that were assigned to the "old" controller to the "new" controller.


You definitely want to answer "yes" when it asks you that.


It is doing, automatically, exactly what I did manually, in the O.P.


The problem is that it thinks the original controllers actually exist as separate physical units that you might want to plug in again, later; so instead of recycling the ID numbers, it increments them to new ones sequencially each time. So, I'm up to about joystick 6 right now, and the file in the game that keeps track of all of your controllers is quite a mess.... ideally, in my case, it should only have 3 devices in it.


I am wondering if it's OK to simply delete the obsolete IDs from that file, and if I did, what would happen the next time the game started, or the next time the IDs changed.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...