Skip to main content

Breakout Room Matchmaking

Overview

Breakout rooms are chats split off from a primary chat in Discord. The audio, video, and text for those chats is self-contained. Members can be sent to and returned from breakout rooms by a chat owner (or deputy) using commands listed on this page.

Here's a GIF of Discord breakout rooms in action:

GIF demonstrating Chai's functional breakout rooms for Discord.

Breakout Matchmaking facilitates a variety of social events that send members to their own breakout chats. It groups participants semi-randomly into their own locked rooms, prioritizing fresh matches and (optionally) their roles.

There are three "team" roles.

  • Red matches blue or purple.
  • Blue matches red or purple.
  • Purple matches anyone.

You can name and color these roles however you like. (E.g. Teacher, student, student-teacher.)

.match and .match-loop prioritize grouping people by team roles; .mix and .mix-loop do not.

What Happens When People Are Matched?

  1. Members are matched, priotizing freshness (and team role, if using .match/.match-loop).
  2. Chai displays the match groups in the lobby channel and in a DM to whoever ran the match command.
  3. Chai creates a voice and text channel for their grouping.
  4. Members are moved into that voice channel.
  5. Their text channel copies their last posts from the profile channel (if admins specified one via .match-profiles).
  6. Their text channel shows the server match message is (if specified via .match-message by admins)
  7. Members are pinged in that channel (so it's easy to find everything).
  8. They stay in that room until the round ends, after which they're returned to the lobby.

The Easy Way to Run Breakout Room Matchmaking Events

The easy option repeatedly matches participants for a fixed round length, with a fixed break time between rounds, over and over, until manually stopped.

  1. Make and configure a custom chat room.
  2. BEFORE OTHERS JOIN type .lobby-setup in your chat's text channel.
  3. .match-loop X Y, where
    • X = # of minutes per round
    • Y = # of minutes between rounds
  4. .end-loop to pause the loop.

If you'd like the matching to pair anyone (with the red, blue, or purple role), use .mix-loop instead of .match loop.


Breakout Matchmaking in More Detail

Setup

  1. Make a custom chat room.
  2. Type .lobby-setup in that chat room's text channel.

Running Rounds with Regular Duration

To match participants by role, with regular round durations and pauses in between, continuously until manually stopped, use the following command:

.match-loop [roundDurationInMinutes breakDurationInMinutes]

So to have 15 minute rounds and 5 minute break, you'd send .match-loop 15 5.

If you'd like to match participants ignoring roles, use .mix-loop instead of .match-loop, but they otherwise work the same.

To stop repeating rounds, use this command:

.end-loop

To end a round early AND stop repeating rounds, use this command:

.recall

Running Rounds with Irregular Duration

To match participants by role for a single round, use the following command:

.match [optionalRoundDurationInMinutes]

Examples:

  • .match matches people up with no specific round length in mind.
  • .match 10 matches people up for 10 minutes, before bringing them back.
note

.mix works the same way, but ignores roles.

Ending a round

.recall [optionalRoundDurationInMinutes]

Examples:

  • .recall 5 ends the round in 5 minutes.
  • .recall ends the round immediately.

Command Overview

Command nameDetails
.lobby-setupPre-loads participant profiles and prevent camera usage in lobby.
.match-loop

Repeat role-prioritized matching on timer.

E.g. .match-loop 15 5 = 15 minute rounds, 5 minute breaks.

.mix-loopRepeat role-**ignoring matching on timer. E.g. .mix-loop 10 2 = 10 minute rounds, 2 minute breaks.
.end-loopStops .match-loop or .mix-loop after current round.
.recallEnd current round and stops loops.
.matchRole-prioritized matching with an optional round duration.
.mixRole-ignoring matching with an optional round duration.