PackageTrack
Sign in Get early access

universal_gamepad

Cross-platform Flutter plugin providing unified gamepad input (connect/disconnect, buttons, axes, triggers).

1.5.8 7.2K downloads/mo #3383 most downloaded on pub.dev edde746/universal_gamepad

What this package is like to depend on

Last release 1 months ago

07 Jul 2026

Ships fairly regularly

a new release about every 3 weeks

Rarely documented

notes for 3 of 21 stable releases

Nothing withdrawn

no release was ever pulled

6 months old

21 releases · first in 2026

21 releases in the last 12 months

see the full history below

Release timeline

21 releases · Feb 2026 to Jul 2026
Release Pre-release

Releases

latest 21
  1. 1.5.8 07 Jul 2026
    Release notes
    • Web: fix broken web builds — the plugin's WebGamepad class was not reachable from the entry point declared in pubspec.yaml, so flutter build web failed in consuming apps. The web entry point is now universal_gamepad_web.dart.
    • Windows: resume() now re-enumerates gamepads that stayed connected during pause() (previously they were never re-detected until physically re-plugged).
    • Windows: fix a rare wedge where events sent before the window handle was captured were queued but never flushed.
    • Android: holding a button no longer emits repeated pressed events (auto-repeat key events are filtered).
    • Android: process batched historical motion samples and apply the device-reported flat region (deadzone) to stick axes, per the Android game-controller guidance; trigger press threshold unified to 0.5 to match other platforms.
    • Android: input events are no longer emitted for devices that fail the gamepad check; disconnect events now carry the real device name/vendor/product.
    • Linux: Xbox-family controllers driven by xpad no longer report the X and Y face buttons swapped (xpad maps them by label; PlayStation and spec-compliant drivers by location — detected via the sysfs driver link).
    • Linux: fix duplicate connect events when the Dart side subscribes right after startup, and stop invoking the engine callback while holding an internal lock.
    • iOS: guard against duplicate connect notifications (matching macOS behavior).
    • iOS/macOS: gamepad names now use the same precedence on both platforms (vendorName, then productCategory); events already on the main thread are delivered without an extra runloop hop and can no longer hit a cancelled sink.
    • Removed the unconditional dart:io import from the shared Dart code.
    • Podspec versions now track the package version.
    • iOS/macOS: add Swift Package Manager support while retaining CocoaPods compatibility.
    Open source →
    Release notes
    • Web: fix broken web builds — the plugin's WebGamepad class was not reachable from the entry point declared in pubspec.yaml, so flutter build web failed in consuming apps. The web entry point is now universal_gamepad_web.dart.
    • Windows: resume() now re-enumerates gamepads that stayed connected during pause() (previously they were never re-detected until physically re-plugged).
    • Windows: fix a rare wedge where events sent before the window handle was captured were queued but never flushed.
    • Android: holding a button no longer emits repeated pressed events (auto-repeat key events are filtered).
    • Android: process batched historical motion samples and apply the device-reported flat region (deadzone) to stick axes, per the Android game-controller guidance; trigger press threshold unified to 0.5 to match other platforms.
    • Android: input events are no longer emitted for devices that fail the gamepad check; disconnect events now carry the real device name/vendor/product.
    • Linux: Xbox-family controllers driven by xpad no longer report the X and Y face buttons swapped (xpad maps them by label; PlayStation and spec-compliant drivers by location — detected via the sysfs driver link).
    • Linux: fix duplicate connect events when the Dart side subscribes right after startup, and stop invoking the engine callback while holding an internal lock.
    • iOS: guard against duplicate connect notifications (matching macOS behavior).
    • iOS/macOS: gamepad names now use the same precedence on both platforms (vendorName, then productCategory); events already on the main thread are delivered without an extra runloop hop and can no longer hit a cancelled sink.
    • Removed the unconditional dart:io import from the shared Dart code.
    • Podspec versions now track the package version.
    Open source →
  2. 1.5.7 21 May 2026
    Release notes
    • Fix Linux gamepad reconnect detection after controller sleep or disconnect.
    Open source →
  3. 1.5.6 19 May 2026
    Release notes
    • Add Android support for pause() and resume() by detaching and reattaching native input listeners.
    Open source →
  4. 1.5.5 24 Apr 2026

    Nothing published for this version

  5. 1.5.4 09 Mar 2026

    Nothing published for this version

  6. 1.5.3 09 Mar 2026

    Nothing published for this version

  7. 1.5.2 08 Mar 2026

    Nothing published for this version

  8. 1.5.1 07 Mar 2026

    Nothing published for this version

  9. 1.5.0 23 Feb 2026

    Nothing published for this version

  10. 1.4.4 17 Feb 2026

    Nothing published for this version

  11. 1.4.3 17 Feb 2026

    Nothing published for this version

  12. 1.4.2 17 Feb 2026

    Nothing published for this version

  13. 1.4.1 17 Feb 2026

    Nothing published for this version

  14. 1.4.0 17 Feb 2026

    Nothing published for this version

  15. 1.3.0 17 Feb 2026

    Nothing published for this version

  16. 1.2.2 17 Feb 2026

    Nothing published for this version

  17. 1.2.1 17 Feb 2026

    Nothing published for this version

  18. 1.2.0 17 Feb 2026

    Nothing published for this version

  19. 1.1.1 17 Feb 2026

    Nothing published for this version

  20. 1.1.0 08 Feb 2026

    Nothing published for this version

  21. 1.0.0 02 Feb 2026

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive