Altercode - Adaptive Pad — Adaptive Triggers, Gyro, Haptics and Lights

Adaptive Pad brings the features of the DualSense™ wireless controller to Unreal Engine on Windows: adaptive triggers, rumble, lightbar, player LEDs, gyroscope and accelerometer, touchpad, battery and the controller's speaker, plus all buttons, sticks and analog triggers as native Unreal input. From Blueprint or C++.

Try it first: a free playable Windows demo shows every feature on your own controller, no Unreal Engine needed: adaptive trigger pads, a gyroscope area, a touchpad zen garden with sounds on the controller's speaker and an on-screen 3D controller. Download: https://adaptivepad.altercode.dev/getting-started/demo

Set up and use it

  1. Install: in the Epic Games Launcher, Unreal Engine → Library → Fab Library, click Install to Engine on Adaptive Pad and pick 5.6, 5.7 or 5.8.

  2. Enable: in your project open Edit → Plugins, check that Adaptive Pad is enabled (Input category) and restart the editor. Works in Blueprint-only and C++ projects.

  3. Connect: plug the controller in by USB or pair it over Bluetooth, no driver needed, and press Play. The Output Log shows "LogDualSense: DualSense #0 connected (USB)". Buttons and sticks already work as gamepad keys in Enhanced Input.

  4. Apply an effect: in any Blueprint, right-click and type DS. For example Event BeginPlay → DS Make Trigger Weapon → DS Set Trigger Effect (Right Trigger) → DS Update Output, then squeeze R2: it resists and gives way with a click.

  5. Tie it to your gameplay: set the effect when the player equips a weapon or a tool, stop it when they put it away, change the lightbar with health or team, and call DS Reset Controller State + DS Update Output when the level ends.

Step-by-step documentation with editor screenshots and Blueprints you can copy and paste: Installation, Quick start, Use it in your project, all 12 trigger effects and the Blueprint node reference.

Highlights

  • Adaptive triggers, one node per effect: Feedback, Slope, per-zone resistance, Click, Vibration, Tension (snap-back), Galloping and Machine, plus raw bytes for advanced use. Readable units: zones 0–9 of the trigger travel, strength 1–8, frequency in Hz, with ranges shown on the nodes and safe clamping. Left and right trigger independent.

  • Three nodes, no component, no Tick: build an effect, set it, call DS Update Output. The output state is kept per controller and merged, so changing the lightbar never resets the triggers, and the controller is written only when something changed.

  • Motion: gyroscope and accelerometer, calibrated per controller, as Unreal's Tilt, Rotation Rate, Gravity and Acceleration keys (gyro aiming with Enhanced Input), through DS Get Motion, and as an orientation you can read and reset (DS Get Orientation, DS Reset Orientation).

  • Touchpad: two fingers as keys (touch plus X and Y axes) and through DS Get Touchpad.

  • Controller speaker: a "DualSense Speaker" audio endpoint for Sound Submix Endpoints (USB), with automatic switch to headphones plugged into the controller, and DS Set Audio Volume.

  • Lights: lightbar in any color, player LED presets or bitmask with brightness and fade, mic LED on/off/pulse.

  • Rumble: two motors from 0 to 1 at full strength. Unreal's Play Force Feedback, Force Feedback Components and haptic feedback drive them too.

  • Unreal Force Feedback assets: Trigger Resistance, Trigger Feedback, Trigger Vibration and Device Color from Force Feedback Effect "Device Properties", previewed in the editor. When the effect ends, the game's own state comes back.

  • Native input device: buttons, sticks and triggers are standard Unreal gamepad keys, so Enhanced Input works as with any gamepad, without the RawInput plugin. Touchpad click, PS button and Mic button are extra keys in their own category of the key picker.

  • Status: battery level and charging state, headphone jack, raw adaptive trigger status. In development builds, DualSense.ShowInput draws everything the controller sends.

  • Up to 4 controllers over USB or Bluetooth, DualSense™ and DualSense Edge™. A controller that reconnects gets its slot back and its state is sent again.

  • Blueprint and C++: a DS node library for Blueprint, a Game Instance Subsystem for C++.

  • Our own code: Windows HID access written from scratch. No third-party libraries, no drivers, no extra engine plugins.

Before you buy

  • Windows 64-bit only, Unreal Engine 5.6, 5.7 and 5.8. Requires a DualSense™ or DualSense Edge™ wireless controller connected by USB or Bluetooth. The controller speaker works over USB.

  • Known limit in this version: with more than one controller, input from every controller arrives as the first player's (output — lights, triggers, rumble — is already separate per controller).

  • Documentation and support: https://adaptivepad.altercode.dev

DualSense and DualSense Edge are trademarks of Sony Interactive Entertainment Inc. Adaptive Pad is not affiliated with or endorsed by Sony Interactive Entertainment.