We have detected that cookies are not enabled on your browser. Please enable cookies to ensure the proper experience.
Results 1 to 14 of 14

Hybrid View

  1. #1
    Join Date
    Oct 2009
    Posts
    104

    Smile Lotro UI and keyboard bindings (aliases, shorcuts and custom keyboard bindings)

    I got some complaints that when the forums switched my old post was deleted and since I had a backup I figured I might repost.

    This is a guide on how to manually edit lotro.keymap in order
    to customize keybindings beyond what the standard user interface
    allows or supports.

    This guide does not cover the Lotro Client Alias/Shorcut abilities
    although they are very handy in combination with custom key bindings.
    You can find fine guides at the following websites:
    http://lotrovault.ign.com/View.php?v...s.Detail&id=37
    http://forums.lotro.com/showthread.p...Target-Macros)

    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.

    Keys are represented by keyboard device constants as defined by Microsoft, for a full definition see:
    http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

    Typically this just means that it's prefixed with DIK_, examples:

    DIK_0
    DIK_F1
    DIK_S

    The more obscure keys are represented by their name such as:

    DIK_DELETE
    DIK_ESCAPE
    DIK_NUMPAD0
    DIK_LCONTROL
    DIK_LSHIFT
    DIK_LMENU

    Devices:

    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:

    Keyboard [ GUID_SysKeyboard ]
    Mouse [ GUID_SysMouse ]
    MetaKeys:

    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:

    1 [ 1 DIMOFS_BUTTON3 ]
    2 [ 1 DIMOFS_BUTTON4 ]
    3 [ 1 DIMOFS_BUTTON0 ]
    4 [ 1 DIMOFS_BUTTON1 ]

    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.

    MetaKeys
    [
    1 [ 0 DIK_LSHIFT ]
    1 [ 0 DIK_RSHIFT ]
    2 [ 0 DIK_LCONTROL ]
    2 [ 0 DIK_RCONTROL ]
    3 [ 0 DIK_LMENU ]
    3 [ 0 DIK_RALT ]
    4 [ 0 DIK_LWIN ]
    4 [ 0 DIK_RWIN ]
    ]

    The corresponding hex codes for the functions, 1-4 and 0 by default being none:

    0x00000000 - None
    0x00000001 - Shift
    0x00000002 - Ctrl
    0x00000004 - Alt
    0x00000010 - Win

    The hex codes continue doubling as:

    0x00000020
    0x00000040
    0x00000080

    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.

    For reference here is a link to my personal lotro.keymap that can be used as a template/reference along with a screenshot explaining it:
    http://dallur.com/fileadmin/user_upload/lotro.keymap
    http://dallur.com/fileadmin/user_upload/ScreenShot.jpg

    If you have found this guide helpful you might want to check out my Logitech G15/G19 LotroLCD application and my Logitech G15 keyboard profile.

    http://dallur.com/fileadmin/user_upl...stallerX86.msi (32 bit)
    http://dallur.com/fileadmin/user_upl...stallerX64.msi (64 bit)
    http://dallur.com/fileadmin/user_upl...troProfile.lgp

    Feel free to drop me an email or in game msg with comments or just to chat.
    Last edited by Vindalfur; Oct 06 2010 at 05:04 PM.

  2. #2
    Join Date
    Jun 2007
    Location
    Auckland, New Zealand
    Posts
    1,168

    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

    [URL="http://my.lotro.com/character/elendilmir/duvi/"]Duvi[/URL]
    [charsig=http://lotrosigs.level3.turbine.com/04208000000038e43/01000/signature.png]Duvi[/charsig]
    [B][COLOR=RoyalBlue]Vastin[/COLOR][/B]: [I]"But whenever we take feedback on most game systems, such as character builds, economics, or [/I]especially[i] 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]

  3. #3
    Join Date
    Oct 2009
    Posts
    104

    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


    Quote Originally Posted by slack_n_hash View Post
    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.

    Thanks,
    Duvi


  4. #4
    Join Date
    Jun 2007
    Location
    Auckland, New Zealand
    Posts
    1,168

    Re: Lotro UI and keyboard bindings (aliases, shorcuts and custom keyboard bindings)

    Quote Originally Posted by Vindalfur View Post
    ... 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.

    Quote Originally Posted by Vindalfur View Post
    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!

    Quote Originally Posted by Vindalfur View Post
    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!
    [URL="http://my.lotro.com/character/elendilmir/duvi/"]Duvi[/URL]
    [charsig=http://lotrosigs.level3.turbine.com/04208000000038e43/01000/signature.png]Duvi[/charsig]
    [B][COLOR=RoyalBlue]Vastin[/COLOR][/B]: [I]"But whenever we take feedback on most game systems, such as character builds, economics, or [/I]especially[i] 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]

  5. #5
    Join Date
    Oct 2009
    Posts
    104

    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


    Quote Originally Posted by slack_n_hash View Post
    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.

    Thanks for the quick response!

  6. #6
    Join Date
    Jun 2007
    Location
    Auckland, New Zealand
    Posts
    1,168

    Re: Lotro UI and keyboard bindings (aliases, shorcuts and custom keyboard bindings)

    Quote Originally Posted by slack_n_hash View Post
    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.
    [URL="http://my.lotro.com/character/elendilmir/duvi/"]Duvi[/URL]
    [charsig=http://lotrosigs.level3.turbine.com/04208000000038e43/01000/signature.png]Duvi[/charsig]
    [B][COLOR=RoyalBlue]Vastin[/COLOR][/B]: [I]"But whenever we take feedback on most game systems, such as character builds, economics, or [/I]especially[i] 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]

  7. #7

    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]'?

    Thanks

 

 

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

This form's session has expired. You need to reload the page.

Reload