JoystickProfiler (JoyPro) for DCS

What this is: a community developed free utility that allows a DCS user to create a single controller profile and push it to all modules, greatly simplifying the process of either setting up as a new user or adding/replacing hardware flight controls. The base control profile can be as simple or detailed as desired. This utility is under development, so use at your own risk. Please read the associated documentation, watch the videos, and backup your <Windows Profile>\Saved Games<DCS>\Config\Input folder before proceeding.

Where to Download:

My relations template to save you a bunch of work creating one: (103.2 KB)


Introduction: (watch first)

How to Add Relations. If this is TLDR, use my template above.


That is very cool! I have been using DCS for so long that I actually ENJOY using the DCS control profiler. I attribute this to a technological form of the Stockholm Syndrome.


Update: while an amazing utility, the developer, Holdi601, is still working out some bugs, especially when adding modifiers. If you want to help debug, best to jump on his DISCORD server (link in OP above). Since my original post, he has add two more versions, including a function to manage and name modifiers. It’s coming along nicely. When its reasonably well cooked, I’ll post a get-started guide here.

Importantly, he has added a way to swap in new controllers without doing the whole song and dance. Pretty brilliant, IMO.



Update, Holdi601 pushed an update (v0025) Saturday night which squashed all reported bugs, including one that I was having regarding using modifiers with your stick’s POV hat. As a test, I deleted everything in \Saved Games\DCS\Config\Input and pushed a profile. So far have tested the P-51D, MiG-15bis, Hornet, and MiG-29G. Everything worked perfectly.

One thing that using the profile has let me do, is fly way more aircraft in DCS than the usual 5 that I’ve taken time to configure controllers for. For instance, the MiG-29 is really amazing, but I hadn’t flown it in a couple of years, because I’d procrastinated configuring controller setup. It’s also helped me push a consistent config over all aircraft, something that I had tried to do but failed previously.


Joystick Profiler version 0032 released. Bug squashing for major features release in v0030.


Joystick Profiler is up to version v0038 with many new features. I’ve created a new template adding many more commands, including engine management for the P-47D, as well as fixed some bugs in my v0032 profile template. T-45 is still a WIP. Since I can’t edit my original post above, please download from either the github or dicord links in my original post. Cheers

1 Like

I reset my windows, trying to get rid of a highly annoying mouse lag bug, and of course my controllers all changed ID. Because why the heck not. So I tried looking into this thing.

I tried “Exchange Device” but it didn’t seem to do much. Is there somewhere I can read what this thing does, not watch a bloody 30minute youtube?

Feeling pretty darn dumb at the moment, getting stumped by the git page and the thing itself. But it’s late and I should just let it be for now.

I reckon it’s better to get this to work than do another mass rename of the files, right?

I feel your pain comrade. Unfortunately, the documentation is inadequate and the developer has not paid much attention to Joystick Profiler (JP) lately. He will answer questions on discord (link in the OP above). As to your specific query, the exchange device feature has only worked for me when I was already using JP and had a profile built. What I think that you are trying to achieve, is to import your configurations from DCS and simply swap devices without building them from scratch. I’m not sure if it will work that way, but since I am frequently wrong about many of life’s mysteries, may I suggest popping into his discord channel and ask that directly?

In the event that your attempts are futile, you could use my relations template, which is good for about every module in DCS (except rotors), and will save you many hours of tedious input. And I’m happy to jump on discord next weekend and walk you through using the program. Otherwise, you might have to watch a few videos, by your favorite YouTube influencer :grin: In JP, pick your sim from the top drop-down box, and DCS instance from the bottom one. Unzip dis sucker and use the Load Relations button in JP. (126.2 KB)

1 Like

The author is back working on Joystick Profiler, has added a bunch of features and bug fixes. Check the GitHub link in the OP for the latest version and his discord server for support and discussion. Tutorial playlist below.

1 Like

I need this!

1 Like

I wish I found your template of relations a lot sooner. I spent hours and hours setting up each relation for all the DCD aircraft.

One question I have is what to with aircraft that have different types of controls.

For example, I started with the Left thrust relation for the F/A-18. When I add it, there were many other aircraft that had left thrust already checked off. There were a few multi engine aircraft that didn’t have a left thrust added when I add the F/A-18 so I added them.
I have a Thrustmaster Warthog throttle with a left and right throttle.

So for single engine jets, single engine propeller planes, and helicopters, should I set up separate relations or just put their throttle/thrust all under my right of left throttle relation.

