Phase 72.21.1.8 routes a player's current activity to the platform friends-list
presence surface. FV2RichPresenceActivity captures the local activity and
FV2RichPresencePlatformPayload carries the provider-specific update plan
through the V2 platform SDK abstraction.
Activity Text#
The default template is Playing {LevelName} - {EncounterName}. For a level
activity with Level 5 and Boss Fight, the platform display text is:
Playing Level 5 - Boss Fight
When streamer mode is enabled, activity details are redacted to Playing Oshun
before any native platform payload is built.
Provider Routes#
| Provider | Friends-list surface | Native bridge | Presence command |
|---|---|---|---|
| Steamworks | Steam friends rich presence | V2SteamworksSdkBridge |
ISteamFriends::SetRichPresence |
| Epic Online Services | EOS presence | V2EosSdkBridge |
EOS_Presence_SetPresence |
| GOG Galaxy | Galaxy friends rich presence | V2GogGalaxySdkBridge |
galaxy::api::IFriends::SetRichPresence |
| PlayStation SDK | Public activity model | V2PlayStationSdkStubBridge |
Activities.Update |
| Xbox GDK | Xbox friends presence | V2XboxGdkSdkStubBridge |
XboxPresence.SetRichPresence |
Console routes are public-stub-only in V2OnlineServices. Proprietary
PlayStation and Xbox headers or symbols stay in the restricted platform SDK
modules.
Rules#
PlanRichPresencePlatformUpdate queues a provider update only when the account
has a linked platform account, the activity is not offline, route coverage
exists for the provider/platform pair, the display text fits the configured
platform budget, and payload sanitization has run. Join hints are included only
when a join secret is present and streamer mode is off.
Verification#
Run:
python3 V2/ue/Tools/check-v2-rich-presence-routing.py
The checker validates the C++ API, contract, automation spec, CI workflow, Horde gate, documentation, and TODO evidence for Section 72.21.1.8.