SimpleCotroller Questions and Support

Since there is no questions category at Fab, I created this thread to replace it. This is exclusively about this plugin: SimpleController | Fab

Hey!

Iā€™m currently trying to get DualSense trigger force feedback effects using this plugin.

However the ā€œCreate Force Feedback Effect Constantā€ doesnā€™t work and outputs the error ā€œDevice not found or device donā€™t support haptic.ā€.

When I use ā€œBreak Device Infoā€, it returns false on ā€œHas Hapticā€ and ā€œHas Rumble Triggersā€. It returns all false on ā€œBreak Device Force Feedback Infoā€

Force feedback works on this same controller on your Demo Project Build.

Any help would be greatly appreciated! :slight_smile:

That is correct. ā€œHapticā€ is force feedback that you have with steering wheels or joysticks, for example. ā€œRumble Triggerā€ is rumble in the triggers. The newer Xbox gamepads have this. The PS5 Dualsense gamepad has much more complex triggers than just on and off and corresponding functions in the plugin to control them. Example:

Take a look at the dark yellow area in the demo project:

@Socke81 Hey I have a multiplayer game, Iā€™m initializing the controller in game instance the issue is when the game is first launched the controller doesnā€™t work i have to restart the game and only then it works?
Do you have any pointers on this?

What exactly do you mean by ā€œinitializing the controllerā€?

Hi there, This plugin is awesome and very empowering.
Iā€™m a little stuck. I used a delegate as shown in the example project for Axis movement. This only updates with the value of the axis changing, causing very jerky movement and complete stoppage if the stick is held at the same value. This lead me to the documentation when I saw the Async events but there are no examples of how to implement these. I hooked them up to my begin play but theyā€™re not working at all. Iā€™m missing something simple Iā€™m sure but can anyone tell meā€¦

How to have that axis delegate update with regularity?
How are the Async nodes used?

Thanks in advance.

I inserted the following into the level blueprint for testing and it worked.

I donā€™t know what I should write in the documentation. But I am open to suggestions.

You can also use the event delegates. Simply write the values in variables and read them out again in the tick event. Then it runs synchronously with the frame time.

1 Like

Thank you for the speedy response, it is working fine for me now in my player character BP. I need to introduce a dead zone (if you have any pointers here, Iā€™d be grateful) but itā€™s working smoothly. I didnā€™t have it hooked up correctly.

If this statement is accurate perhaps just add it to the docs? ā€œAsync events only need to be fired once. The Axis Async Event will exhibit the behavior selected in the trigger enum. Other Async events will fire when the value has changedā€

There is a video in the docs that shows the async nodes. I even made a mistake there. Probably the same thing happened to you. :kissing_heart:

The video also shows how the death zones work. But I have to mention that they donā€™t work because of a bug with the async events. But I created a patch days ago. It will take some time until it is released because of the Fab thing but I think it will be released this week. I can also send you the source code by e-mail if you send me an e-mail with your order ID.

Iā€™ve put a deadzone work around in until the patch goes live so that should be okay. Thank you for the offer. Awesome support.

Does the plugin allow access to the Dual sense speaker?

Since it only works if you connect the gamepad via cable and I donā€™t know how to assign the sound device to the gamepad if more than one controller is connected, I didnā€™t implement it. But I get the request more and more often. Thatā€™s why Iā€™m adding it to my todo list now.

Patch should be online now.

1 Like

Hey Socke, Awesome plug in! In a multiplayer game, when initializing the controller logic, how can we differentiate player controller 1, 2, 3, 4ā€¦ ?

The ā€œConnection Indexā€ variable is a sequential number. The first device has a 0, the second a 1 and so on.

So quick question, i was previously using an older version of the plugin for a PC flight stick project which required an ā€˜init controllerā€™ and another node on event end play within the gamemode to shut off the connection to the flight stick.
This worked but since updating and those node so longer existing the flightstick still works on first launch but wonā€™t be detected if i try to play in editor a second time. I need to restart unreal for the connection to the stick to happen again.

Is there something additional that Iā€™ve missed in the setup when upgrading to plugin version 3+?

The plugin is now only started once when the engine starts. The axes and button events should still work. Do they not? If it is only about displaying all connected devices when starting the game you can use the following.

No So currently none of the axis or buttons work at all unless the controller usb is disconnected and reconnected. It seems like first time the game launches and the usb is connected the flight stick will work but afterwards unreal needs a reboot.

Can you reproduce this with the demo project?

Hello

Might sound dumb but i canā€™t get my Logitech G920 to function with Unreal Engine 5.4ā€¦ I have searched google forever with no luck. Followed the steps in the RAWINPUT Document on Epic Games- Nothing! Purchased the SimpleController plugin and still - Nothing! Can someone help me please? Iā€™m trying to use the City Sample with my Steering wheel + pedals

Thanks a bunch in advance!

Is the steering wheel displayed in the demo project?

https://www.virtualbird.de/ue4Doku/SimpleController/stuff/SimpleControllerDemoWin64_UE427_2.5.zip

Hello Scoke, you are a G.
I want some help here, my game has Wheel support as well as Controller support. How can I differentiaite in between them. I mean my mappings for Wheel and they work on controller. I dont know if I am making sense. I just want different mappings for both of them and they should act as different inputs if that makes sense :slight_smile: