Skip to content
This repository has been archived by the owner on May 3, 2024. It is now read-only.
/ go-steam Public archive
forked from Philipp15b/go-steam

Steam automation framework written in Go.

License

Notifications You must be signed in to change notification settings

faceit/go-steam

This branch is 12 commits ahead of, 44 commits behind Philipp15b/go-steam:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2be7df6 · Feb 6, 2019
Feb 12, 2015
Aug 3, 2014
Feb 1, 2018
Jan 29, 2018
Feb 1, 2018
Jan 29, 2018
Jul 15, 2014
Jul 18, 2014
Feb 1, 2018
Aug 27, 2014
Jan 30, 2018
Jan 30, 2018
Feb 1, 2018
Jan 29, 2018
Feb 6, 2019
Aug 12, 2014
Jan 29, 2018
Jan 29, 2018
Jan 29, 2018
Feb 6, 2019
Feb 1, 2018
Feb 4, 2018
Jan 29, 2018
Jan 29, 2018
Jan 29, 2018
Jan 29, 2018
Jan 29, 2018
Jan 29, 2018
Aug 12, 2014
Jan 29, 2018
Feb 1, 2018
Jan 30, 2018
Jan 29, 2018
Jan 30, 2018
Jan 30, 2018
Jan 29, 2018
Nov 5, 2015

Repository files navigation

Steam for Go

Automate actions on the Steam network with Go.

Introduction

This library implements Steam's protocol to allow automation of different actions on Steam without running an actual Steam client. It is based on SteamKit2, a .NET library.

In addition, it contains APIs to Steam Community features, like trade offers and inventories.

Some of the currently implemented features:

  • Trading and trade offers, including inventories and notifications
  • Friend and group management
  • Chatting with friends
  • Persona states (online, offline, looking to trade, etc.)
  • SteamGuard with two-factor authentication
  • Team Fortress 2: Crafting, moving, naming and deleting items

If this is useful to you, there's also the go-steamapi package that wraps some of the official Steam Web API's types.

This package was originally authored by Philipp15b and was forked/adopted by FACEIT.

Installation

go get github.com/faceit/go-steam

Usage

You can view the documentation with the godoc tool or online on godoc.org.

You should also take a look at the following sub-packages:

Working with go-steam

Whether you want to develop your own Steam bot or directly work on go-steam itself, there are are few things to know.

  • If something is not working, check first if the same operation works (under the same conditions!) in the Steam client on that account. Maybe there's something go-steam doesn't handle correctly or you're missing a warning that's not obviously shown in go-steam. This is particularly important when working with trading since there are restrictions, for example newly authorized devices will not be able to trade for seven days.
  • Since Steam does not maintain a public API for most of the things go-steam implements, you can expect that sometimes things break randomly. Especially the trade and tradeoffer packages have been affected in the past.
  • Always gather as much information as possible. When you file an issue, be as precise and complete as you can. This makes debugging way easier.
  • If you haven't noticed yet, expect to find lots of things out yourself. Debugging can be complicated and Steam's internals are too.
  • Sometimes things break and other SteamKit ports are fixed already. Maybe take a look what people are saying over there? There's also the SteamKit IRC channel.

Updating go-steam to a new SteamKit version

To update go-steam to a new version of SteamKit, do the following:

cd generator
go get -d -v ./
go build -v
./generator clean proto steamlang

Apply the protocol changes where necessary.

License

Steam for Go is licensed under the New BSD License. More information can be found in LICENSE.txt.

About

Steam automation framework written in Go.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 96.9%
  • C# 3.1%