# Steam Sockets

<figure><img src="/files/77Unbpix2so6vI56ms5p" alt=""><figcaption></figcaption></figure>

## What is Steam Sockets

**Steam Sockets** is a networking plugin in Unreal Engine that takes advantage of the new Steam network protocol layer. Compared with the previous SteamNetworking protocol, this plugin provides improved security and reliability using Steam's communication network, with built-in DDoS protection, end-to-end encryption, and NAT traversal. Steam Sockets also provides **ping calculation** for listen servers.

For more information about the **Steam Sockets** plugin, please refer to the official documentation by Epic Games: [**Using Steam Sockets in Unreal Engine**](https://dev.epicgames.com/documentation/en-us/unreal-engine/using-steam-sockets-in-unreal-engine)

## Ping Calculation Using Steam Sockets

As of version 2.2.0, Kronos automatically handles session pinging with the **Steam Sockets** plugin. When ping data is available, sessions will be sorted into ping buckets (e.g. sessions with less then 30ms ping) and then each bucket is sorted based on player count for efficient session filling.

## **Important Notes**

<details>

<summary><strong>Fix For Unreal Engine 5.1</strong></summary>

The **Steam Sockets** plugin in Unreal Engine 5.1 has a major bug where client verification doesn't work properly. This results in connection requests being rejected. Thankfully there is a simple workaround that will skip client verification for the time being until Epic fixes the plugin. Open your projects `DefaultEngine.ini` file and add the following settings:

```ini
[ConsoleVariables]
net.MinHandshakeVersion=2
net.CurrentHandshakeVersion=2
```

Now you can create and join matches as expected.

Please note that this only fixes direct matchmaking functionality like creating and finding sessions. Parties will still behave very inconsistently when joining a match from the party.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://horizongames.gitbook.io/kronos-matchmaking/advanced/steam-sockets.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
