Solution: Gamepad remapping issue

Silas, hi!
Please combine this into the relevant bug report branch.
__________

This case:
remapping issue
__________

Sent an angry and grievance-filled letter to the devs’ email.
Well, now we can only wait.
__________

For now, here is the solution I suggest.

Just to be safe:
Back up the file and move it out of the game folder.
If an update drops, the game might overwrite it.
Also, if you mess up the file, figuring out where to get the default version will be your problem — if you delete something by mistake, the game might start crashing.

Go here.

%USERPROFILE%\AppData\LocalLow\Moon Studios\NoRestForTheWicked\DataStore

Make a backup copy of the file and open it in a text editor.

AccountSettings_LOCAL.dat

I suggest using VSCode — it’s a free program, etc., download it from the official website.

Tip:
Ctrl + F
Open the text search bar.

Look at the end of the file, you will see something like this there.

Note:
For this chunk of code to appear, you must already have remapped buttons in the control settings.
If you have the default settings, this text won’t be there at all. The game probably stores default settings somewhere else and references them when needed.

In other words, if you remap a specific action — like attack, for instance — you will get the following line:

{“RevisedActionID”:5,“actionName”:“”,“gamepadItem”:{“button”:15,“axis”:4,“trigger”:2},

Action
“RevisedActionID”:5

Assigned key
“button”:15

This means that by just changing the numeric key code, you are manually remapping actions to different buttons.
The game will read this and apply your new control configuration.
___________

To sum up:

  • Launch the game and configure your controls as close to your desired setup as possible.

  • You will likely end up with unassigned or conflicting actions — just bind any keys to them, as long as the settings save. The game allows certain keys to be bound to multiple actions; they will conflict and won’t work properly in-game, but the game will still save this configuration.

  • Close the game.
    The game overwrites the settings file in real-time but doesn’t hot-reload changes on the fly. In other words, data syncing only works one way.

    Alternatively, you don’t even have to close it.
    For example, if you have a dual-monitor setup with VSCode on one screen and the game on the other, just look up the action you want to rebind, find it in the text file, and change it.
    Save the file and exit the game, or exit the game and save the file—it doesn’t matter.
    The key point is that you must relaunch the game for your custom keybinds to take effect.

  • Go to the file and change the numeric key code to the one you need.
    Save the file.

  • Launch the game, and you will see your desired configuration.

Note that you cannot completely unbind a key from an action — doing so will crash the game.
__________

Below are the action codes and key numbers.

1 Like

“RevisedActionID”:6 = interact

“RevisedActionID”:2 = Offhand Use

“RevisedActionID”:3 = Attack

“RevisedActionID”:4 = Dodge

“RevisedActionID”:5 = Run

“RevisedActionID”:12 = Toggle Runes

“RevisedActionID”:13 = Sneak/Drop Down

“RevisedActionID”:14 = Target Lock

“RevisedActionID”:18 = Parry

“RevisedActionID”:20 = Offhand item

“RevisedActionID”:21 = Mainhand item

“RevisedActionID”:22 = Rune 1

“RevisedActionID”:23 = Rune 2

“RevisedActionID”:24 = Rune 3

“RevisedActionID”:25 = Rune 4

“RevisedActionID”:161 = Food

“RevisedActionID”:162 = Quick Item

“RevisedActionID”:258 = Utility Runes
__________

“RevisedActionID”:237 = Toggle Walk/Run

Key Codes:

A = button: 10
B = button: 11
X = button: 12
Y = button: 13

L v = 6
R v = 7

R1 (RB) = button: 9
R2 (RT) = button: 15
L1 (LB) = button: 8
L2 (LT) = button: 14

D-pad Up = button: 0
D-pad Down = button: 1
D-pad Left = button: 2
D-pad Right = button: 3
__________

In the settings, I have the Xbox controller layout enabled.

And, of course, think carefully about which keys you bind to which actions so that the game remains actually usable and playable.

You could technically bind the “Y” button to every single action, and the game will accept it — you just won’t be able to play normally.
___________

If you want to revert to the default layout, just do it the standard way and apply the changes.
The game will immediately erase this wall of code and load the default configuration.
___________

Oh, and by the way:
the author accepts absolutely no liability for anything.
If you configure the buttons your way, it’s not my fault :grin:
Any resemblance to actual persons is purely coincidental :grinning_face:

this might be useful as well :smiley:

if the input device is QMK accecable here are alternative key codes

Note that you cannot completely unbind a key from an action — doing so will crash the game.

It’s POSSIBLE, dudes, it’s possible!

button: 20

Man, I’ve tried everything: :rofl:

-1 = Crush
100 = Crush
255 (“None” in Byte) = Crush
65535 (“None” in ushort) = Crush

Equates to button 0:
“”
" "
“!”
false
null

I was certain that the input variable had to be of type integer, given that C# is a strongly typed language :grinning_face:

2 Likes