There are two options, really.
The most manual way is through the
joystick functions
Or you can use the default Verge buttons up/down/left/right/b1-b4 (which, whoa, where did the documentation for these go?), and use
SetButtonKey()/
SetButtonJB() to modify the button mappings.
I prefer the first way myself, though. Since a lot of games nowadays use more than 4 buttons.
When I use vx, it provides an abstract "button" class, which allows any boolean state input to be checked or unpressed. I can then easily write an input checker which looks at a list of custom button settings. And this list can easily be stored in a table, so I can change button names and my startup loader finds the proper scancodes and joystick buttons and such and uses those in my game. It's kind of handy! :D