Some propellor aircraft have an RPM/prop pitch axis, so I was planning to have a left and right thrust relations for multiple engine jets.

Then have a thrust relation for single engine jets.

Then for single engine prop planes, I set up a throttle relation bound to my right throttle and the RPM/prop pitch as a separate relation bound to my left throttle.

What’s the difference between throttle lever friction (analog) axis and throttle lever axis (analog)?

What would a Thrustmaster WartHog throttle be? Is it friction, lever, analog, and/or axis?

Yeah, that doesn’t surprise me and it’s far from perfect. I’ve refined that template much since I posted that link, but regardless, it will take some tweaking, especially because ED will change assignments every now and then. It’s OK to create additional relations, as long as they are named differently, for similar functions in various a/c modules.

If memory serves, what I do is use the Right Throttle relation for the single engine aircraft. You could create a relation for single engine aircraft called “Throttle” or “Thrust”, but it’s completely up to you how you create relations. For instance, some modules have toe brake axis reversed. So in my relations template, you’ll see wheel brakes and revere wheel brake entries, depending on the a/c. I tend to assign wheel brakes, such as Soviet/Russian aircraft to the right toe brake, although if I wasn’t using the stick pinkie for a shift function, I’d assign that.

Here is where the assignments will totally depend on how many levers your controller has. If you have a single lever for power, pitch, and mixture, you will probably combine assignments both left and right for each engine. But if you have more physical levers, like with a Honeycomb throttle, you could assign relations for each engine function. Completely up to you.

I haven’t heard if there is a limit to how many relations you can assign in a single template or profile, but I’m trying to build one big master, so that if I need to do a foundational rebuild of DCS, I can blast most of them out with JoyStick Profiler. Then tweak as necessary, rather than build all from scratch.

Be aware that due to regional differences in aircraft (the P-51 for instance), a few aircraft may need more tweaking than others. Apparently, the US version of DCS is slightly different that the rest for some aircraft modules. Not many, but something to be aware of.

That relation might be from the original one that I began with in the very early days of JoyPro. I don’t use the friction axis assignment, but wouldn’t be surprised if the author had a good reason for adding it.

Is there a way to bind a function to 2 different inputs?
I want to bind Pitch and rolls trips to the 4-way hat on my flight stick and also to the encoder knobs and my CP2 panel?
I can do this in DCS and it works great but I would like to do it in Joypro for everything at once.
Thank you

1 Like

Hey @brlowe. Welcome to Mudspike.

I believe that you can … but … if you set trim on your trim knobs, and then adjust it with the trim hat, as soon as you touch the knows again, the trim is going to ‘jump’. It may not be noticeable if you are fine tuning the trim with only a few ticks past the position of the knob, but if you adjust it greater than that, as soon as you go back to the knob DCS is going to jump to where it gets it’s first new reading from that control - which could be somewhat different than you expect.

Welcome to MUDSPIKE brlowe.

I haven’t tried that, but don’t see any reason that it shouldn’t work. You would need to create two relations for the same command in DCS and assign them different buttons/axis, but that shouldn’t be a problem at all.

Thank you, I will try that.
The Knob is an encoder so it just sends multiple button commands so it does not work like an axis and cause a jump in the trim. I have created control profiles like this before and it works fine.
The reason I’m going to joypro is because I have different planes and I have stupidly created profiles that are not common between them and it is a mess. So now I want to create a common setup and put nice labels on my control panels that work for all planes.

Oh. Then it should be no problem (as far as I know)

Thanks. As soon as my grandkids head home and the house gets quiet I will be back at this.

1 Like

So I went through and created a profile and did quite a bit of work on it. Did the delete and export into DCS and it is all messed up. I have 2 different Virpil Joysticks, the Virpil Throttle, Control Panel 1 and control panel 2. In JoyPro I configured the Guns trigger for the P-51 to the Warbird Joystick trigger which is JOY_BTN1. After importing my profile to DCS all controllers have JOY_BTN1 assigned to the guns trigger.
For instance on the throttle I assigned the button out on the left end of the throttle to be the pause button but when I press it I get the trigger not pause. Same thin on all other controllers. So now I have about 5 wasted hours into creating a profile.

*** EDIT ***
I tried again and then went in and looked at more settings and it even assigned the trigger to the number 1 button on both my MFD panels and I had not even done anything with those so not sure why it updated all the buttons on it.
I was checking these on the P-47 too and same issue.