Input System. Assign multiple keys to an action

I am making a first-person shooter game. It is designed to have a lot of different actions that the player can do during shootouts. I want to make a key binding system exactly the same as in the game Escape from Tarkov. This game also has a huge number of different actions, but these actions can be bound to one, two or three keys at once. This is a very useful feature, especially when there are more game options than keys on the keyboard :smiley:
How can I make the same feature? Letā€™s assume that I already have an array of key paths that the player entered to assign to an action.

Escape from Tarkov is made on Unity, and most likely also uses the Unity Input System

Escape from Tarkov Rebinding window (video)

Asking a pretty huge question here. Any such system would be made up of a lot of different pieces.

To start with you should look at the rebinding sample package provided by the Input system (you can access this via the package manager). At the very least you should familiarise yourself with how to do a basic rebinding system, and practice implementing that on its own before you think about doing something any more complicated than that.

From there it should be a matter of scaling up the idea and implementing the UI to support it. Honestly I think knowing how to handle rebinds with the Input System should cover 90% of what you need to do here.

so who says that I havenā€™t started working at all? Iā€™ve already implemented both key rebinding and interaction change. In short, Iā€™m familiar with the base. I said, ā€œLetā€™s assume that I already have an array of key paths that the player entered to assign to an actionā€. I looked at how to implement an event trigger on two or three keys, and realized that a separate type of binding is responsible for this in the Input System. Hence the question, how can I change them through code?

Thank you for such non-obvious information, which I certainly would not have guessed myself

I mean your post didnā€™t really indicate you had rebinding working or not. Usually these kinds of posts come from folks who havenā€™t even started the basics.

I think you just want to add bindings to existing input actions: Class InputActionSetupExtensions | Input System | 1.11.2

Or anything else similar that best suits your particular project specifics. A lot of these can be found out through the scripting API nonetheless.