Skip to content
  • Our Product
    • Namazu Elements
      • What is Elements?
      • Why open source?
      • Docs
        • Elements in Five Minutes or Less
        • RESTful APIs Library
        • Security Model
        • Accessing the Web UI (CMS)

    Our Product

    A logomark with three layered rhombuses adorning the lettermark that says Elements in bold all-caps sans-serif letters.
    • What is Namazu Elements? Discover our easy-to-use backend network solution built for online games. Rapidly enables full-scale multiplayer games or online solo adventures.
    • Why open source? Is there a truly open source server backend for connected games? There is now. Download and run a local copy of Namazu Elements and try it for yourself.
    Download Namazu Elements

    Get started

    • Quick start Read our Elements 5-minute quick start guide
    • Documentation Read our developer docs for learning more about Elements
    • RESTful APIs A full list of core API specs for working with the Elements framework
    • Security An overview of the server-authoritative security model of Elements
    • Accessing the CMS Manage your game with ease via the Namazu Elements CMS.

    Co-development Reimagined

    • Reduce your costs Would you rather outsource your backend development? Hire Namazu Studios to build your server backend with the power of Namazu Elements.
      Co-dev

    Recent Posts

    • The watercolor-styled Namazu Studios logo over a giant namazu lurking in the depth
      Namazu Studios Featured in San Diego Business Journal
      22 Sep 2025 Press
    • Namazu Elements 3.1 Released – Service Layer Fixes, Secure APIs, and Steam Bug Fix
      22 Apr 2025 Release Notes
  • Case Studies
  • About Us
  • News
  • Services
  • Book a call
namazu-studios-logo
Book a call

Getting Started

  • Elements in Five Minutes or Less
  • Accessing the Web UI (CMS)
  • General Concepts
  • N-Tier Architecture
  • Security Model

Namazu Elements Core

  • User Authentication / Sign In
    • What is a User?
    • User Authentication in Elements
    • Auth Schemes
      • Auth Schemes
      • OAuth2
      • OIDC
  • Features
    • Applications
    • Sessions
    • Users and Profiles
    • Digital Goods
    • Progress and Missions
    • Progress and Missions (3.4+)
    • Leaderboards
    • Matchmaking – Comprehensive Guide
    • Followers
    • Friends
    • Receipts
    • Reward Issuance
    • Save Data
    • Metadata
    • Metadata (3.4+)
    • Queries
    • Web3
      • Wallets
      • Vaults
      • Omni Chain Support
      • Smart Contracts
        • Smart Contracts
  • Queries
    • Advanced Operators
    • Object Graph Navigation
    • Boolean Queries
    • Base Query Syntax
  • Advanced Operators
    • .name
    • .ref

Custom Code

  • Custom Code Overview
  • Windows Setup
  • Mac OS Setup
  • Ubuntu Linux Setup
  • Introduction to Guice and Jakarta in Elements
  • Structuring your Element
  • Packaging an Element with Maven
  • Deploying an Element
  • Preparing for code generation
  • Properties
  • Websockets
  • RESTful APIs
  • Direct MongoDB Access (3.5+)

Releases

  • 3.6 Release Notes
  • 3.5 Release Notes
  • 3.4 Release Notes
  • 3.3 Release Notes
  • 3.2 Release Notes
  • 3.1 Release Notes

Configuration

  • Matchmaking – Comprehensive Guide
  • Direct Database Access and Batch Configuration
  • Batch Samples
    • Mission Upload Bash Script Sample
    • Item Upload Bash Script Sample

RESTful APIs

  • RESTful APIs Library
  • Swagger and Swagger UI

Add-Ons

  • Custom Elements
    • Crossplay
      • Namazu Crossfire (Multiplayer)
      • Deploying Namazu Crossfire in your game
  • Game Engines
    • Unity
      • Elements Codegen
      • Crossfire
    • Roblox
      • Roblox Overview
      • Secure Player Authentication & Registration
      • Global Matchmaking
      • Roblox Security Best Practices

Troubleshooting

  • Common Issues with Docker
  • Local SDK
    • Unable to deploy application : dev.getelements.elements.sdk.exception.SdkElementNotFoundException
    • Could not load class : java.lang.NoClassDefFoundError
  • Namazu Elements Community Edition
    • Common Issues with Docker
    • Unable to deploy application : dev.getelements.elements.sdk.exception.SdkElementNotFoundException
View Categories
  • Home
  • Docs
  • Add-Ons
  • Game Engines
  • Roblox
  • Global Matchmaking

Global Matchmaking

Est. read time: 3 min read

