Social and platform
Friends and presence
Friends list, avatars, and the Rich Presence that puts a Join Game button on your name.
The friends list
Get Friends on the SteamForge Friends subsystem returns a resolved list:
| Field | Meaning |
|---|---|
| Steam Id | Their ID |
| Persona Name | Their Steam name |
| Nickname | The nickname the local player gave them, if any |
| Display Name | Nickname when set, otherwise the Steam name. Use this one. |
| State | Online, Away, Busy, Offline and so on |
| Relationship | Friend, incoming request, blocked and so on |
| In Game | Whether they are playing something |
| Playing App Id | What they are playing. Compare against your App ID to find people you can play with. |
| Lobby | Their lobby, when they are in one you could join |
| Steam Level | Their community level |
The Filter input decides which slice you get:
| Filter | Who |
|---|---|
| Friends | Actual friends. The normal choice. |
| In This Game | Everyone playing your game, friends or not |
| Blocked | Blocked accounts |
| Incoming Requests | Pending friend requests |
| Everyone | All of the above |
Avatars
Get Player Avatar (Async) returns a texture, at Small, Medium or Large.
It is a latent node because Steam caches avatars for friends but downloads strangers on demand. The synchronous version works in testing, where your friends are cached, and fails for the lobby full of strangers you wanted it for.
Cache the result against the Steam ID. A list rebuilt every tick will allocate a texture per player per tick.
Players Steam does not know yet
A Steam ID that came from a lobby, a leaderboard or a server may return an empty name, because Steam only pre loads friends.
Call Request User Information, then wait for On Persona State Changed before reading.
Rich Presence
Rich Presence is a small set of keys you publish about the local player. Steam shows them on their profile and to their friends.
Two keys are special and Steam treats them as protocol rather than text:
| Key | Effect |
|---|---|
status | The sentence friends see next to your name |
connect | A command line that puts a Join Game button on your entry |
Convenience nodes for both, since those exact spellings are the whole feature:
status.connect.For a lobby, the connect string is +connect_lobby followed by the lobby ID. Whoever clicks Join Game gets that string back, and SteamForge reports it as On Lobby Join Requested whether their game was already running or the click launched it.
Call Clear Rich Presence when the player leaves a match.
Reading a friend's presence
The answer arrives as On Friend Rich Presence Updated.
Recent players
Set Played With adds someone to Steam's Recent Players list, which is where players go to add somebody they enjoyed a match with.
One call at the end of a session. It is the kind of thing only shipped games remember to do.