Issue Type: Other Impact: Very High Frequency: Constantly Date First Experienced: 2021-01-21 04:01:00 (-05:00) Date Last Experienced: 2021-02-25 10:56:00 (-05:00)
Reproduction Steps:
Note: This is on a PC with a keyboard and Xbox controller both plugged in. I am not sure if it occurs on Xbox explicitly or a device that has keyboard + controller. I do not have an Xbox to test this.
Create a dialog tree using Dialog/DialogChoices instances
Interact with the dialog tree while either using an Xbox controller or while having an Xbox controller plugged in. This occurs specifically if you can see the (X) to initiate dialog on the bubble.
Move around during the dialog (this causes your movement controls to enter the dialog menu and control it with movement controls - presumably this is intended)
Observe you can no longer move your character using WASD or the joystick after completing a conversation (interestingly enough you can still jump)
Expected Behavior:
You can move your character after the dialog is done.
Actual Behavior:
You are presumably stuck in the dialog menu still, with both controller and keyboard input disabled, as it is possible to navigate the dialog menu using the controller or WASD.
Pressing escape on a keyboard or start on a controller to open the core menu resolves it.
I am getting constant bug reports about this from PC controller users as well as from Xbox users. It’s definitely impacting the ability for controller users to play my games.
[color=red]The workaround is not viable because it is not intuitive.[/color]
For ease I have supplied a minimal repro place file and minimal video on the original post.
I’ve tried a hacky solution to solve this bug, but I’ve yet to get it to work:
--this is a LocalScript placed in StarterPlayerScripts
local NPCs = workspace:GetDescendants() --requires optimization later
for k, v in pairs(NPCs) do
if v:IsA("Dialog") then --note that the dialog is set to MultiplePlayers, meaning it is treated locally
v.Changed:Connect(function(property)
if property == "InUse" then
if v[property] == false then
print("Unselected")
game:GetService("GuiService").SelectedObject = nil
end
end
end)
end
end
It prints but it does not unbreak/unlock user movement input.
Some of my most recent user reports about this (last 24 hours)
“Controller w/ TV” essentially means Xbox with 99% certainty.
Technically they could literally have a TV as a monitor and be using a controller on a PC, but I doubt it. Regardless, the bug would still occur for any platform with a controller.
Hopefully this helps with prioritizing this issue @OuterspaceNemo. Users are definitely impacted by it. Judging from their badges they also leave and don’t come back afterwards, meaning I am bleeding Xbox/controller players from this.