View Issue Details

IDProjectCategoryLast Update
0006136Valley 1Suggestion - UI IdeasMay 18, 2012 4:36 pm
ReporterPenumbra Assigned To 
Status consideringResolutionopen 
Summary0006136: Allow Modifier Keys in key bindings
DescriptionOnly single keys can be mapped in the key bindings window. Allowing the user to bind "R", "Shift-R", "Ctr-R", "Ctr-Shift-R" to different functions would be helpful.
TagsNo tags attached.
Internal WeightFeature Suggestion

Relationships

has duplicate 0007504 closed Can we let Shift to be used in conjunction with mouse clicks? KB+Mouse UI annoyance 

Activities

Penumbra

Feb 24, 2012 11:54 am

reporter   ~0019739

I play WoW, and in that game I use 5 different ability bars, with 1-5, Shift 1-5, Ctr 1-5, Alt 1-5, Ctr-Shift 1-5. And that game isn't nearly as fast/twitch based as AVWW.

Chris_McElligottPark

Feb 24, 2012 11:58 am

administrator   ~0019742

You can already do this -- should be able to, anyway. Keyboard Modifier 1 and 2 and such are what this is. It's the same system as AI War.

Penumbra

Apr 19, 2012 1:57 am

reporter   ~0022343

You guys must feel like we _never_ stop complaining..... ;)

So, here I am mapping all my awesome, amazing new keyboard shortcuts to shift, ctrl, ctrl-shift etc.

First, pressing shift binds the key to shift and doesn't let me bind the key as a modifier.

Also, modifier-mouse keys don't work either for the above reason and since they are "never useful" ;)

Again, sorry for making it seem like all we do is complain.....

Chris_McElligottPark

Apr 19, 2012 4:33 pm

administrator   ~0022381

Yep, keyboard modifiers are not supported in the game at this time; it was an endless string of problems with AI War, and in general there's not a huge amount of reason to do it here until this feature just came in with triggering stuff on rows above.

This will be a nontrivial thing to investigate sometime post-1.0, at any rate -- risk of bugs = quire high.

Anyway, no worries on "complaining" -- it's good to know what folks want!

Penumbra

Apr 23, 2012 10:53 am

reporter   ~0022609

I have seen other games just handle the single binding as "Shift-4" instead of the AI War method of separate modifier binds.

This, along with your comment of the "endless string of problems" leads me to believe this is a Unity issue.

Penumbra

Apr 23, 2012 11:53 pm

reporter   ~0022632

