Integrate all the features of Sony's DualSense™ and DualShock 4® controllers into your Unreal Engine project.
Report Bug
·
Suggest a Feature
·
Documentation
"PlayStation", "PlayStation Family Mark", "PS5 logo", "PS5", "DualSense" and "DualShock" are registered trademarks or trademarks of Sony Interactive Entertainment Inc. "SONY" is a registered trademark of Sony Corporation. "Windows" is a registered trademark of Microsoft Corporation. "Linux" is a registered trademark of Linus Torvalds. "Mac" is a registered trademark of Apple Inc.
The author of this project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Sony Interactive Entertainment Inc., Microsoft Corporation, Apple Inc., or Linus Torvalds. This is an independent and unofficial project.
Built with a cross-platform architecture, this Unreal Engine plugin provides a unified solution for integrating DualSense™ (PlayStation 5) and DualShock 4® (PlayStation 4) controllers. It delivers native support on PC while being architected for easy compilation across other Unreal Engine platforms, including PlayStation®. This asset provides direct API access to the complete feature set of each controller, including the revolutionary Haptic Feedback and Adaptive Triggers of the DualSense™. All features are exposed through a clean and well-documented function library for both Blueprint and C++.
Designed to bridge the gap left by generic controller support, this asset empowers developers to implement the high-fidelity, immersive feedback that makes Sony's controllers unique.
- 🏗️ Extensible Multi-Platform Architecture: Its flexible design enables compilation across all Unreal Engine platforms. Supporting new hardware is as simple as implementing the connection interface.
- 🔌 Dynamic Connection (Hot-Swap): Automatically detects controller connection and disconnection, even during gameplay.
- ⚡ Optimized for Multiplayer: High-performance architecture with minimal impact on network games.
- 🎮 Seamless Input Integration: Coexists perfectly with Unreal Engine's native input managers (like Enhanced Input) and other gamepad plugins, preventing conflicts between devices.
- 🎧 Audio Haptics (USB & Wireless): Haptic feedback based on in-game audio.
- 🎯 Adaptive Triggers: Full control over resistance, effect, and vibration on R2/L2 triggers.
- 💡 Lightbar Control: Dynamically change the controller's LED color.
- 🎤 Microphone and Audio: Manage the mute button LED, speaker volume, and headset audio.
- ⚙️ Force Feedback: Native integration with Unreal Engine's Force Feedback system for standard motor vibration.
- 🎮 Multi-Controller Support: Manage up to 4 controllers simultaneously.
To demonstrate the practical use of the Dualsense Unreal Plugin, a sample project has been developed using the Arena Shooter template and upgraded to Unreal Engine 5.6. This project integrates key features of the DualSense controller to enhance the player's experience.
In this sample, the following DualSense functionalities were integrated to provide a more immersive gameplay experience:
- 🔫 Automatic Gun: Experience fully automatic firing with appropriate haptic feedback, simulating realistic weapon recoil and vibration.
- 🎯 Semi-Automatic Gun: Engage in precise shooting with semi-automatic weapons, where each shot provides distinct haptic sensations and trigger resistance.
- 💥 Vibration on Player Hit & Visual Feedback: Feel the impact! The controller vibrates dynamically when the player takes damage, complemented by on-screen visual feedback for enhanced immersion and immediate awareness.
- 💡 LED Color Change on Player Hit: The DualSense controller's LED light dynamically changes color when the player is hit, offering an immediate and intuitive visual cue of damage taken, enhancing situational awareness.
You can download the Arena Shooter UE 5.6 with the DualSense integration directly from link.
- Download the example project for the editor here
- Download the compiled version of the example project here
We've created a detailed, step-by-step tutorial that breaks down the entire implementation within the example project. It's the perfect guide to get you started.
-
🎯 Gyroscope Aiming: A complete tutorial on how to implement a precise and responsive Aim Down Sights (ADS) gyro aiming system using the Arena Shooter template. ➡️ [Read the Gyroscope Aiming Tutorial]
-
🔫 Arena Shooter: An example using the Arena Shooter template that implements adaptive triggers for automatic/semi-automatic weapons and haptic feedback for player damage. ➡️ [Read the Arena Shooter Tutorial]
To demonstrate the practical use of the Windows Dualsense Unreal Plugin, a sample project has been developed using the Parrot Game Sample from Epic Games. This project integrates key features of the DualSense controller to enhance the player's experience.
In this sample, the following DualSense functionalities were integrated to provide a more immersive gameplay experience:
- Visual Feedback: The controller's Lightbar is used to provide real-time visual feedback to the player, changing colors and effects according to in-game events.
- Vibration (Force Feedback): The native Force Feedback system was used to create detailed vibration effects, increasing immersion during key moments of gameplay.
💡 Pro Tip for Deeper Immersion: For an enhanced audio experience, connect the controller via USB and plug a headset directly into it. This setup also works with a Bluetooth connection, offering greater flexibility.
This project serves as a practical guide for developers who want to see the plugin in action and learn how to integrate the unique features of the DualSense controller into their own games.
You can download the Parrot Game Sample with the DualSense integration directly from link.
- Download the example project for the editor here
- Download the compiled version of the example project here
Take your immersion to the next level! This update enhances the advanced Audio Haptics feature, allowing it to work seamlessly via both USB and wirelessly via Bluetooth (previously USB-only). This new example project demonstrates how to harness this power, featuring a complete implementation for real-time haptic feedback based on in-game audio.
This sample project serves as a practical guide and includes:
-
🎧 Flexible Submix Listener: Learn how to register a listener (RegisterSubmixForDevice) on an Unreal Engine Sound Submix that processes audio for both wired and wireless connections.
-
⚡️ Real-time Audio Processing: We capture the audio data directly from the submix, resample it, and send it to the DualSense controller over your active connection (USB or Bluetooth) in real-time.
-
🎛️ Haptic FX Menu Widget: A new sample UI (UMG Widget) is provided that allows you to:
Select different Sound Classes to be routed to the haptics system.
Play various "playback albums" (sets of Sound Cues) to test and feel a wide variety of haptic effects based on different sounds.
🛠️ New Developer/Debug Tools: For advanced users, new console commands have been added to test and fine-tune trigger vibrations and frequencies directly over wireless and wired connections (e.g., ds.SetAudioLR).
➡️ Check out the full tutorial on the Wiki to implement this in your own project!
- Unreal Engine: 5.2 or higher.
- Operating System: Windows 10 or 11.
- Controller: DualSense™ or DualShock 4®.
- Go to the official plugin page on the Unreal Engine Marketplace (FAB): Plugin Page - FAB
- Click Install or Add to Project and select your Unreal Engine project.
- Activate the plugin in Unreal Engine:
- Open your project.
- Go to
Edit > Plugins. - Search for Windows Dualsense Plugin and check the box.
- Restart Unreal Engine when prompted.
The plugin exposes all functionality through static Blueprint function libraries, meaning you can call methods from anywhere without needing to add components.
The functions are divided into two main categories for easy access:
- Sony Gamepad: Contains management methods common to Sony controllers (DualShock and DualSense), such as LED control, gyroscope, battery level, etc.
- DualSense Effects: Contains methods specific to DualSense exclusive features, such as Adaptive Triggers configuration.
Call functions directly to control DualSense features. Some available effects include:
- 🐎 Galloping: Simulates a horse's trot.
- 💪 Resistance: Applies constant opposing force when pressing the trigger.
- 🔫 Weapon: Creates a recoil effect for semi-automatic weapons.
- 🔥 Automatic Gun: Vibrates rapidly to simulate an automatic weapon.
📚 For the full documentation, please see the Wiki.
The plugin has been designed with an extensible architecture, allowing developers with access to other platform SDKs (such as the official Sony PlayStation® SDK) to integrate them with minimal effort.
The low-level hardware communication is abstracted through the IPlatformHardwareInfoInterface. The default implementation for Windows and Linux uses the HID API to communicate with the controllers.
For licensed developers, extending the plugin involves these steps:
- Create a new implementation class: Create a new C++ class that inherits from
IPlatformHardwareInfoInterfaceand implements its virtual methods using the specific SDK's functions. - Modify the Singleton: In the
IPlatformHardwareInfoInterface.cppfile, include the header for your new class and instantiate it within the appropriate conditional compilation block.
➡️ For a detailed, step-by-step guide on how to add support for a new platform, please see our tutorial on the Wiki.
Contributions are welcome! If you have ideas, suggestions, or bug fixes, feel free to open an Issue or submit a Pull Request.
This project is distributed under the MIT License. See the LICENSE file for more details.
Special thanks to everyone who has contributed with suggestions, reported bugs, and offered implementation improvements. Thanks also to the developers of the libraries used as inspiration and reference for creating this project.
A special thanks as well to the Epic Games team for creating and providing the Parrot Game Sample, which served as an excellent foundation for the example project demonstrating this plugin's features.


