How would I make a "Looking for Match" thing like Bedwars?

Hey everyone!
I was wondering “How do I make a looking for match system like Bedwars?”
So I looked everywhere on the internet and found nothing.

Examples:
image
image

Could you guys possibly help me? Thanks!

8 Likes

So the easiest way to go about this is to have some sort of datastore that stores all current running games and a game that needs more players will tell the lobby that it is looking for players.

1 Like

Ok, so how exactly would I do that? Create a DataStore table?
I’ve recently had a break from Roblox, so I’m quite rusty on this.

Until memory stores get released to the public, I would recommend using an external webserver.

The webserver would be in charge of handling requests related to joining & leaving the queue. You could then have the webserver check the queue every 5 seconds and match players based on their data.

The actual Roblox server would also have to check the queue status (about as often as the webserver) to make sure that the players who matched get teleported to the appropriate server. This could get a bit tricky as you also have to give one of the servers the role of actually reserving the server.

This will of course require you to write the actual webserver, and then something to interact with it. If you don’t want to deal with the trouble of this then I suggest using Playfab. It’s a great alternative that provides matchmaking and a lot of other features. Please keep in mind that it’s not a free service meaning you will be charged for it. The pricing is available here.

2 Likes

Do you have an example/example script I can learn off of?

MessageService could be used for a queue system like this. Don’t rely on it though, but it is a possible option.

Is MessagingService/MessageService the best option? Or is it an alternative that I could use for later?

Plus, I dont really want to run a webserver lol.
oh, and any Easy.gg devs that see this, hi!

I am not getting how this would be possible in PlayFab. If I am in a queue it creates a unique MatchID. Roblox doesn’t let me make my own teleportation id. And if I used MessageService to create a private server that means each person will create their own private server and no one will be in the same private server??? And messageservice is not reliable anyways. I learned that owner of Bedwars says they used some webserver.

Bedwars uses Playfab. You will have to make sure only one server reserves the actual server that players get teleported to, and that the info for that is then propagated to all the other servers that the other players queued from.

This is just a guess, but you could probably make each server take the first queue member and check if they are in that server, if that’s the case, then that specific server will be the one in charge of reserving the private server. This leaves you with only having to broadcast the reserved server code. You could probably make an entry in a datastore with the key being “MatchCode_{MatchId}” and then have the other servers poll that constantly until a code appears.

3 Likes

Are there any example scripts that use MessageService instead?

Not that I am aware of, at least.

Hey, sorry for the bump but I’m still wondering. Is there no free way instead? Or even if it’s paid how do you use Playfab? (Sorry I’m a little dumb)

hi , there is a way you can do it now since Roblox added a new feature called MemoryStore. It can help you to make queues for matchmaking and works globally like messaging service. Here is the link to it.

2 Likes

This would make things a lot easier to control the servers without using something like Playfab. Thanks!
By the way, I’ve read the post and seen a bit of trouble using MemoryStore - but it should be fine.

2 Likes

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