Touchscreen emulation does not work properly when disabling controls via PlayerModule

Reproduction Steps

  1. Create a LocalScript that disables player input
  2. Place the LocalScript in StarterPlayerScripts
  3. Switch Roblox Studio’s emulator to a touchscreen device
  4. Enter play mode
  5. Observe you can still move

A LocalScript for your convenience:

local player = game.Players.LocalPlayer
local PlayerModule = require(player:WaitForChild("PlayerScripts"):WaitForChild("PlayerModule")):GetControls()

	local success, response = pcall(function()
		return PlayerModule:Disable()
	if not success then
until success

Expected Behavior
When disabling player controls and emulating a touchscreen device, the emulated player should be unable to move.

Actual Behavior
When disabling player controls and emulating a touchscreen device, the player is still able to move. No errors or warnings are given.

Disabling player controls works properly for any other emulation mode in Roblox Studio and for touchscreen devices in-experience.

Issue Area: Studio
Issue Type: Other
Impact: High
Frequency: Constantly
Date First Experienced: 2022-04-16 00:04:00 (-07:00)
Date Last Experienced: 2022-04-16 00:04:00 (-07:00)

Hi, thanks for the report! This is not a bug actually, can you file this as a #feature-requests ? The team is looking to make accurate emulation and it’s been talked about in this post: Device Emulator: New Device Frames. Thanks for your time and appreciate your effort!

1 Like

Just to confirm, this is not a bug?

It doesn’t feel right that if I’m using code to disable any form of character movement, a character is able to move in a specific emulation mode.

If I am using a real touchscreen device, they cannot move with this code. If I am emulating, they can move in Studio with this code.

1 Like

Just wondering: do you mean moving with the on-screen UI controls, or with WASD/controller? Or do both still work when you run this code?

If you use the “new” input source, you will be able to move with that first. Then after using it, you can use the old one.

Looks like this may be related:

This bug appears to have been resolved a while back. Marking this as solved.