Oddin.gg Bragi - Game-specific schemas: League of Legends
This article is section 6.3 of Oddin.gg Bragi - Data Feed documentation. Sections 1 to 5 there cover general information, the match timeline, processing the data feed, match events and team profiles.
Other game schemas: Counter-Strike 2 · Dota 2 · Valorant · eBasketball · eFootball · eCricket
6.3. League of Legends (LoL)
The LoL schema follows the same overall pattern as the other games. A match is played as a series of maps; each map has two teams (Blue and Red), five players per team, turrets and inhibitors for each lane. State is kept for the match overall, for the current map, for each team and for each player.
6.3.1. Top-level LoL messages
LolMatchMessage
A concrete implementation of the (Game)MatchMessage pattern.
| Field | Type | Description |
match_urn |
string |
Match identifier. |
sequence |
uint64 |
Sequence number; must be exactly cached sequence + 1. |
timestamp |
google.protobuf.Timestamp |
Time the message was produced. |
data_status |
DataStatus |
Quality flag for the underlying data. |
payload |
LolMatchMessage.Payload |
Oneof: snapshot (LolMatchSnapshot) or update (LolMatchUpdate). |
LolMatchSnapshot
| Field | Type | Description |
match_urn |
string |
Match identifier. |
sequence |
uint64 |
Initial sequence number. |
timestamp |
google.protobuf.Timestamp |
Snapshot timestamp. |
data_status |
DataStatus |
Quality flag for the underlying data. |
announcements |
repeated Announcement |
Operational announcements for the match. |
match_state |
LolMatchState |
Full current state of the match. |
tournament |
Tournament |
Tournament the match belongs to. |
LolMatchUpdate
| Field | Type | Description |
payload |
LolMatchUpdate.Payload |
Oneof: match_state (LolMatchState) or partial_updates (LolMatchStatePartialUpdates). |
LolMatchStatePartialUpdates
| Field | Type | Description |
updates |
repeated LolMatchStatePartialUpdate |
Non-empty list of partial updates to apply. |
6.3.2. Match-level state
LolMatchStatePartialUpdate
| Field | Type | Description |
score |
LolMatchScoreState |
Replaces the score property in LolMatchState. |
current_map_state |
LolCurrentMapState |
Replaces the current_map_state property in LolMatchState. Sent periodically as a safety idempotent update. |
current_map_state_partial_update |
LolCurrentMapStatePartialUpdate |
Applies a partial update inside the current map state. |
LolMatchState
| Field | Type | Description |
match_urn |
string |
Match identifier. |
match_type |
BestOfType |
Match format (best of N). |
home_team |
Team |
Home team. |
away_team |
Team |
Away team. |
score |
LolMatchScoreState |
Map score for the match. |
match_status |
MatchStatusType |
Lifecycle status of the match. |
current_map |
LolCurrentMapState |
State of the map currently being played. |
previous_maps |
repeated LolPreviousMapState |
Summary of all completed maps in the match. |
LolMatchScoreState
| Field | Type | Description |
home_score |
uint32 |
Maps won by the home team. |
away_score |
uint32 |
Maps won by the away team. |
6.3.3. Current map state
LolCurrentMapStatePartialUpdate
| Field | Type | Description |
game_time |
LolCurrentMapTimeState |
Replaces the game_time property. |
team_current_map_state |
LolTeamCurrentMapState |
Replaces a team's entry inside the teams map (keyed by team URN). |
team_current_map_partial_update |
LolTeamCurrentMapStatePartialUpdate |
Applies a partial update inside a team's current-map state. |
turrets |
LolTurrets |
Replaces the turrets property. |
inhibitors |
LolInhibitors |
Replaces the inhibitors property. |
LolCurrentMapState
| Field | Type | Description |
map_order |
uint32 |
Position of this map in the match (1, 2, 3...). |
map_paused |
bool |
true if the map is paused. |
game_time |
LolCurrentMapTimeState |
In-game clock state. |
teams |
map<string, LolTeamCurrentMapState> |
Per-team state, keyed by team URN. |
turrets |
LolTurrets |
State of all turrets on the map. |
inhibitors |
LolInhibitors |
State of all inhibitors on the map. |
LolCurrentMapTimeState
| Field | Type | Description |
game_time |
google.protobuf.Duration |
Time elapsed in the current game. |
LolPreviousMapState
| Field | Type | Description |
map_order |
uint32 |
Position of this map in the match. |
teams |
map<string, LolTeamPreviousMapState> |
End-of-map team summary, keyed by team URN. |
6.3.4. Per-team current-map state
LolTeamCurrentMapStatePartialUpdate
| Field | Type | Description |
team_urn |
string |
Team identifier the update applies to. |
payload |
LolTeamCurrentMapStatePartialUpdate.Payload |
Oneof: statistics, player_current_map_state, or player_current_map_partial_update. |
LolTeamCurrentMapState
| Field | Type | Description |
team_urn |
string |
Team identifier. |
faction |
LolFaction |
Blue or Red side. |
statistics |
LolTeamCurrentMapStatisticsState |
Team-level numbers. |
won |
optional bool |
Whether this team won the map. Unset while the map is in progress. |
players |
map<string, LolPlayerCurrentMapState> |
Per-player state, keyed by player URN. |
LolTeamCurrentMapStatisticsState
| Field | Type | Description |
team_urn |
string |
Team identifier. |
kills |
uint32 |
Total kills by the team. |
barons |
uint32 |
Barons killed by the team. |
dragons |
uint32 |
Dragons killed by the team. |
turrets |
uint32 |
Turrets destroyed by the team. |
inhibitors |
uint32 |
Inhibitors destroyed by the team. |
gold |
uint32 |
Total gold earned by the team. |
LolTeamPreviousMapState
| Field | Type | Description |
team_urn |
string |
Team identifier. |
faction |
LolFaction |
Side played by this team on the map. |
kills |
uint32 |
Total kills. |
barons |
uint32 |
Barons killed. |
dragons |
uint32 |
Dragons killed. |
turrets |
uint32 |
Turrets destroyed. |
inhibitors |
uint32 |
Inhibitors destroyed. |
gold |
uint32 |
Final gold earned. |
won |
optional bool |
Whether the team won the map. |
players |
map<string, LolPlayerPreviousMapState> |
Per-player end-of-map summary. |
6.3.5. Per-player current-map state
LolPlayerCurrentMapStatePartialUpdate
| Field | Type | Description |
player_urn |
string |
Player identifier the update applies to. |
payload |
LolPlayerCurrentMapStatePartialUpdate.Payload |
Oneof: player_info, timers, statistics, map_statistics, or position. |
LolPlayerCurrentMapState
| Field | Type | Description |
player_urn |
string |
Player identifier. |
player_info |
LolPlayerInfoState |
Identity and champion pick. |
timers |
LolPlayerCurrentMapTimersState |
Respawn timer. |
statistics |
LolPlayerStatisticsState |
Kills, deaths, assists and CS across the map. |
map_statistics |
LolPlayerCurrentMapStatisticsState |
Live in-game numbers (health, gold, mana). |
position |
LolPosition |
Position of the player on the map. |
LolPlayerInfoState
| Field | Type | Description |
player_urn |
string |
Player identifier. |
slot_id |
uint32 |
Slot number inside the match (1-10). |
ext_name |
string |
External display name from the data source. |
ext_id |
string |
External identifier from the data source. |
champion_id |
optional uint32 |
Riot champion ID. Unset while no champion is locked in. |
LolPlayerCurrentMapTimersState
| Field | Type | Description |
player_urn |
string |
Player identifier. |
respawn_timer |
optional google.protobuf.Duration |
Time left until respawn. Unset while alive. |
LolPlayerStatisticsState
| Field | Type | Description |
player_urn |
string |
Player identifier. |
kills |
uint32 |
Kills made by the player. |
deaths |
uint32 |
Times the player has died. |
assists |
uint32 |
Kill assists by the player. |
creep_score |
uint32 |
Creep score (minions and jungle camps last-hit). |
LolPlayerCurrentMapStatisticsState
| Field | Type | Description |
player_urn |
string |
Player identifier. |
alive |
bool |
true if the player is currently alive. |
health |
uint32 |
Current HP. |
max_health |
uint32 |
Maximum HP. |
total_gold |
uint32 |
Total gold earned by the player. |
mana |
uint32 |
Current mana. |
max_mana |
uint32 |
Maximum mana. |
LolPlayerPreviousMapState
| Field | Type | Description |
player_urn |
string |
Player identifier. |
player_info |
LolPlayerInfoState |
Identity and champion played. |
statistics |
LolPlayerStatisticsState |
Final K/D/A and CS line for the map. |
6.3.6. Map objects
LolTurrets
| Field | Type | Description |
turrets |
repeated LolTurret |
All turrets on the map. |
LolTurret
| Field | Type | Description |
lane |
LolLane |
Lane the turret is on. |
faction |
LolFaction |
Faction that owns the turret. |
tier |
LolTurretTier |
Turret tier (1-4). |
alive |
bool |
true if the turret is still standing. |
LolInhibitors
| Field | Type | Description |
inhibitors |
repeated LolInhibitor |
All inhibitors on the map. |
LolInhibitor
| Field | Type | Description |
lane |
LolLane |
Lane the inhibitor is on. |
faction |
LolFaction |
Faction that owns the inhibitor. |
alive |
bool |
true if the inhibitor is still standing. |
LolPosition
| Field | Type | Description |
x |
float |
X coordinate on the map. |
y |
float |
Y coordinate on the map. |
6.3.7. LoL enums
LolFaction
| Value | Description |
| LOL_FACTION_UNSPECIFIED | Default; side is not known. |
| LOL_FACTION_BLUE | Blue side. |
| LOL_FACTION_RED | Red side. |
LolLane
| Value | Description |
| LOL_LANE_UNSPECIFIED | Default; lane is not known. |
| LOL_LANE_TOP | Top lane. |
| LOL_LANE_MID | Mid lane. |
| LOL_LANE_BOT | Bottom lane. |
LolTurretTier
| Value | Description |
| LOL_TURRET_TIER_UNSPECIFIED | Default; turret tier is not known. |
| LOL_TURRET_TIER_1 | Tier 1 turret (outer). |
| LOL_TURRET_TIER_2 | Tier 2 turret. |
| LOL_TURRET_TIER_3 | Tier 3 turret. |
| LOL_TURRET_TIER_4 | Tier 4 turret (Nexus). |