Input is a GameMaker Studio 2 input manager that unifies the native, piecemeal keyboard, mouse, and gamepad support to create an easy and robust mega-library.
Input is built for GMS 2022 LTS and later, uses strictly native GML code, and is supported on every export platform that GameMaker itself supports. Input is free and open source forever, including for commercial use.
-- FEATURES --
-- WHY INPUT? --
Getting multiple input types working in GameMaker is fiddly. Supporting multiple kinds of input requires duplicate code for each type of device. Gamepads often require painful workarounds, even for common hardware. Solving these bugs is often impossible without physically holding the gamepad in your hands.
Input fixes GameMaker's bugs. In addition to keyboard and mouse fixes, Input uses the engine-agnostic SDL2 remapping system for gamepads. Because SDL2 integrates community contributions made over many years, it's rare to find a device that Input doesn't cover.
GameMaker's native checker functions are limited. You can only scan for press, hold, and release. Games require so much more. Allowing the player to quickly scroll through a menu, detecting long holds for charging up attacks, and detecting button combos for special moves all require tedious bespoke code.
Input adds new ways of checking inputs. Not only does Input allow you to detect double taps, long holds, rapidfire, combos, and chords, but it also introduces easy-to-implement accessibility features. There is a native cursor built right into the library which can be adapted for use with any device. The library also includes native 2D checkers to make smooth movement simple.
Input is a commercial-grade library and is being used in Shovel Knight: Pocket Dungeon and Samurai Gunn 2 and many other titles. It has extensive documentation to help you get started. Inputs strips away the boring repetitive task of getting controls set up perfectly and accelerates the development of your game.
-- Q & A --
What platforms does Input support?
Everything! You might run into edge cases on platforms that we don't regularly test; please report any bugs if and when you find them.
How is Input licensed? Can I use it for commercial projects?
Input is released under the MIT license. This means you can use it for whatever purpose you want, including commercial projects. It'd mean a lot to me if you'd drop our names in your credits (Juju Adams and Alynne Keith) and/or say thanks, but you're under no obligation to do so.
I think you're missing a useful feature and I'd like you to implement it!
Great! Please make a feature request. Feature requests make Input a more fun tool to use and gives me something to think about when I'm bored on public transport.
I found a bug, and it both scares and mildly annoys me. What is the best way to get the problem solved?
Please make a bug report. We check GitHub every day and bug fixes usually go out a couple days after that.
Who made Input?
Input is built and maintained by @jujuadams and @offalynne who have been writing and rewriting input systems for a long time. Juju's worked on a lot of commercial GameMaker games and Alynne has been active in indie dev for years. Input is the product of our combined practical experience working as consultants and dealing with console ports.
Many, many other people have contributed to GameMaker's open source community via bug reports and feature requests. Input wouldn't exist without them and we're eternally grateful for their creativity and patience. You can read Input's credits here.