UserInputService.TouchEnabled is returning false for device emulation when testing local server in Studio

I’m trying to test, in studio, game features with multiple players on phones/tablets. However, around 75% of the time when the player loads in, UserInputService.TouchEnabled is returning false, and instead UserInputService.KeyboardEnabled is returning true and causing the Touch UI to not load. Without the Touch UI I can’t move the client.

Steps:

  1. Open up a brand new Baseplate
  2. Set the device to any touch enabled device, in the video I have it set to iPhone 7 Plus
  3. Start a Local Server with 2 players or more
  4. The Touch UI doesn’t load for some clients, as UserInputService.TouchEnabled is returning false.

Video:

Output from Video:

Expected behavior

UserInputService.TouchEnabled should be returning true for touch device emulation in studio for local server tests, and the Touch UI should load, so it can be interacted with.

I have found out if you spam click inside the client window screen, it works as intended. I believe a simple fix would be to automatically set UserInputService.TouchEnabled to true on client start up, if the client is emulating a touch device. Otherwise the PlayerScripts.ControlScript doesn’t think this device is touch enabled, and therefor does not create any Touch UI.

Thanks for the report! We’ll follow up when we have an update for you.

We have improvements coming for touch input in emulator and will be addressing this with that feature

1 Like

When do you suppose we could get those improvements? Trying to properly test and optimize per-platform is pretty tedious right now.