I'm working on something that won't involve screenshots(unless I take screenies of code windows....).
I'm working on the next version of my kbinput engine. My original version made it easy for developers to let players do custom inputs for controls, regardless of whether it was gamepads or keyboards. But it is lacking in features in my opinion and I want to make it better. It currently tracks whatever number of inputs/actions you want, including gamepad(and DInput devices via the obsolete joystick functions). It also tracks whether the inputs are "just" pressed down this step, and for how long they are pressed. And it let's you easily get a string representing the selected inputs so you can save them and load them in later....
But...it can only hold one set of inputs. If you want 4 players, with say 8 inputs each(4 directions, 4 other things, like jump, attack, whatever), then you would have to make it with a long list of 32 actions. This is inconvenient, and it doesn't let you save player custom inputs separately into "player profiles" or something similar. It also doesn't easily let you do a combo system, as you would have to track things with the single long input list(pain in the butt). The configuration software(for creating initial default configurations) is also quite feature lacking, doing the bare minimum and nothing else.
So I want to working on a complete re-write(from scratch) of my system. It will support multiple players that can be added and removed at any time. You can also get the configurations for each player seperately, allowing you to save separate player profiles if you want, which will be great for local multiplayer games.
I want to also add a "combo" system, which will track a given amount of the last pressed inputs, looking for certain combinations(that you designate with the configuration software). It would then call callback functions saying which combo number and what player did the combo. Then, if you intend to respond to the combo(say the fighter has a special move that uses that combo), you can make your character do it, and if the player is not the right character to do that special move, you simply don't do anything special except respond to the input the way you normally do. It is important that I have separate players for this purpose too, as it means I don't have to track which inputs are for which players in a long list like the old system.
Another big thing I'm adding(internally) is an upgrade to the gamepad side of things. The "joystick" functions are going obsolete(and probably won't even be in the next version of GMS), and the "gamepad" functions were updated to support the old DInput devices that were originally only supported by the Joystick functions. So I'm going to provide the same functionality with only the gamepad functions so I can keep compatibility as things change.
The last big thing I'm mentioning here is the upgrade to the configuration software. I would like to make it easier to do the default configurations. It will also let you load/save the configuration to a file, so if you want to change it you only have to make the quick modification instead of totally recreating it(like you do right now). It will also allow you to designate all the different combos your game will have(and will save this to the file as well). And it will let you actually test the inputs that you have set up. Due to the new player system, there will be separate strings for the configuration, the system(how many actions, among other things like axis threshold), the combos(which means you don't have to do anything with it if you don't want to use the combo system), and any default configuration you make. You will easily be able to make several default configurations(say one for WASD, and another using the arrows) if you want to easily let a single player switch between defaults, or for separate players, etc...
So yeah...I've got my work cut out for me. Input is supposed to a minimum part of a project, but I'm a junky when it comes to this kind of thing for whatever reason. I hated trying to play games where I couldn't choose my own custom inputs for game actions, it's one of my pet peeves about games.