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)
I wrote a entire module to return the device being used based on input and it follows with a Keybind name like:
If player input for BIND_NAME has DEVICE then does input equal DEVICE_BIND_VALUE.
Or in other words I have a folder (Bind Name), and it contains 2 strings (Keyboard, Gamepad) and each has a string based on the bind desired (Keyboard is ‘E’, Gamepad is ‘Y’ value). If input:Match(“Aim”) → device gets interpeted, looks at folder, compares, validates.
But I would still like to have access to “Is Keyboard” enabled and a InputObject data type for what the input device was.
We just announced that we are moving towards unifying our entire platform under cross-platform play. See this thread.