control binding for firing primary and secondary weapons at the same time

I would love to see a an option in the controls setup that allows us to bind a key for firing primary and secondary weapons at the same time.
I know I could just create a whole new fire group containing all weapons on the primary trigger, but useing a hotas warthog i now have a two stage trigger with a more or less useless second stage...
meaning if i asigne secondary fire to the second trigger stage, the primary weapons stop fireing once i go to stage two. also i can asigne the second trigger stage to primary or secondary weapons only but not both so there is no workaround in the controls setup.


Fly safe
Lodrik_Bardic
 
Last edited:

Mike Evans

Designer- Elite: Dangerous
Frontier
You can use Target to bind two keyboard keys to the second stage trigger then assign said keys to both Primary and Secondary triggers in the controls. Thus when pressing the trigger all the way in it'll be virtually pressing the two keyboard keys and firing with both at the same time.
 
You don't need to use TARGET.

When you bind the controls in the menu you click the secondary fire option and the game waits for you to hold the fire button. If you then press the secondary stage trigger the game actually receives input from primary and secondary triggers concurrently. It then decides you wanted to bind "hold primary and secondary stage triggers together" for secondary fire.

In your game bindings file, probably %LOCALAPPDATA%\Frontier Developments\Elite Dangerous\Options\Bindings\Custom.1.8.binds, you'll see these lines:
Code:
	<SecondaryFire>
		<Primary Device="ThrustMasterWarthogJoystick" Key="Joy_2">
			<Modifier Device="ThrustMasterWarthogJoystick" Key="Joy_1" />
		</Primary>
		<Secondary Device="{NoDevice}" Key="" />
	</SecondaryFire>
This assumes that the trigger is assigned to the left bind in the list; the Primary Device. The Secondary Device might be different if you assigned a right bind.

In either case you just need to remove the Modifier Device line and change the Primary Device lines to one line with a slash inserted.
Code:
	<SecondaryFire>
		<Primary Device="ThrustMasterWarthogJoystick" Key="Joy_2" />
		<Secondary Device="{NoDevice}" Key="" />
	</SecondaryFire>
Now you only need to activate the secondary stage to get secondary fire, which means pulling the trigger completely in will fire both weapons together.

Since you will almost certainly encounter a situation where you want to fire only the secondary weapon, I suggest binding an alternative standalone secondary fire button. I use Joy_6 which is the red button at the top left (Weapon Release).
 
Thanks furrycat,

I'll try that.
And yes a situation where i want to use secondary fire alone comes up from time to time.
I also have Joy_6 for that purpose.

Also I guess that one has to modify the custom controls file after every game update.... so I think of it as a temporary workaround.

In the end I think a seperate ingame key binding would be the best and most obvious solution for all players.
Another possible solution would be to allow alternate input for primary and secondary fire to be the same.
This would eliminate the need for programs like TARGE or manual custom controls file modification... especially if someone has a stick from a manufacturer that doesn't offer such software.
 
Also I guess that one has to modify the custom controls file after every game update.

No.

It is possible to write XML options files that the in-game menus can't create, and if you do so they will be overwritten when you change the relevant settings in-game. But this change will be handled correctly. You are saying that you want button 2 and button 6 for your secondary fire buttons. The game neither knows nor cares that your hardware isn't physically capable of generating button 2 events independently of button 1.
 
If you want to make editing XML files a bit easier you can use Notpade++ its small, light weight and free https://notepad-plus-plus.org/
image_33.png
 
Last edited:
The stanza for the X-52 Pro would be:
Code:
	<SecondaryFire>
		<Primary Device="SaitekX52Pro" Key="Joy_5" />
		<Secondary Device="SaitekX52Pro" Key="Joy_15" />
	</SecondaryFire>

where Joy_5 is button "C" (just keep your assignment as it is) and Joy_15 is the second stage of the main trigger.
 
Apologies I got the buttons the wrong way round! Button 2 is Weapons Release and Button 6 is second stage trigger.

The OP and I both have the button mappings the same so the effect is that it still works but if you wanted a different alternative secondary fire button you'll need to ensure that Joy_6 is set where I wrote Joy_2 in the XML snippet.
 
@ furrycat
i think we got a little misunderstanding about what i want to do...

i want the second stage of the trigger to fire all weapons in my active firegroup (primary and secondary) at the same time
so the whole fire control setup should look like this:
gun trigger stage 1 (Joy_1) = primary weapons
weapons release button (Joy_2) = secondary weapons
gun trigger stage 2 (Joy_1+Joy_6) = primary weapons + secondary weapons

in the bindings file:
Code:
<PrimaryFire>
        <Primary Device="ThrustMasterWarthogJoystick" Key="Joy_1" />
        <Secondary Device="ThrustMasterWarthogJoystick" Key="Joy_6">
            <Modifier Device="ThrustMasterWarthogJoystick" Key="Joy_1" />
        </Secondary>
    </PrimaryFire>
    <SecondaryFire>
        <Primary Device="ThrustMasterWarthogJoystick" Key="Joy_2" />
        <Secondary Device="ThrustMasterWarthogJoystick" Key="Joy_6">
            <Modifier Device="ThrustMasterWarthogJoystick" Key="Joy_1" />
        </Secondary>
    </SecondaryFire>

I just copied my modified custom binds into the control schemes folder to thest this configuration and it works.
I had to copy the secondary device code manually as the game won't allow me to set the secondary device for primary and secondary fire to the same command.
Also the game won't overwrite the secondary device config after a restart...

