/f1-telemetry-go

F1 Game Telemetry Client written in Go (no dependency)

Primary LanguageGoApache License 2.0Apache-2.0

F1 Game Telemetry Client in Go Made With Go

Telemetry client for F1 Game, written in Go. Supports the F1 UDP 2022 and previous formats.

f1-telemetry-client

Features

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

Install

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

# for F1 2022
go get -u github.com/anilmisirlioglu/f1-telemetry-go@v1.1.0

# for F1 2020
go get -u github.com/anilmisirlioglu/f1-telemetry-go@v1.0.0

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.