In a lot of fighting games i see the option to bind certain moves to keys
such as that one and was wondering what they are using to do that is it context action service, user input service or something completely different. Im also curious on to how they add images to the hotbar after equipping a certain move?It varies from game to game.
In terms of actually getting move sets to work, you are correct in what you say that it is the usage of UserInputService or ContextActionService in order to get moves working. As for how they are equipped and appended to the hot bar, that’s a different story.
Truly, it depends on how you set up your game. Typically there would be some kind of client input that facilitates which move set to equip and in which slot. The client would then change their own Gui and set up key functions as necessary, while requesting the server to also equip a move set on its end.
The synchronisation between the client and the server to get such a system working is fairly important. The client should handle anything input or Gui related, while the server tackles the more important work (checking to see if a player can equip a skill, setting up the server-side codebase upon the usage of the set, all that).
I can’t exactly provide any samples where it’d be good to have, but you can search around a bit on the Developer Hub and experiment around with various items to try achieving something like this. The best way to start searching is to get concise with your terms and think about what you want. Input, Gui manipulation, client-server model, remotes, so on.