Install Asset
Install via Godot
To maintain one source of truth, Godot Asset Library is just a mirror of the old asset library so you can download directly on Godot via the integrated asset library browser
Quick Information
Native Sony DualSense controller support for Godot 4+.

DualSense (Godot 4, C#)
Raw HID DualSense support for Godot's built in Input gap: adaptive triggers,
lightbar, player LED, mic LED, touchpad, and gyro/accelerometer/battery.
Standard buttons/sticks/rumble already work through Godot's normal Input
API (SDL3 backend); this addon only owns the parts SDL doesn't expose, and
it talks to the controller directly, no DualSenseX or other background app
required.
Install
- Copy
addons/GodotDualsense/into your project. - Add the NuGet dependency to your
.csproj:<ItemGroup> <PackageReference Include="HidSharp" Version="2.1.0" /> </ItemGroup> - Enable the plugin in Project Settings > Plugins (this registers the
DualSenseManagerautoload for you). If you would rather not use the Plugins panel, you can register it by hand instead: addDualSenseManager="*res://addons/GodotDualsense/DualSenseManager.cs"under[autoload]inproject.godot, and leave the plugin disabled.
Usage
Direct API (code)
For one-off feedback (UI cues, hit reactions, menu polish) call the autoload straight from a script:
DualSenseManager.Instance.SetLightbar(Colors.Red);
DualSenseManager.Instance.SetTriggerResistance(startZone: 2, strength: 200, DualSenseHand.Right);
var touch = DualSenseManager.Instance.State.TouchPosition;
Instance is null until a controller connects and can go null again on
disconnect, so always guard with ?. or check IsControllerConnected first.
Every input field (sticks, triggers, touchpad, gyro/accel, battery, all
buttons) lives on DualSenseManager.Instance.State, a DualSenseInputState
snapshot refreshed every physics frame.
Avoid also calling Input.start_joy_vibration while using this addon's
SetRumble; both would fight over the same HID output report.
Binding DualSense inputs to actions (no code, editor only)
For anything that should drive actual gameplay ("hold L2 to aim", "tap the
touchpad to dash"), don't poll State from gameplay scripts. Instead wire it
through Bindings/, which turns a DualSense input into a normal Godot input
action via Input.ActionPress/ActionRelease. The rest of the game (state
machines, Input.IsActionJustPressed, etc.) never has to know a DualSense
was involved, and keyboard/other controllers keep working unaffected.
- (Optional) Create a trigger profile, only needed if you want the
physical trigger to feel like something. Right click in the FileSystem
dock, choose New Resource >
DualSenseTriggerProfile, save it as a.tres, then in the Inspector pick anEffect Type(Resistance, Bow, Galloping, Weapon, MachineGun, Machine, GameCube, or Off) and tune its parameters. - Create a binding: New Resource >
DualSenseActionBinding, save it as a.tres. Set:Action: the Godot input action name to drive (must already exist inProject Settings > Input Map, e.g."dash").Source: what to read:LeftTriggerAnalog/RightTriggerAnalog(0-1 pull),TouchpadTouching, or any digital button, including ones Godot'sInputcan't reach at all, likeMute,PS,Fn1/Fn2,PaddleLeft/PaddleRight(DualSense Edge).Threshold: for the analog trigger sources, how far it must be pulled (0-1) to count as "pressed". Ignored for digital sources.TriggerProfile: optional; only applies whenSourceis a trigger.
- Add the binder: add a plain
Nodeanywhere in your scene, attachDualSenseActionBinder.csas its script, and drop your binding resource(s) into its exportedBindingsarray. It applies each binding's trigger profile once on connect, then drives the action every physics frame while the controller is connected.
Testing status
Version 0.1. See TESTING.md at the repository root for what has been confirmed against real hardware and what has not.
Credits / License
MIT, see LICENSE. The HID protocol implementation under
Protocol/ (input parsing, output composition, CRC32, adaptive-trigger
encoding) is a C# port of Rafael Valoto's
Dualsense-Multiplatform
(MIT).
Native Sony DualSense controller support for Godot 4+.
Reviews
Quick Information
Native Sony DualSense controller support for Godot 4+.