[Beta] Introducing Custom Matchmaking with Custom Signals


Hi Creators,

Last year at RDC we previewed Custom Matchmaking, a powerful way to control how players are matched in your games, improving both competitive and cooperative play. Since then, we’ve been hard at work finding a solution that works with our existing matchmaking algorithm while introducing custom variables that let you fine-tune it to your experience.

Today, we’re excited to announce the beta of Custom Matchmaking! You can start customizing how players are matched in your experience by signing up for early access through our beta program here. Rolling out this feature as a beta allows us to gather your feedback, identify usability gaps, and address any critical issues before expanding access. We will be expanding access to Custom Matchmaking in the next few months.

We want to include a diverse set of experiences across genres and matchmaking preferences for this initial release. This beta will be limited to experiences with over 500 concurrent players to ensure we gather enough data for a successful full launch. If you’re not selected for this beta, don’t worry – we’ll be making this feature widely available in the next few months.

How Matchmaking Works on Roblox

Matchmaking on Roblox happens in two steps — first, we find eligible servers that the player can join, filtering out servers that are full, private or reserved, servers that are about to shut down, etc. Next, all eligible servers are ranked and scored to find the best match.

Matchmaking Signals

Below are the current signals that we use to rank and score all eligible servers to find a match.

Signals Definition
Friends Prioritize matching players if they have friends that are currently in the server, or players that share the same IP address.
Occupancy Prioritize filling servers that currently have a higher number of players relative to the total capacity of the server.
Language Prioritize pairing players who share the same language setting.
Age Prioritize matching players who are of a similar age.
Latency Prioritize servers that have a lower latency to the player.
Voice Chat Prioritize pairing players that have voice chat enabled.
Device Type Prioritize pairing players that use the same type of device.
Play History Prioritize pairing players based on time spent over the last 28 days in your experience.

To learn more about how Matchmaking on Roblox works, check out our Roblox Learn video on Matchmaking

With this launch of Custom Matchmaking, you can:

  • Adjust the weight of each signal to fine-tune its influence on matchmaking decisions.
  • Define up to two custom signals such as skill level or game mode preference—and specify their weights based on what’s most relevant to your experience.
  • Preview changes before applying them, see how your configuration reflects in server score calculations.
  • Monitor your analytics to understand the impact of your configuration changes on individual signal metrics.

Get Started With Custom Matchmaking

Explore our documentation here to learn more about customizing matchmaking. Here’s a quick runthrough of how it works.

  1. If you’ve been selected for this beta, we’ll send you a message directly on DevForum to let you know that you can start using custom matchmaking for your experiences.

  2. You can begin customizing matchmaking for your game by navigating to your experience dashboard in Creator Hub, selecting the experience, and going to ‘Custom Matchmaking’ under ‘Configure’ on the left hand navigation bar.

  1. Here you’ll find the Roblox default matchmaking settings for your experience; this includes the current set of signals used to match players today, and the ‘weight’ that is used to determine how much it influences matchmaking.

  2. Behind the scenes, a weighted sum of various signals is calculated for each eligible server. This score reflects how well each server matches the player’s needs. The player is then assigned to the server with the highest score. A higher score means a better match, while a lower score suggests the server is less suitable.

Creating Custom Signals

You can also define up to two of your own custom signals, based on either the player’s or the server’s attributes. For example, you can create a signal based on a player’s skill level or a server’s game mode.

Our signals use existing attributes that we already have access to, like player location, age, and latency. Custom signals, however, are defined based on data from your data stores.

Step 1: Create a custom attribute. Go to Custom Matchmaking > Create Attribute. You can either create a Player Attribute or a Server Attribute.

Player Attributes

Player attributes are references to custom player data, such as Player skill level stored in Data Stores and are managed through Data Store APIs. You can use player attributes to compare attribute values of the joining player to that of other players in the server. For example, you can compare the joining player’s skill rating to the average skill of the players in the server.

Server Attributes

Server attributes are associated with the lifecycle of the game server and are managed using the new Matchmaking APIs. You can use server attributes to match players to servers with specific characteristics. For example, you can match a player whose preferred play mode is casual to a server with other casual players.

Step 2: Create the custom signal.

  1. Click ‘Add a custom signal’ at the bottom of the signal list.

  2. Here you can specify the signal’s name, add a description, specify which attribute to use, and choose how you want that attribute to be aggregated.

  3. You can then test how your signal will work when it’s deployed by adjusting the values under ‘Preview and Test Signal’.

Preview and Test

Preview and test server scoring to see how your configured signal weights impact server selection. You can experiment with different weight combinations and server characteristics.

To preview and test, click Preview and Test in the Create a Custom Matchmaking Configuration page. The preview shows you three mock servers with different scores and highlights the winning server. To see details about the formulas used for scoring, hover over each signal score result for each mock server.

Analytics

Use metrics on the custom matchmaking analytics dashboard to analyze the impact of your configuration changes on individual signal performance over different periods of time. For example, if you increase the latency weight in your custom configuration, you can see how it affects average player latency after the change.

