There is only one set of key bindings for all your characters in LOTRO and these bindings are loaded from lotro.keymap which is located in "My Documents/Lord of the Rings Online" folder.
If you want to have different key bindings for each of your characters you can either use different operating system users for each character or you can replace/switch the file before starting the game and every time you want to change characters. The game will not reload the file or read any changes until it's restarted, it does however write to lotro.keymap straight away if changes are done through the options UI.
If you load the client and it is unable to parse the lotro.keymap file it will be overwritten with a default file, for this reason you should always back up your changed file after any changes or risk loosing them.
If you have changed the structure, order or made an invalid binding the client will attempt to "correct" the file, this means that any clean up is futile since it will be scrambled the next time the client loads.
The basic structure of the file is:
Devices - An ordered list of all input devices available, keyboard, mouse, etc
MetaKeys - Function keys that work as modifiers on other keys, shift, alt, ctrl, etc
Bindings - The part of the file that binds keys to actions
Main - The main UI, all combat actions, selections, etc
EditControls - Key bindings for editing text fields, like chat window and such
SelectionUI - Bindings for instantly pointing your character in the direction of the view
MusicUI - Bindings for playing music in game
MapPanel - Bindings when in map view
VendorBuyUI - Bindings when in vendor purchase view, stack purchase, volume purchase, etc
ScrollableControls - Bindings connected to any scrollwheel?
ScrollableControls_Mouse - Bindings connected to scrollwheel on mouse
CopyAndPasteControls - Controls for copying/pasting text
DialogBoxes - Controls for dialog boxes?
DebugConsole - Bindings for the debug console
StringTokenDebugger - Bindings for the String token debugger (only used by dev/test)
The sections we are concerned with are Devices, MetaKeys, Main, SelectionUI and ScrollableControls_Mouse.
A list of all the devices used for input into lotro, typically you are only concerned with the first two entries and won't have to change this file at all. The first two entries define the keyboard and mouse as devices 0 and 1 as shown here:
This is where you define meta keys, you might already be familiar with some of the default meta keys used by Lotro like SHIFT and CTRL, by defining a key as a meta key it becomes
possible to bind an action that is only performed if the meta key and another key are pressed
at the same time. You can bind multiple keys to perform the same meta function, for example
so that either left or right shift can be pressed and then another button. You can define up
to 32 functions with multiple meta keys for each.
Here is an example where both left and right shift are defined as meta keys for function 1:
1 [ 0 DIK_LSHIFT ]
1 [ 0 DIK_RSHIFT ]
The First number in that example is the function ID, the second number is the device ID from
the Devices section, the third parameter is the name of the key constant.
You can also use mouse buttons as meta keys as shown here:
Button 0 is the left mouse button
Button 1 is the right mouse button
Button 2 is the scrollwheel
Button 3 is the back side button
Button 4 is the front side button
Each of the function id's is now enumerated in bits (binary) and represented in hex.
What this means is that when using the function with key bindings you will be using their
hex codes, here is an example config and the corresponding hex codes.
What this means is that you can define key bindings which require multiple meta keys
to be pressed by adding the hex codes, for example here is a binding that requires
Ctrl, Alt and Shift to be pressed along with the "S" key.
QUICKSLOT_1 [ User [ 0 DIK_S ] 0x0000007 ]
Here is another binding that only requires the Win and S keys to be pressed togeather:
QUICKSLOT_2 [ User [ 0 DIK_S ] 0x00000010 ]
Main:
This is where most of the key bindings are located and almost all of the ones you will
want to edit, there are a couple of things to keep in mind.
The order of the key bindings is fixed, the client requires the keys to be defined
in the default order and even if you are not using a key you still need to define it
if it's one of the original keys.
Key mappings come in two varieties, original "Old" ones and user created, example:
MovementLongJump [ Old [ 0 DIK_SPACE ] ]
ToggleJournalPanel [ User [ 0 DIK_P ] ]
The first binding is a default binding and as such is marked "Old", the second one is
a custom binding and is therefor marked "User", it's important to mark any changed lines
to "User" or the client will overwrite them with the default binding.
If you want to remove a default binding without replacing it with something else you
need to put in a DoNothing line, example:
DoNothing [ User [ 0 DIK_DOWNARROW ] ]
Key bindings can also include a Meta Key defined in the MetaKeys section, here is an
example of a default "Old" binding that uses function 1 as a MetaKey, in this case
it's the LootAll binding which is by default bound to shift/right mouse button.
AutoLootAll [ Old [ 1 DIMOFS_BUTTON1 ] 0x00000001 ]
In addition to the Meta Key you can define a Modifier, a modifier enables you to
define the type/part of a keypress to bind an action to, the common modifiers are:
Up, Down, DblClick and Tap. Up and Down correspond to when the key is pressed and
release, doubleclick means two clicks within about 200ms and tap means that the
button is depressed for less than c.a. 100ms. You can also specify the keyword Nearby which
blocks a doubleclick from being detected if the mouse moves to far between clicks.
Each combination of Key, MetaKey and Modifier can only be bound to one action but
by binding two separate actions to the Up and Down modifiers you can peform two
actions in one keystroke. Here is an example:
ChatModeReply [ User [ 0 DIK_LWIN ] 0x00000000 Tap ]
VOICECHAT_TALK [ User [ 0 DIK_LWIN ] 0x00000000 Down ]
Here is another handy example, this example performes activates two quickslots, one could
for example be an ingame alias/shortcut to notify the group that ;target is being buffed
and the other quickslot could perform the actual buff.
QUICKSLOT_12 [ User [ 0 DIK_2 ] 0x00000040 Tap ]
QUICKSLOT_62 [ User [ 0 DIK_2 ] 0x00000040 Down ]
This example binds two actions to the Left Windows button, chat reply and voicechat talk,
if the user just taps the key it's considered a chat reply, if the button is held down
it's considered a voicechat push to talk button.
I won't cover all the keys and bindings, these should all be present by default and the naming is self explanatory.
SelectionUI:
All this section defines is a button that instantly points your character in the direction
that the camera is facing, not that this is very handy when kiting mobs.
ScrollableControls_Mouse:
This section deals with the scroll ability of the scroll wheel on your mouse, you can bind these
to do custom actions, one good example would be bindings to use it for next/previous targets as
shown in this example:
SELECTION_NEXT_FOE [ User [ 1 DIMOFS_Z AxisPositive ] ]
SELECTION_PREVIOUS_FOE [ User [ 1 DIMOFS_Z AxisNegative ] ]
That's it, I recommend you also read the header of the default lotro.keymap, it's very useful when you have some background to understand it.
Re: Lotro UI and keyboard bindings (aliases, shorcuts and custom keyboard bindings)
Hi, and thanks for the very useful info. I read this in your LotroLCD package but thought here would be a better place to ask questions.
1. MAIN section ordering
The order of the key bindings is fixed, the client requires the keys to be defined in the default order and even if you are not using a key you still need to define it if it's one of the original keys.
The different keymap files I've seen have differing orders. Mine, for example, starts:
Main
[
Conjunction_Contribution_2 [ User [ 0 DIK_Y ] ]
Conjunction_Contribution_3 [ User [ 0 DIK_B ] ]
Conjunction_Contribution_4 [ User [ 0 DIK_G ] ]
ToggleQuickslotLockState [ User [ 0 DIK_SCROLL ] ]
DoNothing [ User [ 0 DIK_Z ] 0x00000002 ]
DoNothing [ User [ 0 DIK_X ] 0x00000002 ]
DoNothing [ User [ 0 DIK_Y ] 0x00000002 ]
DoNothing [ User [ 0 DIK_R ] 0x00000002 ]
DoNothing [ User [ 0 DIK_SPACE ] 0x00000002 ]
SELECTION_NEAREST_ITEM [ User [ 0 DIK_C ] 0x00000002 ]
USE [ User [ 0 DIK_V ] 0x00000002 ]
There are also comments in other posts about "just delete the x line", or "add x to the bottom" (for SELECTION_NEXT_ITEM). It would be much easier to edit if I was able to reorder the bindings, but I am hoping to avoid a trial and error process.
Are there any patterns that you have noticed in terms of what can be reordered or deleted?
2. Tap, Down, Up, Dblclick
I don't fully understand how this is implemented. It sounds as if there could be more overlap than just two, for example a Dblclick could be interpreted as: Down, Up, Tap, Down, Up, Tap, Dblclick. I would love to be able to get 3 actions from one key.
Can more than two be triggered by a keystroke?
What combinations work?
Is there a logical sequence to how they are read and applied?
3. Is Ctrl-F still hardcoded to off once it has been "unmapped"?
Looking forward to any help you or others can give on these.
Thanks,
Duvi
Duvi Vastin: "But whenever we take feedback on most game systems, such as character builds, economics, or especially anything to do with PvP, then we are forced to read very carefully between the lines of any and all player feedback, as it is all inevitably skewed by self-investment, self-interest, and a deeply subjective viewpoint that increases in direct proportion to how long or successfully a player has occupied a particular role."
Re: Lotro UI and keyboard bindings (aliases, shorcuts and custom keyboard bindings)
1. I've assume until this point that Lotro enforces the same exact same order in the key mappings file for everyone but I as you point out that might not be true, I don't know the rule behind their system but I tried many times to change the order and every time I can the client it would reorder everything.
2. As far as I know if you delete a line the client will add it again using the default value the next time you start your client
3. I see no reason why you can't bind up, down, tap on the same key if you want, I just showed tap and down as a easy example. Examples where this might be useful would be where you have to perform one skill to make another available but you need a short pause between, just bind one skill to down, the other to up and you can vary the pause period by holding down the key.
Can you clarify a bit what you mean by "is Ctrl-F still hardcoded"
Cheers
Jarl
Originally Posted by slack_n_hash
Hi, and thanks for the very useful info. I read this in your LotroLCD package but thought here would be a better place to ask questions.
1. MAIN section ordering
The different keymap files I've seen have differing orders. Mine, for example, starts:
Main
[
Conjunction_Contribution_2 [ User [ 0 DIK_Y ] ]
Conjunction_Contribution_3 [ User [ 0 DIK_B ] ]
Conjunction_Contribution_4 [ User [ 0 DIK_G ] ]
ToggleQuickslotLockState [ User [ 0 DIK_SCROLL ] ]
DoNothing [ User [ 0 DIK_Z ] 0x00000002 ]
DoNothing [ User [ 0 DIK_X ] 0x00000002 ]
DoNothing [ User [ 0 DIK_Y ] 0x00000002 ]
DoNothing [ User [ 0 DIK_R ] 0x00000002 ]
DoNothing [ User [ 0 DIK_SPACE ] 0x00000002 ]
SELECTION_NEAREST_ITEM [ User [ 0 DIK_C ] 0x00000002 ]
USE [ User [ 0 DIK_V ] 0x00000002 ]
There are also comments in other posts about "just delete the x line", or "add x to the bottom" (for SELECTION_NEXT_ITEM). It would be much easier to edit if I was able to reorder the bindings, but I am hoping to avoid a trial and error process.
Are there any patterns that you have noticed in terms of what can be reordered or deleted?
2. Tap, Down, Up, Dblclick
I don't fully understand how this is implemented. It sounds as if there could be more overlap than just two, for example a Dblclick could be interpreted as: Down, Up, Tap, Down, Up, Tap, Dblclick. I would love to be able to get 3 actions from one key.
Can more than two be triggered by a keystroke?
What combinations work?
Is there a logical sequence to how they are read and applied?
3. Is Ctrl-F still hardcoded to off once it has been "unmapped"?
Looking forward to any help you or others can give on these.
Re: Lotro UI and keyboard bindings (aliases, shorcuts and custom keyboard bindings)
Originally Posted by Vindalfur
... but I tried many times to change the order and every time I can the client it would reorder everything.
Okay, that sets my expectations pretty low then. I'll still use a logical sequence when working on these, but it looks like I'll need a final resort to match their original order. Not a big issue.
Originally Posted by Vindalfur
3. I see no reason why you can't bind up, down, tap on the same key if you want, I just showed tap and down as a easy example. Examples where this might be useful would be where you have to perform one skill to make another available but you need a short pause between, just bind one skill to down, the other to up and you can vary the pause period by holding down the key.
Cool. Definitely going to experiment with this!
Originally Posted by Vindalfur
Can you clarify a bit what you mean by "is Ctrl-F still hardcoded"
By default, Ctrl-F toggles framerate display on and off. If you assign Ctrl-F to another function, then it unmaps permanently. As far as I know there is no way to assign any other hotkey to the function, and it doesn't reset when you use the revert to default hotkey option.
Thanks for the quick response!
Duvi Vastin: "But whenever we take feedback on most game systems, such as character builds, economics, or especially anything to do with PvP, then we are forced to read very carefully between the lines of any and all player feedback, as it is all inevitably skewed by self-investment, self-interest, and a deeply subjective viewpoint that increases in direct proportion to how long or successfully a player has occupied a particular role."
Re: Lotro UI and keyboard bindings (aliases, shorcuts and custom keyboard bindings)
I have not tried changing CTRL-F, it might be a special mapping that is sent directly to their graphics engine, not sure.
Jarl
Originally Posted by slack_n_hash
Okay, that sets my expectations pretty low then. I'll still use a logical sequence when working on these, but it looks like I'll need a final resort to match their original order. Not a big issue.
Cool. Definitely going to experiment with this!
By default, Ctrl-F toggles framerate display on and off. If you assign Ctrl-F to another function, then it unmaps permanently. As far as I know there is no way to assign any other hotkey to the function, and it doesn't reset when you use the revert to default hotkey option.
Re: Lotro UI and keyboard bindings (aliases, shorcuts and custom keyboard bindings)
Originally Posted by slack_n_hash
If you assign Ctrl-F to another function, then it unmaps permanently. As far as I know there is no way to assign any other hotkey to the function, and it doesn't reset when you use the revert to default hotkey option.
To correct myself (), this does now reset and there is a row for it:
ToggleDebugHUD [ Old [ 0 DIK_F ] 0x00000002 ]
I'm going to have to check out what other key combos are in the keymap but not visible in game.
Duvi Vastin: "But whenever we take feedback on most game systems, such as character builds, economics, or especially anything to do with PvP, then we are forced to read very carefully between the lines of any and all player feedback, as it is all inevitably skewed by self-investment, self-interest, and a deeply subjective viewpoint that increases in direct proportion to how long or successfully a player has occupied a particular role."
Re: Lotro UI and keyboard bindings (aliases, shorcuts and custom keyboard bindings)
Pardon the necro, but I was wondering if anyone knew something.
If I have a mouse with a 4-way scroll button (such as http://www.amazon.com/Microsoft-Rech.../dp/B003L2BE1S), I'm assuming the forward/backward scroll would work as normal.
Would I be able to rebind the left/right scroll at will? Say something like 'tap left = find nearest object [delete by default]', tap right = nearest mob [tab]'?
Re: Lotro UI and keyboard bindings (aliases, shorcuts and custom keyboard bindings)
Does anyone know how to utilize this information so I may have hotkeys for targetting raid members outside of fellowship? I am disabled and cannot use the mouse well, and target my fellowship for heals through the keypad. I would like to at least be able to target raid 7-12.
Re: Lotro UI and keyboard bindings (aliases, shorcuts and custom keyboard bindings)
There is a key mapping in the options for "Select Next Player" (and previous) which I'm guessing would work for any Player whether grouped with you or not.
Other than that, you could use something like an AutoHotKey script to click a particular place on the screen, set up for each of the vitals in raid 7-12. AutoHotKey is very easy to use as it runs off very short text files. For example, a script to use the numeric keypad to click the left mouse button at set screen positions (only when LOTRO is running) could be as simple as:
Code:
#IfWinActive The Lord of the Rings Online
Numpad1:: Click 100, 100
Numpad2:: Click 100, 200
Numpad3:: Click 100, 300
Numpad4:: Click 100, 400
Numpad5:: Click 100, 500
Numpad6:: Click 100, 600
Note: the positions for your screen layout would be different to this, but would be reasonably easy to find.
Duvi Vastin: "But whenever we take feedback on most game systems, such as character builds, economics, or especially anything to do with PvP, then we are forced to read very carefully between the lines of any and all player feedback, as it is all inevitably skewed by self-investment, self-interest, and a deeply subjective viewpoint that increases in direct proportion to how long or successfully a player has occupied a particular role."
Re: Lotro UI and keyboard bindings (aliases, shorcuts and custom keyboard bindings)
Originally Posted by Vex_sb
Hello guys ;
Is it possible edit keymap file to reckognize the Shift + Num1/Num2 etc so i can bind it to something ??
Thanks
Yes in theory, but no in practice.
You can set these combinations in the keymap file and see it in the key mapping list in game, but the game doesn't actually respond to them.
Other modifiers (other than shift) might work though.
Duvi Vastin: "But whenever we take feedback on most game systems, such as character builds, economics, or especially anything to do with PvP, then we are forced to read very carefully between the lines of any and all player feedback, as it is all inevitably skewed by self-investment, self-interest, and a deeply subjective viewpoint that increases in direct proportion to how long or successfully a player has occupied a particular role."
I can't get it to work. Probably because all my "available" keys are pretty much already used. For instance I wanted to make it ctrl+R, but apparently because R is bound to right strafe it will default to the lowest index, in which case strafe has no modifier and thus wins. So I either have to find an obscure keybind that I'll probably forget or unbind something else lol.