Guides

Adaptive triggers

The 12 adaptive trigger effects, their parameters and how they feel, plus raw bytes for anything else.

Each trigger (L2 and R2) can run one effect at a time. You build the effect with a DS Make Trigger ... node, apply it with DS Set Trigger Effect and send it with DS Update Output.

DS Set Trigger Effect takes a Hand: Left Trigger, Right Trigger or Both Triggers. DS Stop Trigger removes the effect.

Units

All effects share the same units, so you can reason about them without knowing the HID format:

UnitRangeMeaning
Zone (position)0–9The trigger travel split into 10 zones. 0 is released, 9 is fully pressed.
Strength1–8Resistance force. 1 is barely there, 8 is the strongest the motor can push.
Amplitude1–8Vibration intensity.
Frequency1–255Vibration frequency in Hz.

You can't send an invalid effect:

  • Values out of range are clamped.
  • If an End zone is not after its Start, End becomes Start + 1.
  • A strength or amplitude of 0 turns the effect off.

Effects

Feedback

Constant resistance from a zone to the end of the travel. The simplest "heavy trigger".

ParameterRangeDefault
Position0–93
Strength1–85

Feels like: a stiff spring that starts at Position. Use it for: a heavy lever, a brake pedal, a tense bowstring that never releases.

Weapon

Resistance between two zones that gives way with a click.

ParameterRangeDefault
Start2–74
End3–87
Strength1–88

Feels like: a wall between Start and End, then a snap. Use it for: a camera shutter, a stapler, a switch that snaps. Trigger the action when the trigger axis passes the End zone, so it lands on the click.

Vibration

The trigger vibrates from a zone to the end of the travel.

ParameterRangeDefault
Position0–90
Amplitude1–85
Frequency (Hz)1–25530

Feels like: a buzz in the finger once you pass Position. Use it for: a power tool, rough terrain, an engine at idle.

Slope Feedback

Resistance that ramps linearly from one strength to another between two zones, then stays at the end strength.

ParameterRangeDefault
Start0–80
End1–99
Start Strength1–81
End Strength1–88

Feels like: a trigger that gets harder the further you press (or softer, with Start Strength above End Strength). Use it for: a car brake, drawing a slingshot, pressure that builds.

Multiple Position Feedback

A separate resistance for each of the 10 zones.

ParameterRange
Zone Strengths10 values, 0–8 each (0 = no resistance in that zone)

Feels like: steps or bumps along the travel. Use it for: gear notches, a ratchet, a multi-stage switch. Pass 10 values: missing ones count as 0 and extra ones are ignored.

Multiple Position Vibration

A separate vibration amplitude for each of the 10 zones, at one frequency.

ParameterRange
Frequency (Hz)1–255
Zone Amplitudes10 values, 0–8 each (0 = no vibration in that zone)

Feels like: a vibration that grows or changes as you press. Use it for: an engine revving with the throttle, a drill that spins up.

Bow

Tension between two zones that snaps back when you let go, like a bow string.

ParameterRangeDefault
Start0–71
End1–86
Strength1–86
Snap Force1–88

Feels like: pulling a string, then a kick back towards you on release. Use it for: bows, slingshots, a spring-loaded lever. Act on release.

Galloping

A two-beat pulse between two zones, like hooves or a heartbeat.

ParameterRangeDefault
Start0–80
End1–99
First Foot0–62
Second Foot1–75
Frequency (Hz)1–2553

First Foot and Second Foot place the two beats inside each cycle (the second after the first); Frequency is how many cycles per second.

Feels like: a "da-dum, da-dum" in the trigger. Use it for: riding, a heartbeat when low on health.

Machine

Vibration alternating between two amplitudes between two zones.

ParameterRangeDefault
Start0–80
End1–99
Amplitude A0–73
Amplitude B0–77
Frequency (Hz)1–25530
Period0–255 (tenths of a second)5

Feels like: a motor that surges every Period. Use it for: heavy machinery, a jackhammer, a sewing machine.

Off

No effect: the trigger moves freely. DS Stop Trigger does the same as setting an Off effect.

Legacy effects

Kept for compatibility with older projects. Their parameters use a raw 0–255 scale.

NodeParametersNotes
DS Make Trigger Continuous Resistance (Legacy)Start, Force (0–255)Prefer Feedback.
DS Make Trigger Section Resistance (Legacy)Start, End, Force (0–255)Prefer Weapon or Slope Feedback.
Effect Ex (Effect Type = Effect Ex (Legacy, Deprecated) on the struct)Start, Keep Effect, Begin/Middle/End Force, FrequencyDeprecated. Use Vibration or Machine.

Raw bytes

DS Make Trigger Raw sends a trigger block as you write it: a mode byte followed by up to 10 parameter bytes. Use it for modes the plugin does not wrap, or to reproduce bytes from another tool.

Weapon, start 4, end 7, strength 8:   25 90 00 07

The bytes are not validated. The format is the one documented by the community reverse engineering of the controller (Nielk1's TriggerEffectGenerator, MIT).

Building the struct directly

FDS5TriggerEffect is a normal Blueprint struct. Make FDS5TriggerEffect shows only the fields used by the selected Effect Type, which is handy when the effect comes from a data table or a variable. In C++ use the factories:

const FDS5TriggerEffect Weapon = FDS5TriggerEffect::MakeWeapon(4, 7, 8);
const FDS5TriggerEffect Engine = FDS5TriggerEffect::MakeMachine(0, 9, 3, 7, 30, 5);

Tips

  • Change effects on events, not every frame. The plugin skips writes that change nothing, but there is no reason to rebuild the effect on Tick.
  • Match the effect to the action. Put an effect on R2 only while the action that needs it is available, and stop it in menus and cutscenes.
  • Feel it on the hardware. Effects that look similar on paper feel very different. Tune them with a controller in hand, in PIE.
  • Force Feedback Effect assets can also drive trigger resistance on a timeline. See Force Feedback Effects.

© 2026 Adaptive Pad by Altercode. Blueprint graphs rendered with ueblueprint (MIT). 3D controller based on a model by AHarmlessPotato, CC BY 4.0: rigged, split into moving parts, Sony marks removed.

Not affiliated with or endorsed by Sony Interactive Entertainment. "DualSense" is a registered trademark or trademark of Sony Interactive Entertainment Inc., used here only to describe compatibility. "Unreal" and "Unreal Engine" are trademarks or registered trademarks of Epic Games, Inc.