Skip to main content
Matchmaking puts players who want the same kind of game together. Each mode of your game is a queue with a smallest and largest number of players. A player, or a whole party, searches in a queue; once the queue holds enough players, Flock makes a match and seats the players in a session. A party is matched as one group and never split. Players are matched in the order they search.
Scope: matchmaking queues are defined per game.
Make queues under Multiplayer → Matchmaking with Create Queue:
  • Queue Name: the name your game searches by, letter for letter, case included.
  • Min Players and Max Players: the smallest and largest match.
  • Same game version only: matches players of one build with each other only. Leave it on unless different builds can play together.
  • Allowed Segments: only players in these segments may search here. Leave it empty for everyone.
  • Queue metadata: notes for your own reference. Matching does not read them.
Multiplayer → Matchmaking Activity shows who is waiting in each queue now, and the matches made.

How a search ends

The outcome is a string on both engines. On Unity it is one of the FlockMatchmakingOutcome constants; on Unreal, one of the constants of FlockMatchmakingOutcomes. Both carry the same names (FlockMatchmakingOutcomes::PartyChanged is party_changed). A search your game cancels ends the call another way: with an OperationCanceledException on Unity (through its token), and as a failure of type Cancelled on Unreal (through its handle). The server can add outcomes, so treat any other as ended without a match.

Party members and game versions

On a Same game version only queue, the server takes each member’s version from their game’s last read of the party. Have every member’s game read the party (GetMyPartyAsync, or GetMyParty on Unreal) once it is running, or the search is refused with MatchmakingVersionMismatch.

What matching does not use yet

Matching is first come, first served. Skill, region and latency rules, teams and backfill are not built yet; what a search sends in its attributes is stored for them. Until then, make a queue per mode and region (coop-4-eu, coop-4-na).

Errors

Each code is a FlockErrorCode on Unity and an EFlockErrorCode on Unreal, with the same name, and the error carries a hint naming the fix.