Another major feature of the Namazu Elements Roblox Kit is custom global matchmaking, powered by Namazu’s MultiMatch system. This allows you to match players across your entire game (all servers) using flexible rules that you define, going beyond Roblox’s built-in matchmaking capabilities. With Namazu’s MultiMatch service, you can configure matchmaking criteria in the Namazu Elements Admin Panel (for example, game mode, skill brackets, team sizes, etc.), and then use the Roblox Kit to create or join matches for players at runtime. The kit exposes a simple REST endpoint (POST /app/rest/robloxkit/match) that your server scripts call when a player wants to find a game. The matchmaking service will either find an appropriate existing match or create a new match according to the configuration you specified. The response includes details of the match, such as a unique match ID and metadata, and indicates whether the player is designated as the match host. (When a new match is created, one player is marked as the host who will orchestrate the match, while others are added as clients.)

This global matchmaking approach means players from different server instances (or different places in your experience) can be pooled together by the backend. The Namazu MultiMatch system handles the logic of grouping players, so you’re not limited by Roblox’s server-bound matchmaking. For example, you could have players in multiple lobbies all request to join a “battle” match – Namazu will group them and respond with a match assignment. Because Roblox server scripts do not support real-time WebSocket connections, the kit uses a polling mechanism for match updates. Your server can periodically call a GET /app/rest/robloxkit/match/{matchId} endpoint to check if the match is ready (i.e. enough players have joined or a host has signaled to start). This polling design ensures compatibility with Roblox’s architecture, where continuous connections aren’t possible.

Using the Roblox Global Matchmaker #

This guide walks you through using the matchmaking system. In order to use the API, you must have worked through obtaining a session key for a Roblox user in Namazu Elements. This includes configuring a Roblox secret and an Application.

1. Ensure you have a Matchmaking Application Configuration #

In order to make use of the Roblox matchmaker, you must first have a Matchmaking Application Configuration. Refer to the existing Matchmaking Guide to configure one. The simplest configuration will be the easiest to use.

2. Obtain a Session Secret for the User #

Obtaining a session key using the same Application you configured from authentication guide and ensure that the Matchmaking Application Configuration matches the Application used to create the session.

3. Attempt to Find a Match #

The process of finding a match involves making an initial request to the POST /match endpoint. If there is a match meeting the requested criteria, the player will join that match. If there are matches meeting the requested criteria, the system will create a new match and wait for other players to join.

⚠️ Use Only Once ⚠️

Use the POST /match endpoint only once when the player enters the queue as it may result in many abandoned matches degrading player experience. While the database will eventually clean up orphaned matches, it may take time leaving other players waiting for a match which never will start. The Roblox Kit provides few guardrails due to the polling nature of the matchmaking system.

4. Poll for Start Conditions #

For each MultiMatch, Namazu Elements will assign a single player as the “host” player. The host flag designates which player is responsible for orchestrating the start of the game. Depending on the host flag, perform the following actions.

4a. Host Player Responsibility #

The host player will continue to poll the match until start conditions are met. For example, the minimum player count has been met to initiate a game. When to orchestrate the start will depend on the specific rules and design of your game.

Once start conditions are met, the host player will reserve a server for the game play session. UPon obtaining the reserve server id, the host will update the match using PUT /match/{matchid} and finally teleport that user to the server they just created.

⚠️ Reserving a Server ⚠️

Once the host reserves a server, the Roblox Kit will automatically designate the match as CLOSED, which will disallow other players from joining even if the match is not full.

4b. Non-Host Player Responsibility #

The non-host or “client” players will poll GET /match/{matchId} waiting for the match to start. Once a response indicates that a reserved server exists, then the client players will follow the host player to that match.

5. Delete and Leave Match #

Once the game has concluded, the host must clear the match from the database by calling DELETE /match/{matchId}.

⚠️ Leaving a Match ⚠️

In order to maintain consistency, we strongly recommending using DELETE /match/{matchId}/{profileId} to remove the player from an in-progress match. In the event that the host player leaves Namazu Elements will assign a new host automatically.

What are your Feelings
Still stuck? How can we help?

How can we help?

Updated on January 24, 2026
Secure Player Authentication & RegistrationRoblox Security Best Practices
Table of Contents
  • Using the Roblox Global Matchmaker
    • 1. Ensure you have a Matchmaking Application Configuration
    • 2. Obtain a Session Secret for the User
    • 3. Attempt to Find a Match
    • 4. Poll for Start Conditions
      • 4a. Host Player Responsibility
      • 4b. Non-Host Player Responsibility
      • 5. Delete and Leave Match
  • Documentation
  • Terms of Service
  • Privacy Policy
  • Contact us
  • Linkedin
  • Join our Discord

Namazu Studios LLC is powered by Namazu Elements, an Elemental Computing Inc. product.

Elements
  • Download
  • About Elements
  • Open source
  • Documentation
  • Support
About Namazu
  • Case Studies
  • About Us
  • News
Get in Touch
  • info@namazustudios.com
  • Book a call
  • (619) 862-2890
  • Linkedin
  • Discord

©2008-2025 Namazu Studios. All Rights Reserved.