Appearance
Steam Rich Presence
Show game status in Steam friends list.
Methods
setRichPresence(key, value)
Set a rich presence key.
javascript
await steam.setRichPresence('status', 'In Battle');
await steam.setRichPresence('level', '42');clearRichPresence()
Clear all rich presence data.
javascript
await steam.clearRichPresence();Examples
Basic Status
javascript
async function updatePresence(state) {
switch (state) {
case 'menu':
await steam.setRichPresence('status', 'In Menu');
break;
case 'playing':
await steam.setRichPresence('status', 'Playing');
break;
case 'paused':
await steam.setRichPresence('status', 'Paused');
break;
}
}Detailed Status
javascript
async function updateGamePresence(level, score, mode) {
await steam.setRichPresence('status', `Playing ${mode}`);
await steam.setRichPresence('level', `Level ${level}`);
await steam.setRichPresence('score', `Score: ${score}`);
}Multiplayer Status
javascript
async function updateMultiplayerPresence(lobbyName, playerCount, maxPlayers) {
await steam.setRichPresence('status', 'In Multiplayer');
await steam.setRichPresence('lobby', lobbyName);
await steam.setRichPresence('players', `${playerCount}/${maxPlayers}`);
}Clear on Exit
javascript
async function onGameExit() {
await steam.clearRichPresence();
}Localization
Use Steamworks localization for rich presence:
- Define tokens in Steamworks dashboard
- Use token keys in
setRichPresence
javascript
// In Steamworks, define:
// #Status_InBattle = "In Battle"
// #Status_InMenu = "In Menu"
await steam.setRichPresence('steam_display', '#Status_InBattle');Best Practices
- Update on state changes - Menu, gameplay, pause
- Keep it brief - Status is shown in small space
- Clear on exit - Don't leave stale status
- Use localization - For international users
