A downloadable library

💽 GitHub Repo
💡 Quick Start Guide
📖 Documentation

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 GMS2022 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

  • Deep cross-platform compatibility
  • Full rebinding support, including thumbsticks and export/import
  • Native support for hotswapping, multidevice, and multiplayer
  • New checkers, including long, double, rapidfire, chords, and combos
  • Accessibility features including toggles and input cooldown
  • Deadzone customization including minimum and maximum thresholds
  • Device-agnostic cursor built in
  • Mouse capture functionality
  • Profiles and groups to organize controls
  • Extensive gamepad support via SDL2 community database

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.

StatusReleased
CategoryTool
Rating
Rated 5.0 out of 5 stars
(7)
AuthorJuju
Tagsextension, GameMaker, gamepad, input, keyboard, library, mouse, Royalty Free

Install instructions

GameMaker Studio 2 allows you to import assets (including scripts and shaders) directly into your project via the "Local Package" system. Grab the .yymp file from the downloads below and then, in the GameMaker IDE, load up your project and click on "Tools" on the main window toolbar. Select "Import Local Package" from the drop-down menu then import all scripts and included files from the package. Now you're all set up to use Input 5!

You can read our newbie guide here.

Download

Download
input_5_1_1.yymps 460 kB

Development log

Comments

Log in with itch.io to leave a comment.

(+3)

Input is an amazing library and a must-have for pretty much any GameMaker user, regardless of what kind of game you're creating.10/10 would input again

(+2)

very puggers

(+3)

This thing is a life and time saver. Great library. Thank you very much Juju and Alynne. If I ever release something playable with this, you'll receive special mentions in the credits for sure.

(+3)

Very epic library, thanks a lot to Juju and Alynne!

(+3)

This is a fantastic tool, essential for any GameMaker project.

(1 edit) (+3)

After so long, Input finally reaches itch! A must have if you want to support multiple inputs without fumbling about with various of input checks, making your own gamepad/keyboard input detection system, or more complex scenarios like a full on combo system!

(+3)

Easily the best Input Library available for GameMaker Studio! A must-have

(1 edit) (+2)

This is awesome !

On the shelf rebinding, combo, keyboard/gamepad live swap, multiplayer

Thank you so much Juju for this and every other libraries you bring to Game Maker.