[GUIDE] ActionMap and Controller Mapping

Electrocutor

Posts: 975

Posted:
Edited: by Electrocutor
Posted: -

Technical Information Index




Custom Configuration Options (CVars)Anti-Aliasing SupportNVidia 3D Vision Support

Instructions




1. Create/Edit an xml file somewhere safe (not under the USER folder)
1b. You can name this file whatever you want (no spaces) and can create multiple files if you want to be able to switch between mappings
2. Customize the xml however you want for mappings (tutorial link and examples below)
2b. The CustomisationUIHeader element and definition are required for in-game GUI import
3. Save
3b. Save a copy of the file to .\Starcitizen\CitizenClient\USER\Controls\Mappings and launch the game
4. Select and import your custom rebinding via in-game settings menus.
4b. Optionally, use pp_rebindkeys to load it. This will also load options such as inversions and custom curves whereas the in-game GUI will not.

Reset
Delete the USER folder and re-launch.

Unbinding
You may need to unbind an existing action/input before binding that input to a new action unless you want both the new and previous action to both trigger on that input. This can be done via input="kb1_ " or input="js1_ " (the space is required), using defaultInput="#" depending on whether the original binding has one or two bindings. You can find full unbind XML in the XML Examples section.

Exporting
To export your current in-game rebinds to a file that you can later load, use console command 'pp_rebindkeys export [device]' where [device] is keyboard, xboxpad, or joystick. The file will be created in .\Starcitizen\CitizenClient\USER\Controls\Mappings .

Multiple Devices
The configuration import GUI allows you to select which devices to map to which devices in your custom rebinding file.

Missing Default Binds
CIG has confirmed that you can only rebind actions/inputs that are first bound within the defaultProfile. If a default bind for this action/device does not exist, you must use Addbind instead.

Overriding Defaults
As of Arena Commander 1.1.0, we now have the ability to create our own defaultProfile.xml and have it override the existing one. To do so, build your own and place it into .\CitizenClient\USER\Controls.

Pepperz' XML TutorialHerrMathias' Curves Tutorial
*NOTE* Do not edit any of the .pak files as this will cause Star Citizen to not load.
*NOTE* Every time you download an update, it will delete your USER folder, so you will need to re-run the pp_rebindkeys.


Resources



Base Files and Utilities
Default Action MapsSource File Location:
.\StarCitizen\CitizenClient\Data\GameData.pak\Libs\Config\defaultProfile.xml

(Use 7zip or other zip/archive software to open a .pak)


ActionMap Application(Courtesy of Cassini)ActionMap Application(Courtesy of Vampyre)

Voice Controller
Voice Attack is a software controller that uses voice commands that can be mapped to keyboard input macros. I'll not go into the details for it here, but this is a valid input controller that emulates keyboard strokes in the same way that joystick controller software does. If you want to map actions to voice attack, they must first be mapped to keyboard input: most are by default, but not all.
http://voiceattack.com/

Example (by YouTube user Oricard):
http://www.youtube.com/watch?v=PzkzwOqqRsM

Input Device Emulation
FreePIE is an input device emulator that allows you to manipulate how your input devices are seen and how their messages are formatted. This is an advanced user utility. It allows, for example, TrackIR input to pretend to be mouse input among other things.
http://andersmalmgren.github.io/FreePIE

Another similar application is vJoy.
http://vjoystick.sourceforge.net/site/

XML Editor
If you want to use an editor to help keep your XML tags straight, there are many options available online. One popular example is Notepad++.
http://notepad-plus-plus.org


Sections




