The Actionmapper tool is an interim solution to being able to modify the keyboard, mouse, and joystick bindings for all controls needed for Mechwarrior Living Legends (MWLL).
Things to know before you begin
- The MWLL Launcher requires the .NET framework to run.
- The Actionmapper requires Java to run, which is installed when you install MWLL.
- NEVER attempt to modify controls using the Crysis Wars in-game settings menu.
- NEVER attempt to modify controls using the Actionmapper while Crysis Wars is running.
- If you have not yet created a new Profile within Crysis Wars, you will need to do so before using the Actionmapper. It has been designed not to load the default Crysis Wars profile (a.k.a Nomad or Mechwarrior).
Launching the Actionmapper
There are two methods for launching the Actionmapper:
- Open the MWLL Launcher desktop shortcut provided after the installation of the mod. From there click on the Config Actionmaps button on the left side of the window.
- Or, open Actionmapper.exe (not Actionmapper.jar) from the mods\MWLL\Actionmapper\dist folder located in your Crysis Wars installation location.
How does it work?
The Actionmapper reads and writes to the actionmaps.xml file which is used by Crysis Wars to store action to key bindings. It also integrates with the joystick.cfg file which is used to modify joystick axis settings. To support multiple profiles and actionmaps settings per profile, and since only one file can be named actionmaps.xml at a time, the Actionmapper only sets the currently Active one to be named actionmaps.xml, while all other actionmaps configuration are stored with their name in the file.
The first sortie
The first time you open the Actionmapper it will name your default actionmaps file as "original". From here it is recommended that you start a new actionmaps by pressing the New Actionmaps button found at the top left of the window, after which you will be prompted to give it a name. Try naming it something short but descriptive, like "joystick" or "mouse+keyboard" so they can be easily identified if you wish to try out other configurations later.
One of the first things you may notice, even with a new or default actionmaps, is the presence of conflicts indicated by red colored text and an icon with a red circle and an exclamation mark. Some of these conflicts may be ok or may not be applicable, for instance if you do not plan to use a gamepad. To find out which action is being conflicted with, select the action by left clicking on it. You may clear a conflict either by setting to No binding or to another key/button that is not in use already.
Each action may have up to two bindings associated with it. Some actions are analog only, meaning only a mouse or joystick axis may be assigned and must be manually selected. Most actions are digital only, meaning only a key or button may be assigned. After making a selection, any action that has been modified will be indicated by blue colored text and an icon with a blue square and an uppercase M.
Most digital keys/buttons can be detected automatically by clicking on Detect Key/Button and then pressing the desired key/button when the dialog appears. If the key or button is not detected and the device is properly plugged in to your computer, you may need to resort to manually selecting the key/button since the java detection libraries are not able to pick up on 100% of all possible input.
As of 0.8.6, the Joystick Settings tab is no longer relevant as all joystick functionality must be routed through an XBox 360 emulator such as X360CE found in the Joystick Setup guide.
When all desired changes have been made, be sure to save your modifications. The Save function is available from the File menu. After saving all actions marked as modified will be unmarked.
Setting an active Actionmaps
When managing more than one actionmaps in a profile it is necessary for one of them to be active, indicating that it will be loaded the next time MWLL is run. Use the "Set active" link at the top middle of the window for making the currently selected actionmap active.
Tips for new Mechwarriors
- The default key for entering/ejecting from a vehicle is F. If using a mouse and keyboard to play MWLL using the standard default WASD movement configuration, you may want to rebind the action "Use/Get In/Eject" to another key located further away from commonly used keys to ensure you don't accidentally eject in the middle of combat. How embarrassing it is!
- Setting up a joystick properly requires a bit of experimentation. If you find that the axes are too sensitive or not sensitive enough just head over to the Joystick Settings tab and fine tune to your liking. Alternatively you may use the "raw" setting on individual axis selections on each action that will directly map to that joystick's axis response.
Frequently Asked Questions
Q: Why isn't my joystick or keyboard button press being detected when I use the Detect function?
A: Assuming its plugged in and recognized by Windows, its very likely the detection library doesn't recognise it. However, the button may still work in game, you will just need to manually select it using the appropriate pull-down menu for the action. See the Joystick Setup guide for more info.
Q: Why can't I assign Control/Alt/Shift plus a keystroke for an action, such as Control + O?
A: Crysis Wars does not have keystroke modifier support built-in, so MWLL cannot support it yet.
Q: Why does the Xbox360 gamepad axis appear inverted in game?
A: The current workaround is to instead set those actions to the corresponding joystick axis instead of gamepad axis, which then will allow you to set inverse on it. The left stick is Joystick X and Y axis, while the right stick is Joystick Rotation X and Rotation Y axis.
There are certain tweaks that can be done by directly editing the actionmaps.xml which is located in C:\Users\Username\Documents\My Games\Crysis Wars\Profiles\Profilename (explain structure of the actionmaps.xml)
- taking certain keybinds in super categories and give them different bindings in the subcategories
- (explain with example)
- binding console commands to be executed via button press
- (explain with example)