Matchmaking · registry · server browser

Get players onto a live server without pretending every game needs a research-grade matchmaker.

Crux currently matches exact game_mode + region buckets into groups of two, and pairs that queue with a dedicated-server registry, heartbeats and a live server browser. If you need MMR, parties, backfill or latency optimization, this matcher is not enough yet.

Current matching rule
queue key:
  game_mode = "duo"
  region    = "eu"

group size: 2
metadata: stored, not matched

server:
  register → heartbeat → browse
Verify before you integrate

The limitation is part of the contract.

The public OpenAPI spec documents the queue and server-registry endpoints. The current matcher is intentionally narrow; evaluate it against your actual party/MMR/backfill requirements before integrating.

Live API status

A live check of the hosted API right now. No made-up uptime percentage and no hidden demo environment.

Check current status

Public API contract

The hosted HTTP surface is documented as OpenAPI. Inspect the wire format before choosing an SDK or writing an adapter.

Open the spec

MIT client SDKs

The JavaScript, Godot, Unity, and Roblox client SDK source is public. The hosted backend itself remains a managed proprietary service.

Inspect the SDK source

Documented exit path

Read what is exportable today and the written commitment for advance notice plus an export window if the hosted service winds down.

Read the exit guarantee

End-to-end matchmaking kata

Join two players, poll tickets, form a match and hand them to a live server from the registry.

Run the queue exercise
01

Register live servers

Trusted servers register an id, region, address, mode and map, then heartbeat to remain visible. Stale servers fall out of the browser.

02

Queue by exact bucket

Players join by game mode and region. Today Crux forms pairs; metadata is available to operators but does not influence the matching decision.

03

Report server lifecycle

Trusted servers mark matches started and completed so players can leave the active match lifecycle and queue again safely.

Use it when

Your game needs a reliable queue and handoff, not a configurable matchmaking science project.

For co-op, prototypes, small competitive modes and games whose real selection logic is still simple, this can remove a lot of plumbing. For ranked games with skill bands, party constraints, latency scoring or backfill, keep a specialized matcher or build that layer separately.