> ## Documentation Index
> Fetch the complete documentation index at: https://docs.overlayed.gg/llms.txt
> Use this file to discover all available pages before exploring further.

> All of the game events emitted by Teamfight Tactics.

# Teamfight Tactics

<Info>`overlayed.tft.readyForGameEvents()` must be called before any events will be emitted.</Info>

### live\_client\_data

<CodeGroup>
  ```ts type.ts theme={null}
  interface LiveClientDataEvent {
  	port: number;
  }
  ```

  ```json example.json theme={null}
  {
  	"port": 2999
  }
  ```
</CodeGroup>

### match\_started

<CodeGroup>
  ```ts type.ts theme={null}
  interface MatchStartedEvent {
  	match_id: string;
  	game_mode: string;
  	map_number: number;
  }
  ```

  ```json example.json theme={null}
  {
  	"match_id": "5412312873",
  	"game_mode": "TFT",
  	"map_number": 22
  }
  ```
</CodeGroup>

### match\_ended

<CodeGroup>
  ```ts type.ts theme={null}
  interface MatchEndedEvent {
  }
  ```

  ```json example.json theme={null}
  {}
  ```
</CodeGroup>

### player\_joined

<CodeGroup>
  ```ts type.ts theme={null}
  interface PlayerJoinedEvent {
  	player_id: number;
  	summoner_name: `${string}#${string}`;
  	skin_id: string;
  	is_bot: boolean;
  }
  ```

  ```json example.json theme={null}
  {
  	"player_id": 1,
  	"summoner_name": "johndoe#1234",
  	"skin_id": "0",
  	"is_bot": false
  }
  ```
</CodeGroup>

### player\_left

<CodeGroup>
  ```ts type.ts theme={null}
  interface PlayerLeftEvent {
  	player_id: number;
  }
  ```

  ```json example.json theme={null}
  {
  	"player_id": 1
  }
  ```
</CodeGroup>

### stage\_changed

<CodeGroup>
  ```ts type.ts theme={null}
  interface StageChangedEvent {
  	stage: `${number}-${number}`;
  	name: "PVP" | "PVE" | "Carousel";
  	type: "PVP" | "Minions_1" | "Minions_2" | "Minions_3" | "Carousel" | "Augment_1" | "Augment_2";
  	native_name:
  		| "Encounter_Group"
  		| "Intro1"
  		| "Intro2"
  		| "Intro3"
  		| "Combat"
  		| "Carousel"
  		| "Krugs"
  		| "Wolves"
  		| "Combat_Set6_Standard_AugmentEarly"
  		| "Combat_Set6_Standard_AugmentMid"
  		| "Combat_Set6_Standard_AugmentLate";
  }
  ```

  ```json example.json theme={null}
  {
  	"stage": "1-1",
  	"name": "PVE",
  	"type": "PVE",
  	"native_name": "Carousel"
  }
  ```
</CodeGroup>

### battle\_start

<CodeGroup>
  ```ts type.ts theme={null}
  interface BattleStartEvent {
  	player_id: number;
  	// null when against AI
  	opponent_id: number | null;
  }
  ```

  ```json example.json theme={null}
  {
  	"player_id": 1,
  	"opponent_id": 2
  }
  ```
</CodeGroup>

### battle\_end

<CodeGroup>
  ```ts type.ts theme={null}
  interface BattleEndEvent {
  	player_id: number;
  	outcome: "victory" | "defeat";
  	streak: number;
  }
  ```

  ```json example.json theme={null}
  {
  	"player_id": 1,
  	"outcome": "victory",
  	"streak": -2
  }
  ```
</CodeGroup>

### unit\_damage\_changed

Only provided for local player.

<CodeGroup>
  ```ts type.ts theme={null}
  interface UnitDamageChangedEvent {
  	unit: number;
  	name: string;
  	damage: number;
  	physical_damage: number;
  	magic_damage: number;
  	true_damage: number;
  }
  ```

  ```json example.json theme={null}
  {
  	"unit": 1,
  	"name": "Aatrox",
  	"damage": 100,
  	"physical_damage": 100,
  	"magic_damage": 0,
  	"true_damage": 0
  }
  ```
</CodeGroup>

### unit\_level\_changed

<CodeGroup>
  ```ts type.ts theme={null}
  interface UnitLevelChangedEvent {
  	unit: number;
  	name: string;
  	level: number;
  }
  ```

  ```json example.json theme={null}
  {}
  ```
</CodeGroup>

### player\_gold\_changed

Only provided for local player.

<CodeGroup>
  ```ts type.ts theme={null}
  interface PlayerGoldChangedEvent {
  	player_id: number;
  	gold: number;
  }
  ```

  ```json example.json theme={null}
  {
  	"player_id": 1,
  	"gold": 100
  }
  ```
</CodeGroup>

### player\_died

<CodeGroup>
  ```ts type.ts theme={null}
  interface PlayerDiedEvent {
  	player_id: number;
  	instigator_player_id: number;
  }
  ```

  ```json example.json theme={null}
  {
  	"player_id": 1,
  	"instigator_player_id": 2
  }
  ```
</CodeGroup>

### player\_level\_changed

<CodeGroup>
  ```ts type.ts theme={null}
  interface PlayerLevelChangedEvent {
  	player_id: number;
  	level: number;
  	next_level_xp_required: number;
  }
  ```

  ```json example.json theme={null}
  {
  	"player_id": 1,
  	"level": 1,
  	"next_level_xp_required": 100
  }
  ```
</CodeGroup>

### player\_xp\_changed

Only provided for local player.

<CodeGroup>
  ```ts type.ts theme={null}
  interface PlayerXpChangedEvent {
  	player_id: number;
  	xp: number;
  }
  ```

  ```json example.json theme={null}
  {
  	"player_id": 1,
  	"xp": 100
  }
  ```
</CodeGroup>

### player\_health\_changed

<CodeGroup>
  ```ts type.ts theme={null}
  interface PlayerHealthChangedEvent {
  	player_id: number;
  	health: number;
  }
  ```

  ```json example.json theme={null}
  {
  	"player_id": 1,
  	"health": 100
  }
  ```
</CodeGroup>

## Planned Additions

* item\_added
* item\_used
* shop\_changed
* bench\_update
* unit\_item\_changed
* unit\_position\_changed
