No luck. Returns false on every platform.
Potential security loophole. Someone executes arbitrary clientside Lua code (not uncommon) to tell the server it’s not what it actually is. Unlikely, but if left alone it will eventually get exploited, especially if this kind of detection becomes common.
P.S. If anyone thinks this kind of security loophole is a joke, note that ROBLOX has now had at least two instances of animations (which are seemingly harmless) being exploited and game-specific exploits (e.g. Apoc) that target the game’s networking. Also, where I work in Application Security, half of our problems come from obscure loopholes like this that you’d never expect would be abused. People will use whatever they can to break stuff.
We implemented it that way for the egg hunt; people ended up exploiting it.
for the sake of showing real numbers, our honeypot logged about 4,300 unique users who fired remotes maliciously from april 4 to april 24
I think it’s unlikely that we’ll add this API given that our goal is for all players to be able to play together regardless of platform. If you have more specific use cases that would be helpful.
Can you provide more details about why you need a specific tutorial for Xbox than other platforms? If your instructions vary by input type (mouse vs gamepad) you may want to check out UserInputService:GetLastInputType() and UserInputService.InputTypeChanged. That way you will be able to support plugging a gamepad into your PC. See Documentation - Roblox Creator Hub.
Uhh but microsoft servers != amazon servers
The desire is for even XBox players to play together with other platforms? Out of curiosity then, why are they on a separate platform to begin with? Technical issues?
For server restrictions, XBox servers are like a completely different game since they don’t share a playerbase with other platforms, so anything I might do in another game (e.g. tweak game to accommodate lower player count across playable servers, tailor servers to suit different average play times (do I need to add resource respawns if XBox servers are open 10x as long?), etc). If XBox servers are merged with other platforms though (hopefully soon), this becomes an obsolete issue.
This isn’t concerning server restrictions, but I enumerated a number of use cases for querying user platform clientside because input type was insufficient, which garnered quite a bit of support.
A tutorial system may have not been the best example of a use case. In my implementation, the tutorial text is stored on the server. TouchedEnabled is retrieved from the client for the tutorial, I can do the same for :IsTenFootInterface(). Doesn’t matter if it can be exploited. However I would like release Pizza place to Xbox with pets disabled temporarily and would need a secure way to determine if the current server is an Xbox exclusive server.
One of the initial Xbox requirements was that Xbox players were only able to player with other Xbox players.
Why don’t you want Xbox players to have pets?
Why are you submitting this from the server?
Just store different instructions on the client and check the platform?
You can presuppose that if someone is an Xbox owner then they will not know how to properly take care of a pet. (I’m speaking from personal experience.)
It’s not a good example of a use case because I chose to store tutorial text on the server. I take back what I said.
You describe it in the past tense. Is it no longer a requirement? If so, is the current blocker just time/resources?
I’m not sure if it’s still a requirement.
Nope.
I don’t know for sure, but I believe the requirement was lifted just under a year ago (or at least for one game it was).
Rocket League was the first Xbox game able to play with PC players. Not sure if any more have been allowed since then.
So a little off topic (maybe not???), but why can’t we just unlock this: Documentation - Roblox Creator Hub
It does exactly what this thread is looking for, it’s already implemented requiring very little work to unlock, and … well, it has actual use cases. Some examples I can quickly list are:
- rewarding players for using a specific platform
- ensuring the User Experience is correctly adjusted to the platform type, regardless of being “cross-platform” (cause lets face it, even you build a “common core” like Microsoft did with Windows 10 and made the API more UWP-like, there’s still going to be times where knowing exactly what platform you’re on will allow developers to correctly adjust their games for the best experience)
- another random idea i had but forgot, so ill edit it in later if i remember (whoops)
Engineers are trying to force proper design. They’re afraid users will use it to determine input type instead of using the appropriate methods. There have been a number of threads providing good reasoning for determining user platform (e.g. the one I linked earlier), so now it’s just a matter of resources and whether the client team values preventing one of the very, very many ways the API can be misused over the use cases presented on these threads.
GetPlatform doesn’t do what this thread is looking for. If it was unlocked, it would always return Windows on game servers because that’s what they run on. You can already make your own GetPlatform by hacking at the RNG.
We want to be able to tell if the server specifically hosts Xbox users as a stopgap measure until Roblox unifies Xbox and PC servers.
I personally just use UserInputService & see what kind of input devices are connected
Devices:
Keyboard = Computer
Gyroscope + TouchEnabled = Phone
Gamepad + NO Keyboard = Console
Then I send the first player’s platform results to the server. Works fine for me (at least as of what I know of)