Skip to main content

Using a Model with a Matchmaker

A model on its own tracks nothing. You bind it to a matchmaker so that tickets for that matchmaker's game mode carry real ratings, and so results can be reported back. You do this with one node: Skill Rating Model.

See Matchmaking Nodes for the full node reference and Creating a Matchmaker for the editor basics.

Attach the model

  1. Open the matchmaker in the graph editor.
  2. Add a Skill Rating Model node from the palette.
  3. Select your model in its side panel. The node shows a summary of the model's engine, algorithm, format, team shape, and starting μ / σ / β.
  4. Connect it into the flow, then Publish.

Where it goes in the flow

The Skill Rating Model node declares which rating applies; the Skill Rule node is what actually pairs players by that rating. So the model node's output connects only to a Skill Rule:

Ticket Input ──► Skill Rating Model ──► Skill Rule ──► Team Composition ──► Output
(which model) (pair by skill) (shape the match)
  • With a Skill Rule, players are paired by their real rating.
  • Without a Skill Rule, ratings are still tracked and reportable, but matching is first-come-first-served (FIFO) and the rating is ignored for pairing.
  • A Skill Rule with no Skill Rating Model node pairs on whatever mu / sigma the ticket was created with, and evaluates its rule on the engine's default β instead of the model's. Ticket creation then rejects a sigma of 0 or less.

The editor surfaces these as non-blocking suggestions, so you will see a hint if a model is attached without a rule, or a rule without a model.

Ratings resolve per game mode

Binding is by game mode, not by graph wiring. At runtime GameFlow resolves the model for a game_mode from the live matchmaker that handles it (if more than one does, the most recently updated wins). The node-to-Skill-Rule connection is a UX guardrail that steers you to the useful setup; the rating itself applies to every ticket for the mode regardless. This is why your game reports results with only a game id and mode, never a model id.

Match the team shape

The model declares a team shape (number of teams × players per team). It should match the Team Composition node in the same matchmaker. A model built for 2×5 wired into a matchmaker that forms 2×2 is a misconfiguration, and the editor flags the mismatch. Fix it by aligning Team Composition with the model, or by using a model whose shape matches.

Relationship to the Skill Rule

NodeResponsibility
Skill Rating ModelDeclares which model applies, so tickets carry real μ / σ and results can be scored.
Skill RuleUses those μ / σ to constrain which matches may form: a rating gap, a win probability range, or a minimum draw probability.

They are complementary: the model supplies the numbers, the rule acts on them. For a truly skill-based mode you want both.

Pick a fairness rule

Adding a Skill Rule is not enough on its own. Its Fairness Rule starts at none, which applies only the node's Max Skill Delta. Pick rating_delta, win_prob or draw_prob and set its threshold to constrain matches by the model's ratings. See Matchmaking Nodes for what each rule checks.

The model's β scales the win and draw probabilities, so the same threshold behaves differently with and without a Skill Rating Model node on the flow. Tune the threshold against the setup you are going to publish.

Next