whatisgithub

What is gamepads?

mondo-robotics/gamepads — explained in plain English

Analysis updated 2026-08-07 · repo last pushed 2026-06-18

Audience · developerComplexity · 3/5MaintainedSetup · moderate

In one sentence

A Flutter plugin that lets your app read physical game controller input, button presses and stick movements, across Android, iOS, macOS, Linux, Windows, and the web with consistent names and values.

Mindmap

mindmap
  root((repo))
    What it does
      Normalized gamepad events
      Multi-controller support
      Auto-detects new controllers
    Tech stack
      Flutter
      Flame engine bridge
      Linux controller database
    Use cases
      Build Flutter games
      Add controller support
      Interactive apps with gamepads
    Platforms
      Android iOS macOS
      Linux Windows Web
    Audience
      Flutter game developers
      Cross-platform app makers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add game controller support to a Flutter game so players can use a physical gamepad instead of touch or keyboard.

USE CASE 2

Build a cross-platform interactive app that responds to button presses and analog stick movements on any OS.

USE CASE 3

Create a multiplayer Flutter game that handles multiple controllers connected at the same time.

USE CASE 4

Integrate gamepad input into a Flame game engine project using the bridge package.

What is it built with?

FlutterDartFlameAndroidiOSmacOSLinuxWindows

How does it compare?

mondo-robotics/gamepads00kaku/gallery-slider-block04amanrajj/netwatch
Stars0
LanguageJavaScriptRust
Last pushed2026-06-182021-05-19
MaintenanceMaintainedDormant
Setup difficultymoderateeasymoderate
Complexity3/52/53/5
Audiencedevelopergeneralops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires platform-specific setup: Android needs boilerplate in the main activity to route input events, and Windows requires the Windows SDK installed during development.

No license information is provided in the explanation, so the default terms of the repository apply.

So what is it?

Gamepads is a plugin for Flutter (Google's cross-platform app toolkit) that lets your app respond to physical game controller input. If you're building a game or any app where a user might plug in a gamepad, this handles the connection, button presses, and stick movements so you don't have to. The core challenge this project solves is that every platform handles gamepad input differently. The A button might be called "a" on Windows, "KEYCODE_BUTTON_A" on Android, and "button 0" on the web. This plugin provides a "normalized" event stream that translates all those quirks into consistent names and value ranges, following an Xbox-style layout. Your code can just ask "was the A button pressed?" and get a 0.0 (released) or 1.0 (pressed) answer, regardless of platform. The same goes for analog sticks, which always report a value from -1.0 to 1.0. This is built for Flutter developers creating games or interactive apps who want to support controllers on Android, iOS, macOS, Linux, Windows, and the web. It supports multiple controllers connected at once and auto-detects new ones. If you're using the Flame game engine, there's a bridge package that ties gamepad input directly into Flame's component system. What's notable is how it handles the notoriously messy world of controller hardware. On Linux, for example, it ships with a community-maintained database of over 1,500 controllers to figure out the correct button mappings. Unknown controllers fall back to a sensible default layout. There's also an escape hatch: if you need the raw, un-translated events for a specific reason, the plugin exposes those too. Setting it up requires some platform-specific work. On Android, you'll need to add some boilerplate code to your app's main activity to route input events to the plugin. On Windows, you need the Windows SDK installed as part of your development setup, though end users of your app don't need anything extra.

Copy-paste prompts

Prompt 1
I'm building a Flutter game and want to add physical gamepad support using the gamepads plugin. Show me how to listen for button presses and analog stick movements with normalized values across Android, iOS, Windows, and the web.
Prompt 2
Help me integrate the gamepads Flutter plugin with my Flame game engine project so controller input routes directly into my Flame components.
Prompt 3
My Flutter app uses the gamepads plugin and I need to support an unknown controller on Linux. Explain how the fallback default layout works and how I can access raw un-translated events if needed.
Prompt 4
Walk me through setting up the gamepads Flutter plugin on Android, including the boilerplate code needed in my main activity to route input events to the plugin.
Prompt 5
I want to detect when multiple gamepads are connected at once in my Flutter app using the gamepads plugin and handle each controller's input separately. Show me the code pattern for that.

Frequently asked questions

What is gamepads?

A Flutter plugin that lets your app read physical game controller input, button presses and stick movements, across Android, iOS, macOS, Linux, Windows, and the web with consistent names and values.

Is gamepads actively maintained?

Maintained — commit in last 6 months (last push 2026-06-18).

What license does gamepads use?

No license information is provided in the explanation, so the default terms of the repository apply.

How hard is gamepads to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is gamepads for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.