API to Determine if Server is console locked (CrossPlay Disabled)

So long as every player in the server is bound to the same matchmaking context, then I think it does not make a difference to me.

If a server is marked as a “Crossplay enabled” server, then I would expect all players to be crossplay enabled players, and as such only able to join crossplay enabled servers. In which case, I can serve everyone in the server the same in-game serverlist.

3 Likes

Hello, some minor changes to the proposed API:

You will see a new Enum called MatchmakingType with three values: Default, XboxOnly, and PlayStationOnly, and the value will exist on the server DataModel via game.MatchmakingType.

More details to come once I am able to get code working, tested, approved, etc.

8 Likes

Sounds fantastic. Do you have a rough timeline to when we can play around with it? This quarter? Next?

I’ve made some changes which seem to work, but I honestly have no idea whether it will work in the larger scope of matchmaking. I need some more feedback from the engine folks that understand how the server & matchmaking logic works before I can be sure of my solution. That said, I really can’t imagine this change being that hard to make, so I’m hoping this’ll be available by the end of this quarter.

6 Likes

Hey all, as I’ve just been linked, this change was made into release 662. Please let me know if you can see the new value in Studio.

Edit: I’m going to run this through QA first to double check its validity before enabling it on production (targeting next Monday), but you should be able to see the new value in Studio now. Enabling it on production would just mean its value is reflected correctly if you’re in a game that is XboxOnly or PlayStationOnly. Right now, it will always be Default.

12 Likes

Yeah, I see the value when making a script (hope that’s what you meant):


I didn’t record my whole screen so the autocomplete looks a bit weird.

Also, the rest is understandable. Better to double-check than to launch something that might not be ready.

2 Likes

I am planning to add console support for a game that utilizes reserved servers and absolutely needs to know which players will be put into the non crossplay servers, it seems like the only way to do this will be to check the current lobby server’s .MatchmakingType.

Is it really not possible to disable non crossplay in your game completely? Just imagine how many players out 1000 will have crossplay disabled… Even now, sometimes creating a match takes longer than 30 seconds.

I don’t think you can prevent a non-crossplay player from spinning up a server and joining your game because Matchmaking would have to create an API that lets you block a player from joining before they even create a server for the player. If that’s what you need, it’s probably a feature request for Matchmaking, as that would be server-side.

However, can’t you kick a player out of your server with a message if they have cross-play disabled? e.g. pseudocode like this:

-- server script
when a player connects:
    if game.MatchmakingType ~= Enum.MatchmakingType.Default then
         kickPlayer(player, "This experience does not support cross-play disabled players. Please enable cross-play in order to play.")
    end
1 Like

That would result in an instant dislike by the player that was kicked. It would be better if it was possible to disable the play button for those players.

In that case, I think we would probably need some collaboration with Discovery to check the user’s cross-play setting against the game’s crossplay setting (which might not exist, so we would need to add that field to game settings somewhere). I agree it would probably be the best experience for a cross-play disabled player to not be able to join in the first place, so feel free to make a feature request. As you said yourself though, not a lot of players have cross-play disabled so it shouldn’t be a huge loss to your like ratio.

3 Likes

If I had to take a guess at this, I would think that this is beyond Roblox itself. Microsoft and Sony most likely have requirements that all apps on their stores must adhere to. Respecting crossplay is most likely one of them.

The discovery idea sounds pretty feasible though

Hi everyone, I turned on the change for production yesterday and was able to confirm the value was set correctly to PlayStationOnly on my cross-play disabled PS5 devkit.

6 Likes

We had a chance to implement this in our game, and it seems to work great:

In the above we can see that Xbox players have a unique serverlist that is different from PS5 users and from Crossplay Enabled users.
Sorry for the low quality screenshot :slight_smile:

1 Like

Fantastic news! I’m glad that it’s working for you. Thanks for providing all the details to help me with implementing this feature.

1 Like

Can’t you just check if
GuiService:IsTenFootInterface
is true and disable the play button?

Can you provide me with a method to turn off the play button for consoles which have cross-play disabled? I think not
image

3 Likes

You can disable console users from playing the game if that’s what you mean.

That’s not a solution if all you want to keep out are console users that cannot crossplay with everyone else.

My problem is that console players with crossplay disabled have a much smaller pool of players in the lobby. My current solution is to disable console altogether, yes.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.