Device Rebind XMLsXML Examples
Input NamesDevice Input MapsDevice Quirks
Issues / Ideas
  • Electrocutor

    Posts: 975

    Posted:
    Edited: by Electrocutor
    Posted:
    Edited:

    Community Device Rebind XMLs & Profiles




  • Electrocutor

    Posts: 975

    Posted:
    Edited: by Electrocutor
    Posted:
    Edited:

    Example XML

    Keyboard Unbind:
    http://files.enjin.com/509268/xml/defaultProfile_ClearKeyboard.xml

    Joystick Unbind:
    http://files.enjin.com/509268/xml/defaultProfile_ClearJoystick.xml

    XBoxPad Unbind:
    http://files.enjin.com/509268/xml/defaultProfile_ClearXBoxPad.xml

    Full Unbind:
    http://files.enjin.com/509268/xml/defaultProfile_Full.xml

    Options Example:

    <!-- Options processing order: non-linearity, exponent, sensitivity and invert -->
    <ActionMaps ignoreVersion="1" >
    <options type="joystick" instance="1">
    <flight_move_pitch invert="1" sensitivity="0.8" exponent="1.2" />
    <flight>
    <nonlinearity_curve>
    <point in="0.1" out="0.001"/>
    <point in="0.25" out="0.02"/>
    <point in="0.5" out="0.1"/>
    <point in="0.75" out="0.125"/>
    <point in="0.85" out="0.15"/>
    <point in="0.90" out="0.175"/>
    <point in="0.925" out="0.25"/>
    <point in="0.94" out="0.45"/>
    <point in="0.95" out="0.75"/>
    </nonlinearity_curve>
    </flight>
    </options>
    </ActionMaps>


    Included example for roll/yaw switch:

    <!-- Roll on twist axis and Yaw on x axis -->
    <ActionMaps ignoreVersion="1" >
    <actionmap name="spaceship_movement">
    <action name="v_yaw">
    <rebind input="js1_x" />
    </action>
    <action name="v_roll">
    <rebind input="js1_rotz" />
    </action>
    </actionmap>
    </ActionMaps>


    Example of Decouple Rebind:

    <ActionMaps ignoreVersion="1" >
    <actionmap name="spaceship_movement">
    <action name="v_ifcs_toggle_vector_decoupling">
    <rebind input="js1_button31" />
    </action>
    </actionmap>
    </ActionMaps>


    Example of Dual Input Action Rebind: (roll/yaw on same axis)

    <ActionMaps ignoreVersion="1" >
    <actionmap name="spaceship_movement">
    <action name="v_roll">
    <rebind input="js1_x" />
    <addbind input="js1_rotz" />
    </action>
    <action name="v_yaw">
    <rebind input="js1_x" />
    </action>
    </actionmap>
    </ActionMaps>


    Example of Hat Rebind to Camera: (by Ramzee)

    <ActionMaps version="0" >
    <actionmap name="spaceship_view">
    <!-- Joystick Hat 1-->
    <action name="v_view_yaw_left">
    <rebind input="js1_hat1_right"/>
    </action>
    <action name="v_view_yaw_right">
    <rebind input="js1_hat1_left"/>
    </action>
    <action name="v_view_pitch_up">
    <rebind input="js1_hat1_up"/>
    </action>
    <action name="v_view_pitch_down">
    <rebind input="js1_hat1_down"/>
    </action>
    </actionmap>
    </ActionMaps>


    Example of Mouse X to Roll and Keyboard A/D to Yaw

    <ActionMaps ignoreVersion="1" >
    <actionmap name="spaceship_movement">
    <action name="v_roll_left">
    <rebind device="keyboard" input="maxis_x" useAnalogCompare="1" analogCompareVal="-0.1" analogCompareOp="LESSTHAN" retriggerable="1" />
    </action>
    <action name="v_roll_right">
    <rebind device="keyboard" input="maxis_x" useAnalogCompare="1" analogCompareVal="0.1" analogCompareOp="GREATERTHAN" retriggerable="1" />
    </action>
    <action name="v_yaw_mouse">
    <rebind input="kb1_ " />
    </action>
    <action name="v_yaw_left">
    <rebind input="kb1_a" />
    </action>
    <action name="v_yaw_right">
    <rebind input="kb1_d" />
    </action>
    </actionmap>
    </ActionMaps>


    Example for Throttle Forward/Reverse in Decouple:

    <ActionMaps ignoreVersion="1" >
    <actionmap name="spaceship_movement">
    <action name="v_strafe_forward">
    <rebind input="js1_z" useAnalogCompare="1" analogCompareVal="127" analogCompareOp="GREATERTHAN" />
    </action>
    <action name="v_strafe_back">
    <rebind input="js1_z" useAnalogCompare="1" analogCompareVal="127" analogCompareOp="LESSTHAN" />
    </action>
    </actionmap>
    </ActionMaps>


    Example of Dual Joysticks:

    <ActionMaps ignoreVersion="1" >
    <actionmap name="spaceship_movement">
    <action name="v_roll">
    <rebind input="js1_x" />
    <addbind input="js1_rotz" />
    </action>
    <action name="v_yaw">
    <rebind input="js1_x" />
    </action>
    <action name="v_strafe_lateral">
    <rebind input="js2_x" />
    </action>
    <action name="v_strafe_vertical">
    <rebind input="js2_rotz" />
    </action>
    <action name="v_strafe_longitudinal">
    <rebind input="js2_y" />
    </action>
    </actionmap>
    <actionmap name="spaceship_weapons">
    <action name="v_attack1_group2">
    <rebind input="js2_button1" />
    </action>
    <action name="v_attack1_group4">
    <rebind input="js2_button2" />
    </action>
    </actionmap>
    </ActionMaps>


    Example Vehicle/Buggy Control

    <ActionMaps ignoreVersion="1" >
    <actionmap name="vehicle_driver">
    <action name="v_move_forward">
    <rebind input="js1_y" useAnalogCompare="1" analogCompareVal="5" analogCompareOp="GREATERTHAN" />
    </action>
    <action name="v_move_back">
    <rebind input="js1_y" useAnalogCompare="1" analogCompareVal="5" analogCompareOp="LESSTHAN" />
    </action>
    <action name="v_yaw">
    <rebind input="js1_x" />
    </action>
    </actionmap>
    </ActionMaps>


    Example in-game label for rebinding selection:

    <ActionMaps ignoreVersion="1" >
    <CustomisationUIHeader label="My Custom Layout" description="@ui_JoystickSaitekX52Desc" image="JoystickSaitekX52">
    <Devices>
    <joystick instance="1" />
    <joystick instance="2" />
    </Devices>
    </CustomisationUIHeader>
    </ActionMaps>


    Example of invert option setting:
    *note that the second "instance" should actually be "invert" and will be fixed in the future

    <ActionMaps ignoreVersion="1" >
    <options type="joystick" instance="1">
    <flight_move_yaw invert="1" sensitivity="0.8" exponent="1.2" />
    </options>
    </ActionMaps>


    Example of deadzone change:

    <ActionMaps ignoreVersion="1" >
    <deviceoptions name="Joystick - HOTAS Warthog">
    <option input="x" deadzone="0.015" />
    <option input="y" deadzone="0.015" />
    </deviceoptions>
    </ActionMaps>


    Example of custom nonlinearity curve:
    An informational PDF was written up by SkyZone trying to explain a bit about non-linearity curves, which can be found here

    <ActionMaps ignoreVersion="1" >
    <options type="joystick" instance="1">
    <flight>
    <nonlinearity_curve>
    <point in="0.1" out="0.001"/>
    <point in="0.25" out="0.02"/>
    <point in="0.5" out="0.1"/>
    <point in="0.75" out="0.125"/>
    <point in="0.85" out="0.15"/>
    <point in="0.90" out="0.175"/>
    <point in="0.925" out="0.25"/>
    <point in="0.94" out="0.45"/>
    <point in="0.95" out="0.75"/>
    </nonlinearity_curve>
    </flight>
    </options>
    </ActionMaps>
  • Flavius

    Posts: 20

    Posted:
    Edited: by Flavius
    Posted:
    Edited:
    Thanks for putting this together Electrocutor! When I use a joystick and other peripherals it takes a couple hours to get the configuration settings dialed in. Kind of like fine tuning an F1 car. lol At least I will have a little bit of time to think about how I want to set the mappings.

    Much appreciated!
    Whomsoever you see in distress, recognize in them a fellow Star Citizen.
  • Electrocutor

    Posts: 975

    Posted:
    Edited: by Electrocutor
    Posted:
    Edited:

    Input Names

    Specific Model Input Names
    Device-Specific Input Maps

    Joystick
    *Attribute name is 'joystick'
    *Each model may associate differently, but the names will be the same (though mismatched)
    *If a controller has multiple USB connections, use js2_* to access the second controller, and js3_* for the third
    *It seems that 3 is the maximum number of joystick devices


    *NOTE* If you have multiple devices, the order in which they appear in Windows defines which is js1/2/3 and this may not be constant if you unplug and re-plug the devices. As such, if you have trouble with the device order changing, I recommend making an inverse profile with js# swapped so you can easily just load whichever rebinding matches their current order.

    *NOTE* Some input controls (especially sliders) will not give correct values until you have moved them to all extremes in-game.
    InputActionMap Name
    Stick Axes...js1_y, js1_x
    Stick Rotate Axis...js1_rotz
    Throttle...js1_z, js2_throttlez, js1_slider1
    Primary & Secondary Attack...js1_button1, js1_button2
    Stick Button #...js1_button#
    Hat #...js1_hat#_left
    HMD
    *Attribute name is 'keyboard'
    *Oculus Rift, Cinemizer
    InputActionMap Name
    Head Rotate...HMD_Yaw
    Head Roll...HMD_Roll
    Head Nod...HMD_Pitch
    Head F/B...Not Implemented
    Head L/R...Not Implemented
    Head U/D...Not Implemented


    Keyboard
    *Attribute name is 'keyboard'
    InputActionMap Name
    Letters...a - z
    Numbers...0 - 9
    _-...minus
    +=...equals
    Backspace...backspace
    Arrows...up, down, left, right
    Function Keys...f1 - f15
    Numpad Numbers...np_0 - np_9
    Numpad Math...np_divide, np_multiply, np_subtract, np_add
    Numpad Misc...np_period, np_enter
    Numlock...numlock
    Escape...escape
    ~...tilde
    Tab...tab
    Caps Lock...capslock
    Shift...lshift, rshift
    Control...lctrl, rctrl
    Alt...lalt, ralt
    Space Bar...space
    {[, }]...lbracket, rbracket
    |\...backslash
    Page Up/Down...pgup, pgdn


    Mouse
    *Attribute name is 'keyboard'
    InputActionMap Name
    Move...maxis_x, maxis_y
    Click...mouse1, mouse2
    Wheel...mwheel_up, mwheel_down


    Xbox Controller
    *Attribute name is 'xboxpad'
    InputActionMap Name
    D-Pad...xi_dpad_up, xi_dpad_down, xi_dpad_left, xi_dpad_right
    Thumb Click...xi_thumbl, xi_thumbr
    Main Buttons...xi_a, xi_b, xi_x, xi_y
    Thumb Axes...xi_taxislx, xi_taxisly, xi_taxisrx, xi_taxisry
    Start & Back Buttons...xi_start, xi_back
    Shoulder Buttons...xi_shoulderl, xi_shoulderr
    Trigger Buttons...xi_triggerl_btn, xi_triggerr_btn


    PS3 Controller
    *Attribute name is 'ps3pad'
    InputActionMap Name
    D-Pad...pad_up, pad_down, pad_left, pad_right
    Thumb Click...pad_l3, pad_r3
    Main Buttons...pad_cross, pad_circle, pad_square, pad_triangle
    Thumb Axes...pad_sticklx, pad_stickly, pad_stickrx, pad_stickry
    Start & Select Buttons...pad_start, pad_select
    Shoulder Buttons...pad_l1, pad_r1
    Trigger Buttons...pad_l2, pad_r2

    Input Activation Modes

    AttributeDescription
    invertinverts the analog input
    onPresstrigger on press
    pressDelayPriorityunknown
    pressTriggerDelayseconds to delay trigger after press
    pressTriggerDelayRepeatOverrideunknown (prevent stacking?)
    onHoldtrigger while holding down
    holdTriggerDelaydelay after press to send hold trigger
    retriggerablere-send trigger repeatedly while held
    holdRepeatDelayseconds between hold triggers
    onReleasetrigger on release
    releaseTriggerThresholdSeconds to wait for onRelease trigger
    multiTaprequire multiple presses
    noModifiersrequire no modifier keys active
    useAnalogCompareenable analog compare; while CompareOp is true, input is sent
    analogCompareValcompare input value against this value
    analogCompareOpcompare type: GREATERTHAN, LESSTHAN
    inputsToBlockaction causes an input block
    inputBlockTimeseconds until block is lifted


    *NOTE* Activation Mode changes will only be applied if the input also changes
  • Electrocutor

    Posts: 975

    Posted:
    Edited: by Electrocutor
    Posted:
    Edited:

    Device Input Maps

    Where to Start

    1. Start Menu - Devices & Printers
    2. Right-click device and select 'Game Controller Settings' (the order determines js1, js2, etc)
    yh3nZN1.png
    3. Highlight the device and select 'Properties'
    GlstHNg.png
    The device names here do not always correspond with the CryEngine name, but they are usually somewhat related.

    Community Input Map Discovery

    Various Input Map Images by Glacial_Ice
    https://forums.robertsspaceindustries.com/discussion/217514/helpful-joystick-mapper-in-printable-images/p1

    Saitek X52

    by Tate Asher
    https://forums.robertsspaceindustries.com/discussion/comment/2734767/#Comment_2734767

    Saitek Rudder Pedals

    js2_x : Left Toe
    js2_y : Right Toe
    js2_rotz : Push/Pull Pedals ; requires cl_invertYaw=1 in user.cfg



    Standardized Device Input Maps

    (the following section is new and will take me some time to populate; I'll list models as I fill in the data until it is complete)


    Device Input Related CVars

    CVars can be set via console with a space between its name and value or via user.cfg (.\StarCitizen\CitizenClient\user.cfg) with an = between the name and value.

    *NOTE* CIG is working to remove CVars from the equation and instead allow customizations via the options tags in a rebind XML (there are examples listed under XML Examples).

    Inversion CVars:

    v_mouseInvert
    cl_invertYaw
    v_gamepadInvert
    cl_invertController


    Misc

    i_forcefeedback
  • Electrocutor

    Posts: 975

    Posted:
    Edited: by Electrocutor
    Posted:
    Edited:

    Device Quirks

    Universal

    • Move all axes to their extremes in-game when first entering flight mode in order for them to properly calibrate.

    Saitek X52/Pro

    • To allow the throttle clutch to function, disable MFD - Clutch Settings - Enable Clutch Mode in the Controller Properties control panel.
    • To disable mouse emulation from the mini-stick, mouse button, and scroll-button 19, go to Windows Device Manager and disable the Mouse that does not have a Power Management property tab.

    Saitek X65f

    *Note*
    Intel's USB 3.0 drivers have a bug that causes issues with USB 2.0 devices attached to USB 3.0 ports and any devices if your motherboard has non-Intel USB 3.0 ports. If you install the Intel USB 3.0 driver, be certain that any non-Intel ports are disabled in device manager and that you plug respective USB 2.0 and 3.0 devices into their correct ports.
  • Electrocutor

    Posts: 975

    Posted:
    Edited: by Electrocutor
    Posted:
    Edited:

    Consolidated Issues/Ideas/Suggestions




    Issues

    Rotation and Aim Conflict

    Axis ship rotation actions causes mouse input aim actions to reset to center. This is a serious issue for HOMAS setups.

    Tab Binds

    All instances of using Tab as default binding needs to have noModifiers set to 1 so that when you alt+tab out of the game, it does not cause in-game actions to occur.

    False Targeting

    v_target_reticle_focus targets the ship nearest the center of the screen/hud instead of the ship located nearest the aim reticle.

    Suggestions

    UI Tooltips

    Whenever a mouse cursor is available on a HUD or other control panel, include mouse-over tooltip descriptions of things such as sliders and settings to tell what they are and what they do. This could easily be immersive by means of holo AR.

    Allow for Logical Toggles

    I would consider a logical toggle to be a toggle action that changes states onPress, onHold, and onRelease each. Thus, if a toggle were bound to both onPress and onRelease, then it would toggle 'On' when a button were pushed and 'Off' when that button were released.

    Allow for Stateful Toggles

    By stateful toggle, I mean hardware state, thus a physical 2way toggle switch would ready as a state instead of as a press/release event. This means that even if the default software state of a toggle action is off, if the bound switch is in an on state, then the software toggle would change to match. Thus, on would be on and off would be off instead of the way it behaves now where the game becomes inverted to the switch.

    3way Toggle Switch Support

    This could actually be supported by the above 'Stateful Toggles' if there was an optional attribute to invert the toggle action state as compared to the input. A 3way toggle is effectively two stateful toggles that combine their off states, giving the 3 states being: on/off, off/off, and off/on.

    Console Command Rebinding

    Allow custom rebind XML to define new shortcuts for console commands. This would, for example, allow players to setup different control schemas and switch them on-the-fly.
    Possible Example:

    <ActionMaps ignoreVersion="1" >
    <actionmap name="player">
    <action name="pp_rebindkeys anvil">
    <rebind device="keyboard" consoleCmd="1" input="1" onPress="1" />
    </action>
    <action name="pp_rebindkeys origin">
    <rebind device="keyboard" consoleCmd="1" input="2" onPress="1" />
    </action>
    <action name="pp_rebindkeys rsi">
    <rebind device="keyboard" consoleCmd="1" input="3" onPress="1" />
    </action>
    </actionmap>


    Flight Control

    A flight control model that assesses all current inputs and determines the result rotation velocity vector and translation velocity vector and applies the resultant vector via all available thrusters (including main thruster).

    Ship system caches the calculated vectors of each available thruster in order to achieve each of the 6 cardinal translation vectors and 6 cardinal rotation vectors and does not recalculate unless there is a change in center of mass or available thrusters. This will help prevent the current constant ship wobbling during thruster calculations for any movement.

    A G-Safe mode that prevents pilot black-out or red-out. A Com-Stab mode to reduce velocity during vector changes. Three Damping modes to set inertial damping: rotation, longitudinal, and lateral & vertical.

    Given that inertial damping can be set to any of 8 possibilities, the need for the current implementation of coupled/decoupled mode is gone, but I might suggest a new decoupled mode that saves the current inertial damping settings, switches to only rotation damping, and doubles ship control precision be implemented. When decoupled mode is disabled, then the inertial damping settings are returned to their original state.
  • Caballien

    Posts: 10619

    Posted:
    Posted:
    EXACTLY what I've been looking for, thanks!

    MVP.
  • Caballien

    Posts: 10619

    Posted:
    Posted:
    @Electrocutor can JS1 have more than 3 axis to it? If so, what are the naming conventions after that?
  • Caballien

    Posts: 10619

    Posted:
    Edited: by Caballien
    Posted:
    Edited:
    Also, if you could post all the mapping files you find, not just the warthog one, that would be helpful. That way we can have multiple references to see how they're doing things.
    [hide]

    There's actually a whole lot more options available than I've not listed yet, such as being able to switch inputs between press or toggle, setting up fractional multipliers, and some other things.

    please do, even if it isn't pretty at first.
  • 54Yr0ldHOTMOM

    Posts: 539

    Posted:
    Edited: by 54Yr0ldHOTMOM
    Posted:
    Edited:
    there is no config map in this location on my pc

    \StarCitizen\CitizenClient\Data\Libs\Config\

    Do i just create the directory?

    Or do I unrar the GameData.pak to get at the Config map?
    -=Live is like living, but without the peaches=-
  • B15hop

    Posts: 791

    Posted:
    Posted:
    Nice, got one for the ps4 controller?
    If you ain't livin on the edge, you're takin up too much room.
  • GORYNYCH

    Posts: 588

    Posted:
    Posted:
    I have multiple joysticks. My main one is on js2, but it interferes with default js1 which is not really a joystick. How to disable default mapping to disble js1 ?
  • B15hop

    Posts: 791

    Posted:
    Posted:
    Somebody please make mappings for them, then post an easy to install zip file for each type of controller.

    I am trying to get this working but I think I'm misunderstanding something.
    If you just send me the completed files for each type, I will do it if you don't want to.
    If you ain't livin on the edge, you're takin up too much room.
  • Boken

    Posts: 124

    Posted:
    Posted:
    Thanks a lot for this, I was able to use it to map my Rudder Pedals to work along side my Stick.
    87HN61F.png
  • Caballien

    Posts: 10619

    Posted:
    Edited: by Caballien
    Posted:
    Edited:
    disregard
  • Firebat

    Posts: 70

    Posted:
    Edited: by Firebat
    Posted:
    Edited:
    delete this post.
  • Caballien

    Posts: 10619

    Posted:
    Posted:
    nevermind, I found the motherload of mappings in the pak, as mentioned in the updated OP.
  • Caballien

    Posts: 10619

    Posted:
    Posted:
    So in the UI of the game for configs, does this change config layouts or is that just as a reference?
  • Renifizzle

    Posts: 87

    Posted:
    Edited: by Renifizzle
    Posted:
    Edited:
    I have x52 pro and saitek pedals, how do I define the pedal rudder? js2_x?

    MUCH BETTER QUESTION:
    Is there a database of inputs for devices in crytek? I don't know how to properly call all my hats/buttons in the cfg
    obzk5kqmf8lkjj
    2008 - 2010 - Good times EVE
  • Firebat

    Posts: 70

    Posted:
    Posted:
    there is only 2 buttons on my joystick that i want to remap, do i need to have the whole map in the xml file or can i just add those few lines.

    does the XML have to have ALL controls in it? or just the ones i want to change.

    in other words, will this work? i want to map target nearest ship and decoupling mode to my logitech attack3 joystick


    7kY7ZDp.jpg
  • Electrocutor

    Posts: 975

    Posted:
    Posted:
    [hide]

    there is only 2 buttons on my joystick that i want to remap, do i need to have the whole map in the xml file or can i just add those few lines.

    does the XML have to have ALL controls in it? or just the ones i want to change.

    in other words, will this work? i want to map target nearest ship and decoupling mode to my logitech attack3 joystick


    7kY7ZDp.jpg

    You need only remap the ones that you want to change from defaults. The switching of yaw and roll axes is an example where only two entries are in the rebind xml.
  • Electrocutor

    Posts: 975

    Posted:
    Posted:
    [hide]

    I have x52 pro and saitek pedals, how do I define the pedal rudder? js2_x?

    MUCH BETTER QUESTION:
    Is there a database of inputs for devices in crytek? I don't know how to properly call all my hats/buttons in the cfg

    Some experimenting and info from people with different devices will be needed to make a database. I would guess that MWO would be the best place to look for any pre-existing lists of device-to-input names. The x52 is a stick/throttle combined into one USB device, so the throttle is actually js1_z I believe.
  • Renifizzle

    Posts: 87

    Posted:
    Edited: by Renifizzle
    Posted:
    Edited:
    [hide]

    [hide]

    I have x52 pro and saitek pedals, how do I define the pedal rudder? js2_x?

    MUCH BETTER QUESTION:
    Is there a database of inputs for devices in crytek? I don't know how to properly call all my hats/buttons in the cfg

    Some experimenting and info from people with different devices will be needed to make a database. I would guess that MWO would be the best place to look for any pre-existing lists of device-to-input names. The x52 is a stick/throttle combined into one USB device, so the throttle is actually js1_z I believe.
    Thank you, I was beginning to explore the MWO forums but not in depth yet.

    I was curious about the rudder pedals, not the throttle, do you know what pedals are? Thank you again!
    I will share anything I can find on this thread.

    EDIT:
    Is there any way to have a cryengine test bed to see what the inputs are called? E.G. load the test up and see what the engine calls a button press when you press it? Or log it?
    obzk5kqmf8lkjj
    2008 - 2010 - Good times EVE
  • Firebat

    Posts: 70

    Posted:
    Posted:
    [hide]

    there is only 2 buttons on my joystick that i want to remap, do i need to have the whole map in the xml file or can i just add those few lines.

    does the XML have to have ALL controls in it? or just the ones i want to change.

    in other words, will this work? i want to map target nearest ship and decoupling mode to my logitech attack3 joystick


    7kY7ZDp.jpg

    this code didnt work, what did i do wrong


  • Firebat

    Posts: 70

    Posted:
    Edited: by Firebat
    Posted:
    Edited:
    does this look right?

    WR43Cqn


    grr i mean this

    http://i.imgur.com/WR43Cqn.jpg
  • Electrocutor

    Posts: 975

    Posted:
    Posted:
    I need to do some reformatting because the OP is maxed out on characters...

    Here is an example included in AC for switching the roll and yaw:

    <!-- Roll on main axis and Yaw on secondary axis -->
    <ActionMaps ignoreVersion="1" >
    <actionmap name="spaceship_movement">
    <action name="v_yaw">
    <rebind device="joystick" input="js1_x" />
    </action>
    <action name="v_roll">
    <rebind device="joystick" input="js1_rotz" />
    </action>
    </actionmap>
    </ActionMaps>


    In your example, the second action needs to encase a rebind tag that defines the new map.
  • Caballien

    Posts: 10619

    Posted:
    Posted:
    again, MVP. This thread made my day.

    *muahahaha*
  • Firebat

    Posts: 70

    Posted:
    Posted:
    [hide]

    I need to do some reformatting because the OP is maxed out on characters...

    Here is an example included in AC for switching the roll and yaw:

    <!-- Roll on main axis and Yaw on secondary axis -->
    <ActionMaps ignoreVersion="1" >
    <actionmap name="spaceship_movement">
    <action name="v_yaw">
    <rebind device="joystick" input="js1_x" />
    </action>
    <action name="v_roll">
    <rebind device="joystick" input="js1_rotz" />
    </action>
    </actionmap>
    </ActionMaps>


    In your example, the second action needs to encase a rebind tag that defines the new map.


    so, more like this?:


    <actionmap name="My custom crap">
    <action name="v_target_nearest_hostile">
    <rebind device="joystick" input="js1_button8"/>
    </action>


    <action name="v_ifcs_toggle_vector_decoupling">
    <rebind device="joystick" input="js1_button9"/>
    </action>

    </actionmap>


    Will target nearest hostile and toggle vectoring remain bound to the keyboard still? or does this code kill that?
  • Electrocutor

    Posts: 975

    Posted:
    Posted:
    name="My custom crap">

    I'm pretty sure that CIG doesn't call an actionmap named that...
Sign In or Register to comment.