The analytics dashboard includes charts for both Roblox and custom signals.

What’s Next

We expect to open access for all creators in the coming months. We hope to have a full release later this year. This release will include:

  • Preset Config Templates: To make it easier for you to get started with optimal matchmaking settings for different genres and types of gameplay, whether your game is competitive or social.
  • Experimentation & Insights: To analyze the impact of your configuration changes on player and experience metrics.
  • More Custom Signals: Expand beyond two custom signals for more complex matchmaking logic.

We know this has been a much requested feature, and we’re excited to get Custom Matchmaking in creators’ hands! You can also read more in our documentation here.

Apply here for the beta and we will reach out via a DevForum message if you’re selected – be sure to watch your inbox!

Happy creating!


FAQs

Why is sign up required for beta access?

  • We’re rolling this out as a sign up based beta to gather feedback, identify usability gaps, and monitor early usage. This will allow us to refine the feature and address any critical issues before expanding access to all creators in the coming months. We expect to open access to all creators in the next couple of months.

At RDC, you shared capabilities to create matchmaking rules based on custom parameters. Are those included in this release?

  • Not in this release. This beta focuses on providing you visibility into our default matchmaking algorithm, and gives you better control to tune it to your experience’s needs. Future updates will introduce additional customization options.

Will there be analytics to track impact of custom configurations on experience level metrics?

  • Yes! This initial beta will provide analytics on individual signal metrics and trends as a result of the config change. We are working on enabling annotations to experience metrics shortly to help you view before and after changes to metrics such as player engagement, monetization and retention. Later this year, we are hoping to provide experimentation capability to compare configuration changes before rolling to production.
277 Likes

This topic was automatically opened after 10 minutes.

Two great announcements in a row? Two features that have been requested for a lifetime? Released on the same day? This might be peak! Time to create my dream game Fortblox!

I do wonder, unless I missed something, this seems like it only applies to joining games, will this work for things like subplaces, cross-server matchmaking systems, and reserved servers?

Particularly excited about adjusting the weight of this, a lot of the servers I get matched in are terrible, especially in competitive games. This will help so many games and (if it works well enough) make more game ideas possible. Game changer.

Will this fix issues such as this? There’s currently an option to fill each server as much as possible, but it doesn’t seem to work 100% of the time.

14 Likes

Folks, is it my turn to say we’re back? Because folks, I think we’re so back.

33 Likes

This is great!

Device Type matchmaking will be huge in improving the quality and gameplay of skill-based games on Roblox.

7 Likes

First reorderable badges then this?? I feel spoiled, today is so peak

16 Likes

How will this work when it comes to handling multiple players matchmaking together?

7 Likes

This is absolutely amazing Roblox! Keep bringing the good updates!

4 Likes

would love to hear more about this, as well generally how Roblox thinks a queue system should work with this.

5 Likes

Love this new feature and hope it results in less laggy rivals matches. However is the Friends signal the reason you will basically always join a friend when you play the same game (even if they have joins off)?

5 Likes

The default matchmaking algorithm has the “Friends” signal weighted at 10, so it prioritizes friends in a server over anything else.

The next highest weighted item is at a 3, so you’ll always join a friend in the same server due to the huge weighting gap.

4 Likes

In my opinion, I think random joining a server by pressing the play button should prioritize joining u in a server closest to u to improve experience of the gameplay itself by having reduced ping. I also think that random joining shouldn’t account for friends, as it is already very easy to join a friend and often times users want to join new and random servers.

5 Likes

the timing of this update could not of been ANY Better. I was just started to look into matchmaking for one of my games since players who have played for a long time often were paried up with new players. and this is perfect for that.

GOATED UPDATE this is so useful and I can’t wait to play around with this and I’m sure this will help so many devs grow their games

2 Likes

actually a GOATED update, still kinda less useful than the avatar shoes, but still thanks

3 Likes
  1. Dont forget about DataStore Manager. Wow.
9 Likes

I wonder about a thing.

If you’d be able to customize matchmaking attributes and adjust data so it creates some sort of profile of your “play style”… does it eventually shape into undirect “personal informations”, and how does it work with GDPR? :thinking:

4 Likes

We getting custom matchmaking before gta 6 is wild

2 Likes

This is huge, Roblox is finally getting on the right track with their updates.

2 Likes

It’s the week of roblox treating us, I worry why they’re pampering us so much… what horrible update might they push next week

25 Likes

I have a question about this system. Will we be able to create custom matchmaking on a global state for like matchmaking into duels like 1v1 and 2v2s. Will we be able to use memory storage queues with this new matchmaking system. For example, how other popular games handle matchmaking when the player queues up for a duel or a match. If the player is solo queuing in a 5v5 and needs teammates. Will it find those teammates with custom scripts. I am curious on how far we can push this new custom matchmaking to create this unique style without having to use memory storage service all the time for our own global matchmaking system.

I am really excited for this new API Roblox is giving us.

2 Likes