FAQ: Controller Compatibility
Which controllers work with this tool?
This tool uses the Gamepad API to trigger rumble. Here are controllers that typically work well:
- Xbox One Controller (USB/Bluetooth): Full support in Chrome, Edge, and Firefox on Windows, macOS, and Linux. Both modern and legacy rumble APIs work.
- Xbox Series X|S Controller: Same as Xbox One—excellent support across platforms.
- Xbox 360 Controller (USB): Works with legacy rumble in most browsers, modern API in Chrome.
- PS4 DualShock 4 (USB/Bluetooth): Reliable rumble in Chrome and Firefox. Best on Windows and Android.
- PS5 DualSense (USB/Bluetooth): Basic rumble works in Chrome, but advanced haptics aren’t supported.
- Nintendo Switch Pro Controller: Rumble works in Chrome on Windows and macOS.
- Logitech F310/F710: USB models with rumble work in Chrome and Firefox.
- 8BitDo Controllers (e.g., SN30 Pro): Most models support rumble in Chrome.
Best Setup: Use Chrome on Windows with an Xbox or PS4 controller for optimal results.
Which controllers don’t work or have issues?
Some controllers may not work fully or at all due to hardware, browser, or API limitations:
- Controllers Without Rumble: Cheap USB gamepads or retro replicas (e.g., SNES-style) with no motors won’t rumble.
- PS3 DualShock 3: Spotty support—rumble works inconsistently via USB in Chrome on Windows with drivers.
- Nintendo Joy-Cons: Limited support. Works in Chrome if paired as one controller, but often unreliable.
- PS5 DualSense (Advanced Features): Only basic rumble works; advanced haptics aren’t available via the Gamepad API.
- Safari on macOS/iOS: Rumble often doesn’t work, even with compatible controllers (e.g., Xbox, PS4), due to poor Gamepad API support.
- Generic No-Name Controllers: May connect but lack rumble if not properly exposed to the API.
Note: If "#debug" says "No rumble support detected," your controller or browser doesn’t support it.
How can I test my controller?
Follow these steps:
- Connect your controller via USB or Bluetooth.
- Open this page in Chrome (best support).
- Check "#status" for "Gamepad connected: [Name]".
- Look at "#debug" for rumble support:
- "Modern" = Best (vibrationActuator).
- "Legacy" = Works (vibration).
- "None" = No rumble possible.
- Click "Toggle Rumble" to test.
If it doesn’t work, try a different browser (Chrome > Firefox > Edge) or check your controller’s drivers.
Why does rumble stop when I switch tabs or close the window?
The Gamepad API has built-in limitations controlled by the browser:
- Switching Tabs: When you switch to another tab or minimize the browser, most browsers (like Chrome and Firefox) pause rumble to save power and prevent background activity. The rumble resumes when you return to the tab, but there’s no way to keep it running while the tab is inactive with a standard webpage.
- Closing the Tab/Window: When you close the tab or window, the JavaScript stops running, and rumble should stop. However, some browsers or gamepads might not clear the last rumble command properly, causing it to persist until you reconnect the gamepad or restart the browser. This tool attempts to stop rumble on tab closure, but this depends on browser behavior.
Note: Rumble only stops intentionally when you click "Stop Rumble" or disconnect the gamepad, but browser policies override this for inactive tabs.