Hello Rafael!
Unfortunately, I updated the plugin and ended up being disappointed with the latest changes. No negativity, just facts: previously, the plugin felt like a “plug-and-play” solution, requiring no additional setup, but now when I launch my project the DualSense no longer works out of the box.
If the plugin had behaved this way from the start, I wouldn’t have had any questions. However, after the update it now requires extra configuration, which I hadn’t planned on doing - and that’s frustrating.
Is touchpad functionality working? I’ve been trying all day to get it to work and can’t seem to get “swiping” to do anything. If it’s not currently implemented, do you have plans to? I feel like it adds more keybinds allowing for “Left/Right/Up/Down Touchpad Swipe”.
Hi, Could you please share a bit more about your implementation? Version v1.2.13 no longer requires remapping or the Gamepad COOP plugin; the first controller automatically maps to the first player.
Could you send me your code from your BeginPlay and EndPlay events? Also, please remember that the Reconnect function is no longer necessary, as the plugin now automatically detects when devices are disconnected and reconnected.
Hello! I’m very sorry for the trouble the recent updates have caused. We’ll definitely look for ways to minimize these kinds of impacts in the future.
The plugin shouldn’t require any extra configuration. The mapping solution is only necessary when you have more than one player, as it gives you the freedom to choose which controller commands which player. Could you share a bit more about how you’re implementing it? For instance, is this for local multiplayer or just a single player?
Yes, the touchpad functionality should be working.
Just to reiterate: for the older DualShock (PS4) controller, the Accelerometer and Gyroscope features have not yet been implemented.
For your end-user to be able to set up and use the touchpad in their project, they will need to follow these steps:
Step 1: Enable Touch in the Plugin
First, as you previously instructed, the user must enable the plugin to send touchpad data. To do this, they should call your plugin’s function in an appropriate place, such as the BeginPlay event of their Player Controller.
In their Blueprint, they should find and call the Sony Gamepad Enable Touch node.
Step 2: Receiving Touch Data in Blueprints (No Enhanced Input Action needed)
Because your plugin sends the data as a screen touch event (using OnTouchStarted), the user does not need to configure an Input Action or an Input Mapping Context for this. The method is more direct and uses Unreal Engine’s native touch events.
In the Player Controller or Pawn Blueprint, the user should do the following:
Right-click in the Event Graph.
Search for the InputTouch event.
Use the execution pins from this node to build their logic.
This node will fire whenever a finger touches, moves on, or is lifted from the touchpad.
Pressed: Fires once when a finger touches the pad.
Released: Fires once when the finger is lifted.
Moved: Fires continuously as the finger moves across the pad.
Location: Provides the FVector2D (X, Y) coordinate of the touch.
Finger Index: Identifies which finger is touching. Based on your code, the first finger (Touch.Id) will be Index 0, and the second finger (Touch2.Id) will be Index 1.
Example of how the user can set this up in their Blueprint:
Step 3: Implementing Gestures (like Swipes)
With the InputTouch event, the user can easily implement logic for gestures like swipes:
Create a Vector 2D variable to store the initial touch position (e.g., TouchStartLocation).
On the Pressed pin of the InputTouch event, save the Location value into that variable.
On the Released pin, get the current Location and subtract the TouchStartLocation from it. This will give you a vector representing the gesture.
Analyze this vector (its length and direction) to determine if it was a swipe and in which direction.
i had followed your video (https://youtu.be/GrCa5s6acmo) & the same with GamepadCoOp (how to use section on Git) reconnect is removed from my controller blueprint. if i was to do a fresh install is this video still accurate for 1st time set up?
I suggest you don’t follow the example in the video; this video was created in the first versions of the plugin. My tip for you is to remove the following folders from your project: Binaries, Save, DrivedataCache.
After that, remove all the remaps you made with the GamepadCoOp plugin. This suggestion was temporary and is no longer necessary.
After that, try calling the function to change the LED color during your character’s begin play and see if the controller responds. Also, try checking the connection and the controller ID.
I plan to improve the documentation and usage examples by the weekend. I also plan to avoid making too many updates that impact the plugin’s workflow, but these latest updates were necessary to improve the plugin. Now we have a professional-grade plugin available to everyone: studios large and small, indies, and solo developers.
I have a single-player game using a controller. By default, an Xbox controller is connected via Bluetooth, but it’s always in sleep mode and needs to be activated. Before the updates, when launching the game through StandAlone, the DualSense would light up and work, but now it only lights up and nothing happens in the game.
Unfortunately, I didn’t have time to dig into it, so I just had to disable the plugin.
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.
I’m using the PS5 Dualsense controller connected by USB to my PC. I’m using UE5.6.1.
I did the following things to try to replicate your steps for using the PS5 Touchpad:
I made a new third person template project.
Enabled your plugin.
Opened the default Third Person Player Controller, on begin play I connected “Enable Touch” to a third execute on the Sequence Node, selected enabled, got reference to self and pulled out the “ Get local player controller ID” and put in the input for “Enable Touch”.
Still in Controller, right clicked graph and typed “InputTouch”, made the InputTouch event, connected each output execute to a print string to debug them.
Pressed “Play in Viewport” to test it out. Touched the touch screen multiple times and multiple ways. Nothing happened.
Thought maybe it was a “Play in Viewport” problem. So tested in window, nothing. Tested in “Standalone Game”, nothing.
Thought maybe it the events need to be in the player character blueprint. Deleted events in Controller and replicated them in Character, nothing.
Am I missing something? Not mad, just trying to figure out how you do it on your end.
Edit: With more testing, I found that after unplugging and replugging in my PS5 Dualsense controller to the PC, it will start working. Then after 1-2 mins of it working, it’ll stop working (Meaning, it’s start triggering the “InputTouch” event, printing my debug strings, then after the time period, it stops triggering them). Then if I reopen the “Play” to test again, it won’t work at all until I close it, unplug and replug, then open again. Then it will stop working after a minute of it working.
Edit2: Also the way it’s triggering it weird when I get it to work. “Pressed” triggers like a ongoing trigger, over and over until I release it. But still stops working after a minute.
Hi, it really wasn’t working correctly the Touchpad data, the type that stores the values was wrong, I found this out because I went to tweak the gyro functions that were also not correct, I believe that for the next update it will be working correctly.
I am writing to inform you that plugin has been removed from the Fab marketplace and is no longer available.
The product was delisted due to a marketplace policy issue, specifically cited as “Infringing or Unauthorized Content.”
For everyone who has already acquired the product through the marketplace, you should continue to have access to it through your library. I will continue to provide support for all users through this forum and our GitHub.
Going forward, the project will be actively maintained and available for everyone on GitHub. This move will allow for more direct collaboration and faster updates.
You can find the official repository here:
Thank you for your understanding and continued support. I am committed to the future of this project and value having you as part of the community.
Gyroscope Aiming tutorial for the Windows Dualsense Unreal Plugin. This guide will walk you through implementing a precise and responsive motion-based aiming system, a feature that can significantly enhance player immersion and control in shooter games.
Using the Arena Shooter UE 5.6 template as our foundation, we will build a complete Aim Down Sights (ADS) Gyro Aiming feature from the ground up. In this example, the gyro aiming will seamlessly activate whenever the player holds the L2 trigger to aim down sights, providing intuitive and accurate fine-tuning control.
By the end of this guide, you will have a practical, gameplay-ready implementation and a solid understanding of how to:
Create a calibration widget to initialize the controller’s motion sensors correctly.
Activate and deactivate gyro aiming dynamically using the L2 trigger for ADS.
Translate gyroscope data into smooth and accurate camera movement.
Thank you for the support and the kind words about the plugin! I’m glad you find it works so well. The plugin itself hasn’t changed, only the name. I’ll do my best to get the original name back.