haptic-rumble · git:20260913.ed0ec2c · 2026-09-13 · sha256 edc55952ba1392ba

haptic-rumble git:20260913.ed0ec2cA

Immutable. This exact content never changes and is served at /api/v1/blob/edc55952ba1392ba.

---
name: haptic-rumble
description: Use when gameplay or UI events should request controller/device haptics with explicit capability checks, lifecycle, accessibility settings and non-haptic fallback cues.
---

# Haptic rumble

Haptics are presentation driven by authoritative events. They never extend hitstop, hitstun, cancel windows, movement or damage.

## Compatible modes

`off` | `hit-only` | `layered-with-audio`

Treat them as project presets, not mandatory device behavior.

## Contract

Publish event ID, effect/pattern ID, supported actuator/capability requirements, intensity/frequency envelope supported by the target API, retrigger/overlap policy, cancellation/end event and user setting.

## Rules

1. Query device/platform **capability** before requesting an effect; unsupported hardware follows the declared **fallback** without failing gameplay.
2. Haptics are not the sole carrier of **critical** state or warning information when the project requires accessible alternatives; pair with appropriate visual/audio/UI feedback.
3. Comfort/intensity limits are product/device data and user settings, not a universal “cap per second.”
4. Disconnect, focus loss, pause, scene teardown and effect-owner cancellation stop/reconcile active patterns as appropriate.
5. Repeated event callbacks use stable event/effect identity so overlap behavior is deliberate rather than accidental stacking.

## Accept

Test supported/unsupported devices, off/reduced settings, overlap/retrigger, disconnect and cancellation. Gameplay result remains identical, and every required critical cue retains a declared non-haptic fallback.