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.
Why MatchmakingService?
Handles massive queue requests (1000s/sec)
Ultra-fast response times (match found in seconds)
Easy to set up – only 10 lines of code
Unlimited matchmaking IDs – separate queues for game modes
Dynamic match sizes – simply change the
Size
argumentGlobal matchmaking – works across multiple Roblox servers
Powered by Redis & Sharding for maximum speed and scalability
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)
No initialization needed – create unlimited queues just by using new
Id
s.
Change match sizes on the fly with the
Size
parameter.
How It Works
- Uses Redis for centralized memory management.
What is Redis Explained? | IBM - Implements sharding to split requests across multiple Node.js servers.
What is Database Sharding? - Shard DB Explained - AWS - Uses load balancing to process thousands of concurrent requests efficiently.
https://www.cloudflare.com/learning/performance/what-is-load-balancing/
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.
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)
Note: Requests themselves aren’t capped – pricing only applies if your game consumes high resources to help cover server costs.
Need help integrating?
Our team can assist you with setup and optimization for your game.