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
- Open the matchmaker in the graph editor.
- Add a Skill Rating Model node from the palette.
- Select your model in its side panel. The node shows a summary of the model's engine, algorithm, format, team shape, and starting μ / σ / β.
- 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/sigmathe ticket was created with, and evaluates its rule on the engine's default β instead of the model's. Ticket creation then rejects asigmaof 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.
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
| Node | Responsibility |
|---|---|
| Skill Rating Model | Declares which model applies, so tickets carry real μ / σ and results can be scored. |
| Skill Rule | Uses 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
- Reporting Match Results: send finished matches back so ratings update.