Oddin.gg Bragi - Game-specific schemas: eFootball
This article is section 6.6 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 · League of Legends · Valorant · eBasketball · eCricket
6.6. eFootball (Rush Soccer)
The Rush Soccer schema models an eFootball match as one or more maps between two single-player teams. Each map runs across two periods. Real time and game time are tracked separately because the in-game clock runs faster than wall-clock time (two halves of four real minutes equal two halves of forty-five game minutes).
6.6.1. Top-level eFootball messages
RushSoccerMatchMessage
| 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 |
RushSoccerMatchMessage.Payload |
Oneof: snapshot (RushSoccerMatchSnapshot) or update (RushSoccerMatchUpdate). |
RushSoccerMatchSnapshot
| 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 |
RushSoccerMatchState |
Full current state of the match. |
tournament |
Tournament |
Tournament the match belongs to. |
RushSoccerMatchUpdate
| Field | Type | Description |
payload |
RushSoccerMatchUpdate.Payload |
Oneof: match_state (full state) or partial_updates. |
RushSoccerMatchStatePartialUpdates
| Field | Type | Description |
updates |
repeated RushSoccerMatchStatePartialUpdate |
Non-empty list of partial updates to apply. |
6.6.2. Match-level state
RushSoccerMatchStatePartialUpdate
| Field | Type | Description |
score |
RushSoccerMatchScoreState |
Replaces the score property in RushSoccerMatchState. |
current_map_state |
RushSoccerCurrentMapState |
Replaces the current_map property. Sent periodically as a safety idempotent update. |
current_map_state_partial_update |
RushSoccerCurrentMapStatePartialUpdate |
Applies a partial update inside the current map. |
timeline |
RushSoccerTimelineState |
Replaces the timeline property in RushSoccerMatchState. |
RushSoccerMatchState
| Field | Type | Description |
match_urn |
string |
Match identifier. |
match_type |
BestOfType |
Match format (best of N maps). |
home_team |
Team |
Home team. |
away_team |
Team |
Away team. |
score |
RushSoccerMatchScoreState |
Map score for the match (number of maps won). |
match_status |
MatchStatusType |
Lifecycle status of the match. |
timeline |
RushSoccerTimelineState |
Ordered list of significant events from the match. |
current_map |
RushSoccerCurrentMapState |
State of the map currently being played. |
RushSoccerMatchScoreState
| Field | Type | Description |
home_score |
uint32 |
Maps won by the home team. |
away_score |
uint32 |
Maps won by the away team. |
RushSoccerTimelineState
| Field | Type | Description |
events |
repeated RushSoccerTimelineEvent |
Ordered list of timeline events. |
RushSoccerTimelineEvent
| Field | Type | Description |
team_urn |
string |
URN of the team the event applies to. |
event_type |
RushSoccerEventType |
Type of event (goal, card, penalty, etc.). |
real_time |
google.protobuf.Duration |
Real-world time elapsed when the event happened. |
game_time |
google.protobuf.Duration |
In-game time when the event happened (game clock runs faster than real time). |
period |
RushSoccerPeriod |
Period the event happened in. |
6.6.3. Current map state
RushSoccerCurrentMapStatePartialUpdate
| Field | Type | Description |
game_time |
RushSoccerCurrentMapTimeState |
Replaces the game_time property. |
score |
RushSoccerCurrentMapScoreState |
Replaces the score property. |
team_current_map_state |
RushSoccerTeamCurrentMapState |
Replaces a team's entry inside the teams map (keyed by team URN). |
team_current_map_partial_update |
RushSoccerTeamCurrentMapStatePartialUpdate |
Applies a partial update inside a team's current-map state. |
RushSoccerCurrentMapState
| Field | Type | Description |
period |
RushSoccerPeriod |
Current period (first or second half). |
game_time |
RushSoccerCurrentMapTimeState |
Real and in-game time elapsed on the map. |
score |
RushSoccerCurrentMapScoreState |
Goal score on the current map. |
map_paused |
bool |
true if the map is paused. |
teams |
map<string, RushSoccerTeamCurrentMapState> |
Per-team state, keyed by team URN. |
RushSoccerCurrentMapTimeState
| Field | Type | Description |
real_time |
google.protobuf.Duration |
Real-world time elapsed on the map. |
game_time |
google.protobuf.Duration |
In-game time elapsed on the map. |
RushSoccerCurrentMapScoreState
| Field | Type | Description |
home_goals |
uint32 |
Goals scored by the home team on the current map. |
away_goals |
uint32 |
Goals scored by the away team on the current map. |
6.6.4. Per-team current-map state
RushSoccerTeamCurrentMapStatePartialUpdate
| Field | Type | Description |
team_urn |
string |
Team identifier the update applies to. |
payload |
RushSoccerTeamCurrentMapStatePartialUpdate.Payload |
Oneof: map_statistics or player. |
RushSoccerTeamCurrentMapState
| Field | Type | Description |
team_urn |
string |
Team identifier. |
map_statistics |
RushSoccerTeamCurrentMapStatisticsState |
Team-level statistics for the current map. |
player |
RushSoccerPlayerCurrentMapState |
The single player representing this team. |
RushSoccerPlayerCurrentMapState
| Field | Type | Description |
player_urn |
string |
Player identifier. |
ext_name |
string |
External display name from the data source. |
RushSoccerTeamCurrentMapStatisticsState
| Field | Type | Description |
goals |
uint32 |
Goals scored on the current map. |
goals_ht |
uint32 |
Goals scored in the first period. |
penalty_kicks |
uint32 |
Penalty kicks awarded. |
red_cards |
uint32 |
Red cards received. |
yellow_cards |
uint32 |
Yellow cards received. |
free_kicks |
uint32 |
Free kicks awarded. |
corner_kicks |
uint32 |
Corner kicks awarded. |
6.6.5. eFootball enums
RushSoccerEventType
| Value | Description |
| RUSH_SOCCER_EVENT_TYPE_UNSPECIFIED | Default; event type is not known. |
| RUSH_SOCCER_EVENT_TYPE_GOAL | Goal scored. |
| RUSH_SOCCER_EVENT_TYPE_PENALTY | Penalty kick awarded. |
| RUSH_SOCCER_EVENT_TYPE_RED_CARD | Red card given. |
| RUSH_SOCCER_EVENT_TYPE_YELLOW_CARD | Yellow card given. |
| RUSH_SOCCER_EVENT_TYPE_FREE_KICK | Free kick awarded. |
| RUSH_SOCCER_EVENT_TYPE_CORNER_KICK | Corner kick awarded. |
| RUSH_SOCCER_EVENT_TYPE_PERIOD_CHANGE | A new period has started. |
RushSoccerPeriod
| Value | Description |
| RUSH_SOCCER_PERIOD_UNSPECIFIED | Default; period is not known. |
| RUSH_SOCCER_PERIOD_FIRST | First half. |
| RUSH_SOCCER_PERIOD_SECOND | Second half. |