Duplicate reserved servers created for XBox users with cross platform disabled

Just discovered this cursed behavior today.

This is being used to exploit our game that relies on each team having 1 reserve server. We didn’t know it was possible to have 2.

8 Likes

this is a huge discrepancy and needs to be addressed as soon as possible by Roblox, we need a way to check if a player on console has crossplay disabled.

6 Likes

checking if a player has crossplay enabled would allow developers to separate their lobby servers with other player’s servers, but then those players would never find a match to play in.

1 Like

If those players chose to disable crossplay then why are you concerned with trying to bypass it? If there are a lack of players in the game on Xbox, and they chose to disable crossplay, that’s not on the developer. The bigger issue on what actually happens without the ability for devs to check if crossplay is enabled per player was already discussed in the replies of this thread

A solution would likely need to work better than just having developers do the work of checking if a player has crossplay enabled or not. If a PS5 player and an Xbox One player both have crossplay off, I don’t believe they go into the same servers. If they do, it’s still possible a future supported platform won’t work like this. That means there’s potential for two users to have crossplay off and also still be ineligible for the same servers.

We need a solution that scales better and is future proof. A solution which after we work with it, our code should work for any future platforms Roblox is supported on.

1 Like

I’m not sure what your point is here. Roblox has no choice but to place console players (i.e. Xbox) into separate servers if crossplay is disabled. There is no other possible solution I can think of that can scale well. Otherwise, having the ability to check if players have crossplay disabled is absolutely the best way for devs to handle these cases for custom matchmaking implementations.

Below is one example of the problem explained by someone else so you don’t have to take my word for it.

The best solution I’ve seen proposed so far (which I know I’m repeating) has been to add some kind of CrossplayId, which a developer can include within their matchmaking algorithm. In my case, it would allow me to append the id to a string that I use to search for open servers. It seems the most simple and straight forward.

But anything would be better than the current situation; a user with cross-play disabled has the potential to essentially brick a game that uses a custom matchmaking system.

If the game doesn’t have thousands of players, then console players who have crossplay disabled will never find a match to join and will not understand why, I think the option should be developer controlled unless it’s an XBOX guideline to have an option like this.

It is most likely Xbox guideline. Roblox didn’t make the current annoying functionality just for fun or something. So, the question is how can we have a middle ground that keeps Roblox in compliance with this guideline and make it acceptable for the developer. There are no perfect world solutions, i’d refer to the responses above such as from joesmaller.

1 Like

Hi, I’m from the Consoles team. We need to do some investigation with Microsoft and Sony technical requirements to see if the cross-play setting is something we can share with developers, as it’s usually only available for a user. I’ll also follow up with Matchmaking to ask about what solutions they thought of and whether sharing the cross-play setting would be okay. The cross-play setting is something we already have set up in the backend, so I feel like most of the concern on our side will be whether it’s something we can provide.

10 Likes

Why would we not be able to access that information? Personal info concerns? I ask because from our PoV, this seems like a necessary piece of information to develop a game cross-platform, just like knowing what the user’s current input device is.

1 Like

Probably same reason chat got disabled on Xbox a few years ago. Consoles are subject to a lot more regulation both from organizations like ESRB or PEGI, as well as self-imposed regulation by the likes of Microsoft of Sony than PCs or mobile phones ever will be. All these issues are a nightmare to get through and I don’t entirely fault Roblox for not being able to come to an agreement with Microsoft and Sony about this.

If it is not possible to provide this to developers, please at least look into implementing a toggle that completely blocks cross-play disabled players from joining reserved servers (kick them with a message like “please enable cross-play in settings”?). I know this seems like a nuclear option, but the current unchangeable behavior is worse and simply unacceptable for certain types of games.

2 Likes

Hi all, currently we’re looking at a solution where we add a field to the Player object that’s based on a user’s matchmaking context. This field has three options:

  1. Default (PC, Mobile, crossplay-enabled)
  2. Xbox Only
  3. PlayStation Only

I believe this is better than providing a cross-play setting because it properly distinguishes between Xbox and PlayStation players as well.

Additional context here: API to Determine Server if Server is console locked (CrossPlay Disabled)

8 Likes

Really good change! Only nitpick is: Why have it on the player instead of on game / DataModel? If Player1 is Xbox only, that means so is Player2 and Player3, it’s the server that we care about being crossplay.

If I’m running code when the server shuts down on game:BindToClose, I don’t necessarily even have a Player object, or general server code that’s making changes without waiting on PlayerAdded. Workarounds are obvious but a field on Player is slightly more awkward for no apparent gain.

3 Likes

I don’t quite follow – how can a server be considered cross-play disabled? If a player with cross-play disabled joins a server, then leaves, can’t a player who has cross-play enabled join the same server?

1 Like

My assumption was that a given game.JobId is either crossplay-enabled or crossplay disabled, and that even if all players left an Xbox-only crossplay disabled game.JobId, and we teleported crossplay-enabled players to the server’s access code, they’d join a crossplay-enabled game.JobId of that server access code.

If that were true, I was saying I would prefer a property on game for the type of crossplay of the game.JobId.

Either I’m totally wrong about that, or I was being very unclear that I was referring to a server instance (game.JobId) and not a server (server access code, which multiple server instances can exist for either over time or at the same time for crossplay restrictions).

If I’m wrong, it would be useful to know for sure so I can handle that case.

1 Like

I’ll ask for clarification with Matchmaking

1 Like

Having cross-play disabled in some games would result in extremely long matchmaking times.

This request has been addressed with API to Determine Server if Server is console locked (CrossPlay Disabled). You will still have reserved servers with the same PrivateServerId, but you can use game.MatchmakingType to distinguish between whether the user is cross-play enabled or disabled.

1 Like

Is it not possible to allow developers to decide whether they want to allow cross-play disabled players? Or even better, control that setting themselves?

Picture a Fortnite match where 100 players successfully queue up for a match, then 10 of the players get teleported into one server and the rest into a different server. All the developers are able to do is see whether the server had been made console only or not and then kick the 10, ultimately resulting in them never trying the game again.

The other scenario would be checking whether the lobby server is console only or not and then matchmaking based off of that, but right now matchmaking with 100 players in the lobby takes 30 seconds on average. Try guessing how long it would take with a total cross-play disabled pool of 3 players…

Losing a few players isn’t all that bad but Roblox should be better when it comes to console support or the game availability on console will stay the same.