> For the complete documentation index, see [llms.txt](https://kb.heathen.group/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.heathen.group/old-kb/steam/multiplayer/rich-presence.md).

# Rich Presence

{% hint style="success" %}

#### Like what you're seeing?

Support us as a [GitHub Sponsor](/old-kb/where-to-buy/become-a-sponsor.md) and get instant access to all our assets, exclusive tools and assets, escalated support and issue tracking and our gratitude.\
\
These articles are made possible by our [GitHub Sponsors](/old-kb/where-to-buy/become-a-sponsor.md) ... become a sponsor today!
{% endhint %}

## Introduction

Steam's Rich Presence is what populates all the details about a user in the Friends list and importantly for multiplayer games, it's what enables the "Join Game" button on the Steam friends list.

## Join Game Button

The Join Game button located on the Steam friends list in the Steam client lets a user simply click a button and it will launch the game if it's not already running and provide the game with connection details so it may join that player to their friends game.

What happens when a user presses that button is&#x20;

1. If the game is not already running
   1. Launch the game
   2. Provide the connect string as a command line parameter
2. If the game is already running
   1. Invoke the Game Rich Presence Join Requested event\
      You can find this event on [API.Overlay.Client](/old-kb/old-toolkit-for-steamworks/unity/api-extensions/overlay.client.md#game-rich-presence-join-requested) or by using the [Overlay Manager](/old-kb/old-toolkit-for-steamworks/unity/objects/components/overlay-manager.md#evtrichpresencejoinrequested)

## Enable

To enable the Join Game button on the Steam Friends list simply set the "connect" field of the user's rich presence.

{% embed url="<https://partner.steamgames.com/doc/api/ISteamFriends#SetRichPresence>" %}
Read more about Set Rich Presence and the connected field
{% endembed %}

```csharp
UserData.SetRichPresence("connect", connectionData);
```

This will set the local user's connect information to whatever string you provide for connectionData. What exactly you should pass into as your connection data depends on how your game handles the connection.

This would usually be the CSteamID of the server you are playing on, or the IP and Port if it's using a traditional TCP/UDP connection or the CSteamID of the "Host" if you are playing P2P.

### Disable

Simply clear the data

```csharp
UserData.SetRichPresence("connect", string.Empty);
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://kb.heathen.group/old-kb/steam/multiplayer/rich-presence.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
