Reading Pairs
Visible pair access requires ReadPairData:
if (grant.Allows(SnowcloakIpcCapability.ReadPairData))
{
IReadOnlyList<PairInfo> visiblePairs = ipc.GetVisiblePairs();
int reportedVisibleCount = ipc.GetVisiblePairCount();
foreach (var pair in visiblePairs)
{
PairApplicationStatus? status = ipc.GetApplicationStatus(pair.Uid);
}
}
Out-of-range access requires both pair permissions:
var allPairPermissions =
SnowcloakIpcCapability.ReadPairData |
SnowcloakIpcCapability.ReadPairDataOutOfRange;
if (grant.Allows(allPairPermissions))
{
IReadOnlyList<PairInfo> allPairs = ipc.GetAllPairs();
}
GetPairByUid returns an out-of-range pair only when both permissions are granted. ResolvePair(objectIndex) remains an object-based visbility lookup.
PairInfo objects contain:
| Property | Meaning |
|---|---|
Uid | The player's Snowcloak UID. |
Alias | Vanity ID, when present. |
DisplayColour | Vanity colour, when present. |
IsOnline | Whether the paired account is currently online. Useful for detecting connection interruptions. |
IsVisible | A valid local game object is currently associated with the pair. |
ObjectIndex | Valid local object index while visible; otherwise null. |
IsPaused | Syncing is paused. |
IsApplied | Synced data is currently applied to the visible character. |
IsDirectPair | true for an individual pair; false when known only through a syncshell. When both, will always be true. |
ApplicationState | Current effective application state. |
ApplicationStateChangedAtUtc | Time of the current tracked application state, when available. |
PairApplicationStatus contains:
| Property | Meaning |
|---|---|
Uid | Snowcloak UID whose appearance-application state is reported. |
State | Current SnowcloakApplicationState. |
Reason | Human-readable explanation for a waiting, blocked or failed state, when available. |
ChangedAtUtc | UTC time at which Snowcloak recorded the current state. Synthetic snapshot states for which no transition time was recorded use DateTimeOffset.UnixEpoch. |
SnowcloakApplicationState values are:
| State | Meaning |
|---|---|
Unknown | No recognised application state is available. Consumers must tolerate this value for compatibility. |
Idle | No appearance application is currently active. |
Waiting | Application is waiting for the character, an application slot or another prerequisite. |
Downloading | Required appearance files are being downloaded. |
Applying | Snowcloak is applying appearance data through its integrations. |
Applied | Appearance data was successfully applied to the visible character. |
Blocked | Application was deliberately prevented, for example by pause, combat, performance or safety state. Reason normally explains why. |
Failed | Application was attempted but could not complete. Reason normally explains why. |
See the event reference for the pair and application events. Re-query PairInfo after lifecycle events when exact current state matters.
Events are invalidation or activity signals. Re-query the relevant snapshot when exact current state matters. PairDataApplied means a visible appearance application completed, adn is unrelated to extension data delivery.