A LÖVE input library that unifies keyboard, mouse, and joystick controls with dynamic configuration.
Baton is an input library for the LÖVE game framework that simplifies handling keyboard, mouse, and joystick inputs. It provides a unified API to abstract device differences, allowing developers to define controls flexibly and switch between input devices seamlessly. This makes it ideal for games that support multiple control schemes or multiplayer setups.
LÖVE game developers building games that require support for multiple input devices, such as keyboard, mouse, and gamepads, especially those implementing multiplayer features or dynamic control configurations.
Developers choose Baton for its simplicity and flexibility in managing complex input setups without boilerplate code, offering features like dynamic control configuration, axis pairing, and automatic active device tracking. It stays lightweight and integrates well with LÖVE's ecosystem, providing a clean solution for unified input handling.
An input library for LÖVE.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Bridges keyboard, mouse, and joystick inputs into a single interface, abstracting device differences and reducing boilerplate code for multi-device games.
Allows controls to be defined and modified at runtime with support for deadzones and axis pairs, enabling flexible rebinding and adaptation without restarting.
Groups directional controls into pairs for easy retrieval of x and y components, ideal for analog movement or aiming mechanics in games like top-down shooters.
Supports creating independent input managers for different players, each with custom configurations and joystick bindings, perfect for local multiplayer setups.
New controls and axis pairs cannot be added after a player is created, limiting flexibility for games that need dynamic control addition or complex input schemes.
Focused on desktop inputs like keyboard, mouse, and joystick, making it unsuitable for mobile or touch-based games without additional manual handling.
Tightly coupled with the LÖVE framework, so it cannot be used in other game development environments, reducing portability and broader applicability.