- Keybinds are defined in Scripts-->UI-->init_input
- Local input variables are set up in Scripts-->UI-->init_keys
- Local input variables are updated in Scripts-->UI-->get_keys
So to change the default keys, you'd update init_input. To add alternate input like a controller, update get_keys.
E.g. instead of:
k_u = keyboard_check(global.input_key[input_U])
you might want something like:
k_u = keyboard_check(global.input_key[input_U]) || gamepad_button_check(global.active_gamepad,global.input_pad[input_U])
(and so on for all other inputs)
Player movement is handled in Objects-->obj_player-->Step event. I think it's easiest if you add 4 new cases for up+left, up+right, down+left, down+right (which moves diagonally instead of just along x or y) and then use "else if" between all cases instead of just "if" so only one case can happen at once. (If you want to add diagonal sprites this approach will help too)