f1-telemetry-go icon indicating copy to clipboard operation
f1-telemetry-go copied to clipboard

F1 Game Telemetry Client written in Go (no dependency)

F1 Game Telemetry Client in Go Made With Go

Telemetry client for F1 Game, written in Go. Supports the UDP 2020 and 2021 format.

f1-telemetry-client

Features

  • Event System
  • Rich Env Constants
  • UDP Stats (recv, err and packet per second rate),
  • Vector3 support

Install

# latest version (F1 2021)
go get -u github.com/anilmisirlioglu/f1-telemetry-go@master

# for F1 2020
go get -u github.com/anilmisirlioglu/[email protected]

Quick Start

func main() {
  client, err := telemetry.NewClient()
  if err != nil {
	log.Fatal(err)
  }

  client.OnEventPacket(func(packet *packets.PacketEventData) {
  	fmt.Printf("Code: %s\n", packet.EventCodeString())
  })

  client.Run()
}

Specific Address & Port

func main() {
  client, err := telemetry.NewClientByCustomIpAddressAndPort("0.0.0.0", 20777)
  if err != nil {
	log.Fatal(err)
  }

  client.OnCarDamagePacket(func(packet *packets.PacketCarDamageData) {
  	fmt.Printf("Code: %s\n", packet.EventCodeString())
  })

  client.Run()
}

Docs

If you need more information on the F1 UDP specifications, see the docs.