DualSense gamepad share button incorrectly mapped to ButtonSelect KeyCode on desktop

When using a DualShock/DualSense gamepad on desktop, the “share” button mistakenly maps to Enum.KeyCode.ButtonSelect. This is an inconsistency, as when playing on an actual PlayStation system, the DualSense “touchpad” button is mapped to Enum.KeyCode.ButtonSelect. Additionally, UserInputService:GetImageForKeyCode(Enum.KeyCode.ButtonSelect) and UserInputService:GetStringForKeyCode(Enum.KeyCode.ButtonSelect) will return an image of the touchpad and “ButtonTouchpad” respectively, indicating that the intended button mapping for ButtonSelect is in fact the touchpad.

This can very easily cause confusion for desktop players who choose to use a DualSense/DualShock gamepad. Although games using the default APIs will correctly tell players to press the touchpad for actions bound to ButtonSelect, because ButtonSelect is mistakenly mapped to the share button, nothing will happen if the touchpad is pressed.

Expected behavior

The internal mapping of ButtonSelect should point to the DualSense touchpad while on desktop, as it does on PlayStation, rather than the share button.

7 Likes

I just encountered this today! Quite odd it happening

I’m honestly shocked it’s gone unnoticed this long. Hopefully it can quickly be fixed after the holidays.

It’s because the share button is the same button as on a Xbox controller, just on PlayStation its hard coding only for sharing

If you don’t know what you’re talking about, just say so instead of posting something that’s objectively incorrect.

I don’t know where you got this idea, but an Xbox controller’s “view” button and a DualSense’s “create” button are, in fact, not counterparts.

As these official diagrams taken directly from the Xbox and PlayStation websites clearly indicate, the DualSense counterpart for an Xbox controller’s “view” button would be, you guessed it, the touchpad!

Please do a modicum of googling prior to posting things, thanks.

1 Like

The original thing I posted was broken but still.

It’s not „OBJECTIVELY“ correct but it is correct but still is.

There’s a website called hardware tester and you can test your gamepad/controllers on there, if you use the Share Button on a PlayStation controller you will see the B8 goes up to 1 and the touchpad the B17 will go up to 1.

If you have a Xbox controller you can plug it up or use DS4 Windows, When you press the view button on your Xbox controller or press the share button on your PlayStation Controller while using DS4, you will see that B8 will light up.

So please next time you assume, don‘t. I have coded for controllers before.

Thanks for the report! We’ll take a look.

2 Likes

As stated above, this is as designed.

Who would be responsible for fixing this then? Roblox, Microsoft, or Sony? This is highly unexpected and undesirable behavior.

I don’t think there is a way to “fix” this.
Dualshock and XBox Gamepad have different layouts and we use Xbox as the default (since we supported it many years earlier).
In particular as you stated, where XBox has the “View” button, Sony has the “Create” button. That button can’t be overwritten on a Playstation, it is locked out. The closest button to that is the touch pad (which doesn’t exist on Xbox), so it fulfills the same functionality on the console. On a PC meanwhile, the Playstation gamepad is basically emulating an XBox gamepad. The only change we could make on our side is to ignore the “Create” button completely and only use the touchpad, even on PC. But we decided against that, since again - XBox is the default layout on PC for all controllers.

I think the expected behavior here, at least from a developer perspective, is that the buttons I bind my game actions to will be consistent across all platforms.

I choose my control schemes very carefully to maximize comfort and UX, and this breaks if a button, in this case the touchpad, does not work the same way across all platforms. It is also confusing for players since playing a game on PC using a DualSense will have a different control scheme than if they played on an actual PlayStation.

In other words, if I ask Roblox “please bind this action to the gamepad select button” then Roblox should consistently bind that action to the same button on the same gamepad, regardless of platform.

1 Like

There is no Select button on PlayStation gamepads though?
And as I explained, there is no way for us to bind the “Create” button on Playstation consoles.

Well, yes, but Roblox shouldn’t bind the create button at all – even on PC. Roblox should bind to the touchpad on both PC and PlayStation. This would match the standard input layout for DualSense gamepads.

The counter argument is that this is the first button everybody presses, because they are used to it on Windows / Xbox controllers. This is why I’m saying it’s by design: we had this discussion internally.

This is a rather bold claim to make. Did Roblox conduct a survey of gamers who use DualSense gamepads?

I really don’t understand the issue here. The standard button to press for menus on a DualSense is the touchpad. Everybody knows this. Everybody who uses a DualSense knows this and it’s instinctively the button players using one go to press. They don’t instinctively move to hit the button for capturing screenshots.

Having the same action bound to two different buttons on the same gamepad depending on platform is just flat out horrible UX. Full stop. That alone should be enough to warrant a fix for this.