By binding the 11-15th and 21-25th abilities to Numpad1-0, along with 16-20 to /*-+.

Along with a quick Auto-Hotkey script, I was able to get pretty much what I want, and it is _AMAZING_!!!

MButton is Platform, and shift-MButton is crate! I have both easily at my fingers. I have Energy Slice and Energy Orb bound similarly to button 5. Swapping between spells has never been so easy in the middle of combat.

The script is really simple (Though, I think it would affect any Unity app, not just AVWW)



#IfWinActive, ahk_class UnityWndClass
+LButton::Numpad1
+RButton::Numpad2
+MButton::Numpad3
+XButton1::Numpad4
+XButton2::Numpad5
!LButton::Numpad6
!RButton::Numpad7
!MButton::Numpad8
!XButton1::Numpad9
!XButton2::Numpad0
+w::NumpadDiv
+r::NumpadMult
+t::NumpadSub
+g::NumpadAdd
+v::NumpadDot

Chris_McElligottPark

Apr 24, 2012 9:05 am

administrator   ~0022642

In terms of the modifier keys, it's only partly a problem with unity. It's mostly a problem of logic in how we handle hotkey parsing when you've got a modifier key held down plus a regular key.

The default tendency is to fire both, but that's not what you want. That means that you then have to filter out the base keypresses -- but ONLY if there is a binding that matches both of them being held down together. That gets messy and slow when you have a many-to-many mapping system for input. Meaning where any keybind can have a modifier key, and any key can be used as either a modifier key or a regular key or both. It gets very messy indeed.

There's also the problem that with modifier keys people naturally want to bind them to shift and ctrl and alt... and that causes the "key sticking" issue that you see in AI War, which is a unity bug when alt-tabbing out or using shift-tab in the steam interface. So allowing for modifier keys directly tends to allow people to really shoot themselves in the foot with unity and then complain to us about the bug in unity, which we can't fix.

I like your autohotkey solution a lot better, honestly. ;)

Penumbra

Apr 24, 2012 9:28 am

reporter   ~0022644

If there were three check box options, one for each modifier key, that said "use as modifier" and "use as key" it would be more explicit to the user, and it could include a warning about the Unity issue in a popup and let the user decided how to proceed ;)

However, since I can now play the game in the manner I always wanted, you won't hear a peep out of me about it again! Though, I am wishing I had a larger keyboard! I've pretty much tapped mine out :) That, and I can't type capital W,R,T,G or V in chat :)

Funny you mention the modifier sticky issues, as I just fixed my script to handle that after I posted this last night.



#IfWinActive, ahk_class UnityWndClass
+LButton::Send {Numpad1 Down}
+RButton::Send {Numpad2 Down}
+MButton::Send {Numpad3 Down}
+XButton1::Send {Numpad4 Down}
+XButton2::Send {Numpad5 Down}

+LButton Up::Send {Numpad1 Up}
+RButton Up::Send {Numpad2 Up}
+MButton Up::Send {Numpad3 Up}
+XButton1 Up::Send {Numpad4 Up}
+XButton2 Up::Send {Numpad5 Up}

!LButton::Send {Numpad6 Down}
!RButton::Send {Numpad7 Down}
!MButton::Send {Numpad8 Down}
!XButton1::Send {Numpad9 Down}
!XButton2::Send {Numpad0 Down}

!LButton Up::Send {Numpad6 Up}
!RButton Up::Send {Numpad7 Up}
!MButton Up::Send {Numpad8 Up}
!XButton1 Up::Send {Numpad9 Up}
!XButton2 Up::Send {Numpad0 Up}

+w::Send {NumpadDiv Down}
+r::Send {NumpadMult Down}
+t::Send {NumpadSub Down}
+g::Send {NumpadAdd Down}
+v::Send {NumpadDot Down}

+w Up::Send {NumpadDiv Up}
+r Up::Send {NumpadMult Up}
+t Up::Send {NumpadSub Up}
+g Up::Send {NumpadAdd Up}
+v Up::Send {NumpadDot Up}

Penumbra

Apr 24, 2012 12:02 pm

reporter   ~0022657

Would you mind my posting this on the forums for others to try? Or should it just be left here?

Chris_McElligottPark

Apr 24, 2012 12:15 pm

administrator   ~0022660

By all means, share away!

crayo

Apr 29, 2012 11:42 am

reporter   ~0023003

I was able to set up modifier keys using the default/stock game by editing the inputbindings.dat file in a text editor. . . It seems to me the game already supports this there just isn't a way to set it in the game itself (since as described above, pressing shift sets the key to shift).

Here's an example from my inputbindings.dat:

KeyBinding:Ingame_UseAbility0|Alpha0|Keypad0|None|None|None|None|None|10
KeyBinding:Ingame_UseAbility11|Alpha1|None|LeftShift|None|None|None|None|10

Those 2 entries set up the '0' key to use "power 10" (default) and then 'LeftShift + 1' to cast "power 11". It works for me in game, it's just not extremely user friendly to edit.

Penumbra

Apr 29, 2012 11:49 am

reporter   ~0023004

Last edited: Apr 29, 2012 11:50 am

That's awesome. I remember looking in there for it once, but I gave up for some reason. Amazing! Thanks, I'm going to replace my AHK script right now and see what's what.

Oh yeah, a bunch of the bindings already have the LeftControl in there, eh?

Penumbra

Apr 29, 2012 12:00 pm

reporter   ~0023005

It totally works for my WRTGV keys. Don't need auto hotkey for that.

However, if you try and bind Mouse0-6 to anything other than "MouseAbilityX" it unbinds them on startup. Some kind of protection code, protecting me from shooting myself in the foot. ;)

Close, really close. I'll just go back to AHK for now.

Penumbra

Apr 29, 2012 2:50 pm

reporter   ~0023016

Scratch that last one, this works great if you put "Mouse0-4" in the "primary keyboard key" slot instead of mouse slot, while simultaneously unbinding the "mouse abilities"

Consider my foot well and proper shot!

KeyBinding:TakeScreenshot|F12|None|None|None|None|None|None|10
KeyBinding:MarkAllLocalMessagesAsNew|BackQuote|None|None|None|None|None|None|10
KeyBinding:PauseLocalChunk|Q|Pause|None|None|None|None|None|10
KeyBinding:Debug|F3|None|None|None|None|None|None|10
KeyBinding:DebugNetwork|F2|None|None|None|None|None|None|10
KeyBinding:DebugCollision|F4|None|None|None|None|None|None|10
KeyBinding:DebugGhostInvisible|F5|None|None|None|None|None|None|10
KeyBinding:DebugBaseTileLayerInfo|F6|None|None|None|None|None|None|10
KeyBinding:DebugCTLTileLayerInfo|F6|None|LeftControl|None|None|None|None|10
KeyBinding:DebugEntityAlignmentMode|F7|None|None|None|None|None|None|10
KeyBinding:Ingame_Left|S|LeftArrow|None|None|None|None|Left|10
KeyBinding:Ingame_Right|F|RightArrow|None|None|None|None|Right|10
KeyBinding:Ingame_Down|D|DownArrow|None|None|None|None|Down|10
KeyBinding:Ingame_Up|E|UpArrow|None|None|None|None|Up|10
KeyBinding:Ingame_Jump|Space|None|None|None|None|JoystickButton1|None|10
KeyBinding:Ingame_ConfirmOrAction2|A|Return|None|None|None|JoystickButton0|None|10
KeyBinding:SwitchDirectlyTargetedEntity|Tab|None|None|None|None|JoystickButton11|None|10
KeyBinding:SwitchActiveAbilityBar|None|None|None|None|None|JoystickButton10|None|10
KeyBinding:SwitchActiveAbilityBarReverse|None|None|None|None|None|None|None|10
KeyBinding:SwitchFirstMouseAbilitySlot_UKB2|None|None|None|None|None|None|None|10
KeyBinding:SwitchFirstMouseAbilitySlotReverse_UKB2|None|None|None|None|None|None|None|10
KeyBinding:Ingame_AimUp|None|None|None|None|None|None|Negative5th|5
KeyBinding:Ingame_AimDown|None|None|None|None|None|None|Positive5th|5
KeyBinding:Ingame_AimLeft|None|None|None|None|None|None|Negative4th|5
KeyBinding:Ingame_AimRight|None|None|None|None|None|None|Positive4th|5
KeyBinding:Ingame_UseAbility1|Mouse0|None|None|None|None|JoystickButton2|None|10
KeyBinding:Ingame_UseAbility2|Mouse1|None|None|None|None|JoystickButton3|None|10
KeyBinding:Ingame_UseAbility3|Mouse2|None|None|None|None|JoystickButton4|None|10
KeyBinding:Ingame_UseAbility4|Mouse3|None|None|None|None|JoystickButton5|None|10
KeyBinding:Ingame_UseAbility5|Mouse4|None|None|None|None|JoystickButton6|None|10
KeyBinding:Ingame_UseAbility6|W|None|None|None|None|JoystickButton7|None|10
KeyBinding:Ingame_UseAbility7|R|None|None|None|None|JoystickButton9|None|10
KeyBinding:Ingame_UseAbility8|T|None|None|None|None|None|None|10
KeyBinding:Ingame_UseAbility9|G|None|None|None|None|None|None|10
KeyBinding:Ingame_UseAbility0|V|None|None|None|None|None|None|10
KeyBinding:Ingame_UseAbility11|Mouse0|None|LeftShift|None|None|None|None|10
KeyBinding:Ingame_UseAbility12|Mouse1|None|LeftShift|None|None|None|None|10
KeyBinding:Ingame_UseAbility13|Mouse2|None|LeftShift|None|None|None|None|10
KeyBinding:Ingame_UseAbility14|Mouse3|None|LeftShift|None|None|None|None|10
KeyBinding:Ingame_UseAbility15|Mouse4|None|LeftShift|None|None|None|None|10
KeyBinding:Ingame_UseAbility16|W|None|LeftShift|None|None|None|None|10
KeyBinding:Ingame_UseAbility17|R|None|LeftShift|None|None|None|None|10
KeyBinding:Ingame_UseAbility18|T|None|LeftShift|None|None|None|None|10
KeyBinding:Ingame_UseAbility19|G|None|LeftShift|None|None|None|None|10
KeyBinding:Ingame_UseAbility20|V|None|LeftShift|None|None|None|None|10
KeyBinding:Ingame_UseAbility21|Mouse0|None|LeftAlt|None|None|None|None|10
KeyBinding:Ingame_UseAbility22|Mouse1|None|LeftAlt|None|None|None|None|10
KeyBinding:Ingame_UseAbility23|Mouse2|None|LeftAlt|None|None|None|None|10
KeyBinding:Ingame_UseAbility24|Mouse3|None|LeftAlt|None|None|None|None|10
KeyBinding:Ingame_UseAbility25|Mouse4|None|LeftAlt|None|None|None|None|10
KeyBinding:Ingame_UseAbility26|W|None|LeftAlt|None|None|None|None|10
KeyBinding:Ingame_UseAbility27|R|None|LeftAlt|None|None|None|None|10
KeyBinding:Ingame_UseAbility28|T|None|LeftAlt|None|None|None|None|10
KeyBinding:Ingame_UseAbility29|G|None|LeftAlt|None|None|None|None|10
KeyBinding:Ingame_UseAbility30|V|None|LeftAlt|None|None|None|None|10
KeyBinding:Ingame_MouseAbility1_UKB1|None|None|None|None|None|None|None|10
KeyBinding:Ingame_MouseAbility2_UKB1|None|None|None|None|None|None|None|10
KeyBinding:Ingame_MouseAbility3_UKB1|None|None|None|None|None|None|None|10
KeyBinding:Ingame_MouseAbility4_UKB1|None|None|None|None|None|None|None|10
KeyBinding:Ingame_MouseAbility5_UKB1|None|None|None|None|None|None|None|10
KeyBinding:Ingame_MouseAbility6_UKB1|None|None|None|None|None|None|None|10
KeyBinding:Ingame_MouseAbility7_UKB1|None|None|None|None|None|None|None|10
KeyBinding:OpenMenu_System|Escape|None|None|None|None|JoystickButton8|None|10
KeyBinding:OpenChatPopup_UKB2|I|None|None|None|None|None|None|10
KeyBinding:OpenChunkMap|M|None|None|None|None|None|None|10
KeyBinding:OpenDungeonMap|Comma|None|None|None|None|None|None|10
KeyBinding:OpenRegionMap|Period|None|None|None|None|None|None|10
KeyBinding:Menu_CursorDown|DownArrow|None|None|None|None|None|Down|10
KeyBinding:Menu_CursorUp|UpArrow|None|None|None|None|None|Up|10
KeyBinding:Menu_CursorLeft|LeftArrow|None|None|None|None|None|Left|10
KeyBinding:Menu_CursorRight|RightArrow|None|None|None|None|None|Right|10
KeyBinding:Menu_ConfirmOrAction2|A|Return|None|None|None|JoystickButton0|None|10
KeyBinding:Menu_Cancel|Escape|None|None|None|None|JoystickButton1|None|10
KeyBinding:Menu_SwitchToNextMainTab|Tab|None|None|None|None|JoystickButton3|None|10
KeyBinding:SwitchToGhostMode_UKB1|G|None|LeftControl|None|None|None|None|10
KeyBinding:SwitchToNonGhostMode_UKB1|H|None|LeftControl|None|None|None|None|10
KeyBinding:TriggerAllPointsOfInterest|O|None|None|None|None|None|None|10
KeyBinding:DebugRecreateTestChunk|K|None|LeftControl|None|None|None|None|10
KeyBinding:DebugReloadParticlePatterns|F4|None|LeftControl|None|None|None|None|10
KeyBinding:DebugReloadLanguageFiles|F5|None|LeftControl|None|None|None|None|10
KeyBinding:DebugShowAllRegions|F3|None|LeftControl|None|None|None|None|10
KeyBinding:OpenDebugMenu|L|None|None|None|None|None|None|10
KeyBinding:ResetAimingReticle|U|None|None|None|None|None|None|10
KeyBinding:Ingame_DoLookAhead_UKB1|L|None|None|None|None|None|None|10
KeyBinding:Ingame_Walk|LeftControl|None|None|None|None|None|None|10
KeyBinding:OpenInventory_Usable2|X|I|None|None|None|None|None|10
KeyBinding:OpenInventory_Commodities|K|None|None|None|None|None|None|10
KeyBinding:OpenReference_Planning|P|None|None|None|None|None|None|10
KeyBinding:Visualizer_ShiftWest_UKB1|LeftArrow|None|LeftControl|None|None|None|None|10
KeyBinding:Visualizer_ShiftEast_UKB1|RightArrow|None|LeftControl|None|None|None|None|10
KeyBinding:Visualizer_ShiftUp_UKB1|UpArrow|None|LeftControl|None|None|None|None|10
KeyBinding:Visualizer_ShiftDown_UKB1|DownArrow|None|LeftControl|None|None|None|None|10
KeyBinding:SwapLeftAndRightMouseButtons|None|None|None|None|None|None|None|10
KeyBinding:ForceDropQuantityToAll|LeftControl|None|None|None|None|None|None|10
KeyBinding:OpenInventory_Enchants2|Z|None|None|None|None|None|None|10
KeyBinding:DebugDoMemoryProfilingSample|F9|None|None|None|None|None|None|10
KeyBinding:Ingame_ShowAllRegionLevels|H|None|None|None|None|None|None|10
KeyBinding:Ingame_UseCrate|None|None|None|None|None|None|None|10
KeyBinding:Ingame_UsePlatform|None|None|None|None|None|None|None|10
KeyBinding:Ingame_UseShield|None|None|None|None|None|None|None|10
KeyBinding:Ingame_UseBallOfLight|None|None|None|None|None|None|None|10
KeyBinding:Ingame_UseFlare|None|None|None|None|None|None|None|10
KeyBinding:Ingame_UseLightSnake|None|None|None|None|None|None|None|10
KeyBinding:Ingame_UseFlashOfLight|None|None|None|None|None|None|None|10

Penumbra

May 3, 2012 11:11 am

reporter   ~0023355

I'll add something here, since this might actually get added for real.

These should also allow the binding of modified mouse keys as well.

Danei

May 18, 2012 4:32 pm

reporter   ~0024464

I'd just like to add in my support for this. I was quite disappointed to find that I couldn't bind anything to shift-Mouse1 or shift-Mouse2 (without an Autohotkey script). It is MUCH easier for me to properly platform and fire simultaneously when I'm using the mouse to fire rather than keyboard keys, and without this feature, I frequently have to switch my bar around to use the spells I want.

Penumbra

May 18, 2012 4:36 pm

reporter   ~0024465

Last edited: May 18, 2012 4:36 pm

You can actually get this to work, just not fully supported. I use both Alt and Shift for mouse modifier keys. The key bindings in the comment two above shows how, and the discussion on the forums is here:

http://www.arcengames.com/forums/index.php/topic,10331.msg101971.html#msg101971

Issue History

Date Modified Username Field Change
Feb 24, 2012 11:52 am Penumbra New Issue
Feb 24, 2012 11:53 am tigersfan Internal Weight => Feature Suggestion
Feb 24, 2012 11:53 am tigersfan Status new => considering
Feb 24, 2012 11:54 am Penumbra Note Added: 0019739
Feb 24, 2012 11:58 am Chris_McElligottPark Note Added: 0019742
Apr 19, 2012 1:57 am Penumbra Note Added: 0022343
Apr 19, 2012 4:33 pm Chris_McElligottPark Note Added: 0022381
Apr 23, 2012 10:53 am Penumbra Note Added: 0022609
Apr 23, 2012 11:53 pm Penumbra Note Added: 0022632
Apr 24, 2012 9:05 am Chris_McElligottPark Note Added: 0022642
Apr 24, 2012 9:28 am Penumbra Note Added: 0022644
Apr 24, 2012 12:02 pm Penumbra Note Added: 0022657
Apr 24, 2012 12:15 pm Chris_McElligottPark Note Added: 0022660
Apr 29, 2012 11:42 am crayo Note Added: 0023003
Apr 29, 2012 11:49 am Penumbra Note Added: 0023004
Apr 29, 2012 11:50 am Penumbra Note Edited: 0023004
Apr 29, 2012 12:00 pm Penumbra Note Added: 0023005
Apr 29, 2012 2:50 pm Penumbra Note Added: 0023016
May 3, 2012 11:11 am Penumbra Note Added: 0023355
May 4, 2012 11:09 am Penumbra Relationship added has duplicate 0007504
May 18, 2012 4:32 pm Danei Note Added: 0024464
May 18, 2012 4:36 pm Penumbra Note Added: 0024465
May 18, 2012 4:36 pm Penumbra Note Edited: 0024465