Live Activity & Rich Presence
Live Activity shows your active players and what they’re currently doing in your game. Updates flow in real-time via WebSocket, perfect for social features and live moderation.
Tracking Presence
Section titled “Tracking Presence”# Update presence when player takes actionsQuestData.update_presence({ "status": "playing", "activity": "dungeon_run", "level": 5, "party_size": 3, "last_action": "combat"})
# When entering boss fightQuestData.update_presence({ "status": "playing", "activity": "boss_fight", "boss_name": "Dragon Lord", "hp_remaining": 45.5})
# When waiting for matchmakingQuestData.update_presence({ "status": "waiting", "activity": "matchmaking", "queue_time_seconds": 30, "queue_position": 15})
# When idleQuestData.update_presence({ "status": "idle", "activity": "menu"})Dashboard Live View
Section titled “Dashboard Live View”The Live Activity page shows all currently active players:
| Column | Shows |
|---|---|
| Player ID | Unique identifier |
| Status | Playing, Waiting, Idle, Offline |
| Activity | Current activity name |
| Time Active | Duration of current session |
| Last Updated | Seconds since last update |
Status Filter
Section titled “Status Filter”Filter by:
- Playing: In active gameplay
- Waiting: Queue, matchmaking, loading
- Idle: Menu, afk
- All Active: Everyone online (last 5 min activity)
Rich Presence Integration
Section titled “Rich Presence Integration”For Steam games, integrate with Steam Rich Presence:
# Set Steam Rich Presence statevar presence_state = "dungeon:level_5"OS.set_environment("SteamOverlayNotificationPosition", "topright")
# Steam friends see your activityQuestData.update_presence({ "status": "playing", "activity": "dungeon_run", "level": 5, "steam_state": presence_state # Steam sees this})Moderation Use Case
Section titled “Moderation Use Case”Use Live Activity to spot issues:
- Farming Detection: Same activity for 2+ hours = suspicious
- Server Overload: Activity spike = load testing time
- Event Monitoring: See event participation in real-time
- Crash Debugging: “Player X was doing Y when they crashed”
Auto-Cleanup
Section titled “Auto-Cleanup”Presence entries expire after 10 minutes of inactivity and are marked Offline.
API Reference
Section titled “API Reference”# Get all active playerscurl "https://api.questdata.io/v1/presence?status=playing" \ -H "x-game-api-key: YOUR_API_KEY"
# Get single player's presencecurl "https://api.questdata.io/v1/presence/player123" \ -H "x-game-api-key: YOUR_API_KEY"Response:
{ "active_count": 250, "players": [ { "player_id": "player123", "status": "playing", "activity": "boss_fight", "data": { "boss_name": "Dragon Lord", "hp": 45.5 }, "last_updated": "2026-04-06T10:30:15Z" } ]}