MATCH_STARTED
Triggered when a queue fills and match validation begins.
Example Payload
{
"action": "MATCH_STARTED",
"queue": "valorant",
"channel": "1234567890123456789",
"guild": "9876543210987654321",
"match_num": 42,
"players": [
{
"name": "Player1#1234",
"id": "111222333444555666",
"mmr": 1500,
"role": "Duelist",
"team_num": -1,
"top_role_index": 0,
"ign": "PlayerIGN1",
"timestamp": 1707523200.0,
"pulled_from": null
},
{
"name": "Player2#5678",
"id": "222333444555666777",
"mmr": 1450,
"role": "Controller",
"team_num": -1,
"top_role_index": 1,
"ign": "PlayerIGN2",
"timestamp": 1707523250.0,
"pulled_from": null
}
]
}
Payload Fields
| Field | Type | Description |
|---|---|---|
action | string | Always "MATCH_STARTED" |
queue | string | The name/identifier of the queue |
channel | string | Discord channel ID where the event occurred |
guild | string | Discord guild (server) ID |
match_num | number | Unique match number/ID |
players | Player[] | All players in the match |
When This Event Fires
This webhook is sent when:
- The queue reaches the required number of players
- All players have been validated
- Match setup process begins
info
At this stage, teams have not yet been created. Players have team_num: -1.
Use Cases
- Notify players that a match is starting
- Initialize match tracking systems
- Record match start times for analytics
- Trigger external match creation (e.g., game servers)
- Update player availability status
Implementation Example
def handle_match_started(data):
match_id = data['match_num']
queue_name = data['queue']
player_count = len(data['players'])
print(f"Match #{match_id} starting in {queue_name}")
print(f"Players: {player_count}")
# Example: Create match record in database
create_match_record(
match_id=match_id,
queue=queue_name,
players=[p['id'] for p in data['players']],
started_at=time.time()
)
# Example: Notify external game server
notify_game_server(match_id, data['players'])
Match Flow
- MATCH_STARTED ← You are here
- TEAMS_CREATED - Teams are formed
- MATCH_COMPLETED or MATCH_CANCELLED - Match ends
Related Events
- TEAMS_CREATED - Teams are finalized
- MATCH_CANCELLED - Match is cancelled