I like having some functions bound to 2 keys, especially now since I use a naga mouse. I couldn't find this a few months ago, so hoping something else has come up. Or some console commands for binding.
Are you referring to binding several actions at once to a single key (request ammo and type it in team chat)? Or being able to execute something with a multi-key combination (Mouse2+A is request ammo)?
I want shift as the move modifier as default AND keypad/kp_5 as shift. Stuff like that. If i use a regular mouse, I'm good. if i opt for the naga settings, i'm good. And then eventually binding say commands, like say "my hemorrhoids are flarin' up!" I miss the robustness of quake1/hl1
For instance, I remember binding F1,2,3 to joint team 1,2 random. I do in console, print_bindings and only those 3 show up. If it could at least show me what each command is and a list of allowable keys, Id be ok. Is shift "+speed" ? stuff like that I'd like to know where to find.
Kind of a long shot, but as a temporary solution, you might be able to use AutoHotKey to achieve this.
Say you wanted both Q and E to do the same thing. You bind NS for that action to Q, and you bind AutoHotKey to E, and the AutoHotKey script for E will send the key input Q to the game.
You can also potentially automate join stuff if there's a console command by sending "`putcommandhere<enter>`" or something. It'd be ugly, because you'd press a key on your keyboard and your console would flash on the screen as part of making it happen, but it could be useful for adding key bindings for stuff that doesn't have bindings yet.
Personally I wish we could rebind the commander hotkeys. I hate moving the screen by moving the mouse to the edge SO FREAKING MUCH! I need WASD key movement..
<!--quoteo(post=2004718:date=Nov 1 2012, 06:01 PM:name=Guspaz)--><div class='quotetop'>QUOTE (Guspaz @ Nov 1 2012, 06:01 PM) <a href="index.php?act=findpost&pid=2004718"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Kind of a long shot, but as a temporary solution, you might be able to use AutoHotKey to achieve this.<!--QuoteEnd--></div><!--QuoteEEnd-->
Not a longshot at all, you could even implement so the script would only be active if NS2 was the active window. The only possible downside would be problematic chatting. Rebind E away and you'll have trouble writing a helluva lot of words. But then again, the script could also have a simple on/off toggle.
Wouldnt even take 10 mins to write that script, if youre familiar with AHK. But yeah, it would be nicer to see it in the actual game, it seems like a very standard thing to have for games nowadays.
I would like to bind two actions to one key, is that currently possible?
Agreed commander rebind function would be great. Though seeing how moddable ns2 is, a mod for new binds could probably be made long before the devs get to it.
<!--quoteo(post=2004748:date=Nov 1 2012, 01:18 PM:name=spaceturtle)--><div class='quotetop'>QUOTE (spaceturtle @ Nov 1 2012, 01:18 PM) <a href="index.php?act=findpost&pid=2004748"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Personally I wish we could rebind the commander hotkeys. I hate moving the screen by moving the mouse to the edge SO FREAKING MUCH! I need WASD key movement..<!--QuoteEnd--></div><!--QuoteEEnd-->
I second that. I really hope that the Commander HotKeys are addressed first. I had to rebind my voice chat button "V" which I have used for years to a different button so I would not recycle stuff in base.
In the keybind menu, there appears to be a way to bind 2 keys tot he same functionality. But I haven't messed with it.
As for scripting multiple commands to 1 button, definitely something we'd all like in the future. Hurray for binding Q to Request_Ammo and chat:Requesting Ammo
well in the meantime I go into my naga settings and change that key to be Shift. just a headache when I play a different game and now I need that to be keypad 5. It's just that from the old quake1 days you could just put in, bind "shift" "+speed" bind "KP_5" "+speed"
And done. In hl1 there were 2 columns for binds. It's almost a step back in this case. When it somewhat painful is there is indeed a binding command in the console. when you leave it blank, it will list all bindable keys, although the displayed format is horrendous. however I don't know what the commands are, speed, shift, +speed, +movetoggle, etc.
If I could get a dump of these commands I'd be fine.
Well I found some info, \Steam\userdata\xxidxx\4920\remote\options.xml Has the game bind command names. There you can see LeftShift is bound to MovementModifier Sadly, if I do from console, bind NumPad5 MovementModifier, nothing. +modifier, nothing. Even did a copy of that chunk in options.xml, pasted it, and replaced LeftShift with other keys, 0, L, etc. Ignores them. When you exit, it's cleared out and back to 1 entry. Looks like all these options aren't just unavailable, but prevented from.
<!--quoteo(post=2004748:date=Nov 1 2012, 06:18 PM:name=spaceturtle)--><div class='quotetop'>QUOTE (spaceturtle @ Nov 1 2012, 06:18 PM) <a href="index.php?act=findpost&pid=2004748"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Personally I wish we could rebind the commander hotkeys. I hate moving the screen by moving the mouse to the edge SO FREAKING MUCH! I need WASD key movement..<!--QuoteEnd--></div><!--QuoteEEnd-->
Seconded. The key bindings are sorely lacking in that regard.
Also, quick bug report: when trying to change keys while ingame, many keys are still overridden, ie. chat-keys and cannot be bound
<!--quoteo(post=2006169:date=Nov 2 2012, 06:33 AM:name=nellkee)--><div class='quotetop'>QUOTE (nellkee @ Nov 2 2012, 06:33 AM) <a href="index.php?act=findpost&pid=2006169"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->For the commander, you can modify the binds in the file Commander_Buttons.lua (located in "\Natural Selection 2\ns2\lua\") At the beginning of the file, you have a dictionary "kGridHotkeys" which can be modified.
By default, you have: <blockquote><i>kGridHotkeys = { Move.Q, Move.W, Move.E, "", Move.A, Move.S, Move.D, Move.F, Move.Z, Move.X, Move.C, Move.V, }</i></blockquote>
As I have an "azerty" keyboard, I made the following modification: <blockquote><i>kGridHotkeys = { Move.A, Move.Z, Move.E, "", Move.Q, Move.S, Move.D, Move.F, Move.W, Move.X, Move.C, Move.V, }</i></blockquote>
Important: I don't know why but the first time I made the modification, I had a little UI problem. Restarted the game and works nicely now. Should be better to make a backup of the file if you want to modify it.<!--QuoteEnd--></div><!--QuoteEEnd-->
<!--quoteo(post=2006240:date=Nov 2 2012, 03:54 AM:name=Superfly)--><div class='quotetop'>QUOTE (Superfly @ Nov 2 2012, 03:54 AM) <a href="index.php?act=findpost&pid=2006240"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->This passes client consistency checking?<!--QuoteEnd--></div><!--QuoteEEnd--> as far as I know, it shouldn't. by default, I believe the server browser has *.lua files being consistency checked.
<!--quoteo(post=2006246:date=Nov 2 2012, 07:59 AM:name=Princess_of_Power)--><div class='quotetop'>QUOTE (Princess_of_Power @ Nov 2 2012, 07:59 AM) <a href="index.php?act=findpost&pid=2006246"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->as far as I know, it shouldn't. by default, I believe the server browser has *.lua files being consistency checked.<!--QuoteEnd--></div><!--QuoteEEnd-->
That's what I thought. I will test it later this evening and confirm.
Those ones, it will change your command keys. I did'nt tested it myself, but it will pass consistency check. The other solution by nellkee is too much unreliable.
Comments
Sounds like the 2nd one.
Stuff like that. If i use a regular mouse, I'm good. if i opt for the naga settings, i'm good.
And then eventually binding say commands, like say "my hemorrhoids are flarin' up!"
I miss the robustness of quake1/hl1
For instance, I remember binding F1,2,3 to joint team 1,2 random.
I do in console, print_bindings and only those 3 show up.
If it could at least show me what each command is and a list of allowable keys, Id be ok.
Is shift "+speed" ? stuff like that I'd like to know where to find.
Say you wanted both Q and E to do the same thing. You bind NS for that action to Q, and you bind AutoHotKey to E, and the AutoHotKey script for E will send the key input Q to the game.
You can also potentially automate join stuff if there's a console command by sending "`putcommandhere<enter>`" or something. It'd be ugly, because you'd press a key on your keyboard and your console would flash on the screen as part of making it happen, but it could be useful for adding key bindings for stuff that doesn't have bindings yet.
Not a longshot at all, you could even implement so the script would only be active if NS2 was the active window. The only possible downside would be problematic chatting. Rebind E away and you'll have trouble writing a helluva lot of words. But then again, the script could also have a simple on/off toggle.
Wouldnt even take 10 mins to write that script, if youre familiar with AHK. But yeah, it would be nicer to see it in the actual game, it seems like a very standard thing to have for games nowadays.
Agreed commander rebind function would be great.
Though seeing how moddable ns2 is, a mod for new binds could probably be made long before the devs get to it.
I second that. I really hope that the Commander HotKeys are addressed first. I had to rebind my voice chat button "V" which I have used for years to a different button so I would not recycle stuff in base.
As for scripting multiple commands to 1 button, definitely something we'd all like in the future. Hurray for binding Q to Request_Ammo and chat:Requesting Ammo
just a headache when I play a different game and now I need that to be keypad 5.
It's just that from the old quake1 days you could just put in,
bind "shift" "+speed"
bind "KP_5" "+speed"
And done. In hl1 there were 2 columns for binds. It's almost a step back in this case.
When it somewhat painful is there is indeed a binding command in the console.
when you leave it blank, it will list all bindable keys, although the displayed format is horrendous.
however I don't know what the commands are, speed, shift, +speed, +movetoggle, etc.
If I could get a dump of these commands I'd be fine.
\Steam\userdata\xxidxx\4920\remote\options.xml
Has the game bind command names.
There you can see LeftShift is bound to MovementModifier
Sadly, if I do from console, bind NumPad5 MovementModifier, nothing. +modifier, nothing.
Even did a copy of that chunk in options.xml, pasted it, and replaced LeftShift with other keys, 0, L, etc. Ignores them. When you exit, it's cleared out and back to 1 entry.
Looks like all these options aren't just unavailable, but prevented from.
Seconded. The key bindings are sorely lacking in that regard.
Also, quick bug report: when trying to change keys while ingame, many keys are still overridden, ie. chat-keys and cannot be bound
At the beginning of the file, you have a dictionary "kGridHotkeys" which can be modified.
By default, you have:
<blockquote><i>kGridHotkeys =
{
Move.Q, Move.W, Move.E, "",
Move.A, Move.S, Move.D, Move.F,
Move.Z, Move.X, Move.C, Move.V,
}</i></blockquote>
As I have an "azerty" keyboard, I made the following modification:
<blockquote><i>kGridHotkeys =
{
Move.A, Move.Z, Move.E, "",
Move.Q, Move.S, Move.D, Move.F,
Move.W, Move.X, Move.C, Move.V,
}</i></blockquote>
Important: I don't know why but the first time I made the modification, I had a little UI problem. Restarted the game and works nicely now. Should be better to make a backup of the file if you want to modify it.<!--QuoteEnd--></div><!--QuoteEEnd-->
This passes client consistency checking?
as far as I know, it shouldn't. by default, I believe the server browser has *.lua files being consistency checked.
That's what I thought. I will test it later this evening and confirm.
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> <Q>Q</Q>
<H>H</H>
<C>C</C>
<Z>Z</Z>
<U>U</U>
<D>D</D><!--c2--></div><!--ec2-->
Those ones, it will change your command keys. I did'nt tested it myself, but it will pass consistency check. The other solution by nellkee is too much unreliable.