tag:github.com,2008:https://github.com/SteamRE/SteamKit/releases Release notes from SteamKit 2026-01-14T22:22:38Z tag:github.com,2008:Repository/10376425/3.4.0 2026-01-14T22:27:50Z 3.4.0 <ul> <li>Added <code>UserCountryCode</code> to <code>LoggedOnCallback</code>.</li> <li>Added privacy-related enums.</li> <li>Moved <code>Utils.AdlerHash</code> to <code>DepotChunk.AdlerHash</code> which is an unrolled version for better performance.</li> <li>Removed LINQ allocations from <code>KeyValue</code> indexer.</li> <li>Updated <code>EGamingDeviceType</code> enum.</li> <li>Fixed <code>GameID.GetHashCode</code>.</li> <li>Fixed <code>LinkTarget</code> not being decrypted in <code>DepotManifest</code>.</li> <li>Updated Steam enums and protobufs.</li> <li>Updated dependencies.</li> </ul> <p>BREAKING CHANGES</p> <ul> <li>SteamKit now targets .NET 10.</li> <li>Removed deprecated Facebook fields from <code>AccountInfoCallback</code>.</li> </ul> xPaw tag:github.com,2008:Repository/10376425/3.3.1 2025-08-21T10:10:10Z 3.3.1 <ul> <li>Deprecated <code>IsSteamDeck</code> and added <code>GamingDeviceType</code> to <code>LogOnDetails</code></li> <li>Updated Steam protobufs.</li> <li>Updated dependencies.</li> </ul> xPaw tag:github.com,2008:Repository/10376425/3.3.0 2025-06-09T09:35:33Z 3.3.0 <ul> <li><code>Configuration.HttpClientFactory</code> will now be used for websocket CM connections. <ul> <li>Added <code>HttpClientPurpose</code> enum to allow returning different HTTP clients for different purposes.</li> </ul> </li> <li>Post client disconnection callback before cancelling async jobs. <ul> <li>Related to the <code>AsyncJob</code> change in the previous release.</li> </ul> </li> <li>Added some Deadlock protobufs.</li> <li>Updated Steam protocol version.</li> <li>Updated Steam protobufs.</li> </ul> xPaw tag:github.com,2008:Repository/10376425/3.2.0 2025-05-09T19:21:33Z 3.2.0 <ul> <li><code>AsyncJob</code> will now instantly fail if not connected to Steam. <ul> <li><strong>This is technically a breaking change if you relied on this behaviour.</strong></li> </ul> </li> <li>Added support for zstd compressed depot chunks. <ul> <li>Added a dependency on <code>ZstdSharp.Port</code>.</li> </ul> </li> <li>Added an <code>GetAuthTicketForWebApi</code></li> <li>Added an argument to pass extra args to <code>WebAPI.CallProtobufAsync&lt;TResponse, TRequest&gt;()</code></li> <li>Updated Steam protobufs.</li> </ul> xPaw tag:github.com,2008:Repository/10376425/3.1.0 2025-04-21T11:08:55Z 3.1.0 <ul> <li>Added <code>SteamApps.PICSGetPrivateBeta</code>.</li> <li>Fixed <code>PersonaStateCallback.StatusFlags</code></li> <li>Fixed parsing old v4 depot manifests.</li> <li><code>DepotChunk.Process</code> now validates the magic bytes of the compression.</li> <li>Updated Steam EMsg.</li> <li>Updated dependencies.</li> </ul> xPaw tag:github.com,2008:Repository/10376425/3.0.2 2025-02-03T01:56:48Z 3.0.2 <ul> <li>Fixed handling on tasks to reduce chance of deadlocking sync-over-async consumers. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2768806375" data-permission-text="Title is private" data-url="https://github.com/SteamRE/SteamKit/issues/1488" data-hovercard-type="pull_request" data-hovercard-url="/SteamRE/SteamKit/pull/1488/hovercard" href="https://github.com/SteamRE/SteamKit/pull/1488">#1488</a>)</li> <li>Fixed a crash due to library resolution errors when running under .NET 9.0.1 on macOS. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2826080054" data-permission-text="Title is private" data-url="https://github.com/SteamRE/SteamKit/issues/1501" data-hovercard-type="pull_request" data-hovercard-url="/SteamRE/SteamKit/pull/1501/hovercard" href="https://github.com/SteamRE/SteamKit/pull/1501">#1501</a>)</li> <li>Updated Steam protobufs.</li> <li>Updated dependencies. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2799462709" data-permission-text="Title is private" data-url="https://github.com/SteamRE/SteamKit/issues/1493" data-hovercard-type="pull_request" data-hovercard-url="/SteamRE/SteamKit/pull/1493/hovercard" href="https://github.com/SteamRE/SteamKit/pull/1493">#1493</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2813211195" data-permission-text="Title is private" data-url="https://github.com/SteamRE/SteamKit/issues/1500" data-hovercard-type="pull_request" data-hovercard-url="/SteamRE/SteamKit/pull/1500/hovercard" href="https://github.com/SteamRE/SteamKit/pull/1500">#1500</a>)</li> </ul> yaakov-h tag:github.com,2008:Repository/10376425/3.0.1 2024-12-29T10:11:20Z 3.0.1 <ul> <li>Added protected <code>PostResponseMsg</code> and <code>PostNotificationMsg</code> to <code>UnifiedService</code> to allow using user-provided services.</li> <li>Added <code>DetectLancacheServerAsync</code> and <code>UseLancacheServer</code> to <code>CDN.Client</code> to allow downloading via LanCache servers.</li> <li>Updated Steam protobufs.</li> </ul> xPaw tag:github.com,2008:Repository/10376425/3.0.0 2024-11-07T11:15:37Z 3.0.0 <ul> <li>Added a dependency on <code>System.IO.Hashing</code>.</li> <li>Added <code>SteamKit2.WebUI.Internal</code> protobufs.</li> <li>Added <code>ChatMode</code>, <code>UIMode</code>, and <code>IsSteamDeck</code> to <code>LogOnDetails</code>.</li> <li>Added <code>DepotManifest.Serialize</code>.</li> <li>Added <code>SteamClient.WaitForCallbackAsync</code> and <code>CallbackManager.RunWaitCallbackAsync</code>.</li> <li>Added <code>cdnAuthToken</code> parameter to <code>CDN.Client</code> method for country specific servers that still require it.</li> <li>Added <code>SteamAuthTicket</code> handler.</li> <li>Added <code>WebAPI.AsyncInterface.CallAsync</code> overload that does not require specifying <code>HttpMethod.Get</code>.</li> <li>Added WebSocket as a default enabled protocol, switched to using GetCMListForConnect API.</li> <li>Added support for parsing binary keyvalues that have an alternate end byte.</li> <li><code>SmartCMServerList</code> will now attempt to refresh itself over the WebAPI if it was last refreshed over 7 days ago.</li> <li>Updated Steam enums and protobufs.</li> <li>Various performance and memory optimizations.</li> <li>Linux machines will now fetch MAC address for the machine id.</li> </ul> <p>BREAKING CHANGES</p> <ul> <li>SteamKit now targets .NET 8.</li> <li><code>SteamUnifiedMessages</code> are now reflection-free with a new API. <ul> <li>See updated <code>013_UnifiedMessages</code> sample for new usage.</li> <li>Requests are now generated functions like so: <code>UnifiedMessages.CreateService&lt;Player&gt;().GetGameBadgeLevels( req );</code></li> <li>If you subscribed to <code>ServiceMethodResponse</code>, use <code>CallbackManager.SubscribeServiceResponse</code> instead.</li> <li>If you subscribed to <code>ServiceMethodNotification</code>, <code>CallbackManager.SubscribeServiceNotification</code> instead.</li> <li>Response messages are now typed under <code>Body</code> property, calling <code>GetDeserializedResponse</code> was removed.</li> <li>For incoming messages to be processed and decoded, the service must be registered with <code>CreateService</code> first,<br> which is done for you by using the new subscribe functions on the callback manager.</li> </ul> </li> <li><code>SteamClient</code> callback queue is now backed by <code>BufferBlock</code>: <ul> <li><code>FreeLastCallback</code> and <code>GetAllCallbacks</code> have been removed.</li> <li>Calling <code>GetCallback</code> and <code>WaitForCallback</code> now always dequeues a callback, there is no more peek and "freeLast".</li> <li><code>CallbackManager.RunCallbacks</code> now returns bool indicating whether a callback was handled.</li> </ul> </li> <li><code>DepotManifest.ChunkData.Checksum</code> is now a <code>uint</code> instead of <code>byte[4]</code>.</li> <li><code>DepotManifest.SaveToFile</code> now returns void.</li> <li><code>CDN.Client.DownloadDepotChunkAsync</code> now requires a mandatory destination buffer. <ul> <li>Returns the number of written bytes to the destination.</li> <li>You can rent a buffer like <code>ArrayPool&lt;byte&gt;.Shared.Rent((int)chunk.UncompressedLength)</code></li> <li><code>DepotChunk</code> is now a static class that only contains a <code>Process</code> method.</li> </ul> </li> <li>Moved <code>SteamApps.GetCDNAuthToken</code> to <code>SteamContent.GetCDNAuthToken</code> due to a Steam change.</li> <li><code>IServerListProvider</code> has a new property <code>LastServerListRefresh</code> which should return an UTC DateTime<br> last time the server list was refreshed.</li> <li>Removed obsolete methods and enum values.</li> <li>Removed Artifact and Underlords generated protobufs.</li> <li>Removed <code>SteamTrading</code> handler.</li> <li>Removed <code>RSACrypto</code> class.</li> <li>Removed all methods from <code>CryptoHelper</code> except for <code>SymmetricDecrypt</code>.</li> <li>Removed <code>ICallbackMsg</code> interface, simply use <code>CallbackMsg</code> instead.</li> <li>Removed <code>CMListCallback</code> as it was removed by Steam.</li> </ul> <p><a href="https://github.com/SteamRE/SteamKit/commit/9af0fd884855d7da67c24b64a7a0bf1bbfd32c35">See this for a full diff of the public API</a></p> xPaw tag:github.com,2008:Repository/10376425/3.0.0-Beta.5 2024-11-03T17:25:10Z 3.0.0-Beta.5 <ul> <li><code>SmartCMServerList</code> will now attempt to refresh itself over the WebAPI if it was last refreshed over 7 days ago.</li> </ul> <p>BREAKING CHANGES</p> <ul> <li><code>SteamUnifiedMessages</code> are now reflection-free with a new API. <ul> <li>See updated <code>013_UnifiedMessages</code> sample for new usage.</li> <li>Requests are now generated functions like so: <code>UnifiedMessages.CreateService&lt;Player&gt;().GetGameBadgeLevels( req );</code></li> <li>If you subscribed to <code>ServiceMethodResponse</code>, use <code>CallbackManager.SubscribeServiceResponse</code> instead.</li> <li>If you subscribed to <code>ServiceMethodNotification</code>, <code>CallbackManager.SubscribeServiceNotification</code> instead.</li> <li>Response messages are now typed under <code>Body</code> property, calling <code>GetDeserializedResponse</code> was removed.</li> <li>For incoming messages to be processed and decoded, the service must be registered with <code>CreateService</code> first,<br> which is done for you by using the new subscribe functions on the callback manager.</li> </ul> </li> <li><code>IServerListProvider</code> has a new property <code>LastServerListRefresh</code> which should return an UTC DateTime<br> last time the server list was refreshed.</li> <li>Removed <code>ICallbackMsg</code> interface, simply use <code>CallbackMsg</code> instead.</li> <li>Removed <code>CMListCallback</code> as it was removed by Steam.</li> </ul> xPaw tag:github.com,2008:Repository/10376425/3.0.0-Beta.4 2024-10-13T08:24:37Z 3.0.0-Beta.4 <ul> <li>Added <code>SteamAuthTicket</code> handler.</li> <li>Added <code>WebAPI.AsyncInterface.CallAsync</code> overload that does not require specifying <code>HttpMethod.Get</code>.</li> <li>Added support for parsing binary keyvalues that have an alternate end byte.</li> <li>Linux machines will now fetch MAC address for the machine id.</li> </ul> <p>BREAKING CHANGES</p> <ul> <li>Moved <code>SteamApps.GetCDNAuthToken</code> to <code>SteamContent.GetCDNAuthToken</code> due to a Steam change.</li> </ul> xPaw