Getting started

Quick start

Give R2 a resistance that breaks with a click and turn the lightbar orange, in one Blueprint.

This example gives R2 a resistance that gives way with a click (the Weapon effect) and turns the lightbar orange as soon as the game starts. It works in any Blueprint: the Level Blueprint, your Character or your Player Controller.

The Blueprint

This is how it looks in the Blueprint editor, here in an Actor Component that you can add to your character or Player Controller:

The same graph, ready to copy:

Use the copy button in the top bar, then paste the nodes into any Event Graph with Ctrl+V.

Step by step

Start from an event

Use Event BeginPlay, or any event where the effect should start (grabbing a lever, entering a vehicle...).

Set the lightbar

Add DS Set Lightbar Color and pick a colour. Controller Id is the controller slot: 0 is the first controller.

Build the trigger effect

Add DS Make Trigger Weapon: Start 4, End 7, Strength 8. Positions are trigger zones from 0 (released) to 9 (fully pressed).

Apply it to R2

Add DS Set Trigger Effect with Hand = Right Trigger and plug the effect in.

Send everything

End the chain with DS Update Output. Until you call it, the DS Set ... nodes only change the stored state.

Press Play and squeeze R2: the trigger resists from about halfway, then gives way with a click near the end.

The same in C++

MyCharacter.cpp
#include "UDualSenseSubsystem.h"

void AMyCharacter::BeginPlay()
{
    Super::BeginPlay();

    if (UDualSenseSubsystem* Pad = GetGameInstance()->GetSubsystem<UDualSenseSubsystem>())
    {
        Pad->SetLightbarColor(0, FLinearColor(1.f, 0.35f, 0.f));
        Pad->SetTriggerEffect(0, EDSTriggerHand::Right, FDS5TriggerEffect::MakeWeapon(4, 7, 8));
        Pad->UpdateOutput(0);
    }
}

Add AdaptivePad to the dependencies in your .Build.cs:

MyGame.Build.cs
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "AdaptivePad" });

Turning it off

To free the trigger again, call DS Stop Trigger (or DS Set Trigger Effect with an Off effect) and then DS Update Output. DS Reset Controller State clears everything at once: lightbar, LEDs, rumble and both triggers.

Where to go next

© 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.