Skip to content

Releases: SteamRE/SteamKit

SteamKit 2.0.0-Alpha

28 Mar 07:50
Compare
Choose a tag to compare
SteamKit 2.0.0-Alpha Pre-release
Pre-release
  • SteamKit2 now requires .NET Framework 4.6 or a .NET Standard 1.3-compatible runtime.
    • SteamKit2 is now supported on .NET Core.
    • IsolatedStorageServerListProvider is only available in .NET Framework 4.6 and higher.
  • Updated Protobuf message classes to expose a property indicating if any wire value was specified or not, and a method to clear the value.
  • Updated CDNClient and WebAPI to expose Task-based asynchronous methods.
  • Removed all methods and properties that were marked as [Obsolete].

SteamKit 1.8.3

28 Mar 06:21
Compare
Choose a tag to compare
  • Obsoleted TradeProposedCallback.OtherName.

This is the final release to support .NET Framework 4.5.

SteamKit 1.8.2

23 Mar 11:01
Compare
Choose a tag to compare
  • Added support for Binary KeyValues field type 10 (Int64) (#376)
  • Obsoleted SteamApps.GetAppInfo, SteamApps.GetPackageInfo, and SteamApps.GetAppChanges. Use the PICS equivalents instead.
  • Updated game-related GC messages and protobufs.

SteamKit 1.8.1

23 Feb 07:58
Compare
Choose a tag to compare
  • Added support for using CS servers that have (CDN) usetokenauth specified.
  • Added support for newer branch passwords with SteamApps.CheckAppBetaPassword and CryptoHelper.SymmetricDecryptECB.
  • Added LastSeen to the default info flags used by SteamFriends.RequestFriendInfo. (pr #313)
  • Tell Steam that we support the RateLimitExceeded logon response. (pr #307)
  • Fixed timeouts not being set for sending/receiving when using TCP. (pr #317)
  • Fixed more possible crashes when querying WMI on Windows.
  • Fixed concurrent calls to Disconnect possibly blocking connectLock indefinitely.
  • Fixed not escaping backslashes and newlines when serializing KeyValues to text. (bug #334)
  • Fixed KeyValues float parsing in cultures where comma is used as decimal separator. (bug #355)
  • Updated SteamApps.GetCDNAuthToken to populate depot_id.
  • Updated Steam enums and protobufs. (pr #323) (pr #326) (pr #327) (pr #328) (pr #329) (pr #330) (pr #361)
  • Updated game-related GC messages and protobufs.

SteamKit 1.8.1-citest

12 Feb 03:01
Compare
Choose a tag to compare
SteamKit 1.8.1-citest Pre-release
Pre-release
Edit build versioning, artifact naming, sourcing

SteamKit2 1.8.1-citest

12 Feb 02:42
Compare
Choose a tag to compare
Pre-release
SteamKit2-1.8.1-citest

NuGet package format fix

SteamKit 1.8.0

08 Jul 04:55
Compare
Choose a tag to compare
  • Added CallbackManager.RunWaitAllCallbacks (pr #292)
  • Added KeyValue.AsUnsignedByte. (pr #270)
  • Added KeyValue.AsUnsignedInteger. (pr #255)
  • Added KeyValue.AsUnsignedShort. (pr #270)
  • Added SteamUserStats.GetNumberOfCurrentPlayers(GameID). (pr #234)
  • Added the ability to persist the server list to Isolated Storage. (pr #293)
  • Added the ability to persist the server list to a file. (pr #293)
  • Added support for fetching server list from the Steam Directory API. (pr #293)
  • Fixed a crash on Windows if WMI is unavailable.
  • Fixed a memory leak when reconnecting to Steam with the same SteamClient instance (pr #292)
  • Updated SteamUserStats.GetNumberOfCurrentPlayers to use messages that Steam continues to respond to. (pr #234)
  • Updated Steam enums and protobufs. (pr #271, pr #274, pr #296)
  • Updated game-related GC messages and protobufs.
  • Removed the hardcoded list of Steam server addresses. (pr #293)

BREAKING CHANGES

  • SmartCMServerList APIs have changed to accomodate new server management behaviour.

SteamKit 1.7.0

21 Dec 07:47
Compare
Choose a tag to compare
  • Added awaitable API for job-based messages. APIs which returned a JobID now return an AsyncJob<>, which can be used to asynchronously await for results. (pr #170)
  • Added SteamApps.PICSGetAccessTokens overload with singular parameters. (pr #190)
  • Added SteamFriends.RequestMessageHistory and SteamFriends.RequestOfflineMessages (pr #193)
  • Added the ability to connect to Developer instances of Steam (EUniverse.Dev). If anyone at Valve is using this internally, hi!
  • Added the ability to set a LoginID in SteamUser.LogOnDetails so that multiple instances can connect from the same host concurrenctly. (pr #217)
  • Added SteamClient.DebugNetworkListener API to intercept and log raw messages. (pr #204)
  • Added the ability to dump messages in NetHook2 format for debugging purposes. (pr #204)
  • Upgraded the encryption protocol used to communicate with the Steam servers.
  • Implemented protection against man-in-the-middle attacks. (pr #214)
  • Server List will now maintain ordering from Steam, increasing the chances of a successful and geographically local connection. (pr #218)
  • After calling SteamUser.LogOff or SteamGameServer.LogOff, SteamClient.DisconnectedCallback.UserInitiated will be true. (pr #205)
  • Fixed a crash when parsing a Steam ID of the format '[i:1:234]'.
  • Fixed a crash when logging on in an environment where the hard disk has no serial ID, such as Hyper-V.
  • Fixed a bug when parsing a KeyValue file that contains a / followed by a newline. (pr #187)
  • Updated Steam enums and protobufs.
  • Updated game-related GC messages and protobufs.

BREAKING CHANGES

  • SteamKit2 now requires .NET 4.5 or equivalent (Mono 3.0), or higher.
  • Removed obsoleted ICallbackMsg extension methods IsType<> and Handle<>. (pr #221)
  • Game Coordinator base messages are now generated per-game, instead of relying on Dota 2. GC messages should use the base messages for their game, which is separated by namespace. (pr #180)
  • Cell IDs are now consistently uints within SteamDirectory.

SteamKit 1.6.5

17 Oct 21:16
Compare
Choose a tag to compare
  • Added inventory service unified protobufs.
  • Added the ability to specify the client's prefered Cell ID in LogOnDetails.CellID. (pr #148)
  • KeyValue objects can now be serialized (both text and binary) to streams with SaveToStream.
  • Fixed an issue with CDNClient session initialization involving sessionid values.
  • Added setter for KeyValue's indexer operator.
  • Added ELeaderboardDisplayType and various leaderboard retrieval functions to SteamUserStats. (pr #153)
  • Implemented machine id support for logon for when the Steam servers inevitably require it. (pr #152)
  • Fixed case where logging on with a different account could lead to an anonymous logon instead. (bug #160)
  • SteamFriends.SetPersonaName now supports JobIDs and has a new associated callback: PersonaChangeCallback (Binary level breaking change)
  • Updated game-related GC messages and protobufs.

SteamKit 1.6.4

03 Aug 08:10
Compare
Choose a tag to compare
  • Added smarter server selection logic.
  • Added ability to load initial server list from Steam Directory Web API. See SteamDirectory.Initialize.
  • Added ability to persist internal server list. See Sample 7 for details.
  • Added SteamFriends.InviteUserToChat.
  • Added support in SteamUser for passwordless login with a login key.
  • Added NumChatMembers, ChatRoomName and ChatMembers to ChatEnterCallback.
  • Added new API for callback subscriptions, CallbackManager.Subscribe.
  • Added SteamApps.RequestFreeLicense to request Free On-Demand licences.
  • Exposed ClientOSType and ClientLanguage when logging in as a specific or as an anonymous user.
  • Fixed KeyValue binary deserialization returning a dummy parent node containing the actually deserialized KeyValue. You must change to the new Try-prefixed methods to adopt the fixed behavior.
  • Updated Steam enums and protobufs.
  • Updated game-related GC messages and protobufs.

DEPRECATIONS

  • ICallbackMsg.IsType<> and ICallbackMsg.Handle<> are deprecated and will be removed soon in a future version of SteamKit. Please use CallbackManager.Subscribe instead.
  • Callback<T> is deprecated and will be removed in a future version of SteamKit. Please use CallbackManager.Subscribe instead.
  • KeyValue.ReadAsBinary and KeyValue.LoadAsBinary are deprecated and will be removed in a future version of SteamKit. Use the Try-prefixed methods as outlined above.

BREAKING CHANGES

  • PICSProductInfo.KeyValues has been fixed in line with the above KeyValue binary deserialization notes. The KeyValue structure returned is now the root node of the product info, not a dummy node with the actual product info as the sole child.