Is there a way to get a player's device type from server?

I want to know if they’re on PC, phone, tablet, or console.

3 Likes

If there isn’t you could always set up a remote event

3 Likes

Unfortunately, no. You can figure out on the client based on if it is a 10 foot interface or has a touch screen, but that info never reaches the server. Although I can’t find a video of the presentation, you can view the slides from RDC to get a bit of an idea why.

4 Likes

Why do you want to know what type of device a player is on? Depending on your use case there are different solutions. For example, if you are trying to check if the player has a gamepad, checking if they are on an Xbox One is not a good solution because PC players can also be using gamepads.

1 Like

Analytics

3 Likes

Why is it called TenFootInterface though?

Dev Stats requires to know what type of device the player is on.
image

I understand this argument; however, Developer Stats for analytics shows us there could be reasons to want to know what type of device the player is on. MrHistory may be onto something by wanting to add his own analytics that the Developer Stats lack. Perhaps it would be beneficial to all to know what those things are, and maybe it could be added to the pipeline?

4 Likes

Because players typically sit further away (i.e. ten feet) from the screen when playing console. (https://en.wikipedia.org/wiki/10-foot_user_interface)

4 Likes

Ooohhh that makes a lot of sense, thanks.

Makes sense why we don’t have a form factor API. I don’t see why we can’t have a device string (i.e. “windows”, “xbox one”, “ipad 2”) though.

2 Likes

We don’t want Developers special casing devices by exposing an API that allows Developers to see what device they are on. If there is something you want in Developer Stats, please post it in Feature Requests or here so that I can make note of it when Developer Stats gets overhauled.

2 Likes

It’s so you can’t make you game really fully compatibility with every device you have to guess that it will work on every device and work on the 4 stats of Tablet, Phone, Computer or Console. The main worry is that you’ll give a person playing on a computer a really powerful weapon and punish people playing on a console because there’s a few developers here that would abuse a feature like that. It can be already done to some extent because I’ve been to 1 game where;

TouchEnabled == true then
GuiText = "Sorry you can't play on mobile because you suck"
player:kick()

It’s a shame such paranoia and strict privacy exists because it really cripples developers ability to make the game compatible for every device that supports ROBLOX. It’s a shame ROBLOX can’t follow in any other game engines footstep and allow access to more specific device information like every game in steam collects basic information from you like RAM, CPU, GPU and OS but nothing more and nothing that can say “hey this user is Bobby from France” developers on steam use this information to make sure they can isolate issues for certain machines and configurations and help resolve issues in the game.

Then ROBLOX starts to filter your game from devices and you the developer try frantically to find out why but you can’t. Maybe iPad 2 crashes but not iPad 3? How could you tell, easy with one stat “Tablet” now go off and find out why it’s crashing. Eventually you give up and destroy mobile support completely to make it less of a headache and frustration to a problem with no solution.

7 Likes

You are correct that is a major concern. We really want to follow the vision of “Create once and play anywhere.” As we take a look at Analytics this year we truly believe that there is a lot missing and we are more than happy to take Feature Requests.

I was recently talking about the possibility of supplying such information to developers and believe it is something that we will do in the future. We also understand that being filtered on Mobile devices may not be ideal for everyone but we have already taken steps in order to expose this to developers. There is a lot that can be improved upon in this case.

We know. We are listening.

5 Likes

I want to be able to use player device types in my own analytics, which is a valid use-case. Maybe if the player’s device type was only exposed on the server, then it would be much less likely for people to special-case their user-facing client code

1 Like

I don’t see how special casing would hurt anyone but the developer. In order for it to hurt the Roblox playerbase as a whole, a large portion of the developer community would have to agree to do something bad to a particular device, which would never happen.

4 Likes

They have an Enum for it, but they don’t have a way for us to get the platform. Documentation - Roblox Creator Hub Roblox has a function that lets you get the platform, but it’s Roblox security locked, so you can only access it from CoreScripts.

3 Likes

I understand your logic about create once and play once. And also how some devs may unfairly balance different platforms.

But I’m going to be honest, none of that really matters. It’s the developers’ mistake to make frankly.

While it is absolutely true that one should rely on more than just device platform to adjust their game (for example, modern phones can run fully fledged console and PC games with great graphics and frame rates, and a tablet might be larger than a touch screen laptop) and focus on also looking at input type and screen size, it would be far more convenient to be able to work off a more specific device type and just from there than to try and guess, which brings me to my next point and biggest argument:

Roblox devs simply just do not care. We’ve been misusing the APIs for ages to try and determine platform type. Screen resolution, touch enabled, no mouse, accelerometer, gyroscope, etc are not fully reliable methods to determine what platform we’re working with but often times we’re forced to use this approach.

Many PC and Console games which are playable on mobile phones use specialized UI for mobile experience. Nearly every game engine in existence will tell you what platform the user is on.

So my point is that while the principal of not only using platform type is something I agree with, bottom line is devs have and will be circumventing this and it would make our lives so much easier for both gameplay and analytical purposes to have an official API.

Roblox should empower us to navigate platform compatibility with better APIs, rather than just telling us no and forcing us to use hacky work-arounds.

Just because the phone, computer, and console market is rapidly changing doesn’t mean knowing what type of device someone is on couldn’t be immensely helpful.