I don't know how many people want to have a configuration like this but i think it would be a good idea to add a "fire all weapons in the active firegroup" binding to the ingame controls setup.
 
Last edited:
It should be enough to assign Joy_6 only as a secondary for the secondary fire and skip the whole modifier dance since Joy_1 is pressed anyway while you're in the second stage. Alternatively, if you don't need the "fire both triggers" function, your way means you could use the first stage of the trigger as a general modifier for all kinds of things. That's also not useless, but needs some careful consideration because you'd always have a pressed modifier while firing.

I don't know how many people want to have a configuration like this but i think it would be a good idea to add a "fire all weapons in the active firegroup" binding to the ingame controls setup.
Shouldn't that rather be "fire all assigned weapons"? ;)
 
Last edited:
i think we got a little misunderstanding about what i want to do...

What you want to do is exactly what I do myself with the XML I posted.

When you bind the second stage trigger in the menu the game receives first stage (Joy_1) and second stage (Joy_6) together. It thinks you want to use those two buttons, which it has no way of knowing are physically linked, together for secondary fire. You have to edit the XML to remove the Joy_1 modifier. Then they are correctly treated as separate inputs.

I'm glad to see you got it working. Be advised, though, that you have lost the ability to bind an alternative primary fire button if you ever wanted to do that. Also that mapping two commands to the same input, ie Joy_1 + Joy_6, might be interpreted as an error and overwritten if future versions of the game start checking such things. Using Joy_6 alone won't suffer from that.
 
ah ok now i got it :)
somehow i got so fixated on the idea of assigning the same command to alt prim + alt sec fire that i didn't realize what you actually said ^^
so for the sake of a clean bindings file i'll just remove the modificator for alt sec fire and throw away the alt prim fire binding


Thanks a lot for your help! :)
 
You don't need to use TARGET.

When you bind the controls in the menu you click the secondary fire option and the game waits for you to hold the fire button. If you then press the secondary stage trigger the game actually receives input from primary and secondary triggers concurrently. It then decides you wanted to bind "hold primary and secondary stage triggers together" for secondary fire.

In your game bindings file, probably %LOCALAPPDATA%\Frontier Developments\Elite Dangerous\Options\Bindings\Custom.1.8.binds, you'll see these lines:
Code:
    <SecondaryFire>
        <Primary Device="ThrustMasterWarthogJoystick" Key="Joy_2">
            <Modifier Device="ThrustMasterWarthogJoystick" Key="Joy_1" />
        </Primary>
        <Secondary Device="{NoDevice}" Key="" />
    </SecondaryFire>
This assumes that the trigger is assigned to the left bind in the list; the Primary Device. The Secondary Device might be different if you assigned a right bind.

In either case you just need to remove the Modifier Device line and change the Primary Device lines to one line with a slash inserted.
Code:
    <SecondaryFire>
        <Primary Device="ThrustMasterWarthogJoystick" Key="Joy_2" />
        <Secondary Device="{NoDevice}" Key="" />
    </SecondaryFire>
Now you only need to activate the secondary stage to get secondary fire, which means pulling the trigger completely in will fire both weapons together.

Since you will almost certainly encounter a situation where you want to fire only the secondary weapon, I suggest binding an alternative standalone secondary fire button. I use Joy_6 which is the red button at the top left (Weapon Release).
Thanks so much for pointing this out, @furrycat . This is helping me 5 years after your post!

And as you note in a later post, joy 2 and joy 6 are reversed in this post, but that should be obvious when one edits the file.

If you're a bit of newbie to editing a config file like this, here is a bit more explanation. First, I recommend setting the key bindings for the Warthog in Elite first (under options/controls). Once in options/controls, under "Weapons" click on"secondary fire" in the lefthand column and hold the Warthog primary trigger button all the way in. This will say that secondary fire has been assigned to "joy1+6." Then, since you're already here, go ahead and click in the righthand column and press the red button at the top of the stick to assign "joy 2" as an alternate. This will enable you to engage secondary fire without also engaging primary fire.

Next, exit ED and find the bindings config file. To see the directory, you may need to open explorer and click on the "view" tab, then check the box for "hidden files." You want to navigate to the bindings directory, which will usually be under your main boot "local disk.": If "C:" is your local disk, then the path will be C:\Users\<YOUR LOGIN NAME>\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings. In 2021, the filename is now "Custom.3.0.binds." Notepad will work fine to open the file (right click and say "open with" then choose notepad after clicking on "more apps"). Search for "secondaryfire". This will find line 1 of the code block, which just says <SecondaryFire>. All you need to do, as @furrycat says, is delete the line that begins <modifier device...> (line 3 of this code block) and also delete the line that says <primary> (line 4 of the block). Then be sure to add a space and forward slash with right carat ( />) to the end of line 2 so that it reads <Primary Device="ThrustMasterWarthogJoystick" Key="Joy_6" />.

I find that it is fairly hard to hold both the trigger (joy 1) and the red button joy 2 simultaneously for very long, so this solution is great. By pulling the trigger halfway, only primary fire is activated. Pulling it in all the way activates primary and secondary fire. Thanks @furrycat !

Maybe all this is pretty obvious, but if you've not edited a config file like this before, I thought it might help to reiterate a few things.
 
Back
Top Bottom