[RELEASE] Roblox MatchmakingService – External Server, Easy Setup

Roblox MatchmakingService

Need a fast, scalable matchmaking system for your Roblox game?
Our MatchmakingService can handle thousands of queue requests in under 3 seconds – perfect for games expecting large player counts or competitive matchmaking needs.


:high_voltage: Why MatchmakingService?

  • :fire: Handles massive queue requests (1000s/sec)
  • :stopwatch: Ultra-fast response times (match found in seconds)
  • :hammer_and_wrench: Easy to set up – only 10 lines of code
  • :counterclockwise_arrows_button: Unlimited matchmaking IDs – separate queues for game modes
  • :bar_chart: Dynamic match sizes – simply change the Size argument
  • :globe_with_meridians: Global matchmaking – works across multiple Roblox servers
  • :floppy_disk: Powered by Redis & Sharding for maximum speed and scalability

:technologist: Example Code (10 Lines)

MatchmakingService:Login("API_KEY", "USERNAME")

ReplicatedStorage.JoinQueue.OnServerEvent:Connect(function(player)
	if MatchmakingService:InJoinRequest(player) then return end
	MatchmakingService:StartJoinRequest({Id = "Ranked", Size = 2}, player, {
		MatchFound = function() 
			ReplicatedStorage.MatchFound:FireClient(player)
		end,
		JoinedQueue = function() 
			ReplicatedStorage.QueueJoined:FireClient(player)
		end
	})
end)

ReplicatedStorage.LeaveQueue.OnServerEvent:Connect(function(player)
	if MatchmakingService:InJoinRequest(player) then
		MatchmakingService:CancelCurrentJoinRequest(player)
		ReplicatedStorage.QueueLeft:FireClient(player)
	end
end)

:white_check_mark: No initialization needed – create unlimited queues just by using new Ids.
:white_check_mark: Change match sizes on the fly with the Size parameter.


:wrench: How It Works


:cross_mark: Why Not Just Use Roblox MemoryStore?

While Roblox’s MemoryStoreService (Queues, Sorted Maps, etc.) can be used for matchmaking, it has major limitations that make it unsuitable for high-scale, competitive games:

1. Limited Throughput

  • MemoryStore has strict request rate limits (e.g., 150 requests/sec per server).
  • With thousands of players joining/leaving queues globally, you’ll quickly hit these caps, causing:
    • Queue delays
    • Failed requests
    • Slower matchmaking

2. No Built-In Sharding or Scaling

  • MemoryStore data is shared but not load balanced automatically.
  • You’d need to build your own distributed matchmaking logic, which is complex and error-prone.
  • With our service, sharding and load balancing are fully handled, letting you scale to 100k+ CCU without writing extra code.

3. Slower Match Creation

  • MemoryStore queues require you to poll and manage matches manually, adding overhead.
  • Our system uses optimized Redis pipelines and multiple servers to instantly process thousands of requests in parallel, creating matches in under 3 seconds.

4. No Global Worker Management

  • Roblox servers can’t act as dedicated “workers” to manage matchmaking.
  • Our service offloads this to external Node.js servers, specifically designed for high concurrency and matchmaking logic.

5. More Flexible & Future-Proof

  • With MemoryStore, you’re limited to Roblox’s APIs and quotas.
  • Our solution lets you:
    • Create unlimited queue IDs and match sizes.
    • Scale horizontally with zero configuration.
    • Handle complex matchmaking logic (ranked, regions, MMR) without Roblox rate caps.

:money_bag: Access & Pricing

Join our Discord to get started: Roblox MatchmakingService
Open a ticket to request access (Free or Paid tier).

  • Free Tier – 500 queue requests/minute
  • Basic Tier – 500–5,000 queue requests/minute → $20/month
  • Unlimited / Professional Tier – for 10k+ CCU games handling thousands of requests/sec → $300–$500/month (cost-based pricing)

:small_blue_diamond: Note: Requests themselves aren’t capped – pricing only applies if your game consumes high resources to help cover server costs.


:speech_balloon: Need help integrating?
Our team can assist you with setup and optimization for your game.

7 Likes

hey there, just wanted to ask if your backend is using nodejs, so is it fast? can it slow down (response time) when having high requests to ur api at the same time? have u tried to benchmark or stress test it? is it using native node http or its using framework such like express, fastify, koa, hapi, total.

can u give more specific detail about this 1000rs? its for all at once or its for each key? if its for all, then that 1000rs is pretty slow for large scale business.

and im also wondering why ur not take a look on other programming languages? like golang thats much faster, higher throughput and more memory efficient than nodejs and its also support redis. also to send request to ur api endpoint, isnt it need to use roblox httpservice? and isnt httpservice has it limitations?

have u tried Valkey? its much faster than redis.

also cool work

1 Like

Hello, and thank you for your thoughtful feedback. I’d like to clarify a few points:

The “1000 requests per second” refers specifically to queue join and leave operations—not total system throughput. Our backend is built with Node.js primarily due to my stronger experience in that ecosystem, but I’m absolutely open to exploring other languages like Go in the future for performance optimization.

To handle large-scale concurrency, we use load balancing to efficiently distribute and manage socket connections. This architecture allows the system to scale horizontally, supporting millions of concurrent users while maintaining responsiveness.

I appreciate you bringing up these considerations—it’s valuable input as we continue improving the matchmaking service.

1 Like

have u tried Valkey? i heard its faster than redis by existing benchmark data

I’ve heard of Valkey and am aware of the benchmark data showing its speed advantages over Redis. However, I haven’t personally worked with it yet. It’s definitely something I’ll look into as we continue optimizing our system.

1 Like

your invite is currently invalid.

1 Like

hi, your discord server link is invalid by the way