- Change old keybinds with new ones from original, unmodded file - Removed "prototype" keybinds, since newest, original file doesn't have those anymore
There is no need to use a mod. Just find UserSettings.json in C: \ Users \ ***** \ AppData \ Local \ CD Projekt Red \ Cyberpunk 2077 and edit it. "value": "IK_F" replace with "value": "IK_E" and that's it. I apologise for possible mistakes. English is not my language.
Swapping E for F by editing UserSettings.json in:%USERPROFILE%\AppData\Local\CD Projekt Red \Cyberpunk 2077\ ...works for quickhacks and exiting vehicles as expected. I haven't tested it for the special jumping out of vehicles perks but I imagine it does.
But you'll also need to edit: ...\Cyberpunk 2077\r6\config
Note: you probably want to comment out the overridableUI part of the line like I did to make it actually work, otherwise it gets overriden by whatever selectUp and selectDown is, which is probably Q and F.
... in order to at least change "IK_E" to something else (this seems accurate enough: keybinds) for the rotation so that you can rotate your character properly in the mirror and character creation screen. Personally I use "IK_LeftBracket" and "IK_RightBracket" for those.
Note: if you're using a mod like No More Hardcoded Keybinds, then you want to edit the inputUserMappings.xml in that mod's r6\config folder. Best bet is to use grepwin (https://tools.stefankueng.com/grepWin.html) on your mod folder to find all occurrences of character_preview_rotate.
I don't know why this isn't just exposed in the ingame keymapping ui. There isn't anything inherently special about the E and F keys to warrant this level of effort just to swap them.
I saved the above code as [F_to_E_Updated_input_loader.xml] and added it to a zip that has the ".\r6\input" path and used Vortex to install it. Whether you manually install it or use a zip and [Vortex->Add Mod by File], the file needs to end up in ".\Cyberpunk 2077\r6\input"...
@diras2010, feel free to delete this post if I have stepped on your toes. I apologize if so. Otherwise feel free to distribute the code as an alternative as you see fit, and then delete this post.
Process: I located 38 lines that were different than the vanilla [inputUserMappings.xml] using https://www.diffchecker.com and the result is here https://www.diffchecker.com/oYKJsWS4. I put the lines into the file described above. I did notice that a few edits didn't seem to be in the scope of moving [E]->[F] for the purposes of interaction. For example I commented out:<!-- ?<mapping name="character_preview_rotate" type="Axis" > <button id="IK_Q" val="1.0" overridableUI="selectUp" /> <button id="IK_F" val="-1.0" overridableUI="selectDown" /> </mapping> DEJ-->
I just seem to make sense to leave [E] as the oppisite of [Q] for rotating the character preview. There are other edits that seem suspect, perhaps just having the appended changes, might allow for a review of the changes. Similarly I commented out [F] as lean right; The changes to "Dodge"; The entry that uses the controller to "Change Account"; and each of the changes to the "World Map" interface. But that is simply my personal preferences.
Thank You for a very necessary mod... I am a fan of [F] for interact, but I have given up now that every dammn game uses [E], lol... Thanks again. -Dejunai
- change old keybinds with new ones from original, unmodded file - left some keybinds untouched because are commented as *prototype* by the Devs on the file
В общем мод не работает В файле UserSettings.json (C: \ Users \ ***** \ AppData \ Local \ CD Projekt Red \ Cyberpunk 2077) меняем строку <button id="IK_E/F" overridableUI="selectChoiceUI"/> сохраняем и теперь в настройках игры нет ошибки. Еще бы поменять выбор максимального количества предметов при покупке или продаже на F вместо E. В файле [inputUserMapping.xml] есть такая строка, но она так же ничего не меняет в игре.
Your current version as of: ??Date uploaded ??10 Sep 2022, 6:02PM Contains a backup file: [inputUserMappings.xml.orig] However it is identical to the modified file: [inputUserMappings.xml] So it cannot be used as a recovery method.
21 comments
Update for v 2.12 and Phantom Liberty DLC:
- Change old keybinds with new ones from original, unmodded file
- Removed "prototype" keybinds, since newest, original file doesn't have those anymore
"value": "IK_F" replace with "value": "IK_E" and that's it.
I apologise for possible mistakes. English is not my language.
%USERPROFILE%\AppData\Local\CD Projekt Red \Cyberpunk 2077\
...works for quickhacks and exiting vehicles as expected. I haven't tested it for the special jumping out of vehicles perks but I imagine it does.
But you'll also need to edit:
...\Cyberpunk 2077\r6\config
<mapping name="character_preview_rotate" type="Axis" >
<button id="IK_LeftBracket" val="1.0"/> <!-- overridableUI="selectUp" /> -->
<button id="IK_RightBracket" val="-1.0"/> <!-- overridableUI="selectDown" /> -->
</mapping>
Note: you probably want to comment out the overridableUI part of the line like I did to make it actually work, otherwise it gets overriden by whatever selectUp and selectDown is, which is probably Q and F.
... in order to at least change "IK_E" to something else (this seems accurate enough: keybinds) for the rotation so that you can rotate your character properly in the mirror and character creation screen. Personally I use "IK_LeftBracket" and "IK_RightBracket" for those.
Note: if you're using a mod like No More Hardcoded Keybinds, then you want to edit the inputUserMappings.xml in that mod's r6\config folder. Best bet is to use grepwin (https://tools.stefankueng.com/grepWin.html) on your mod folder to find all occurrences of character_preview_rotate.
I don't know why this isn't just exposed in the ingame keymapping ui. There isn't anything inherently special about the E and F keys to warrant this level of effort just to swap them.
This is the code you would need:
<bindings>
<!-- inputUserMapping -->
<mapping name="FreeCam_UpDown_Axis" type="Axis" >
<button id="IK_Q" val="-1.0" />
<button id="IK_F" val="1.0" />
<button id="IK_Space" val="1.0" />
<button id="IK_Pad_B_CIRCLE" val="-1.0" />
<button id="IK_Pad_A_CROSS" val="1.0" />
<button id="IK_Pad_LeftShoulder" val="-1.0" />
<button id="IK_Pad_RightShoulder" val="1.0" />
</mapping>
<mapping name="popup_maxQuantity" type="Button" >
<button id="IK_F" />
<button id="IK_Pad_DigitUp" />
</mapping>
<mapping name="Dodge_Button" type="Button" >
<button id="IK_Pad_B_CIRCLE" />
<button id="IK_LControl" overridableUI="crouchHold"/>
<button id="IK_C" overridableUI="crouchToggle"/>
<button id="IK_Mouse5" overridableUI="customdodge"/>
</mapping>
<mapping name="LeanRight_Button" type="Button">
<button id="IK_F" />
<button id="IK_Pad_DigitRight" />
</mapping>
<mapping name="BraindancePlayForward_Button" type="Button" >
<button id="IK_Pad_RightTrigger" thresholdPress="0.1" thresholdRelease="0.05" />
<button id="IK_F" overridableUI="braindanceForward"/>
</mapping>
<mapping name="ApplyAndCloseQHackWidget" type="Button" >
<button id="IK_Pad_X_SQUARE" />
<button id="IK_E" overridableUI="selectChoiceUI"/>
</mapping>
<mapping name="ApplyQHack" type="Button" >
<button id="IK_E" overridableUI="selectChoice"/>
<button id="IK_Pad_A_CROSS" />
</mapping>
<mapping name="InspectionEnd" type="Button" >
<button id="IK_Pad_B_CIRCLE" />
<button id="IK_F" />
</mapping>
<mapping name="IconicCyberware_Button" type="Button" >
<button id="IK_F" overridableUI="iconic"/>
<button id="IK_Pad_LeftRightShoulder" />
</mapping>
<mapping name="Takedown_Button" type="Button" >
<button id="IK_Pad_X_SQUARE" />
<button id="IK_E" overridableUI="selectChoice"/>
</mapping>
<mapping name="Vehicle_Horn" type="Button" >
<button id="IK_Pad_LeftThumb" />
<button id="IK_F" overridableUI="vehicleHorn"/>
</mapping>
<mapping name="ExitVehicle_Button" type="Button" >
<button id="IK_E" overridableUI="exitVehicle"/>
<button id="IK_Pad_B_CIRCLE" />
</mapping>
<mapping name="UI_MoveDown" type="Button" >
<button id="IK_Pad_DigitDown" />
<button id="IK_F" overridableUI="selectDown"/>
<button id="IK_MouseWheelDown" />
<button id="IK_Down" overridableUI="selectDownSecondary"/>
</mapping>
<mapping name="Choice1" type="Button" >
<button id="IK_E" overridableUI="selectChoice"/>
<button id="IK_Pad_X_SQUARE" />
</mapping>
<mapping name="DialogConfirm" type="Button" >
<button id="IK_E" overridableUI="selectChoice"/>
<button id="IK_Enter" />
<button id="IK_Pad_X_SQUARE" />
</mapping>
<mapping name="Dialog_Choice_Down" type="Button" >
<button id="IK_Down" />
<button id="IK_Pad_DigitDown" />
<button id="IK_F" overridableUI="selectDown"/>
</mapping>
<mapping name="Apply_Button" type="Button" SIEJADependent="true" >
<button id="IK_E" overridableUI="selectChoice"/>
<button id="IK_Enter" />
<button id="IK_Pad_X_SQUARE" />
</mapping>
<mapping name="NextItem_Button" type="Button" >
<button id="IK_Pad_DigitRight" />
<button id="IK_F" overridableUI="selectDown"/>
</mapping>
<mapping name="CameraStepUp" type="Button" >
<button id="IK_F" />
</mapping>
<mapping name="FreeCam_FOV_Control" type="Button" >
<button id="IK_E" />
</mapping>
<mapping name="device_click" type="Button" SIEJADependent="true" >
<button id="IK_LeftMouse"/>
<button id="IK_Pad_X_SQUARE"/>
<button id="IK_E" overridableUI="selectChoiceUI"/>
</mapping>
<mapping name="change_account" type="Button" SIEJADependent="true" >
<button id="IK_Pad_Y_TRIANGLE"/>
</mapping>
<mapping name="vendor_checkout" type="Button" SIEJADependent="true" >
<button id="IK_Pad_Y_TRIANGLE"/>
<button id="IK_E" overridableUI="selectChoiceUI"/>
</mapping>
<mapping name="world_map_menu_zoom_out" type="Axis" >
<button id="IK_Pad_LeftTrigger"/>
<button id="IK_MouseWheelUp"/>
<button id="IK_Q"/>
</mapping>
<mapping name="world_map_menu_zoom_in" type="Axis" >
<button id="IK_Pad_RightTrigger"/>
<button id="IK_MouseWheelDown"/>
<button id="IK_F"/>
</mapping>
<mapping name="world_map_menu_open_quest" type="Button" SIEJADependent="true" >
<button id="IK_Pad_Y_TRIANGLE"/>
<button id="IK_E" overridableUI="selectChoiceUI"/>
</mapping>
<mapping name="world_map_menu_cycle_filter_next" type="Button" SIEJADependent="true" >
<button id="IK_Pad_DigitRight"/>
<button id="IK_F"/>
</mapping>
<mapping name="proceed_popup" type="Button" SIEJADependent="true" >
<button id="IK_Pad_A_CROSS"/>
<button id="IK_E" overridableUI="selectChoiceUI"/>
<button id="IK_Enter"/>
</mapping>
<mapping name="click_popup" type="Button" SIEJADependent="true" >
<button id="IK_LeftMouse"/>
<button id="IK_Pad_A_CROSS"/>
<button id="IK_Enter"/>
<button id="IK_E" overridableUI="selectChoiceUI"/>
</mapping>
<mapping name="menu_click" type="Button" SIEJADependent="true" >
<button id="IK_LeftMouse"/>
<button id="IK_Pad_A_CROSS"/>
<button id="IK_Enter"/>
<button id="IK_E" overridableUI="selectChoiceUI"/>
</mapping>
<mapping name="use_item" type="Button" SIEJADependent="true" >
<button id="IK_Pad_A_CROSS"/>
<button id="IK_LeftMouse"/>
<button id="IK_E" overridableUI="selectChoiceUI"/>
</mapping>
<mapping name="upgrade_attribute" type="Button" SIEJADependent="true" >
<button id="IK_Pad_X_SQUARE"/>
<button id="IK_E" overridableUI="selectChoiceUI"/>
</mapping>
<mapping name="upgrade_perk" type="Button" SIEJADependent="true" >
<button id="IK_Pad_X_SQUARE"/>
<button id="IK_E" overridableUI="selectChoiceUI"/>
</mapping>
<mapping name="track_quest" type="Button" SIEJADependent="true" >
<button id="IK_Pad_Y_TRIANGLE"/>
<button id="IK_E" overridableUI="selectChoiceUI"/>
</mapping>
<mapping name="character_preview_rotate" type="Axis" >
<button id="IK_Q" val="1.0" overridableUI="selectUp" />
<button id="IK_F" val="-1.0" overridableUI="selectDown" />
</mapping>
<mapping name="PhotoModeTakeScreenshot" type="Button" >
<button id="IK_E" overridableUI="selectChoice"/>
</mapping>
<mapping name="PhotoMode_Next_Menu" type="Button" >
<button id="IK_Pad_RightShoulder" />
<button id="IK_F" overridableUI="selectDown" />
</mapping>
</bindings>
I saved the above code as [F_to_E_Updated_input_loader.xml] and added it to a zip that has the ".\r6\input" path and used Vortex to install it. Whether you manually install it or use a zip and [Vortex->Add Mod by File], the file needs to end up in ".\Cyberpunk 2077\r6\input"...
@diras2010, feel free to delete this post if I have stepped on your toes. I apologize if so. Otherwise feel free to distribute the code as an alternative as you see fit, and then delete this post.
Process: I located 38 lines that were different than the vanilla [inputUserMappings.xml] using https://www.diffchecker.com and the result is here https://www.diffchecker.com/oYKJsWS4. I put the lines into the file described above. I did notice that a few edits didn't seem to be in the scope of moving [E]->[F] for the purposes of interaction.
For example I commented out:
<!--
?<mapping name="character_preview_rotate" type="Axis" >
<button id="IK_Q" val="1.0" overridableUI="selectUp" />
<button id="IK_F" val="-1.0" overridableUI="selectDown" />
</mapping>
DEJ-->
I just seem to make sense to leave [E] as the oppisite of [Q] for rotating the character preview. There are other edits that seem suspect, perhaps just having the appended changes, might allow for a review of the changes. Similarly I commented out [F] as lean right; The changes to "Dodge"; The entry that uses the controller to "Change Account"; and each of the changes to the "World Map" interface. But that is simply my personal preferences.
Thank You for a very necessary mod... I am a fan of [F] for interact, but I have given up now that every dammn game uses [E], lol... Thanks again.
-Dejunai
- change old keybinds with new ones from original, unmodded file
- left some keybinds untouched because are commented as *prototype* by the Devs on the file
В файле UserSettings.json (C: \ Users \ ***** \ AppData \ Local \ CD Projekt Red \ Cyberpunk 2077) меняем строку <button id="IK_E/F" overridableUI="selectChoiceUI"/> сохраняем и теперь в настройках игры нет ошибки.
Еще бы поменять выбор максимального количества предметов при покупке или продаже на F вместо E.
В файле [inputUserMapping.xml] есть такая строка, но она так же ничего не меняет в игре.
??Date uploaded
??10 Sep 2022, 6:02PM
Contains a backup file: [inputUserMappings.xml.orig]
However it is identical to the modified file: [inputUserMappings.xml]
So it cannot be used as a recovery method.
- change old keybinds with new ones from original, unmodded file
- remove old keybinds, no longer useable
And other actions using E key?